summaryrefslogtreecommitdiff
path: root/src/node_modules/javascript-obfuscator
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/javascript-obfuscator')
-rw-r--r--src/node_modules/javascript-obfuscator/.eslintignore2
-rw-r--r--src/node_modules/javascript-obfuscator/.eslintrc.js352
-rw-r--r--src/node_modules/javascript-obfuscator/.ncurc3
-rw-r--r--src/node_modules/javascript-obfuscator/.nycrc.json3
-rw-r--r--src/node_modules/javascript-obfuscator/.travis.yml29
-rw-r--r--src/node_modules/javascript-obfuscator/CHANGELOG.md747
-rw-r--r--src/node_modules/javascript-obfuscator/CODE_OF_CONDUCT.md46
-rw-r--r--src/node_modules/javascript-obfuscator/CONTRIBUTING.md38
-rw-r--r--src/node_modules/javascript-obfuscator/LICENSE.BSD19
-rw-r--r--src/node_modules/javascript-obfuscator/README.md1508
-rw-r--r--src/node_modules/javascript-obfuscator/bin/javascript-obfuscator3
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.browser.js3
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.browser.js.LICENSE.txt52
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.browser.js.map1
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.cli.js3
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.cli.js.LICENSE.txt23
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.cli.js.map1
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.js3
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.js.LICENSE.txt23
-rw-r--r--src/node_modules/javascript-obfuscator/dist/index.js.map1
-rw-r--r--src/node_modules/javascript-obfuscator/index.cli.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/index.d.ts38
-rw-r--r--src/node_modules/javascript-obfuscator/index.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/package.json137
-rw-r--r--src/node_modules/javascript-obfuscator/src/ASTParserFacade.ts116
-rw-r--r--src/node_modules/javascript-obfuscator/src/JavaScriptObfuscator.ts304
-rw-r--r--src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorCLIFacade.ts17
-rw-r--r--src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorFacade.ts93
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts170
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts16
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts59
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts70
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts177
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts130
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts61
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/scope-analyzer/ScopeAnalyzer.ts152
-rw-r--r--src/node_modules/javascript-obfuscator/src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts134
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/JavaScriptObfuscatorCLI.ts521
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/sanitizers/ArraySanitizer.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/sanitizers/BooleanSanitizer.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/utils/CLIUtils.ts50
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/utils/ObfuscatedCodeWriter.ts133
-rw-r--r--src/node_modules/javascript-obfuscator/src/cli/utils/SourceCodeReader.ts167
-rw-r--r--src/node_modules/javascript-obfuscator/src/code-transformers/AbstractCodeTransformer.ts46
-rw-r--r--src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformerNamesGroupsBuilder.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformersRunner.ts100
-rw-r--r--src/node_modules/javascript-obfuscator/src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts72
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/AlphabetString.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/AlphabetStringUppercase.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/Base64Alphabet.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/Base64AlphabetSwapped.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/EcmaVersion.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/constants/NumbersString.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/InversifyContainerFacade.ts233
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/ServiceIdentifiers.ts64
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/analyzers/AnalyzersModule.ts67
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/code-transformers/CodeTransformersModule.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts124
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/custom-nodes/CustomNodesModule.ts154
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/generators/GeneratorsModule.ts87
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ControlFlowTransformersModule.ts49
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ConvertingTransformersModule.ts86
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/FinalizingTransformersModule.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/InitializingTransformersModule.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/NodeTransformersModule.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/PreparingTransformersModule.ts81
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts32
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts21
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/SimplifyingTransformersModule.ts30
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/StringArrayTransformersModule.ts20
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/node/NodeModule.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/options/OptionsModule.ts18
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/storages/StoragesModule.ts70
-rw-r--r--src/node_modules/javascript-obfuscator/src/container/modules/utils/UtilsModule.ts47
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelper.ts121
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts104
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperFormatter.ts65
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperObfuscator.ts57
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts92
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts14
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts16
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts19
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts91
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts126
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts26
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts83
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts83
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts74
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts164
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts10
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts23
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts17
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts21
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts108
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts126
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts111
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts95
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts126
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts32
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts144
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts36
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCodeHelper.ts103
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts121
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts175
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts45
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts66
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts47
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts16
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts44
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts81
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts16
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/AbstractCustomNode.ts83
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts78
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts153
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts88
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts78
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts62
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts105
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts91
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts103
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts79
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts102
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts79
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts133
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayCallNode.ts182
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts231
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts96
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts40
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts36
-rw-r--r--src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts36
-rw-r--r--src/node_modules/javascript-obfuscator/src/declarations/ESTree.d.ts45
-rw-r--r--src/node_modules/javascript-obfuscator/src/declarations/acorn-import-meta.d.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/declarations/environment.d.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/declarations/escodegen.d.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/declarations/eslint-scope.d.ts14
-rw-r--r--src/node_modules/javascript-obfuscator/src/decorators/Initializable.ts177
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/ObfuscationTarget.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/StringSeparator.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformationStage.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformer.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelper.ts14
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelperGroup.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ControlFlowCustomNode.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-nodes/StringArrayCustomNode.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/event-emitters/ObfuscationEvent.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/logger/LoggingMessage.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/logger/LoggingPrefix.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformationStage.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformer.ts34
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/VisitorDirection.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts6
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node/NodeType.ts59
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/node/ObfuscatingGuardResult.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/options/presets/OptionsPreset.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/enums/source-map/SourceMapMode.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/event-emitters/ObfuscationEventEmitter.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts142
-rw-r--r--src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts175
-rw-r--r--src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts73
-rw-r--r--src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts256
-rw-r--r--src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts72
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/IEncodedValue.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/IGeneratorOutput.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/IInitializable.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/IJavaScriptObfsucator.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/ITransformer.ts6
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/IAnalyzer.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeData.ts6
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphData.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts17
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts17
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/cli/IFileData.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformer.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformersRunner.ts16
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/container/IInversifyContainerFacade.ts25
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelper.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts20
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperGroup.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts10
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/ICustomNode.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/event-emitters/IObfuscationEventEmitter.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator.ts54
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/logger/ILogger.ts21
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformer.ts35
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformersRunner.ts18
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/IVisitor.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer.ts17
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult.ts18
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts40
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IIteratedStatementsSimplifyData.ts18
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData.ts30
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData.ts18
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData.ts25
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverser.ts30
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverserCallbackData.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeThroughIdentifiersTraverserCallbackData.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/options/ICLIOptions.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/options/IOptions.ts57
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/options/IOptionsNormalizer.ts9
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/source-code/IObfuscatedCode.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/source-code/ISourceCode.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/IArrayStorage.ts59
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/IMapStorage.ts59
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts26
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts10
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts10
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts31
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorageItem.ts6
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts25
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/IArrayUtils.ts39
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtils.ts21
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/IEscapeSequenceEncoder.ts8
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/ILevelledTopologicalSorter.ts21
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/IRandomGenerator.ts47
-rw-r--r--src/node_modules/javascript-obfuscator/src/interfaces/utils/ITransformerNamesGroupsBuilder.ts12
-rw-r--r--src/node_modules/javascript-obfuscator/src/logger/Logger.ts95
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/AbstractNodeTransformer.ts56
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformerNamesGroupsBuilder.ts13
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformersRunner.ts175
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts151
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts265
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts123
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts71
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts108
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts62
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts99
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts101
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts98
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts67
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts77
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts132
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberLiteralTransformer.ts99
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts175
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts253
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts107
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts84
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/SplitStringTransformer.ts206
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts133
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts227
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts165
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts416
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts89
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/initializing-transformers/CommentsTransformer.ts173
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts163
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts195
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/MetadataTransformer.ts73
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts125
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ParentificationTransformer.ts57
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts145
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts42
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts80
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts58
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts46
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts58
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts126
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts396
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts141
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts147
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts139
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts133
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json5619
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts196
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts87
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts99
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts321
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts91
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts354
-rw-r--r--src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayTransformer.ts423
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeAppender.ts192
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeFactory.ts586
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeGuards.ts465
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeLexicalScopeUtils.ts57
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeLiteralUtils.ts34
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeMetadata.ts46
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeStatementUtils.ts135
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/NodeUtils.ts153
-rw-r--r--src/node_modules/javascript-obfuscator/src/node/ScopeIdentifiersTraverser.ts161
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/Options.ts427
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/OptionsNormalizer.ts58
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/ValidationErrorsFormatter.ts41
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts19
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionRule.ts29
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts19
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DomainLockRule.ts26
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/InputFileNameRule.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SeedRule.ts25
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SelfDefendingRule.ts19
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapBaseUrlRule.ts29
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapFileNameRule.ts37
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SplitStringsChunkLengthRule.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayEncodingRule.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayRule.ts29
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayWappersChainedCalls.ts19
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/presets/Default.ts63
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/presets/HighObfuscation.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/presets/LowObfuscation.ts15
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/presets/MediumObfuscation.ts24
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/presets/NoCustomNodes.ts60
-rw-r--r--src/node_modules/javascript-obfuscator/src/options/validators/IsAllowedForObfuscationTargets.ts55
-rw-r--r--src/node_modules/javascript-obfuscator/src/source-code/ObfuscatedCode.ts102
-rw-r--r--src/node_modules/javascript-obfuscator/src/source-code/SourceCode.ts43
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/ArrayStorage.ts149
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/MapStorage.ts136
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts57
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/custom-nodes/ControlFlowStorage.ts22
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/LiteralNodesCacheStorage.ts55
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts28
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayStorage.ts340
-rw-r--r--src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts68
-rw-r--r--src/node_modules/javascript-obfuscator/src/tsconfig.browser.json9
-rw-r--r--src/node_modules/javascript-obfuscator/src/tsconfig.node.json14
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/TDictionary.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/TInitialData.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/TObfuscationResultsObject.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/analyzers/calls-graph-analyzer/TObjectMembersCallsChain.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/cli/TCLISanitizer.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/code-transformers/TCodeTransformerFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/generators/TIdentifierNamesGeneratorFactory.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowReplacerFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowStorageFactory.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TNodeTransformerFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObfuscatingGuardFactory.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts6
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/container/source-code/TObfuscatedCodeFactory.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorDirection.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorFunction.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorResult.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding.ts7
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScope.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScopeStatements.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TNodeWithStatements.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TObfuscatingGuard.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TScopeIdentifiersTraverserCallback.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/node/TStatement.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TInputCLIOptions.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TInputOptions.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TOptionsNormalizerRule.ts3
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TOptionsPreset.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TStringArrayEncoding.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TStringArrayIndexesType.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/options/TStringArrayWrappersType.ts5
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/storages/TControlFlowStorage.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/storages/TCustomCodeHelperGroupStorage.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/utils/TTransformersRelationEdge.ts4
-rw-r--r--src/node_modules/javascript-obfuscator/src/types/utils/TTypeFromEnum.ts1
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/AbstractTransformerNamesGroupsBuilder.ts102
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/ArrayUtils.ts137
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/CryptUtils.ts149
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/CryptUtilsSwappedAlphabet.ts26
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/EscapeSequenceEncoder.ts69
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/LevelledTopologicalSorter.ts216
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/NumberUtils.ts109
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/RandomGenerator.ts137
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/StringUtils.ts11
-rw-r--r--src/node_modules/javascript-obfuscator/src/utils/Utils.ts71
-rw-r--r--src/node_modules/javascript-obfuscator/tsconfig.json26
394 files changed, 32476 insertions, 0 deletions
diff --git a/src/node_modules/javascript-obfuscator/.eslintignore b/src/node_modules/javascript-obfuscator/.eslintignore
new file mode 100644
index 0000000..51a83fd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/.eslintignore
@@ -0,0 +1,2 @@
+/test
+/webpack \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/.eslintrc.js b/src/node_modules/javascript-obfuscator/.eslintrc.js
new file mode 100644
index 0000000..f68a8be
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/.eslintrc.js
@@ -0,0 +1,352 @@
+module.exports = {
+ "env": {
+ "browser": true,
+ "es6": true,
+ "node": true
+ },
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "project": "src/tsconfig.node.json",
+ "sourceType": "module"
+ },
+ "plugins": [
+ "@typescript-eslint",
+ "import",
+ "jsdoc",
+ "prefer-arrow",
+ "unicorn"
+ ],
+ "rules": {
+ "@typescript-eslint/adjacent-overload-signatures": "error",
+ "@typescript-eslint/array-type": [
+ "error",
+ {
+ "default": "array"
+ }
+ ],
+ "@typescript-eslint/await-thenable": "error",
+ "@typescript-eslint/ban-ts-comment": "error",
+ "@typescript-eslint/ban-types": "off",
+ "@typescript-eslint/brace-style": [
+ "error",
+ "1tbs",
+ {
+ "allowSingleLine": true
+ }
+ ],
+ "@typescript-eslint/camelcase": "off",
+ "@typescript-eslint/comma-spacing": "error",
+ "@typescript-eslint/consistent-type-assertions": [
+ "error",
+ {
+ "assertionStyle": "angle-bracket"
+ }
+ ],
+ "@typescript-eslint/consistent-type-definitions": "error",
+ "@typescript-eslint/default-param-last": "error",
+ "@typescript-eslint/explicit-function-return-type": "error",
+ "@typescript-eslint/explicit-member-accessibility": [
+ "error",
+ {
+ "accessibility": "explicit"
+ }
+ ],
+ "@typescript-eslint/explicit-module-boundary-types": "error",
+ "@typescript-eslint/func-call-spacing": "error",
+ "@typescript-eslint/indent": [
+ "off",
+ 4
+ ],
+ "@typescript-eslint/member-delimiter-style": [
+ "error",
+ {
+ "multiline": {
+ "delimiter": "semi",
+ "requireLast": true
+ },
+ "singleline": {
+ "delimiter": "semi",
+ "requireLast": false
+ }
+ }
+ ],
+ "@typescript-eslint/member-ordering": "error",
+ "@typescript-eslint/naming-convention": [
+ "error",
+ {
+ "selector": "default",
+ "format": ["camelCase", "PascalCase"]
+ },
+ {
+ "selector": "variable",
+ "format": ["camelCase", "PascalCase", "UPPER_CASE"]
+ },
+ {
+ "selector": "function",
+ "format": ["camelCase", "PascalCase"]
+ },
+ {
+ "selector": "class",
+ "format": ["PascalCase"]
+ },
+ {
+ "selector": "interface",
+ "format": ["PascalCase"],
+ "prefix": ["I"]
+ },
+ {
+ "selector": "typeAlias",
+ "format": ["PascalCase"],
+ "prefix": ["T"]
+ },
+ {
+ "selector": "typeParameter",
+ "format": ["PascalCase"]
+ },
+ {
+ "selector": "enum",
+ "format": ["PascalCase"]
+ },
+ {
+ "selector": "enumMember",
+ "format": null
+ },
+ {
+ "selector": "property",
+ "format": ["camelCase", "PascalCase", "snake_case"]
+ }
+ ],
+ "@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-empty-interface": "error",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-extra-parens": "off",
+ "@typescript-eslint/no-floating-promises": "error",
+ "@typescript-eslint/no-for-in-array": "error",
+ "@typescript-eslint/no-inferrable-types": "off",
+ "@typescript-eslint/no-magic-numbers": "off",
+ "@typescript-eslint/no-misused-new": "error",
+ "@typescript-eslint/no-namespace": "error",
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
+ "@typescript-eslint/no-non-null-assertion": "error",
+ "@typescript-eslint/no-param-reassign": "off",
+ "@typescript-eslint/no-parameter-properties": "error",
+ "@typescript-eslint/no-require-imports": "off",
+ "@typescript-eslint/no-shadow": "error",
+ "@typescript-eslint/no-this-alias": "error",
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
+ "@typescript-eslint/no-unnecessary-type-arguments": "error",
+ "@typescript-eslint/no-unnecessary-type-assertion": "error",
+ "@typescript-eslint/no-unused-expressions": "error",
+ "@typescript-eslint/no-use-before-define": "off",
+ "@typescript-eslint/no-var-requires": "error",
+ "@typescript-eslint/prefer-for-of": "error",
+ "@typescript-eslint/prefer-function-type": "error",
+ "@typescript-eslint/prefer-namespace-keyword": "error",
+ "@typescript-eslint/prefer-nullish-coalescing": "error",
+ "@typescript-eslint/prefer-optional-chain": "error",
+ "@typescript-eslint/prefer-readonly": "error",
+ "@typescript-eslint/promise-function-async": "error",
+ "@typescript-eslint/quotes": [
+ "error",
+ "single"
+ ],
+ "@typescript-eslint/require-array-sort-compare": "error",
+ "@typescript-eslint/restrict-plus-operands": "error",
+ "@typescript-eslint/semi": [
+ "error",
+ "always"
+ ],
+ "@typescript-eslint/space-before-function-paren": "error",
+ "@typescript-eslint/strict-boolean-expressions": "off",
+ "@typescript-eslint/triple-slash-reference": "error",
+ "@typescript-eslint/type-annotation-spacing": "error",
+ "@typescript-eslint/typedef": "error",
+ "@typescript-eslint/unified-signatures": "error",
+ "arrow-body-style": "off",
+ "arrow-parens": [
+ "off",
+ "as-needed"
+ ],
+ "brace-style": "off",
+ "capitalized-comments": "off",
+ "comma-dangle": "off",
+ "comma-spacing": "off",
+ "complexity": [
+ "error",
+ {
+ "max": 10
+ }
+ ],
+ "constructor-super": "error",
+ "curly": "error",
+ "default-case": "off",
+ "dot-notation": "error",
+ "eol-last": "error",
+ "eqeqeq": [
+ "error",
+ "smart"
+ ],
+ "func-call-spacing": "off",
+ "guard-for-in": "error",
+ "id-blacklist": "off",
+ "id-match": "off",
+ "import/export": "error",
+ "import/first": "error",
+ "import/newline-after-import": "error",
+ "import/no-absolute-path": "error",
+ "import/no-cycle": "error",
+ "import/no-default-export": "error",
+ "import/no-deprecated": "error",
+ "import/no-extraneous-dependencies": "error",
+ "import/no-internal-modules": "error",
+ "import/no-mutable-exports": "error",
+ "import/no-unassigned-import": "off",
+ "import/no-useless-path-segments": "error",
+ "import/order": "off",
+ "indent": "off",
+ "jsdoc/no-types": "off",
+ "linebreak-style": "off",
+ "max-classes-per-file": [
+ "error",
+ 1
+ ],
+ "max-len": "off",
+ "max-lines": [
+ "error",
+ 500
+ ],
+ "new-parens": "error",
+ "newline-per-chained-call": "off",
+ "no-bitwise": "off",
+ "no-caller": "error",
+ "no-cond-assign": "error",
+ "no-console": [
+ "error",
+ {
+ "allow": [
+ "log",
+ "warn",
+ "dir",
+ "timeLog",
+ "assert",
+ "clear",
+ "count",
+ "countReset",
+ "group",
+ "groupEnd",
+ "table",
+ "dirxml",
+ "error",
+ "groupCollapsed",
+ "Console",
+ "profile",
+ "profileEnd",
+ "timeStamp",
+ "context"
+ ]
+ }
+ ],
+ "no-constant-condition": "error",
+ "no-control-regex": "off",
+ "no-debugger": "error",
+ "no-duplicate-case": "error",
+ "no-duplicate-imports": "error",
+ "no-empty": "off",
+ "no-eval": "off",
+ "no-extra-bind": "error",
+ "no-extra-parens": "off",
+ "no-extra-semi": "error",
+ "no-fallthrough": "error",
+ "no-invalid-regexp": "error",
+ "no-invalid-this": "off",
+ "no-irregular-whitespace": "error",
+ "no-magic-numbers": "off",
+ "no-multi-str": "error",
+ "no-multiple-empty-lines": "error",
+ "no-new-wrappers": "error",
+ "no-null/no-null": "off",
+ "no-octal": "error",
+ "no-octal-escape": "error",
+ "no-redeclare": "error",
+ "no-regex-spaces": "error",
+ "no-restricted-syntax": [
+ "error",
+ "ForInStatement"
+ ],
+ "no-return-await": "error",
+ "no-sequences": "error",
+ "no-shadow": "off",
+ "no-sparse-arrays": "error",
+ "no-template-curly-in-string": "error",
+ "no-throw-literal": "error",
+ "no-trailing-spaces": [
+ "error",
+ {
+ "skipBlankLines": true
+ }
+ ],
+ "no-undef-init": "error",
+ "no-underscore-dangle": "off",
+ "no-unsafe-finally": "error",
+ "no-unused-expressions": "off",
+ "no-unused-labels": "error",
+ "no-var": "error",
+ "no-void": "error",
+ "object-shorthand": "off",
+ "one-var": [
+ "error",
+ "never"
+ ],
+ "padding-line-between-statements": [
+ "error",
+ {
+ "blankLine": "always",
+ "prev": "*",
+ "next": "return"
+ }
+ ],
+ "prefer-arrow/prefer-arrow-functions": "off",
+ "prefer-const": "error",
+ "prefer-object-spread": "error",
+ "prefer-template": "error",
+ "quote-props": [
+ "error",
+ "as-needed"
+ ],
+ "quotes": "off",
+ "radix": "error",
+ "space-before-function-paren": "off",
+ "spaced-comment": "error",
+ "space-in-parens": [
+ "error",
+ "never"
+ ],
+ "unicorn/catch-error-name": [
+ "error",
+ {
+ "name": "error"
+ }
+ ],
+ "unicorn/no-nested-ternary": "error",
+ "unicorn/no-unreadable-array-destructuring": "error",
+ "unicorn/numeric-separators-style": [
+ "error",
+ {
+ number: {
+ minimumDigits: 7,
+ groupLength: 3
+ }
+ }
+ ],
+ "unicorn/prefer-array-find": "error",
+ "unicorn/prefer-includes": "error",
+ "unicorn/prefer-optional-catch-binding": "error",
+ "unicorn/prefer-starts-ends-with": "error",
+ "unicorn/prefer-set-has": "error",
+ "unicorn/prefer-string-slice": "error",
+ "unicorn/prefer-trim-start-end": "error",
+ "use-isnan": "error",
+ "valid-typeof": "error",
+ "yoda": "error"
+ }
+};
diff --git a/src/node_modules/javascript-obfuscator/.ncurc b/src/node_modules/javascript-obfuscator/.ncurc
new file mode 100644
index 0000000..933640c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/.ncurc
@@ -0,0 +1,3 @@
+{
+ "reject": []
+} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/.nycrc.json b/src/node_modules/javascript-obfuscator/.nycrc.json
new file mode 100644
index 0000000..dfd21ee
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/.nycrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "@istanbuljs/nyc-config-typescript"
+} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/.travis.yml b/src/node_modules/javascript-obfuscator/.travis.yml
new file mode 100644
index 0000000..24bbef7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/.travis.yml
@@ -0,0 +1,29 @@
+language: node_js
+
+env:
+ - YARN_GPG=no
+
+jobs:
+ include:
+ - os: linux
+ node_js: "10"
+ - os: linux
+ node_js: "12"
+ - os: linux
+ node_js: "13"
+ - os: linux
+ node_js: "14"
+ - os: linux
+ node_js: "stable"
+ - os: windows
+ node_js: "14"
+
+cache:
+ yarn: true
+ directories:
+ - node_modules
+
+script: "yarn run travis"
+
+after_success:
+ - yarn run test:mocha-coverage:report
diff --git a/src/node_modules/javascript-obfuscator/CHANGELOG.md b/src/node_modules/javascript-obfuscator/CHANGELOG.md
new file mode 100644
index 0000000..ba5c117
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/CHANGELOG.md
@@ -0,0 +1,747 @@
+Change Log
+
+v2.9.4
+---
+* Fixed missing prefix of root identifiers added by `stringArrayWrappersCount` option when `identifiersPrefix` option is set
+
+v2.9.3
+---
+* **CLI**: Fixed wrong name of obfuscated files when input directory path is the `.` symbol. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/816
+
+v2.9.2
+---
+* Ignore object expressions as body of arrow function expression when `transformObjectKeys` option is enabled. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/813
+
+v2.9.1
+---
+* Fixed wrong `stringArrayWrappersParametersMaxCount` CLI option name
+
+v2.9.0
+---
+* New option: `stringArrayIndexesType` accepts an array of types of string array call indexes
+* Changed default type of all string array call indexes from `hexadecimal-numeric-string` to `hexadecimal-number`
+* New option: `stringArrayIndexShift` enables additional index shift for all string array calls
+* New option: ``stringArrayWrappersParametersMaxCount`` allows to control the maximum number of string array wrappers parameters
+* `stringArrayWrappersType: 'function'` option value moved from `high-obfuscation` to `medium-obfuscation` options preset
+
+v2.8.1
+---
+* Fixed incorrect rename of the identifiers of the added helpers in some rare cases. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/804
+
+v2.8.0
+---
+* New option `ignoreRequireImports` prevents obfuscation of `require` imports. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/801
+
+v2.7.1
+---
+* Updated `@javascript-obfuscator/escodegen` to `2.1.1`
+
+v2.7.0
+---
+* Switched form `escodegen` to `@javascript-obfuscator/escodegen`
+* Full support of `nullish-coalescing`. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/604
+* Support for `exported` field of `ExportAllDeclaration` node. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/710
+
+v2.6.4
+---
+* Added ignoring of all object members previous to `SpreadElement` when `transformObjectKeys` option is enabled. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/797
+
+v2.6.3
+---
+* Added `ExportSpecifierTransformer`. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/791
+
+v2.6.2
+---
+* Fixed installation in `PowerShell`. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/783
+* Tested under `Node.js@15`
+
+v2.6.1
+---
+* Fixed missing rename of object pattern properties in some cases. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/781
+
+v2.6.0
+---
+* Migration to `webpack@5`
+* Optimized performance of `ExpressionStatementsMergeTransformer` when `simplify` option is enabled. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/777
+* Fixed broken `identifierNamesGenerator: 'mangled-shuffled'` after `2.2.0`. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/778
+
+v2.5.0
+---
+* Improved hierarchy of generated directories when `--output` is a directory path
+* Fixed wrong path generation for obfuscated files for `win32` environment. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/576
+* Fixed wrong path generation under for source map for `win32` environment. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/760
+* `javascript-obfuscator` now can be built under `win32` environment
+
+v2.4.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/769
+
+v2.4.2
+---
+* Fixed `URI-malformed` when `splitStrings` and `stringArrayEncoding` options are enabled. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/530
+
+v2.4.1
+---
+* Small release with some README.md improvements that allow to use it on [obfuscator.io](https://obfuscator.io)
+
+v2.4.0
+---
+* **New option:** `forceTransformStrings` allows force transform strings even if by `stringArrayThreshold` (or possible other thresholds in the future) they shouldn't be transformed. Implemented https://github.com/javascript-obfuscator/javascript-obfuscator/issues/657
+
+v2.3.1
+---
+* Fixed a rare bug with `identifierNamesGenerator: 'mangled'` option that causes wrong identifier names generation
+
+v2.3.0
+---
+* **New option:** `stringArrayWrappersType` allows to select a type of the wrappers that are appending by the `stringArrayWrappersCount` option
+* Add force convert of unicode control characters to the unicode escape sequence. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/747
+
+v2.2.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/745
+
+v2.2.0
+---
+* **New option (enabled by default):** `stringArrayWrappersCount` sets the count of wrappers for the `string array` inside each root or function scope
+* **New option (enabled by default):** `stringArrayWrappersChainedCalls` enables the chained calls between `string array` wrappers
+
+v2.1.0
+---
+* **New API:** `getOptionsByPreset` allows to get options for the passed options preset name
+
+v2.0.0
+---
+* **Breaking change:** `stringArrayEncoding` option now accepts an array of encodings. Each string will be randomly encoded with passed encoding
+
+v1.12.1
+---
+* Fixed regression bug with combination of `splitStrings` and `renameProperties` option. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/729
+
+v1.12.0
+---
+* **New option:** `optionsPreset` allows to set options preset
+
+v1.11.0
+---
+* Improved rename of `deadCodeInjection` dead code identifiers. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/708
+* **Reverted** `TaggedTemplateLiteral` obfuscation. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/716
+
+v1.10.2
+---
+* Fixed obfuscation of literals of `ExportNamedDeclaration` and `ExportAllDeclaration` nodes
+
+v1.10.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/707
+
+v1.10.0
+---
+* **Feature:** Optional chaining support!
+* Added `TaggedTemplateLiteral` obfuscation. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/696
+* Improved `disableConsoleOutput` template. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/691
+
+v1.9.0
+---
+* Improved obfuscation of destructured variables. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/688
+
+v1.8.1
+---
+* Fixed runtime error `Uncaught SyntaxError: yield is a reserved identifier` when `deadCodeInjection` is enabled
+
+v1.8.0
+---
+* `domainLock` option patterns with leading dot character (`.example.com`) now cover root domains (`example.com`) in addition to all sub-domains (`sub.example.com`). https://github.com/javascript-obfuscator/javascript-obfuscator/issues/640
+
+v1.7.0
+---
+* `simplify` option now affects all block statements. Improved variable declarations merging.
+
+v1.6.0
+---
+* **New option:** `numbersToExpressions` enables numbers conversion to expressions
+
+v1.5.2
+---
+* Prevented mutation of the name sequences of `mangled` identifier name generators
+
+v1.5.1
+---
+* Fixed runtime error when `IfStatement` contains only single `let` or `const` variable declaration when `simlify` option enabled. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/661
+* Fixed wrong `source-map: 'inline'` encoding after `1.3.0`
+
+v1.5.0
+---
+* New `mangled-shuffled` identifier names generator based on `mangled` identifier names generator
+
+v1.4.0
+---
+* **New option:** `simplify` enables additional code obfuscation through simplification
+
+v1.3.0
+---
+* Improvements of `stringArrayEncoding`: `base64` and `rc4`
+* **CLI**: added config file extension validation (it still supports `.js` and `.json` extensions)
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/499
+
+v1.2.2
+---
+* Fixed performance regression of `Initializing` stage after `1.2.0`
+
+v1.2.1
+---
+* Support of old browsers when `selfDefending` is enabled. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/615
+
+v1.2.0
+---
+* Conditional comments will be removed from the code after obfuscation. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/641
+
+v1.1.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/638
+
+v1.1.0
+---
+* **New option:** `renameProperties` enables renaming of property names
+
+v1.0.1
+---
+* Fixed .d.ts typings. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/623
+
+v1.0.0
+---
+* Looks like obfuscator is ready for the first stable release
+
+v0.28.5
+---
+* Fixed error during code generation for `ObjectPattern` with single `RestElement`. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/607
+
+v0.28.4
+---
+* Added correct `self-defending` code for `target: 'browser-no-eval'`. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/610
+
+v0.28.3
+---
+* Removed memory leak with `identifierNamesGenerator: 'mangled'`
+
+v0.28.2
+---
+* Fixed change of kinds of variables for dead code with `deadCodeInjection` option
+
+v0.28.1
+---
+* Removed `acorn-import-meta` package
+
+v0.28.0
+---
+* Added BigInt support. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/588
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/554
+
+v0.27.4
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/590
+
+v0.27.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/593
+
+v0.27.2
+---
+* Fixed identifiers prefix generation for `obfuscateMultiple` method
+
+v0.27.1
+---
+* Dependencies update, fixed https://www.npmjs.com/advisories/1488
+
+v0.27.0
+---
+* **Feature:** new method `obfuscateMultiple` to obfuscation of multiple source codes
+
+v0.26.0
+---
+* **Internal:** new code transformers mechanism
+* Supported obfuscation of files with hashbang operator, https://github.com/javascript-obfuscator/javascript-obfuscator/issues/471
+
+v0.25.5
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/575
+
+v0.25.4
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/569
+
+v0.25.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/568
+
+v0.25.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/563
+
+v0.25.1
+---
+* Additional fixes of https://github.com/javascript-obfuscator/javascript-obfuscator/issues/550
+
+v0.25.0
+---
+* Improved `mangled` identifier names generator logic
+* Improved `selfDefending` helper logic
+* Fixed a bunch of conflicts between generated identifier names. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/550. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/549
+* Prevented transformation of object keys in sequence expression that has `super` call
+* Support of output directory paths with a dot symbol
+* Changed `--output` logic. Now `--output` value can describe if it's a file or a directory path. Check README.md for more info
+
+v0.24.6
+---
+* Fixed support of exponentiation operator. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/534
+* Added file path to the error message during directory obfuscation. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/513
+
+v0.24.5
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/542
+
+v0.24.4
+---
+* Fixed rc4 encoded value collision: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/538
+
+v0.24.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/535
+
+v0.24.2
+---
+* Reverted validation errors under `node` target for `sourceMap*` options
+
+v0.24.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/531
+
+v0.24.0
+---
+* **Internal refactoring:** completely new mechanism to rename variable names
+* Dynamic import and `import.meta` support. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/505
+* Now usage of some browser-related options with `target: 'node'` will cause a validation error
+* Increased `identifierNamesGenerator: 'mangled` speed
+* **CLI:** a file path will be displayed on obfuscation error. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/513
+* Fixed many `transformObjectKeys` runtime errors
+* Fixed `Maximum call stack size exceeded` error on large strings when `splitString` option is enabled
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/516
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/512
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/496
+* **Internal:** switched from `awesome-typescript-loader` on `ts-loader`
+
+v0.23.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/475
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/326
+
+v0.23.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/498
+
+v0.23.0
+---
+* **New option:** `shuffleStringArray` randomly shuffles string array items
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/494
+* **Internal change:** switched AST parser from `espree` on `acorn`
+* **Internal refactoring:** refactoring of string array storage and related things
+
+v0.22.1
+---
+* Fixed `TypeError: Assignment to constant variable` when auto-detection of kind of variables is inserted `const` variables for `controlFlowStorage` nodes
+
+v0.22.0
+---
+* **Breaking:** auto-detection of kind of variables of inserted nodes, based on most prevailing kind of variables of source code
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/486
+
+v0.21.1
+---
+* Fixed conditional comments in some rare cases
+
+
+v0.21.0
+---
+* Improved `transformObjectKeys` transformation to cover more cases
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/406
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/387
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/333
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/328
+
+v0.20.4
+---
+* Fixed typings. Now string values correctly assignable to enum-like options
+
+v0.20.3
+---
+* Fixed `for-await-of` statement: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/419
+
+v0.20.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/pull/442
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/468
+* Added funding button
+* Internal dependencies update, Happy New Year 2020!
+
+v0.20.1
+---
+* Fixed identifier names generations for `mangled` and `dictionary` identifier names generators
+* Fixed combination of `identifierNamesGenerator: dictionary` and `debugProtection` options
+* `seed` option now accepts `string` and `number` values
+
+v0.20.0
+---
+* **Breaking:** dropped support of Node 8 because of end of maintenance support
+* **New option value:** `identifierNamesGenerator` now allows to set new `dictionary` identifier names generator
+* **New option:** `identifiersDictionary` sets identifiers dictionary for `identifierNamesGenerator: dictionary` option
+
+Thanks to our contributors!
+ * [adiantek](https://github.com/adiantek)
+
+v0.19.4
+---
+* Fixed `reservedNames` option
+
+Thanks to our contributors!
+ * [kida7](https://github.com/kida7)
+
+v0.19.3
+---
+* The `splitStrings` option now correctly works with `transformObjectKeys` option
+* Internal `TransformersRunner` rework to support topological sort of node transformers
+
+v0.19.2
+---
+* The `splitStrings` option now correctly splits strings inside objects
+
+v0.19.1
+---
+* The `splitStrings` option now affects template literal strings
+
+v0.19.0
+---
+* **New option:** `splitStrings` splits literal strings into chunks with length of `splitStringsChunkLength` option value
+* **New option:** `splitStringsChunkLength` sets chunk length of `splitStrings` option
+
+v0.18.8
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/452
+
+v0.18.7
+---
+* Fixed https://github.com/javascript-obfuscator/gulp-javascript-obfuscator/issues/22
+
+v0.18.6
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/355
+
+Thanks to our contributors!
+ * [Zamotkin](https://github.com/zamotkin)
+
+v0.18.5
+---
+* Breaking: require Node.js 8 after dependencies update
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/321
+
+Thanks to our contributors!
+ * [Zamotkin](https://github.com/zamotkin)
+
+v0.18.4
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/437
+
+Thanks to our contributors!
+ * [Zamotkin](https://github.com/zamotkin)
+
+v0.18.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/424
+
+Thanks to our contributors!
+ * [Zamotkin](https://github.com/zamotkin)
+
+v0.18.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/320
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/319
+
+v0.18.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/317
+
+v0.18.0
+---
+* **New option:** `reservedStrings` disables transformation of string literals, which being matched by passed RegExp patterns
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/313
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/309
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/307
+
+v0.17.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/303
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/302
+
+v0.17.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/297
+
+v0.17.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/293
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/289
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/288
+
+v0.17.0
+---
+* **Browser version**: Added browser version dist
+* **New Node API option:** `inputFileName` allows to set name of the input file with source code. This name will used internally, for example, for source map generation.
+* [#274](https://github.com/javascript-obfuscator/javascript-obfuscator/pull/274)`domainLock` now will work in SVG.
+ <br/>
+ Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/273
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/271
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/264
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/260
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/252
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/247
+
+v0.16.0
+---
+* Correct obfuscation of object rest and spread properties
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/243
+
+v0.15.0
+---
+* **Internal change:** switched AST parser from `esprima` on `espree`
+* **Breaking change:** dropped `node@4` and `node@5` support.
+* **Breaking change:** renamed `extension` value of `target` option on `browser-no-eval`.
+* **Breaking change:** disabled generation of identifiers, which being matched by `reservedName` option. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/216
+* **New CLI option:** `exclude` allows to exclude specific files or directories from obfuscation.
+* Correct obfuscation of `import` and `export` declarations.
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/231
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/217
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/210
+* Internal: refactoring of many things.
+
+v0.14.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/195
+* Added code preview to `esprima` error messages.
+
+v0.14.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/181
+
+v0.14.1
+---
+* Temporary fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/181
+
+v0.14.0
+---
+* **New option:** `identifiersPrefix` sets prefix for all global identifiers.
+* **New option:** `transformObjectKeys` enables object keys transformation and obfuscation.
+* **New feature:** `eval` expressions obfuscation.
+* **Breaking change:** Now CLI obfuscating directory recursively. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/157
+* Fixed runtime errors when `deadCodeInjection` is enabled and `identifierNamesGenerator` is set to `mangled`.
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/171
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/166
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/156
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/159
+
+v0.13.0
+---
+* **Breaking change:** `mangle` option was removed.
+* **New option:** `identifierNamesGenerator` allows to set identifier names generator (`hexadecimal` or `mangled`).
+* **Breaking change:** all CLI options were renamed to `kebab-case` format (`--disableConsoleOutout` -> `--disable-console-output`).
+* Implemented custom `mangle` option algorithm without `esmangle`; fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/110
+* Comments with `@license` and `@preserve` words won't be removed from obfuscated code.
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/147
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/149
+
+v0.12.5
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/139
+
+v0.12.4
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/136
+
+v0.12.3
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/129
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/125 (dead code injection and await expression)
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/123
+
+v0.12.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/121
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/119
+
+v0.12.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/117
+
+v0.12.0
+---
+* **New option:** `target` allows to set target environment for obfuscated code.
+* Added ability to disable and enable obfuscation for specific parts of the code by adding conditional comments.
+* Added obfuscation of `es2015` class names.
+* CLI: added directory obfuscation.
+
+v0.11.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/98
+
+v0.11.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/94
+
+v0.11.0
+---
+* **New option:** `log` enables logging of the information to the console.
+* **New option:** `renameGlobals` allows to enable obfuscation of global variable and function names with declaration.
+
+v0.10.2
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/78
+
+v0.10.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/76
+
+v0.10.0
+---
+* **New option:** `deadCodeInjection`. With this option random blocks of dead code will add to the obfuscated code.
+* **New option:** `deadCodeInjectionThreshold` allows to set percentage of nodes that will affected by `deadCodeInjection`.
+* **New option:** `mangle` enables mangling of variable names.
+* **New CLI option:** `--config` allows to set config file with obfuscator options.
+* **Breaking change:** `disableConsoleOutput` option now disabled by default.
+* **Breaking change:** `escapeUnicodeSequence` option now disabled by default.
+* `controlFlowFlattening` now affects string literal nodes.
+* Increased runtime performance with `rc4` `stringArrayEncoding`.
+* Added support for async functions
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/71
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/65
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/60
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/59
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/54
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/57
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/58
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/58
+
+v0.9.3
+---
+* Switched from `escodegen` to `escodegen-wallaby`, fixed https://github.com/javascript-obfuscator/javascript-obfuscator/pull/50
+
+v0.9.2
+---
+* Removed coverage dir from npm package
+
+v0.9.1
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/37
+
+v0.9.0
+---
+* **Breaking change:** dropped `node@0.10` and `node@0.12` support.
+* **New option:** `controlFlowFlattening` allows to enable/disable **Control Flow flattening**. Control flow flattening is a structure transformation of the source code that hinders program comprehension.
+* **New option:** `controlFlowFlatteningThreshold` allows to set percentage of nodes that will affected by `controlFlowFlattening`.
+* Significantly increased obfuscation performance.
+* Huge internal refactoring.
+* Better `es2015` support: correct obfuscation of `TemplateLiteral`, `ArrayPattern`, `AssignmentPattern` nodes.
+* Switched from `npm` to `yarn` internally.
+* Various bug fixes.
+
+v0.9.0-beta.5
+---
+* Increased performance
+* Fixed very rare `Cannot read property 'type' of undefined` error, when `RandomGeneratorUtils.getMathRandom()` returned incorrect value `1`.
+
+v0.9.0-beta.4
+---
+* Increased performance
+
+v0.9.0-beta.3
+---
+* **Breaking change:** dropped `node@0.10` and `node@0.12` support.
+* Switched from `npm` to `yarn` internally.
+
+v0.9.0-beta.2
+---
+* Transformers refactoring
+
+v0.9.0-beta.1
+---
+* **New option:** `controlFlowFlattening` allows to enable/disable **Control Flow flattening**. Control flow flattening is a structure transformation of the source code that hinders program comprehension.
+* **New option:** `controlFlowFlatteningThreshold` allows to set percentage of nodes that will affected by `controlFlowFlattening`.
+* Better `es2015` support: correct obfuscation of `TemplateLiteral`, `ArrayPattern`, `AssignmentPattern` nodes.
+* Obfuscation performance boost.
+* Huge internal refactoring.
+* Various bug fixes.
+
+v0.8.6
+---
+* Additional fixes for https://github.com/javascript-obfuscator/javascript-obfuscator/issues/29
+
+v0.8.5
+---
+* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/29
+
+v0.8.4
+---
+* Fixed https://github.com/javascript-obfuscator/webpack-obfuscator/issues/13
+
+v0.8.3
+---
+* `selfDefending` option now disabled by default.
+
+v0.8.2
+---
+* New option `seed` sets seed for random generator. This is useful for creating repeatable results.
+* IE8 runtime error fix.
+
+v0.8.1
+---
+* `disableConsoleOutput` option now replaces `console.xxx` functions on empty function instead of infinity loop.
+
+v0.8.0
+---
+* **Breaking options change:** `unicodeArray` option has been renamed to `stringArray`.
+* **Breaking options change:** `unicodeArrayThreshold` option has been renamed to `stringArrayThreshold`.
+* **Breaking options change:** `encodeUnicodeArray` option has been renamed to `stringArrayEncoding` and now accepts following values: `true|false|'base64'|'rc4'`.
+* **Breaking change:** option `wrapUnicodeArrayCalls` was removed and now all calls to `stringArray` are always wrapped by special wrapper function.
+* New option `unicodeEscapeSequence` allows to enable/disable strings conversion to unicode escape sequence.
+* New option `domainLock` locks the obfuscated source code so it only runs on specific domains and/or sub-domains.
+* New option `sourceMapBaseUrl` sets base url to the source map import url when `sourceMapMode: 'separate'`.
+* Custom nodes like `selfDefendingNode` or `consoleOutputNode` now inserted into deepest stack trace function call.
+* Fixed obfuscation of global variables and function names in some cases.
+* Fixed wrong obfuscation of labels.
+* Rewrite of many custom nodes.
+
+v0.7.3
+---
+* CLI missing polyfill fix [#17](https://github.com/sanex3339/javascript-obfuscator/issues/17)
+
+v0.7.2
+---
+* Runtime error fix [#7](https://github.com/sanex3339/webpack-obfuscator/issues/7)
+
+* Shorthand object expression fix [#16](https://github.com/sanex3339/javascript-obfuscator/issues/16)
+
+v0.7.1
+---
+* IE error fix [#14](https://github.com/sanex3339/javascript-obfuscator/issues/14)
+
+v0.7.0-dev.3
+---
+* Obfuscator now returns an empty string instead of obfuscated code if source code is empty
+
+v0.7.0-dev.2
+---
+* Fix of incorrect `Utils.decToHex` method
+
+v0.7.0-dev.1
+---
+* **Breaking API change:** now `obfuscate(sourceCode, options)` returns `ObfuscationResult` object instead `string`. `ObfuscationResult` object contains two public methods: `getObfuscatedCode()` and `getSourceMap()`.
+* CLI. Now any code can be obfuscated through CLI `javascript-obfuscator` command. See `README.md` for available options.
+* New option `sourceMap` enables source map generation for obfuscated code.
+* New option `sourceMapMode` specifies source map generation mode. \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/CODE_OF_CONDUCT.md b/src/node_modules/javascript-obfuscator/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..c2a51b8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/CODE_OF_CONDUCT.md
@@ -0,0 +1,46 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at sanex3339@yandex.ru. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
diff --git a/src/node_modules/javascript-obfuscator/CONTRIBUTING.md b/src/node_modules/javascript-obfuscator/CONTRIBUTING.md
new file mode 100644
index 0000000..9a6e9d2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/CONTRIBUTING.md
@@ -0,0 +1,38 @@
+# Contributing to JavaScript Obfuscator
+
+## Setup
+
+1 Clone your fork of the repository
+```
+$ git clone https://github.com/YOUR_USERNAME/javascript-obfuscator.git
+```
+
+2 Install npm dependencies
+```
+$ yarn
+```
+
+3 Run Dev process
+```
+$ yarn run watch
+```
+
+4 Run Build process
+```
+$ yarn run build
+```
+
+## Guidelines
+
+- Please try to [combine multiple commits before pushing](http://stackoverflow.com/questions/6934752/combining-multiple-commits-before-pushing-in-git)
+
+- Please use `TDD` when fixing bugs. This means that you should write a unit test that fails because it reproduces the issue,
+then fix the issue and finally run the test to ensure that the issue has been resolved. This helps us prevent fixed bugs from
+happening again in the future
+
+- Please keep the test coverage at 95+%. Write additional unit tests if necessary
+
+- Please keep code style consistent
+
+- Please create an issue before sending a PR if it is going to change the public interface of JavaScript Obfuscator or includes significant architecture changes
+
diff --git a/src/node_modules/javascript-obfuscator/LICENSE.BSD b/src/node_modules/javascript-obfuscator/LICENSE.BSD
new file mode 100644
index 0000000..f082620
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/LICENSE.BSD
@@ -0,0 +1,19 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/README.md b/src/node_modules/javascript-obfuscator/README.md
new file mode 100644
index 0000000..b802b66
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/README.md
@@ -0,0 +1,1508 @@
+<!--
+ Title: JavaScript Obfuscator
+ Description: A powerful obfuscator for JavaScript and Node.js.
+ Author: Timofey Kachalov
+ -->
+
+# JavaScript obfuscator
+
+![logo](https://raw.githubusercontent.com/javascript-obfuscator/javascript-obfuscator/master/images/logo.png)
+
+JavaScript Obfuscator is a powerful free obfuscator for JavaScript, containing a variety of features which provide protection for your source code.
+
+**Key features:**
+- variables renaming
+- strings extraction and encryption
+- dead code injection
+- control flow flattening
+- various code transformations
+- and [more](#javascript-obfuscator-options)...
+
+The example of obfuscated code: [github.com](https://github.com/javascript-obfuscator/javascript-obfuscator/blob/master/examples/javascript-obfuscator.js)
+
+#### Online version:
+[obfuscator.io](https://obfuscator.io)
+
+#### Plugins:
+* Webpack plugin: [webpack-obfuscator](https://github.com/javascript-obfuscator/webpack-obfuscator)
+* Webpack loader: [obfuscator-loader](https://github.com/javascript-obfuscator/obfuscator-loader)
+* Gulp: [gulp-javascript-obfuscator](https://github.com/javascript-obfuscator/gulp-javascript-obfuscator)
+* Grunt: [grunt-contrib-obfuscator](https://github.com/javascript-obfuscator/grunt-contrib-obfuscator)
+* Rollup: [rollup-plugin-javascript-obfuscator](https://github.com/javascript-obfuscator/rollup-plugin-javascript-obfuscator)
+* Weex: [weex-devtool](https://www.npmjs.com/package/weex-devtool)
+* Malta: [malta-js-obfuscator](https://github.com/fedeghe/malta-js-obfuscator)
+
+[![npm version](https://badge.fury.io/js/javascript-obfuscator.svg)](https://badge.fury.io/js/javascript-obfuscator)
+[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjavascript-obfuscator%2Fjavascript-obfuscator.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjavascript-obfuscator%2Fjavascript-obfuscator?ref=badge_shield)
+[![Build Status](https://travis-ci.com/javascript-obfuscator/javascript-obfuscator.svg?branch=master)](https://travis-ci.com/javascript-obfuscator/javascript-obfuscator)
+[![Coverage Status](https://coveralls.io/repos/github/javascript-obfuscator/javascript-obfuscator/badge.svg)](https://coveralls.io/github/javascript-obfuscator/javascript-obfuscator)
+[![Backers on Open Collective](https://opencollective.com/javascript-obfuscator/backers/badge.svg)](#backers)
+[![Sponsors on Open Collective](https://opencollective.com/javascript-obfuscator/sponsors/badge.svg)](#sponsors)
+[![xscode](https://img.shields.io/badge/Available%20on-xs%3Acode-blue?style=?style=plastic&logo=appveyor&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////////VXz1bAAAAAJ0Uk5T/wDltzBKAAAAlUlEQVR42uzXSwqAMAwE0Mn9L+3Ggtgkk35QwcnSJo9S+yGwM9DCooCbgn4YrJ4CIPUcQF7/XSBbx2TEz4sAZ2q1RAECBAiYBlCtvwN+KiYAlG7UDGj59MViT9hOwEqAhYCtAsUZvL6I6W8c2wcbd+LIWSCHSTeSAAECngN4xxIDSK9f4B9t377Wd7H5Nt7/Xz8eAgwAvesLRjYYPuUAAAAASUVORK5CYII=)](https://xscode.com/sanex3339/javascript-obfuscator)
+
+#### You can support this project by donating:
+* (OpenCollective) https://opencollective.com/javascript-obfuscator
+* PayPal credit card [https://www.paypal.com/donate](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=javascript-obfuscator@yandex.ru&lc=US&no_note=0&item_name=Support+javascript-obfuscator&cn=&curency_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted)
+* PayPal https://www.paypal.me/javascriptobfuscator
+* (Bitcoin) 14yhtZxLNp6ekZAgmEmPJqEKUP2VtUxQK6
+
+Huge thanks to all supporters!
+
+#### *NOTE! the README on the master branch might not match that of the latest stable release!*
+
+#### If you have a question, check this section first: [FAQ](#frequently-asked-questions)
+
+## :warning: Important
+##### Only obfuscate the code that belongs to you.
+
+It is not recommended to obfuscate vendor scripts and polyfills, since the obfuscated code is 15-80% slower (depends on options) and the files are significantly larger.
+
+## Installation
+
+#### Using Yarn or NPM
+
+Install the package with Yarn or NPM and add it to your `dependencies` or `devDependencies`:
+
+```sh
+$ yarn add --dev javascript-obfuscator
+```
+or
+```sh
+$ npm install --save-dev javascript-obfuscator
+```
+
+#### In a Browser
+
+From CDN:
+
+```html
+<script src="https://cdn.jsdelivr.net/npm/javascript-obfuscator/dist/index.browser.js"></script>
+```
+
+From `node_modules`:
+
+```html
+<script src="./node_modules/javascript-obfuscator/dist/index.browser.js"></script>
+```
+
+## Usage
+
+```javascript
+var JavaScriptObfuscator = require('javascript-obfuscator');
+
+var obfuscationResult = JavaScriptObfuscator.obfuscate(
+ `
+ (function(){
+ var variable1 = '5' - 3;
+ var variable2 = '5' + 3;
+ var variable3 = '5' + - '2';
+ var variable4 = ['10','10','10','10','10'].map(parseInt);
+ var variable5 = 'foo ' + 1 + 1;
+ console.log(variable1);
+ console.log(variable2);
+ console.log(variable3);
+ console.log(variable4);
+ console.log(variable5);
+ })();
+ `,
+ {
+ compact: false,
+ controlFlowFlattening: true,
+ controlFlowFlatteningThreshold: 1,
+ numbersToExpressions: true,
+ simplify: true,
+ shuffleStringArray: true,
+ splitStrings: true,
+ stringArrayThreshold: 1
+ }
+);
+
+console.log(obfuscationResult.getObfuscatedCode());
+/*
+var _0x236b = [
+ '8|3|2|4|7|',
+ 'izyPY',
+ 'ZXpNn',
+ 'split',
+ '1|5|9|6|0',
+ 'foo\x20',
+ 'xPhYQ',
+ 'sKneg',
+ 'thwwU',
+ 'log',
+ 'map'
+];
+(function (_0x34d326, _0xc4ba4e) {
+ var _0xcd0f69 = function (_0x39b54a) {
+ while (--_0x39b54a) {
+ _0x34d326['push'](_0x34d326['shift']());
+ }
+ };
+ _0xcd0f69(++_0xc4ba4e);
+}(_0x236b, 0x31 + 0x42 * -0x27 + 0xbbc));
+var _0x17c9 = function (_0x34d326, _0xc4ba4e) {
+ _0x34d326 = _0x34d326 - (0x31 + 0x42 * -0x27 + 0x9dd);
+ var _0xcd0f69 = _0x236b[_0x34d326];
+ return _0xcd0f69;
+};
+(function () {
+ var _0x32cb02 = _0x17c9, _0x41d9b4 = {
+ 'thwwU': _0x32cb02('0x5') + _0x32cb02('0x9'),
+ 'xPhYQ': function (_0x176227, _0x3e4c2d) {
+ return _0x176227 + _0x3e4c2d;
+ },
+ 'izyPY': function (_0x13389c, _0x58f8bc) {
+ return _0x13389c + _0x58f8bc;
+ },
+ 'sKneg': _0x32cb02('0xa'),
+ 'ZXpNn': function (_0x1e08e1, _0x5cba70) {
+ return _0x1e08e1 - _0x5cba70;
+ }
+ }, _0x2f8df3 = _0x41d9b4[_0x32cb02('0x2')][_0x32cb02('0x8')]('|'), _0x2087f0 = -0x9a * 0x1f + 0x15 * 0x3 + 0x1267;
+ while (!![]) {
+ switch (_0x2f8df3[_0x2087f0++]) {
+ case '0':
+ console[_0x32cb02('0x3')](_0x2e20e0);
+ continue;
+ case '1':
+ console[_0x32cb02('0x3')](_0x3c882f);
+ continue;
+ case '2':
+ var _0x39f804 = _0x41d9b4[_0x32cb02('0x0')]('5', -'2');
+ continue;
+ case '3':
+ var _0x700005 = _0x41d9b4[_0x32cb02('0x6')]('5', 0x1818 + 0x11b5 + -0x29ca);
+ continue;
+ case '4':
+ var _0x172286 = [
+ '10',
+ '10',
+ '10',
+ '10',
+ '10'
+ ][_0x32cb02('0x4')](parseInt);
+ continue;
+ case '5':
+ console[_0x32cb02('0x3')](_0x700005);
+ continue;
+ case '6':
+ console[_0x32cb02('0x3')](_0x172286);
+ continue;
+ case '7':
+ var _0x2e20e0 = _0x41d9b4[_0x32cb02('0x6')](_0x41d9b4[_0x32cb02('0x6')](_0x41d9b4[_0x32cb02('0x1')], -0x2596 + -0x27b * 0x1 + 0xdf * 0x2e), 0x1 * 0x1b06 + -0x1b8e * -0x1 + 0x1 * -0x3693);
+ continue;
+ case '8':
+ var _0x3c882f = _0x41d9b4[_0x32cb02('0x7')]('5', 0x1dc1 * -0x1 + 0x1d59 + 0x6b);
+ continue;
+ case '9':
+ console[_0x32cb02('0x3')](_0x39f804);
+ continue;
+ }
+ break;
+ }
+}());
+*/
+```
+
+### `obfuscate(sourceCode, options)`
+
+Returns `ObfuscationResult` object which contains two public methods:
+
+* `getObfuscatedCode()` - returns `string` with obfuscated code;
+* `getSourceMap()` - if [`sourceMap`](#sourcemap) option is enabled - returns `string` with source map or an empty string if [`sourceMapMode`](#sourcemapmode) option is set as `inline`.
+
+Calling `toString()` for `ObfuscationResult` object will return `string` with obfuscated code.
+
+Method takes two parameters, `sourceCode` and `options` – the source code and the options respectively:
+
+* `sourceCode` (`string`, default: `null`) – any valid source code, passed as a string;
+* `options` (`Object`, default: `null`) – an object with options.
+
+For available options, see [options](#options).
+
+### `obfuscateMultiple(sourceCodesObject, options)`
+
+Accepts `sourceCodesObject` that is a map which keys are identifiers of source codes and values are source codes:
+```
+{
+ foo: 'var foo = 1;',
+ bar: 'var bar = 2;'
+}
+```
+
+Returns a map object which keys are identifiers of source codes and values are `ObfuscationResult` objects.
+
+### `getOptionsByPreset(optionsPreset)`
+
+Returns an options object for the passed options preset name.
+
+## CLI usage
+
+See [CLI options](#cli-options).
+
+#### Obfuscate single file
+
+Usage:
+```sh
+javascript-obfuscator input_file_name.js [options]
+javascript-obfuscator input_file_name.js --output output_file_name.js [options]
+javascript-obfuscator input_file_name.js --output output_folder_name [options]
+javascript-obfuscator input_folder_name --output output_folder_name [options]
+```
+
+Obfuscation of single input file with `.js` extension.
+
+If the destination path is not specified with the `--output` option, the obfuscated file will be saved into the input file directory, with `INPUT_FILE_NAME-obfuscated.js` name.
+
+Some examples:
+```sh
+javascript-obfuscator samples/sample.js --compact true --self-defending false
+// creates a new file samples/sample-obfuscated.js
+
+javascript-obfuscator samples/sample.js --output output/output.js --compact true --self-defending false
+// creates a new file output/output.js
+```
+
+#### Obfuscate directory recursively
+
+Usage:
+```sh
+javascript-obfuscator ./dist [options]
+// creates a new obfuscated files under `./dist` directory near the input files with `obfuscated` postfix
+
+javascript-obfuscator ./dist --output ./dist/obfuscated [options]
+// creates a folder structure with obfuscated files under `./dist/obfuscated` path
+```
+
+Obfuscation of all `.js` files under input directory. If this directory contains already obfuscated files with `-obfuscated` postfix - these files will ignored.
+
+Obfuscated files will saved into the input directory under `INPUT_FILE_NAME-obfuscated.js` name.
+
+## Conditional comments
+You can disable and enable obfuscation for specific parts of the code by adding following comments:
+* disable: `// javascript-obfuscator:disable` or `/* javascript-obfuscator:disable */`;
+* enable: `// javascript-obfuscator:enable` or `/* javascript-obfuscator:enable */`.
+
+Example:
+```javascript
+// input
+var foo = 1;
+// javascript-obfuscator:disable
+var bar = 2;
+
+// output
+var _0xabc123 = 0x1;
+var bar = 2;
+```
+Conditional comments affect only direct transformations of AST-tree nodes. All child transformations still will be applied to the AST-tree nodes.
+
+For example:
+* Obfuscation of the variable's name at its declaration is called direct transformation;
+* Obfuscation of the variable's name beyond its declaration is called child transformation.
+
+## Kind of variables
+
+Kind of variables of inserted nodes will auto-detected, based on most prevailing kind of variables of source code.
+
+## Conflicts of identifier names between different files
+
+During obfuscation of the different files, the same names can be generated for the global identifiers between these files.
+To prevent this set the unique prefix for all global identifiers for each obfuscated file with [`identifiersPrefix`](#identifiersprefix) option.
+
+When using CLI this prefix will be added automatically.
+
+## Antiviruses false positive virus alerts
+
+Some input source code that will obfuscated with some obfuscation options can trigger false positive alerts in a few antiviruses. If you will get this false positive triggers, try to play with obfuscation options.
+
+* Try to change `stringArrayEncoding` option value between `rc4` and `base64` values or disable it completely;
+* Try to change `identifierNamesGenerator` option value from `hexadecimal` on `mangled`;
+* Try to disable `selfDefending`.
+
+If this wont help - attach your source code and describe your obfuscation options here:
+https://github.com/javascript-obfuscator/javascript-obfuscator/issues/51
+
+## JavaScript Obfuscator Options
+
+Following options are available for the JS Obfuscator:
+
+#### options:
+
+```javascript
+{
+ compact: true,
+ controlFlowFlattening: false,
+ controlFlowFlatteningThreshold: 0.75,
+ deadCodeInjection: false,
+ deadCodeInjectionThreshold: 0.4,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: false,
+ domainLock: [],
+ forceTransformStrings: [],
+ identifierNamesGenerator: 'hexadecimal',
+ identifiersDictionary: [],
+ identifiersPrefix: '',
+ ignoreRequireImports: false,
+ inputFileName: '',
+ log: false,
+ numbersToExpressions: false,
+ optionsPreset: 'default',
+ renameGlobals: false,
+ renameProperties: false,
+ reservedNames: [],
+ reservedStrings: [],
+ rotateStringArray: true,
+ seed: 0,
+ selfDefending: false,
+ shuffleStringArray: true,
+ simplify: true,
+ sourceMap: false,
+ sourceMapBaseUrl: '',
+ sourceMapFileName: '',
+ sourceMapMode: 'separate',
+ splitStrings: false,
+ splitStringsChunkLength: 10,
+ stringArray: true,
+ stringArrayCallsIndexType: [
+ 'hexadecimal-number'
+ ],
+ stringArrayEncoding: [],
+ stringArrayIndexShift: true,
+ stringArrayWrappersCount: 1,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersParametersMaxCount: 2,
+ stringArrayWrappersType: 'variable',
+ stringArrayThreshold: 0.75,
+ target: 'browser',
+ transformObjectKeys: false,
+ unicodeEscapeSequence: false
+}
+```
+
+#### CLI options:
+```sh
+ -v, --version
+ -h, --help
+
+ -o, --output
+
+ --compact <boolean>
+ --config <string>
+ --control-flow-flattening <boolean>
+ --control-flow-flattening-threshold <number>
+ --dead-code-injection <boolean>
+ --dead-code-injection-threshold <number>
+ --debug-protection <boolean>
+ --debug-protection-interval <boolean>
+ --disable-console-output <boolean>
+ --domain-lock '<list>' (comma separated)
+ --exclude '<list>' (comma separated)
+ --force-transform-strings '<list>' (comma separated)
+ --identifier-names-generator <string> [dictionary, hexadecimal, mangled, mangled-shuffled]
+ --identifiers-dictionary '<list>' (comma separated)
+ --identifiers-prefix <string>
+ --ignore-require-imports <boolean>
+ --log <boolean>
+ --numbers-to-expressions <boolean>
+ --options-preset <string> [default, low-obfuscation, medium-obfuscation, high-obfuscation]
+ --rename-globals <boolean>
+ --rename-properties <boolean>
+ --reserved-names '<list>' (comma separated)
+ --reserved-strings '<list>' (comma separated)
+ --rotate-string-array <boolean>
+ --seed <string|number>
+ --self-defending <boolean>
+ --shuffle-string-array <boolean>
+ --simplify <boolean>
+ --source-map <boolean>
+ --source-map-base-url <string>
+ --source-map-file-name <string>
+ --source-map-mode <string> [inline, separate]
+ --split-strings <boolean>
+ --split-strings-chunk-length <number>
+ --string-array <boolean>
+ --string-array-calls-index-type '<list>' (comma separated) [hexadecimal-number, hexadecimal-numeric-string]
+ --string-array-encoding '<list>' (comma separated) [none, base64, rc4]
+ --string-array-index-shift <boolean>
+ --string-array-wrappers-count <number>
+ --string-array-wrappers-chained-calls <boolean>
+ --string-array-wrappers-parameters-max-count <number>
+ --string-array-wrappers-type <string> [variable, function]
+ --string-array-threshold <number>
+ --target <string> [browser, browser-no-eval, node]
+ --transform-object-keys <boolean>
+ --unicode-escape-sequence <boolean>
+```
+
+<!-- ##options-start## -->
+
+### `compact`
+Type: `boolean` Default: `true`
+
+Compact code output on one line.
+
+### `config`
+Type: `string` Default: ``
+
+Name of JS/JSON config file which contains obfuscator options. These will be overridden by options passed directly to CLI
+
+### `controlFlowFlattening`
+Type: `boolean` Default: `false`
+
+##### :warning: This option greatly affects the performance up to 1.5x slower runtime speed. Use [`controlFlowFlatteningThreshold`](#controlflowflatteningthreshold) to set percentage of nodes that will affected by control flow flattening.
+
+Enables code control flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension.
+
+Example:
+```ts
+// input
+(function(){
+ function foo () {
+ return function () {
+ var sum = 1 + 2;
+ console.log(1);
+ console.log(2);
+ console.log(3);
+ console.log(4);
+ console.log(5);
+ console.log(6);
+ }
+ }
+
+ foo()();
+})();
+
+// output
+(function () {
+ function _0x3bfc5c() {
+ return function () {
+ var _0x3260a5 = {
+ 'WtABe': '4|0|6|5|3|2|1',
+ 'GokKo': function _0xf87260(_0x427a8e, _0x43354c) {
+ return _0x427a8e + _0x43354c;
+ }
+ };
+ var _0x1ad4d6 = _0x3260a5['WtABe']['split']('|'), _0x1a7b12 = 0x0;
+ while (!![]) {
+ switch (_0x1ad4d6[_0x1a7b12++]) {
+ case '0':
+ console['log'](0x1);
+ continue;
+ case '1':
+ console['log'](0x6);
+ continue;
+ case '2':
+ console['log'](0x5);
+ continue;
+ case '3':
+ console['log'](0x4);
+ continue;
+ case '4':
+ var _0x1f2f2f = _0x3260a5['GokKo'](0x1, 0x2);
+ continue;
+ case '5':
+ console['log'](0x3);
+ continue;
+ case '6':
+ console['log'](0x2);
+ continue;
+ }
+ break;
+ }
+ };
+ }
+
+ _0x3bfc5c()();
+}());
+```
+
+### `controlFlowFlatteningThreshold`
+Type: `number` Default: `0.75` Min: `0` Max: `1`
+
+The probability that the [`controlFlowFlattening`](#controlflowflattening) transformation will be applied to any given node.
+
+This setting is especially useful for large code size because large amounts of control flow transformations can slow down your code and increase code size.
+
+`controlFlowFlatteningThreshold: 0` equals to `controlFlowFlattening: false`.
+
+### `deadCodeInjection`
+Type: `boolean` Default: `false`
+
+##### :warning: Dramatically increases size of obfuscated code (up to 200%), use only if size of obfuscated code doesn't matter. Use [`deadCodeInjectionThreshold`](#deadcodeinjectionthreshold) to set percentage of nodes that will affected by dead code injection.
+##### :warning: This option forcibly enables `stringArray` option.
+
+With this option, random blocks of dead code will be added to the obfuscated code.
+
+Example:
+```ts
+// input
+(function(){
+ if (true) {
+ var foo = function () {
+ console.log('abc');
+ console.log('cde');
+ console.log('efg');
+ console.log('hij');
+ };
+
+ var bar = function () {
+ console.log('klm');
+ console.log('nop');
+ console.log('qrs');
+ };
+
+ var baz = function () {
+ console.log('tuv');
+ console.log('wxy');
+ console.log('z');
+ };
+
+ foo();
+ bar();
+ baz();
+ }
+})();
+
+// output
+var _0x5024 = [
+ 'zaU',
+ 'log',
+ 'tuv',
+ 'wxy',
+ 'abc',
+ 'cde',
+ 'efg',
+ 'hij',
+ 'QhG',
+ 'TeI',
+ 'klm',
+ 'nop',
+ 'qrs',
+ 'bZd',
+ 'HMx'
+];
+var _0x4502 = function (_0x1254b1, _0x583689) {
+ _0x1254b1 = _0x1254b1 - 0x0;
+ var _0x529b49 = _0x5024[_0x1254b1];
+ return _0x529b49;
+};
+(function () {
+ if (!![]) {
+ var _0x16c18d = function () {
+ if (_0x4502('0x0') !== _0x4502('0x0')) {
+ console[_0x4502('0x1')](_0x4502('0x2'));
+ console[_0x4502('0x1')](_0x4502('0x3'));
+ console[_0x4502('0x1')]('z');
+ } else {
+ console[_0x4502('0x1')](_0x4502('0x4'));
+ console[_0x4502('0x1')](_0x4502('0x5'));
+ console[_0x4502('0x1')](_0x4502('0x6'));
+ console[_0x4502('0x1')](_0x4502('0x7'));
+ }
+ };
+ var _0x1f7292 = function () {
+ if (_0x4502('0x8') === _0x4502('0x9')) {
+ console[_0x4502('0x1')](_0x4502('0xa'));
+ console[_0x4502('0x1')](_0x4502('0xb'));
+ console[_0x4502('0x1')](_0x4502('0xc'));
+ } else {
+ console[_0x4502('0x1')](_0x4502('0xa'));
+ console[_0x4502('0x1')](_0x4502('0xb'));
+ console[_0x4502('0x1')](_0x4502('0xc'));
+ }
+ };
+ var _0x33b212 = function () {
+ if (_0x4502('0xd') !== _0x4502('0xe')) {
+ console[_0x4502('0x1')](_0x4502('0x2'));
+ console[_0x4502('0x1')](_0x4502('0x3'));
+ console[_0x4502('0x1')]('z');
+ } else {
+ console[_0x4502('0x1')](_0x4502('0x4'));
+ console[_0x4502('0x1')](_0x4502('0x5'));
+ console[_0x4502('0x1')](_0x4502('0x6'));
+ console[_0x4502('0x1')](_0x4502('0x7'));
+ }
+ };
+ _0x16c18d();
+ _0x1f7292();
+ _0x33b212();
+ }
+}());
+```
+
+### `deadCodeInjectionThreshold`
+Type: `number` Default: `0.4` Min: `0` Max: `1`
+
+Allows to set percentage of nodes that will affected by `deadCodeInjection`.
+
+### `debugProtection`
+Type: `boolean` Default: `false`
+
+##### :warning: Can freeze your browser if you open the Developer Tools.
+
+This option makes it almost impossible to use the `debugger` function of the Developer Tools (both on WebKit-based and Mozilla Firefox).
+
+### `debugProtectionInterval`
+Type: `boolean` Default: `false`
+
+##### :warning: Can freeze your browser! Use at own risk.
+
+If checked, an interval is used to force the debug mode on the Console tab, making it harder to use other features of the Developer Tools. Works if [`debugProtection`](#debugprotection) is enabled.
+
+### `disableConsoleOutput`
+Type: `boolean` Default: `false`
+
+Disables the use of `console.log`, `console.info`, `console.error`, `console.warn`, `console.debug`, `console.exception` and `console.trace` by replacing them with empty functions. This makes the use of the debugger harder.
+
+### `domainLock`
+Type: `string[]` Default: `[]`
+
+##### :warning: This option does not work with `target: 'node'`
+
+Allows to run the obfuscated source code only on specific domains and/or sub-domains. This makes really hard for someone to just copy and paste your source code and run it elsewhere.
+
+##### Multiple domains and sub-domains
+It's possible to lock your code to more than one domain or sub-domain. For instance, to lock it so the code only runs on **www.example.com** add `www.example.com`. To make it work on the root domain including any sub-domains (`example.com`, `sub.example.com`), use `.example.com`.
+
+### `exclude`
+Type: `string[]` Default: `[]`
+
+A file names or globs which indicates files to exclude from obfuscation.
+
+### `forceTransformStrings`
+Type: `string[]` Default: `[]`
+
+Enables force transformation of string literals, which being matched by passed RegExp patterns.
+
+##### :warning: This option affects only strings that shouldn't be transformed by [`stringArrayThreshold`](#stringarraythreshold) (or possible other thresholds in the future)
+
+The option has a priority over `reservedStrings` option but hasn't a priority over `conditional comments`.
+
+Example:
+```ts
+ {
+ forceTransformStrings: [
+ 'some-important-value',
+ 'some-string_\d'
+ ]
+ }
+```
+
+### `identifierNamesGenerator`
+Type: `string` Default: `hexadecimal`
+
+Sets identifier names generator.
+
+Available values:
+* `dictionary`: identifier names from [`identifiersDictionary`](#identifiersdictionary) list
+* `hexadecimal`: identifier names like `_0xabc123`
+* `mangled`: short identifier names like `a`, `b`, `c`
+* `mangled-shuffled`: same as `mangled` but with shuffled alphabet
+
+### `identifiersDictionary`
+Type: `string[]` Default: `[]`
+
+Sets identifiers dictionary for [`identifierNamesGenerator`](#identifiernamesgenerator): `dictionary` option. Each identifier from the dictionary will be used in a few variants with a different casing of each character. Thus, the number of identifiers in the dictionary should depend on the identifiers amount at original source code.
+
+### `identifiersPrefix`
+Type: `string` Default: `''`
+
+Sets prefix for all global identifiers.
+
+Use this option when you want to obfuscate multiple files. This option helps to avoid conflicts between global identifiers of these files. Prefix should be different for every file.
+
+### `ignoreRequireImports`
+Type: `boolean` Default: `false`
+
+Prevents obfuscation of `require` imports. Could be helpful in some cases when for some reason runtime environment requires these imports with static strings only.
+
+### `inputFileName`
+Type: `string` Default: `''`
+
+Allows to set name of the input file with source code. This name will be used internally for source map generation.
+
+### `log`
+Type: `boolean` Default: `false`
+
+Enables logging of the information to the console.
+
+### `numbersToExpressions`
+Type: `boolean` Default: `false`
+
+Enables numbers conversion to expressions
+
+Example:
+```ts
+// input
+const foo = 1234;
+
+// output
+const foo=-0xd93+-0x10b4+0x41*0x67+0x84e*0x3+-0xff8;
+```
+
+### `optionsPreset`
+Type: `string` Default: `default`
+
+Allows to set [options preset](#preset-options).
+
+Available values:
+* `default`;
+* `low-obfuscation`;
+* `medium-obfuscation`;
+* `high-obfuscation`.
+
+All addition options will be merged with selected options preset.
+
+### `renameGlobals`
+Type: `boolean` Default: `false`
+
+##### :warning: this option can break your code. Enable it only if you know what it does!
+
+Enables obfuscation of global variable and function names **with declaration**.
+
+### `renameProperties`
+Type: `boolean` Default: `false`
+
+##### :warning: this option **WILL** break your code in most cases. Enable it only if you know what it does!
+
+Enables renaming of property names. All built-in DOM properties and properties in core JavaScript classes will be ignored.
+
+To set format of renamed property names use [`identifierNamesGenerator`](#identifiernamesgenerator) option.
+
+To control which properties will be renamed use [`reservedNames`](#reservednames) option.
+
+Example:
+```ts
+// input
+(function () {
+ const foo = {
+ prop1: 1,
+ prop2: 2,
+ calc: function () {
+ return this.prop1 + this.prop2;
+ }
+ };
+
+ console.log(foo.calc());
+})();
+
+// output
+(function () {
+ const _0x46529b = {
+ '_0x10cec7': 0x1,
+ '_0xc1c0ca': 0x2,
+ '_0x4b961d': function () {
+ return this['_0x10cec7'] + this['_0xc1c0ca'];
+ }
+ };
+ console['log'](_0x46529b['_0x4b961d']());
+}());
+```
+
+### `reservedNames`
+Type: `string[]` Default: `[]`
+
+Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns.
+
+Example:
+```ts
+ {
+ reservedNames: [
+ '^someVariable',
+ 'functionParameter_\d'
+ ]
+ }
+```
+
+### `reservedStrings`
+Type: `string[]` Default: `[]`
+
+Disables transformation of string literals, which being matched by passed RegExp patterns.
+
+Example:
+```ts
+ {
+ reservedStrings: [
+ 'react-native',
+ '\.\/src\/test',
+ 'some-string_\d'
+ ]
+ }
+```
+
+### `rotateStringArray`
+Type: `boolean` Default: `true`
+
+##### :warning: [`stringArray`](#stringarray) must be enabled
+
+Shift the `stringArray` array by a fixed and random (generated at the code obfuscation) places. This makes it harder to match the order of the removed strings to their original place.
+
+This option is recommended if your original source code isn't small, as the helper function can attract attention.
+
+### `seed`
+Type: `string|number` Default: `0`
+
+This option sets seed for random generator. This is useful for creating repeatable results.
+
+If seed is `0` - random generator will work without seed.
+
+### `selfDefending`
+Type: `boolean` Default: `false`
+
+##### :warning: Don't change obfuscated code in any way after obfuscation with this option, because any change like uglifying of code can trigger self defending and code wont work anymore!
+##### :warning: This option forcibly sets `compact` value to `true`
+
+This option makes the output code resilient against formatting and variable renaming. If one tries to use a JavaScript beautifier on the obfuscated code, the code won't work anymore, making it harder to understand and modify it.
+
+### `shuffleStringArray`
+Type: `boolean` Default: `true`
+
+##### :warning: [`stringArray`](#stringarray) must be enabled
+
+Randomly shuffles the `stringArray` array items.
+
+### `simplify`
+Type: `boolean` Default: `true`
+
+Enables additional code obfuscation through simplification.
+
+##### :warning: in future releases obfuscation of `boolean` literals (`true` => `!![]`) will be moved under this option.
+
+Example:
+```ts
+// input
+if (condition1) {
+ const foo = 1;
+ const bar = 2;
+
+ console.log(foo);
+
+ return bar;
+} else if (condition2) {
+ console.log(1);
+ console.log(2);
+ console.log(3);
+
+ return 4;
+} else {
+ return 5;
+}
+
+// output
+if (condition1) {
+ const foo = 0x1, bar = 0x2;
+ return console['log'](foo), bar;
+} else
+ return condition2 ? (console['log'](0x1), console['log'](0x2), console['log'](0x3), 0x4) : 0x5;
+```
+
+### `sourceMap`
+Type: `boolean` Default: `false`
+
+Enables source map generation for obfuscated code.
+
+Source maps can be useful to help you debug your obfuscated JavaScript source code. If you want or need to debug in production, you can upload the separate source map file to a secret location and then point your browser there.
+
+### `sourceMapBaseUrl`
+Type: `string` Default: ``
+
+Sets base url to the source map import url when [`sourceMapMode: 'separate'`](#sourcemapmode).
+
+CLI example:
+```
+javascript-obfuscator input.js --output out.js --source-map true --source-map-base-url 'http://localhost:9000'
+```
+
+Result:
+```
+//# sourceMappingURL=http://localhost:9000/out.js.map
+```
+
+### `sourceMapFileName`
+Type: `string` Default: ``
+
+Sets file name for output source map when `sourceMapMode: 'separate'`.
+
+CLI example:
+```
+javascript-obfuscator input.js --output out.js --source-map true --source-map-base-url 'http://localhost:9000' --source-map-file-name example
+```
+
+Result:
+```
+//# sourceMappingURL=http://localhost:9000/example.js.map
+```
+
+### `sourceMapMode`
+Type: `string` Default: `separate`
+
+Specifies source map generation mode:
+* `inline` - emit a single file with source maps instead of having a separate file;
+* `separate` - generates corresponding '.map' file with source map. In case you run obfuscator through CLI - adds link to source map file to the end of file with obfuscated code `//# sourceMappingUrl=file.js.map`.
+
+### `splitStrings`
+Type: `boolean` Default: `false`
+
+Splits literal strings into chunks with length of [`splitStringsChunkLength`](#splitstringschunklength) option value.
+
+Example:
+```ts
+// input
+(function(){
+ var test = 'abcdefg';
+})();
+
+// output
+(function(){
+ var _0x5a21 = 'ab' + 'cd' + 'ef' + 'g';
+})();
+```
+
+### `splitStringsChunkLength`
+Type: `number` Default: `10`
+
+Sets chunk length of [`splitStrings`](#splitstrings) option.
+
+### `stringArray`
+Type: `boolean` Default: `true`
+
+Removes string literals and place them in a special array. For instance, the string `"Hello World"` in `var m = "Hello World";` will be replaced with something like `var m = _0x12c456[0x1];`
+
+### `stringArrayEncoding`
+Type: `string[]` Default: `[]`
+
+##### :warning: `stringArray` option must be enabled
+
+This option can slow down your script.
+
+Encode all string literals of the [`stringArray`](#stringarray) using `base64` or `rc4` and inserts a special code that used to decode it back at runtime.
+
+Each `stringArray` value will be encoded by the randomly picked encoding from the passed list. This makes possible to use multiple encodings.
+
+Available values:
+* `'none'` (`boolean`): doesn't encode `stringArray` value
+* `'base64'` (`string`): encodes `stringArray` value using `base64`
+* `'rc4'` (`string`): encodes `stringArray` value using `rc4`. **About 30-50% slower than `base64`, but more harder to get initial values.** It's recommended to disable [`unicodeEscapeSequence`](#unicodeescapesequence) option when using `rc4` encoding to prevent very large size of obfuscated code.
+
+For example with the following option values some `stringArray` value won't be encoded, and some values will be encoded with `base64` and `rc4` encoding:
+
+```ts
+stringArrayEncoding: [
+ 'none',
+ 'base64',
+ 'rc4'
+]
+```
+
+### `stringArrayIndexesType`
+Type: `string[]` Default: `['hexadecimal-number']`
+
+##### :warning: `stringArray` option must be enabled
+
+Allows to control the type of string array call indexes.
+
+Each `stringArray` call index will be transformed by the randomly picked type from the passed list. This makes possible to use multiple types.
+
+Available values:
+* `'hexadecimal-number'` (`default`): transforms string array call indexes as hexadecimal numbers
+* `'hexadecimal-numeric-string'`: transforms string array call indexes as hexadecimal numeric string
+
+Before `2.9.0` release `javascript-obfuscator` transformed all string array call indexes with `hexadecimal-numeric-string` type. This makes some manual deobfuscation slightly harder but it allows easy detection of these calls by automatic deobfuscators.
+
+The new `hexadecimal-number` type approaches to make harder auto-detect of string array call patterns in the code.
+
+More types will be added in the future.
+
+### `stringArrayIndexShift`
+Type: `boolean` Default: `true`
+
+##### :warning: `stringArray` option must be enabled
+
+Enables additional index shift for all string array calls
+
+### `stringArrayWrappersCount`
+Type: `number` Default: `1`
+
+##### :warning: [`stringArray`](#stringarray) option must be enabled
+
+Sets the count of wrappers for the `string array` inside each root or function scope.
+The actual count of wrappers inside each scope is limited by a count of `literal` nodes within this scope.
+
+Example:
+```ts
+// Input
+const foo = 'foo';
+const bar = 'bar';
+
+function test () {
+ const baz = 'baz';
+ const bark = 'bark';
+ const hawk = 'hawk';
+}
+
+const eagle = 'eagle';
+
+// Output, stringArrayWrappersCount: 5
+const _0x3018 = [
+ 'foo',
+ 'bar',
+ 'baz',
+ 'bark',
+ 'hawk',
+ 'eagle'
+];
+const _0x380f = function (_0x30182a, _0x380f29) {
+ _0x30182a = _0x30182a - 0x0;
+ let _0x4e002c = _0x3018[_0x30182a];
+ return _0x4e002c;
+};
+const _0xe4db7c = _0x380f;
+const _0x26ca42 = _0x380f;
+const _0x58c610 = _0x380f;
+const foo = _0x58c610('0x0');
+const bar = _0x26ca42('0x1');
+function test() {
+ const _0x500eda = _0x380f;
+ const _0x1d1760 = _0x380f;
+ const _0x4ca8b0 = _0x380f;
+ const _0x4e002c = _0x4ca8b0('0x2');
+ const _0x573b1c = _0x1d1760('0x3');
+ const _0x1fb6ef = _0x500eda('0x4');
+}
+const eagle = _0x26ca42('0x5');
+```
+
+### `stringArrayWrappersChainedCalls`
+Type: `boolean` Default: `true`
+
+##### :warning: [`stringArray`](#stringarray) and [`stringArrayWrappersCount`](#stringarraywrapperscount) options must be enabled
+
+Enables the chained calls between `string array` wrappers.
+
+Example:
+```ts
+// Input
+const foo = 'foo';
+const bar = 'bar';
+
+function test () {
+ const baz = 'baz';
+ const bark = 'bark';
+
+ function test1() {
+ const hawk = 'hawk';
+ const eagle = 'eagle';
+ }
+}
+
+// Output, stringArrayWrappersCount: 5, stringArrayWrappersChainedCalls: true
+const _0x4714 = [
+ 'foo',
+ 'bar',
+ 'baz',
+ 'bark',
+ 'hawk',
+ 'eagle'
+];
+const _0x2bdb = function (_0x471439, _0x2bdb71) {
+ _0x471439 = _0x471439 - 0x0;
+ let _0x6e47e6 = _0x4714[_0x471439];
+ return _0x6e47e6;
+};
+const _0x1c3d52 = _0x2bdb;
+const _0xd81c2a = _0x2bdb;
+const foo = _0xd81c2a('0x0');
+const bar = _0x1c3d52('0x1');
+function test() {
+ const _0x21a0b4 = _0x1c3d52;
+ const _0x12842d = _0xd81c2a;
+ const _0x6e47e6 = _0x12842d('0x2');
+ const _0x4f3aef = _0x12842d('0x3');
+ function _0x40f1dc() {
+ const _0x468540 = _0x12842d;
+ const _0x1f4b05 = _0x21a0b4;
+ const _0x40a980 = _0x1f4b05('0x4');
+ const _0x4d1285 = _0x468540('0x5');
+ }
+}
+```
+
+### `stringArrayWrappersParametersMaxCount`
+Type: `number` Default: `2`
+
+##### :warning: [`stringArray`](#stringarray) option must be enabled
+##### :warning: Currently this option affects only wrappers added by [`stringArrayWrappersType`](#stringarraywrapperstype) `function` option value
+
+Allows to control the maximum number of string array wrappers parameters.
+Default and minimum value is `2`. Recommended value between `2` and `5`.
+
+### `stringArrayWrappersType`
+Type: `string` Default: `variable`
+
+##### :warning: [`stringArray`](#stringarray) and [`stringArrayWrappersCount`](#stringarraywrapperscount) options must be enabled
+
+Allows to select a type of the wrappers that are appending by the `stringArrayWrappersCount` option.
+
+Available values:
+* `'variable'`: appends variable wrappers. Fast performance.
+* `'function'`: appends function wrappers. Slower performance than with `variable` but provides more strict obfuscation
+
+Highly recommended to use `function` wrappers for higher obfuscation when a performance loss doesn't have a high impact on an obfuscated application.
+
+Example of the `'function'` option value:
+```ts
+// input
+const foo = 'foo';
+
+function test () {
+ const bar = 'bar';
+}
+
+// output
+const a = [
+ 'foo',
+ 'bar'
+];
+const b = function (c, d) {
+ c = c - 0x0;
+ let e = a[c];
+ return e;
+};
+const d = function (c, f) {
+ return b(c - '0x372', f);
+};
+const foo = d('0x372');
+function test() {
+ const e = function (c, f) {
+ return d(c - -'0x260', f);
+ };
+ const c = e('0x113');
+}
+```
+
+### `stringArrayThreshold`
+Type: `number` Default: `0.8` Min: `0` Max: `1`
+
+##### :warning: [`stringArray`](#stringarray) option must be enabled
+
+You can use this setting to adjust the probability (from 0 to 1) that a string literal will be inserted into the `stringArray`.
+
+This setting is especially useful for large code size because it repeatedly calls to the `string array` and can slow down your code.
+
+`stringArrayThreshold: 0` equals to `stringArray: false`.
+
+### `target`
+Type: `string` Default: `browser`
+
+Allows to set target environment for obfuscated code.
+
+Available values:
+* `browser`;
+* `browser-no-eval`;
+* `node`.
+
+Currently output code for `browser` and `node` targets is identical, but some browser-specific options are not allowed to use with `node` target.
+Output code for `browser-no-eval` target is not using `eval`.
+
+### `transformObjectKeys`
+Type: `boolean` Default: `false`
+
+Enables transformation of object keys.
+
+Example:
+```ts
+// input
+(function(){
+ var object = {
+ foo: 'test1',
+ bar: {
+ baz: 'test2'
+ }
+ };
+})();
+
+// output
+var _0x2fae = [
+ 'baz',
+ 'test2',
+ 'foo',
+ 'test1',
+ 'bar'
+];
+var _0x377c = function (_0x1fbd3f, _0x59c72f) {
+ _0x1fbd3f = _0x1fbd3f - 0x0;
+ var _0x14fada = _0x2fae[_0x1fbd3f];
+ return _0x14fada;
+};
+(function () {
+ var _0x8a12db = {};
+ _0x8a12db[_0x377c('0x0')] = _0x377c('0x1');
+ var _0xc75419 = {};
+ _0xc75419[_0x377c('0x2')] = _0x377c('0x3');
+ _0xc75419[_0x377c('0x4')] = _0x8a12db;
+ var _0x191393 = _0xc75419;
+}());
+```
+
+### `unicodeEscapeSequence`
+Type: `boolean` Default: `false`
+
+Allows to enable/disable string conversion to unicode escape sequence.
+
+Unicode escape sequence increases code size greatly and strings easily can be reverted to their original view. Recommended to enable this option only for small source code.
+
+## Preset Options
+### High obfuscation, low performance
+
+Performance will 50-100% slower than without obfuscation
+
+```javascript
+{
+ compact: true,
+ controlFlowFlattening: true,
+ controlFlowFlatteningThreshold: 1,
+ deadCodeInjection: true,
+ deadCodeInjectionThreshold: 1,
+ debugProtection: true,
+ debugProtectionInterval: true,
+ disableConsoleOutput: true,
+ identifierNamesGenerator: 'hexadecimal',
+ log: false,
+ numbersToExpressions: true,
+ renameGlobals: false,
+ rotateStringArray: true,
+ selfDefending: true,
+ shuffleStringArray: true,
+ simplify: true,
+ splitStrings: true,
+ splitStringsChunkLength: 5,
+ stringArray: true,
+ stringArrayEncoding: ['rc4'],
+ stringArrayIndexShift: true,
+ stringArrayWrappersCount: 5,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersParametersMaxCount: 5,
+ stringArrayWrappersType: 'function',
+ stringArrayThreshold: 1,
+ transformObjectKeys: true,
+ unicodeEscapeSequence: false
+}
+```
+
+### Medium obfuscation, optimal performance
+
+Performance will 30-35% slower than without obfuscation
+
+```javascript
+{
+ compact: true,
+ controlFlowFlattening: true,
+ controlFlowFlatteningThreshold: 0.75,
+ deadCodeInjection: true,
+ deadCodeInjectionThreshold: 0.4,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: true,
+ identifierNamesGenerator: 'hexadecimal',
+ log: false,
+ numbersToExpressions: true,
+ renameGlobals: false,
+ rotateStringArray: true,
+ selfDefending: true,
+ shuffleStringArray: true,
+ simplify: true,
+ splitStrings: true,
+ splitStringsChunkLength: 10,
+ stringArray: true,
+ stringArrayEncoding: ['base64'],
+ stringArrayIndexShift: true,
+ stringArrayWrappersCount: 2,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersParametersMaxCount: 4,
+ stringArrayWrappersType: 'function',
+ stringArrayThreshold: 0.75,
+ transformObjectKeys: true,
+ unicodeEscapeSequence: false
+}
+```
+
+### Low obfuscation, High performance
+
+Performance will slightly slower than without obfuscation
+
+```javascript
+{
+ compact: true,
+ controlFlowFlattening: false,
+ deadCodeInjection: false,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: true,
+ identifierNamesGenerator: 'hexadecimal',
+ log: false,
+ numbersToExpressions: false,
+ renameGlobals: false,
+ rotateStringArray: true,
+ selfDefending: true,
+ shuffleStringArray: true,
+ simplify: true,
+ splitStrings: false,
+ stringArray: true,
+ stringArrayEncoding: [],
+ stringArrayIndexShift: true,
+ stringArrayWrappersCount: 1,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersParametersMaxCount: 2,
+ stringArrayWrappersType: 'variable',
+ stringArrayThreshold: 0.75,
+ unicodeEscapeSequence: false
+}
+```
+
+### Default preset, High performance
+
+```javascript
+{
+ compact: true,
+ controlFlowFlattening: false,
+ deadCodeInjection: false,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: false,
+ identifierNamesGenerator: 'hexadecimal',
+ log: false,
+ numbersToExpressions: false,
+ renameGlobals: false,
+ rotateStringArray: true,
+ selfDefending: false,
+ shuffleStringArray: true,
+ simplify: true,
+ splitStrings: false,
+ stringArray: true,
+ stringArrayEncoding: [],
+ stringArrayIndexShift: true,
+ stringArrayWrappersCount: 1,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersParametersMaxCount: 2,
+ stringArrayWrappersType: 'variable',
+ stringArrayThreshold: 0.75,
+ unicodeEscapeSequence: false
+}
+```
+
+<!-- ##options-end## -->
+
+## Frequently Asked Questions
+
+### What javascript versions are supported?
+
+`es3`, `es5`, `es2015`, `es2016`, `es2017`, `es2018`, `es2019` and partially `es2020`
+
+### I want to use feature that described in `README.md` but it's not working!
+
+The README on the master branch might not match that of the latest stable release.
+
+### Why CLI command not working?
+
+Try to run `npm link javascript-obfuscator` command or install it globally with `npm i -g javascript-obfuscator`
+
+### Error `maximum call stack size exceeded`
+Likely this is `selfDefending` mechanism. Something is changing source code after obfuscation with `selfDefending` option.
+
+### Online version?
+
+[obfuscator.io](https://obfuscator.io)
+
+### JSX support?
+
+No. JSX support isn't planned.
+
+### How to change kind of variables of inserted nodes (`var`, `let` or `const`)?
+
+See: [`Kind of variables`](#kind-of-variables)
+
+### Why I got `null` value instead of `BigInt` number?
+
+`BigInt` obfuscation works correctly only in environments that support `BigInt` values. See [ESTree spec](https://github.com/estree/estree/blob/master/es2020.md#bigintliteral)
+
+### I enabled `renameProperties` option, and my code broke! What to do?
+
+Just disable this option.
+
+## Backers
+
+Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/javascript-obfuscator#backer)]
+
+<a href="https://opencollective.com/javascript-obfuscator/backer/0/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/0/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/1/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/1/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/2/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/2/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/3/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/3/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/4/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/4/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/5/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/5/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/6/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/6/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/7/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/7/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/8/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/8/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/9/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/9/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/10/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/10/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/11/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/11/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/12/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/12/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/13/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/13/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/14/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/14/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/15/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/15/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/16/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/16/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/17/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/17/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/18/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/18/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/19/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/19/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/20/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/20/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/21/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/21/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/22/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/22/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/23/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/23/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/24/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/24/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/25/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/25/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/26/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/26/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/27/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/27/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/28/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/28/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/backer/29/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/backer/29/avatar.svg"></a>
+
+
+## Sponsors
+
+Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/javascript-obfuscator#sponsor)]
+
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/0/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/0/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/1/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/1/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/2/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/2/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/3/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/3/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/4/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/4/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/5/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/5/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/6/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/6/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/7/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/7/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/8/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/8/avatar.svg"></a>
+<a href="https://opencollective.com/javascript-obfuscator/sponsor/9/website" target="_blank"><img src="https://opencollective.com/javascript-obfuscator/sponsor/9/avatar.svg"></a>
+
+
+## License
+[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjavascript-obfuscator%2Fjavascript-obfuscator.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjavascript-obfuscator%2Fjavascript-obfuscator?ref=badge_large)
+
+Copyright (C) 2016-2020 [Timofey Kachalov](http://github.com/sanex3339).
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/node_modules/javascript-obfuscator/bin/javascript-obfuscator b/src/node_modules/javascript-obfuscator/bin/javascript-obfuscator
new file mode 100644
index 0000000..0946b45
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/bin/javascript-obfuscator
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+require('../dist/index.cli').obfuscate(process.argv); \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.browser.js b/src/node_modules/javascript-obfuscator/dist/index.browser.js
new file mode 100644
index 0000000..8bc0b68
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.browser.js
@@ -0,0 +1,3 @@
+/*! For license information please see index.browser.js.LICENSE.txt */
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JavaScriptObfuscator=t():e.JavaScriptObfuscator=t()}(self,(function(){return(()=>{var __webpack_modules__={3913:(e,t,r)=>{!function(){"use strict";var e,n,o,i,a,s,u,l,c,d,p,g,f,h,m,y,b,S,_,C,E,A,N,v,T,I;function O(e){return X.Statement.hasOwnProperty(e.type)}a=r(7085),s=r(649),e=a.Syntax,o={"??":(n={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,NullishCoalescing:3,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponentiation:13,Await:14,Unary:14,Postfix:15,OptionalChaining:16,Call:17,New:18,TaggedTemplate:19,Member:20,Primary:21}).NullishCoalescing,"||":n.LogicalOR,"&&":n.LogicalAND,"|":n.BitwiseOR,"^":n.BitwiseXOR,"&":n.BitwiseAND,"==":n.Equality,"!=":n.Equality,"===":n.Equality,"!==":n.Equality,is:n.Equality,isnt:n.Equality,"<":n.Relational,">":n.Relational,"<=":n.Relational,">=":n.Relational,in:n.Relational,instanceof:n.Relational,"<<":n.BitwiseSHIFT,">>":n.BitwiseSHIFT,">>>":n.BitwiseSHIFT,"+":n.Additive,"-":n.Additive,"*":n.Multiplicative,"%":n.Multiplicative,"/":n.Multiplicative,"**":n.Exponentiation};var D=32,R=33;function P(e,t){var r="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(r+=e);return r}function M(e){var t=e.length;return t&&s.code.isLineTerminator(e.charCodeAt(t-1))}function F(e,t){var r;for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function x(e,t){var r,n;function o(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(r in t)t.hasOwnProperty(r)&&(o(n=t[r])?o(e[r])?x(e[r],n):e[r]=x({},n):e[r]=n);return e}function L(e,t){return 8232==(-2&e)?(t?"u":"\\u")+(8232===e?"2028":"2029"):10===e||13===e?(t?"":"\\")+(10===e?"n":"r"):String.fromCharCode(e)}function w(e,t){var r;return 8===e?"\\b":12===e?"\\f":9===e?"\\t":(r=e.toString(16).toUpperCase(),c||e>255?"\\u"+"0000".slice(r.length)+r:0!==e||s.code.isDecimalDigit(t)?11===e?"\\x0B":"\\x"+"00".slice(r.length)+r:"\\0")}function $(e){if(92===e)return"\\\\";if(10===e)return"\\n";if(13===e)return"\\r";if(8232===e)return"\\u2028";if(8233===e)return"\\u2029";throw new Error("Incorrectly classified character")}function B(e){var t,r,n,o="";for(t=0,r=e.length;t<r;++t)n=e[t],o+=Array.isArray(n)?B(n):n;return o}function G(e,t){if(!A)return Array.isArray(e)?B(e):e;if(null==t){if(e instanceof i)return e;t={}}return null==t.loc?new i(null,null,A,e,t.name||null):new i(t.loc.start.line,t.loc.start.column,!0===A?t.loc.source||null:A,e,t.name||null)}function j(){return m||" "}function U(e,t){var r,n,o,i;return 0===(r=G(e).toString()).length?[t]:0===(n=G(t).toString()).length?[e]:(o=r.charCodeAt(r.length-1),i=n.charCodeAt(0),(43===o||45===o)&&o===i||s.code.isIdentifierPartES5(o)&&s.code.isIdentifierPartES5(i)||47===o&&105===i?[e,j(),t]:s.code.isWhiteSpace(o)||s.code.isLineTerminator(o)||s.code.isWhiteSpace(i)||s.code.isLineTerminator(i)?[e,t]:[e,m,t])}function k(e){return[u,e]}function V(e){var t;t=u,e(u+=l),u=t}function H(e,t){if("Line"===e.type){if(M(e.value))return"//"+e.value;var r="//"+e.value;return v||(r+="\n"),r}return C.format.indent.adjustMultilineComment&&/[\n\r]/.test(e.value)?function(e,t){var r,n,o,i,a,l,c,d;for(r=e.split(/\r\n|[\r\n]/),l=Number.MAX_VALUE,n=1,o=r.length;n<o;++n){for(i=r[n],a=0;a<i.length&&s.code.isWhiteSpace(i.charCodeAt(a));)++a;l>a&&(l=a)}for(void 0!==t?(c=u,"*"===r[1][l]&&(t+=" "),u=t):(1&l&&--l,c=u),n=1,o=r.length;n<o;++n)d=G(k(r[n].slice(l))),r[n]=A?d.join(""):d;return u=c,r.join("\n")}("/*"+e.value+"*/",t):"/*"+e.value+"*/"}function W(t,r){var n,o,i,a,c,d,p,g,f,h,m,y;if(t.leadingComments&&t.leadingComments.length>0){if(a=r,v){for(r=[],g=(i=t.leadingComments[0]).extendedRange,f=i.range,(y=((m=N.substring(g[0],f[0])).match(/\n/g)||[]).length)>0?(r.push(P("\n",y)),r.push(k(H(i)))):(r.push(m),r.push(H(i))),h=f,n=1,o=t.leadingComments.length;n<o;n++)f=(i=t.leadingComments[n]).range,y=(N.substring(h[1],f[0]).match(/\n/g)||[]).length,r.push(P("\n",y)),r.push(k(H(i))),h=f;y=(N.substring(f[1],g[1]).match(/\n/g)||[]).length,r.push(P("\n",y))}else for(i=t.leadingComments[0],r=[],S&&t.type===e.Program&&0===t.body.length&&r.push("\n"),r.push(H(i)),M(G(r).toString())||r.push("\n"),n=1,o=t.leadingComments.length;n<o;++n)M(G(p=[H(i=t.leadingComments[n])]).toString())||p.push("\n"),r.push(k(p));r.push(k(a))}if(t.trailingComments)if(v)g=(i=t.trailingComments[0]).extendedRange,f=i.range,(y=((m=N.substring(g[0],f[0])).match(/\n/g)||[]).length)>0?(r.push(P("\n",y)),r.push(k(H(i)))):(r.push(m),r.push(H(i)));else for(c=!M(G(r).toString()),d=P(" ",function(e){var t;for(t=e.length-1;t>=0&&!s.code.isLineTerminator(e.charCodeAt(t));--t);return e.length-1-t}(G([u,r,l]).toString())),n=0,o=t.trailingComments.length;n<o;++n)i=t.trailingComments[n],c?(r=0===n?[r,l]:[r,d]).push(H(i,d)):r=[r,k(H(i))],n===o-1||M(G(r).toString())||(r=[r,"\n"]);return r}function K(e,t,r){var n,o=0;for(n=e;n<t;n++)"\n"===N[n]&&o++;for(n=1;n<o;n++)r.push(h)}function z(e,t,r){return t<r?["(",e,")"]:e}function Y(e){var t,r,n;for(t=1,r=(n=e.split(/\r\n|\n/)).length;t<r;t++)n[t]=h+u+n[t];return n}function X(){}function q(e){return G(e.name,e)}function Z(e,t){return e.async?"async"+(t?j():m):""}function J(e){return e.generator&&!C.moz.starlessGenerator?"*"+m:""}function Q(e){var t=e.value,r="";return t.async&&(r+=Z(t,!e.computed)),t.generator&&(r+=J(t)?"*":""),r}X.prototype.maybeBlock=function(t,r){var n,o,i=this;return o=!C.comment||!t.leadingComments,t.type===e.BlockStatement&&o?[m,this.generateStatement(t,r)]:t.type===e.EmptyStatement&&o?";":(V((function(){n=[h,k(i.generateStatement(t,r))]})),n)},X.prototype.maybeBlockSuffix=function(t,r){var n=M(G(r).toString());return t.type!==e.BlockStatement||C.comment&&t.leadingComments||n?n?[r,u]:[r,h,u]:[r,m]},X.prototype.generatePattern=function(t,r,n){return t.type===e.Identifier?q(t):this.generateExpression(t,r,n)},X.prototype.generateFunctionParams=function(t){var r,o,i,a;if(a=!1,t.type!==e.ArrowFunctionExpression||t.rest||t.defaults&&0!==t.defaults.length||1!==t.params.length||t.params[0].type!==e.Identifier){for((i=t.type===e.ArrowFunctionExpression?[Z(t,!1)]:[]).push("("),t.defaults&&(a=!0),r=0,o=t.params.length;r<o;++r)a&&t.defaults[r]?i.push(this.generateAssignment(t.params[r],t.defaults[r],"=",n.Assignment,7)):i.push(this.generatePattern(t.params[r],n.Assignment,7)),r+1<o&&i.push(","+m);t.rest&&(t.params.length&&i.push(","+m),i.push("..."),i.push(q(t.rest))),i.push(")")}else i=[Z(t,!0),q(t.params[0])];return i},X.prototype.generateFunctionBody=function(t){var r,o;return r=this.generateFunctionParams(t),t.type===e.ArrowFunctionExpression&&(r.push(m),r.push("=>")),t.expression?(r.push(m),"{"===(o=this.generateExpression(t.body,n.Assignment,7)).toString().charAt(0)&&(o=["(",o,")"]),r.push(o)):r.push(this.maybeBlock(t.body,9)),r},X.prototype.generateIterationForStatement=function(t,r,o){var i=["for"+(r.await?j()+"await":"")+m+"("],a=this;return V((function(){r.left.type===e.VariableDeclaration?V((function(){i.push(r.left.kind+j()),i.push(a.generateStatement(r.left.declarations[0],0))})):i.push(a.generateExpression(r.left,n.Call,7)),i=U(i,t),i=[U(i,a.generateExpression(r.right,n.Assignment,7)),")"]})),i.push(this.maybeBlock(r.body,o)),i},X.prototype.generatePropertyKey=function(e,t){var r=[];return t&&r.push("["),r.push(this.generateExpression(e,n.Assignment,7)),t&&r.push("]"),r},X.prototype.generateAssignment=function(e,t,r,o,i){return n.Assignment<o&&(i|=1),z([this.generateExpression(e,n.Call,i),m+r+m,this.generateExpression(t,n.Assignment,i)],n.Assignment,o)},X.prototype.semicolon=function(e){return!b&&e&D?"":";"},X.Statement={BlockStatement:function(e,t){var r,n,o=["{",h],i=this;return V((function(){var a,s,u,l;for(0===e.body.length&&v&&(r=e.range)[1]-r[0]>2&&("\n"===(n=N.substring(r[0]+1,r[1]-1))[0]&&(o=["{"]),o.push(n)),l=1,8&t&&(l|=16),a=0,s=e.body.length;a<s;++a)v&&(0===a&&(e.body[0].leadingComments&&(r=e.body[0].leadingComments[0].extendedRange,"\n"===(n=N.substring(r[0],r[1]))[0]&&(o=["{"])),e.body[0].leadingComments||K(e.range[0],e.body[0].range[0],o)),a>0&&(e.body[a-1].trailingComments||e.body[a].leadingComments||K(e.body[a-1].range[1],e.body[a].range[0],o))),a===s-1&&(l|=D),u=e.body[a].leadingComments&&v?i.generateStatement(e.body[a],l):k(i.generateStatement(e.body[a],l)),o.push(u),M(G(u).toString())||v&&a<s-1&&e.body[a+1].leadingComments||o.push(h),v&&a===s-1&&(e.body[a].trailingComments||K(e.body[a].range[1],e.range[1],o))})),o.push(k("}")),o},BreakStatement:function(e,t){return e.label?"break "+e.label.name+this.semicolon(t):"break"+this.semicolon(t)},ContinueStatement:function(e,t){return e.label?"continue "+e.label.name+this.semicolon(t):"continue"+this.semicolon(t)},ClassBody:function(e,t){var r=["{",h],o=this;return V((function(t){var i,a;for(i=0,a=e.body.length;i<a;++i)r.push(t),r.push(o.generateExpression(e.body[i],n.Sequence,7)),i+1<a&&r.push(h)})),M(G(r).toString())||r.push(h),r.push(u),r.push("}"),r},ClassDeclaration:function(e,t){var r,o;return r=["class"],e.id&&(r=U(r,this.generateExpression(e.id,n.Sequence,7))),e.superClass&&(o=U("extends",this.generateExpression(e.superClass,n.Unary,7)),r=U(r,o)),r.push(m),r.push(this.generateStatement(e.body,R)),r},DirectiveStatement:function(e,t){return C.raw&&e.raw?e.raw+this.semicolon(t):function(e){var t,r,n,o;for(o="double"===g?'"':"'",t=0,r=e.length;t<r;++t){if(39===(n=e.charCodeAt(t))){o='"';break}if(34===n){o="'";break}92===n&&++t}return o+e+o}(e.directive)+this.semicolon(t)},DoWhileStatement:function(e,t){var r=U("do",this.maybeBlock(e.body,1));return U(r=this.maybeBlockSuffix(e.body,r),["while"+m+"(",this.generateExpression(e.test,n.Sequence,7),")"+this.semicolon(t)])},CatchClause:function(e,t){var r,o=this;return V((function(){var t;e.param?(r=["catch"+m+"(",o.generateExpression(e.param,n.Sequence,7),")"],e.guard&&(t=o.generateExpression(e.guard,n.Sequence,7),r.splice(2,0," if ",t))):r=["catch"]})),r.push(this.maybeBlock(e.body,1)),r},DebuggerStatement:function(e,t){return"debugger"+this.semicolon(t)},EmptyStatement:function(e,t){return";"},ExportDefaultDeclaration:function(e,t){var r,o=["export"];return r=t&D?R:1,o=U(o,"default"),O(e.declaration)?U(o,this.generateStatement(e.declaration,r)):U(o,this.generateExpression(e.declaration,n.Assignment,7)+this.semicolon(t))},ExportNamedDeclaration:function(t,r){var o,i=["export"],a=this;return o=r&D?R:1,t.declaration?U(i,this.generateStatement(t.declaration,o)):(t.specifiers&&(0===t.specifiers.length?i=U(i,"{"+m+"}"):t.specifiers[0].type===e.ExportBatchSpecifier?i=U(i,this.generateExpression(t.specifiers[0],n.Sequence,7)):(i=U(i,"{"),V((function(e){var r,o;for(i.push(h),r=0,o=t.specifiers.length;r<o;++r)i.push(e),i.push(a.generateExpression(t.specifiers[r],n.Sequence,7)),r+1<o&&i.push(","+h)})),M(G(i).toString())||i.push(h),i.push(u+"}")),t.source?i=U(i,["from"+m,this.generateExpression(t.source,n.Sequence,7),this.semicolon(r)]):i.push(this.semicolon(r))),i)},ExportAllDeclaration:function(e,t){var r=["export"+m,"*"+m];return e.exported&&r.push("as "+e.exported.name+" "),U(r,["from"+m,this.generateExpression(e.source,n.Sequence,7),this.semicolon(t)])},ExpressionStatement:function(t,r){var o,i;return 123===(i=G(o=[this.generateExpression(t.expression,n.Sequence,7)]).toString()).charCodeAt(0)||function(e){var t;return"class"===e.slice(0,5)&&(123===(t=e.charCodeAt(5))||s.code.isWhiteSpace(t)||s.code.isLineTerminator(t))}(i)||function(e){var t;return"function"===e.slice(0,8)&&(40===(t=e.charCodeAt(8))||s.code.isWhiteSpace(t)||42===t||s.code.isLineTerminator(t))}(i)||function(e){var t,r,n;if("async"!==e.slice(0,5))return!1;if(!s.code.isWhiteSpace(e.charCodeAt(5)))return!1;for(r=6,n=e.length;r<n&&s.code.isWhiteSpace(e.charCodeAt(r));++r);return r!==n&&"function"===e.slice(r,r+8)&&(40===(t=e.charCodeAt(r+8))||s.code.isWhiteSpace(t)||42===t||s.code.isLineTerminator(t))}(i)||_&&16&r&&t.expression.type===e.Literal&&"string"==typeof t.expression.value?o=["(",o,")"+this.semicolon(r)]:o.push(this.semicolon(r)),o},ImportDeclaration:function(t,r){var o,i,a=this;return 0===t.specifiers.length?["import",m,this.generateExpression(t.source,n.Sequence,7),this.semicolon(r)]:(o=["import"],i=0,t.specifiers[i].type===e.ImportDefaultSpecifier&&(o=U(o,[this.generateExpression(t.specifiers[i],n.Sequence,7)]),++i),t.specifiers[i]&&(0!==i&&o.push(","),t.specifiers[i].type===e.ImportNamespaceSpecifier?o=U(o,[m,this.generateExpression(t.specifiers[i],n.Sequence,7)]):(o.push(m+"{"),t.specifiers.length-i==1?(o.push(m),o.push(this.generateExpression(t.specifiers[i],n.Sequence,7)),o.push(m+"}"+m)):(V((function(e){var r,s;for(o.push(h),r=i,s=t.specifiers.length;r<s;++r)o.push(e),o.push(a.generateExpression(t.specifiers[r],n.Sequence,7)),r+1<s&&o.push(","+h)})),M(G(o).toString())||o.push(h),o.push(u+"}"+m)))),o=U(o,["from"+m,this.generateExpression(t.source,n.Sequence,7),this.semicolon(r)]))},VariableDeclarator:function(e,t){var r=1&t?7:6;return e.init?[this.generateExpression(e.id,n.Assignment,r),m,"=",m,this.generateExpression(e.init,n.Assignment,r)]:this.generatePattern(e.id,n.Assignment,r)},VariableDeclaration:function(e,t){var r,n,o,i,a,s=this;function u(){for(i=e.declarations[0],C.comment&&i.leadingComments?(r.push("\n"),r.push(k(s.generateStatement(i,a)))):(r.push(j()),r.push(s.generateStatement(i,a))),n=1,o=e.declarations.length;n<o;++n)i=e.declarations[n],C.comment&&i.leadingComments?(r.push(","+h),r.push(k(s.generateStatement(i,a)))):(r.push(","+m),r.push(s.generateStatement(i,a)))}return r=[e.kind],a=1&t?1:0,e.declarations.length>1?V(u):u(),r.push(this.semicolon(t)),r},ThrowStatement:function(e,t){return[U("throw",this.generateExpression(e.argument,n.Sequence,7)),this.semicolon(t)]},TryStatement:function(e,t){var r,n,o,i;if(r=["try",this.maybeBlock(e.block,1)],r=this.maybeBlockSuffix(e.block,r),e.handlers)for(n=0,o=e.handlers.length;n<o;++n)r=U(r,this.generateStatement(e.handlers[n],1)),(e.finalizer||n+1!==o)&&(r=this.maybeBlockSuffix(e.handlers[n].body,r));else{for(n=0,o=(i=e.guardedHandlers||[]).length;n<o;++n)r=U(r,this.generateStatement(i[n],1)),(e.finalizer||n+1!==o)&&(r=this.maybeBlockSuffix(i[n].body,r));if(e.handler)if(Array.isArray(e.handler))for(n=0,o=e.handler.length;n<o;++n)r=U(r,this.generateStatement(e.handler[n],1)),(e.finalizer||n+1!==o)&&(r=this.maybeBlockSuffix(e.handler[n].body,r));else r=U(r,this.generateStatement(e.handler,1)),e.finalizer&&(r=this.maybeBlockSuffix(e.handler.body,r))}return e.finalizer&&(r=U(r,["finally",this.maybeBlock(e.finalizer,1)])),r},SwitchStatement:function(e,t){var r,o,i,a,s,u=this;if(V((function(){r=["switch"+m+"(",u.generateExpression(e.discriminant,n.Sequence,7),")"+m+"{"+h]})),e.cases)for(s=1,i=0,a=e.cases.length;i<a;++i)i===a-1&&(s|=D),o=k(this.generateStatement(e.cases[i],s)),r.push(o),M(G(o).toString())||r.push(h);return r.push(k("}")),r},SwitchCase:function(t,r){var o,i,a,s,u,l=this;return V((function(){for(o=t.test?[U("case",l.generateExpression(t.test,n.Sequence,7)),":"]:["default:"],a=0,(s=t.consequent.length)&&t.consequent[0].type===e.BlockStatement&&(i=l.maybeBlock(t.consequent[0],1),o.push(i),a=1),a===s||M(G(o).toString())||o.push(h),u=1;a<s;++a)a===s-1&&r&D&&(u|=D),i=k(l.generateStatement(t.consequent[a],u)),o.push(i),a+1===s||M(G(i).toString())||o.push(h)})),o},IfStatement:function(t,r){var o,i,a=this;return V((function(){o=["if"+m+"(",a.generateExpression(t.test,n.Sequence,7),")"]})),i=1,r&D&&(i|=D),t.alternate?(o.push(this.maybeBlock(t.consequent,1)),o=this.maybeBlockSuffix(t.consequent,o),o=t.alternate.type===e.IfStatement?U(o,["else ",this.generateStatement(t.alternate,i)]):U(o,U("else",this.maybeBlock(t.alternate,i)))):o.push(this.maybeBlock(t.consequent,i)),o},ForStatement:function(t,r){var o,i=this;return V((function(){o=["for"+m+"("],t.init?t.init.type===e.VariableDeclaration?o.push(i.generateStatement(t.init,0)):(o.push(i.generateExpression(t.init,n.Sequence,6)),o.push(";")):o.push(";"),t.test?(o.push(m),o.push(i.generateExpression(t.test,n.Sequence,7)),o.push(";")):o.push(";"),t.update?(o.push(m),o.push(i.generateExpression(t.update,n.Sequence,7)),o.push(")")):o.push(")")})),o.push(this.maybeBlock(t.body,r&D?R:1)),o},ForInStatement:function(e,t){return this.generateIterationForStatement("in",e,t&D?R:1)},ForOfStatement:function(e,t){return this.generateIterationForStatement("of",e,t&D?R:1)},LabeledStatement:function(e,t){return[e.label.name+":",this.maybeBlock(e.body,t&D?R:1)]},Program:function(e,t){var r,n,o,i,a;for(i=e.body.length,r=[S&&i>0?"\n":""],a=17,o=0;o<i;++o)S||o!==i-1||(a|=D),v&&(0===o&&(e.body[0].leadingComments||K(e.range[0],e.body[o].range[0],r)),o>0&&(e.body[o-1].trailingComments||e.body[o].leadingComments||K(e.body[o-1].range[1],e.body[o].range[0],r))),n=k(this.generateStatement(e.body[o],a)),r.push(n),o+1<i&&!M(G(n).toString())&&(v&&e.body[o+1].leadingComments||r.push(h)),v&&o===i-1&&(e.body[o].trailingComments||K(e.body[o].range[1],e.range[1],r));return r},FunctionDeclaration:function(e,t){return[Z(e,!0),"function",J(e)||j(),e.id?q(e.id):"",this.generateFunctionBody(e)]},ReturnStatement:function(e,t){return e.argument?[U("return",this.generateExpression(e.argument,n.Sequence,7)),this.semicolon(t)]:["return"+this.semicolon(t)]},WhileStatement:function(e,t){var r,o=this;return V((function(){r=["while"+m+"(",o.generateExpression(e.test,n.Sequence,7),")"]})),r.push(this.maybeBlock(e.body,t&D?R:1)),r},WithStatement:function(e,t){var r,o=this;return V((function(){r=["with"+m+"(",o.generateExpression(e.object,n.Sequence,7),")"]})),r.push(this.maybeBlock(e.body,t&D?R:1)),r}},F(X.prototype,X.Statement),X.Expression={SequenceExpression:function(e,t,r){var o,i,a;for(n.Sequence<t&&(r|=1),o=[],i=0,a=e.expressions.length;i<a;++i)o.push(this.generateExpression(e.expressions[i],n.Assignment,r)),i+1<a&&o.push(","+m);return z(o,n.Sequence,t)},AssignmentExpression:function(e,t,r){return this.generateAssignment(e.left,e.right,e.operator,t,r)},ArrowFunctionExpression:function(e,t,r){return z(this.generateFunctionBody(e),n.ArrowFunction,t)},ConditionalExpression:function(e,t,r){return n.Conditional<t&&(r|=1),z([this.generateExpression(e.test,n.LogicalOR,r),m+"?"+m,this.generateExpression(e.consequent,n.Assignment,r),m+":"+m,this.generateExpression(e.alternate,n.Assignment,r)],n.Conditional,t)},LogicalExpression:function(e,t,r){return this.BinaryExpression(e,t,r)},BinaryExpression:function(t,r,i){var a,u,l,c,d,p;switch(u=c=o[t.operator],l=c+1,t.operator){case"**":u=n.Postfix,l=c;break;case"??":t.left.type!==e.LogicalExpression||"||"!==t.left.operator&&"&&"!==t.left.operator||(u=o[t.left.operator]+1),t.right.type===e.LogicalExpression&&"&&"===t.right.operator&&(l=o[t.right.operator]+1);break;case"||":t.left.type===e.LogicalExpression&&"??"===t.left.operator&&(u=o[t.left.operator]+1)}return c<r&&(i|=1),a=47===(p=(d=this.generateExpression(t.left,u,i)).toString()).charCodeAt(p.length-1)&&s.code.isIdentifierPartES5(t.operator.charCodeAt(0))?[d,j(),t.operator]:U(d,t.operator),d=this.generateExpression(t.right,l,i),"/"===t.operator&&"/"===d.toString().charAt(0)||"<"===t.operator.slice(-1)&&"!--"===d.toString().slice(0,3)?(a.push(j()),a.push(d)):a=U(a,d),"in"!==t.operator||1&i?z(a,c,r):["(",a,")"]},CallExpression:function(e,t,r){var o,i,a;for(o=[this.generateExpression(e.callee,n.Call,3)],e.optional&&o.push("?."),o.push("("),i=0,a=e.arguments.length;i<a;++i)o.push(this.generateExpression(e.arguments[i],n.Assignment,7)),i+1<a&&o.push(","+m);return o.push(")"),2&r?z(o,n.Call,t):["(",o,")"]},ChainExpression:function(e,t,r){return n.OptionalChaining<t&&(r|=2),z(this.generateExpression(e.expression,n.OptionalChaining,r),n.OptionalChaining,t)},NewExpression:function(e,t,r){var o,i,a,s,u;if(i=e.arguments.length,u=4&r&&!y&&0===i?5:1,o=U("new",this.generateExpression(e.callee,n.New,u)),!(4&r)||y||i>0){for(o.push("("),a=0,s=i;a<s;++a)o.push(this.generateExpression(e.arguments[a],n.Assignment,7)),a+1<s&&o.push(","+m);o.push(")")}return z(o,n.New,t)},MemberExpression:function(t,r,o){var i,a;return i=[this.generateExpression(t.object,n.Call,2&o?3:1)],t.computed?(t.optional&&i.push("?."),i.push("["),i.push(this.generateExpression(t.property,n.Sequence,2&o?7:5)),i.push("]")):(t.optional||t.object.type!==e.Literal||"number"!=typeof t.object.value||(a=G(i).toString()).indexOf(".")<0&&!/[eExX]/.test(a)&&s.code.isDecimalDigit(a.charCodeAt(a.length-1))&&!(a.length>=2&&48===a.charCodeAt(0))&&i.push(" "),i.push(t.optional?"?.":"."),i.push(q(t.property))),z(i,n.Member,r)},MetaProperty:function(e,t,r){var o;return(o=[]).push("string"==typeof e.meta?e.meta:q(e.meta)),o.push("."),o.push("string"==typeof e.property?e.property:q(e.property)),z(o,n.Member,t)},UnaryExpression:function(e,t,r){var o,i,a,u,l;return i=this.generateExpression(e.argument,n.Unary,7),""===m?o=U(e.operator,i):(o=[e.operator],e.operator.length>2?o=U(o,i):(l=(u=G(o).toString()).charCodeAt(u.length-1),a=i.toString().charCodeAt(0),(43===l||45===l)&&l===a||s.code.isIdentifierPartES5(l)&&s.code.isIdentifierPartES5(a)?(o.push(j()),o.push(i)):o.push(i))),z(o,n.Unary,t)},YieldExpression:function(e,t,r){var o;return o=e.delegate?"yield*":"yield",e.argument&&(o=U(o,this.generateExpression(e.argument,n.Yield,7))),z(o,n.Yield,t)},AwaitExpression:function(e,t,r){return z(U(e.all?"await*":"await",this.generateExpression(e.argument,n.Await,7)),n.Await,t)},UpdateExpression:function(e,t,r){return e.prefix?z([e.operator,this.generateExpression(e.argument,n.Unary,7)],n.Unary,t):z([this.generateExpression(e.argument,n.Postfix,7),e.operator],n.Postfix,t)},FunctionExpression:function(e,t,r){var n=[Z(e,!0),"function"];return e.id?(n.push(J(e)||j()),n.push(q(e.id))):n.push(J(e)||m),n.push(this.generateFunctionBody(e)),n},ArrayPattern:function(e,t,r){return this.ArrayExpression(e,t,r,!0)},ArrayExpression:function(e,t,r,o){var i,a,s=this;return e.elements.length?(a=!o&&e.elements.length>1,i=["[",a?h:""],V((function(t){var r,o;for(r=0,o=e.elements.length;r<o;++r)e.elements[r]?(i.push(a?t:""),i.push(s.generateExpression(e.elements[r],n.Assignment,7))):(a&&i.push(t),r+1===o&&i.push(",")),r+1<o&&i.push(","+(a?h:m))})),a&&!M(G(i).toString())&&i.push(h),i.push(a?u:""),i.push("]"),i):"[]"},RestElement:function(e,t,r){return"..."+this.generatePattern(e.argument)},ClassExpression:function(e,t,r){var o,i;return o=["class"],e.id&&(o=U(o,this.generateExpression(e.id,n.Sequence,7))),e.superClass&&(i=U("extends",this.generateExpression(e.superClass,n.Unary,7)),o=U(o,i)),o.push(m),o.push(this.generateStatement(e.body,R)),o},MethodDefinition:function(e,t,r){var n,o;return n=e.static?["static"+m]:[],o="get"===e.kind||"set"===e.kind?[U(e.kind,this.generatePropertyKey(e.key,e.computed)),this.generateFunctionBody(e.value)]:[Q(e),this.generatePropertyKey(e.key,e.computed),this.generateFunctionBody(e.value)],U(n,o)},Property:function(e,t,r){return"get"===e.kind||"set"===e.kind?[e.kind,j(),this.generatePropertyKey(e.key,e.computed),this.generateFunctionBody(e.value)]:e.shorthand?"AssignmentPattern"===e.value.type?this.AssignmentPattern(e.value,n.Sequence,7):this.generatePropertyKey(e.key,e.computed):e.method?[Q(e),this.generatePropertyKey(e.key,e.computed),this.generateFunctionBody(e.value)]:[this.generatePropertyKey(e.key,e.computed),":"+m,this.generateExpression(e.value,n.Assignment,7)]},ObjectExpression:function(e,t,r){var o,i,a,s,l=this;return e.properties.length?(o=e.properties.length>1,V((function(){a=l.generateExpression(e.properties[0],n.Sequence,7)})),o||(s=G(a).toString(),/[\r\n]/g.test(s))?(V((function(t){var r,s;if(i=["{",h,t,a],o)for(i.push(","+h),r=1,s=e.properties.length;r<s;++r)i.push(t),i.push(l.generateExpression(e.properties[r],n.Sequence,7)),r+1<s&&i.push(","+h)})),M(G(i).toString())||i.push(h),i.push(u),i.push("}"),i):["{",m,a,m,"}"]):"{}"},AssignmentPattern:function(e,t,r){return this.generateAssignment(e.left,e.right,"=",t,r)},ObjectPattern:function(t,r,o){var i,a,s,l,c,d=this;if(!t.properties.length)return"{}";if(l=!1,1===t.properties.length)(c=t.properties[0]).type===e.Property&&c.value.type!==e.Identifier&&(l=!0);else for(a=0,s=t.properties.length;a<s;++a)if((c=t.properties[a]).type===e.Property&&!c.shorthand){l=!0;break}return i=["{",l?h:""],V((function(e){var r,o;for(r=0,o=t.properties.length;r<o;++r)i.push(l?e:""),i.push(d.generateExpression(t.properties[r],n.Sequence,7)),r+1<o&&i.push(","+(l?h:m))})),l&&!M(G(i).toString())&&i.push(h),i.push(l?u:""),i.push("}"),i},ThisExpression:function(e,t,r){return"this"},Super:function(e,t,r){return"super"},Identifier:function(e,t,r){return q(e)},ImportDefaultSpecifier:function(e,t,r){return q(e.id||e.local)},ImportNamespaceSpecifier:function(e,t,r){var n=["*"],o=e.id||e.local;return o&&n.push(m+"as"+j()+q(o)),n},ImportSpecifier:function(e,t,r){var n=e.imported,o=[n.name],i=e.local;return i&&i.name!==n.name&&o.push(j()+"as"+j()+q(i)),o},ExportSpecifier:function(e,t,r){var n=e.local,o=[n.name],i=e.exported;return i&&i.name!==n.name&&o.push(j()+"as"+j()+q(i)),o},Literal:function(t,r,n){var o;if(t.hasOwnProperty("raw")&&E&&C.raw)try{if((o=E(t.raw).body[0].expression).type===e.Literal&&o.value===t.value)return t.raw}catch(e){}return t.regex?"/"+t.regex.pattern+"/"+t.regex.flags:"string"==typeof t.bigint&&t.raw?t.raw:null===t.value?"null":"string"==typeof t.value?function(e){var t,r,n,o,i,a="",u=0,l=0;for(t=0,r=e.length;t<r;++t){if(39===(n=e.charCodeAt(t)))++u;else if(34===n)++l;else if(47===n&&c)a+="\\";else{if(s.code.isLineTerminator(n)||92===n){a+=$(n);continue}if(!s.code.isIdentifierPartES5(n)&&(c&&n<32||!c&&!f&&(n<32||n>126))){a+=w(n,e.charCodeAt(t+1));continue}}a+=String.fromCharCode(n)}if(i=(o=!("double"===g||"auto"===g&&l<u))?"'":'"',!(o?u:l))return i+a+i;for(e=a,a=i,t=0,r=e.length;t<r;++t)(39===(n=e.charCodeAt(t))&&o||34===n&&!o)&&(a+="\\"),a+=String.fromCharCode(n);return a+i}(t.value):"number"==typeof t.value?t.raw&&-1!==t.raw.indexOf("_")?t.raw:function(e){var t,r,n,o,i;if(e!=e)throw new Error("Numeric literal whose value is NaN");if(e<0||0===e&&1/e<0)throw new Error("Numeric literal whose value is negative");if(e===1/0)return c?"null":d?"1e400":"1e+400";if(t=""+e,!d||t.length<3)return t;for(r=t.indexOf("."),c||48!==t.charCodeAt(0)||1!==r||(r=0,t=t.slice(1)),n=t,t=t.replace("e+","e"),o=0,(i=n.indexOf("e"))>0&&(o=+n.slice(i+1),n=n.slice(0,i)),r>=0&&(o-=n.length-r-1,n=+(n.slice(0,r)+n.slice(r+1))+""),i=0;48===n.charCodeAt(n.length+i-1);)--i;return 0!==i&&(o-=i,n=n.slice(0,i)),0!==o&&(n+="e"+o),(n.length<t.length||p&&e>1e12&&Math.floor(e)===e&&(n="0x"+e.toString(16)).length<t.length)&&+n===e&&(t=n),t}(t.value):"boolean"==typeof t.value?t.value?"true":"false":function(e){var t,r,n,o,i,a,s,u;if(r=e.toString(),e.source){if(!(t=r.match(/\/([^/]*)$/)))return r;for(n=t[1],r="",s=!1,u=!1,o=0,i=e.source.length;o<i;++o)a=e.source.charCodeAt(o),u?(r+=L(a,u),u=!1):(s?93===a&&(s=!1):47===a?r+="\\":91===a&&(s=!0),r+=L(a,u),u=92===a);return"/"+r+"/"+n}return r}(t.value)},GeneratorExpression:function(e,t,r){return this.ComprehensionExpression(e,t,r)},ComprehensionExpression:function(t,r,o){var i,a,s,u,l=this;return i=t.type===e.GeneratorExpression?["("]:["["],C.moz.comprehensionExpressionStartsWithAssignment&&(u=this.generateExpression(t.body,n.Assignment,7),i.push(u)),t.blocks&&V((function(){for(a=0,s=t.blocks.length;a<s;++a)u=l.generateExpression(t.blocks[a],n.Sequence,7),a>0||C.moz.comprehensionExpressionStartsWithAssignment?i=U(i,u):i.push(u)})),t.filter&&(i=U(i,"if"+m),u=this.generateExpression(t.filter,n.Sequence,7),i=U(i,["(",u,")"])),C.moz.comprehensionExpressionStartsWithAssignment||(u=this.generateExpression(t.body,n.Assignment,7),i=U(i,u)),i.push(t.type===e.GeneratorExpression?")":"]"),i},ComprehensionBlock:function(t,r,o){var i;return i=U(i=t.left.type===e.VariableDeclaration?[t.left.kind,j(),this.generateStatement(t.left.declarations[0],0)]:this.generateExpression(t.left,n.Call,7),t.of?"of":"in"),i=U(i,this.generateExpression(t.right,n.Sequence,7)),["for"+m+"(",i,")"]},SpreadElement:function(e,t,r){return["...",this.generateExpression(e.argument,n.Assignment,7)]},TaggedTemplateExpression:function(e,t,r){var o=3;return 2&r||(o=1),z([this.generateExpression(e.tag,n.Call,o),this.generateExpression(e.quasi,n.Primary,4)],n.TaggedTemplate,t)},TemplateElement:function(e,t,r){return e.value.raw},TemplateLiteral:function(e,t,r){var o,i,a;for(o=["`"],i=0,a=e.quasis.length;i<a;++i)o.push(this.generateExpression(e.quasis[i],n.Primary,7)),i+1<a&&(o.push("${"+m),o.push(this.generateExpression(e.expressions[i],n.Sequence,7)),o.push(m+"}"));return o.push("`"),o},ModuleSpecifier:function(e,t,r){return this.Literal(e,t,r)},ImportExpression:function(e,t,r){return z(["import(",this.generateExpression(e.source,n.Assignment,7),")"],n.Call,t)}},F(X.prototype,X.Expression),X.prototype.generateExpression=function(t,r,o){var i,a;return a=t.type||e.Property,C.verbatim&&t.hasOwnProperty(C.verbatim)?function(e,t){var r;return G("string"==typeof(r=e[C.verbatim])?z(Y(r),n.Sequence,t):z(Y(r.content),null!=r.precedence?r.precedence:n.Sequence,t),e)}(t,r):(i=this[a](t,r,o),C.comment&&(i=W(t,i)),G(i,t))},X.prototype.generateStatement=function(t,r){var n,o;return n=this[t.type](t,r),C.comment&&(n=W(t,n)),o=G(n).toString(),t.type!==e.Program||S||""!==h||"\n"!==o.charAt(o.length-1)||(n=A?G(n).replaceRight(/\s+$/,""):o.replace(/\s+$/,"")),G(n,t)},T={indent:{style:"",base:0},renumber:!0,hexadecimal:!0,quotes:"auto",escapeless:!0,compact:!0,parentheses:!1,semicolons:!1},I={indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},t.version=r(4142).version,t.generate=function(e,o){var a,s,T={indent:null,base:null,parse:null,comment:!1,format:{indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null,sourceCode:null};return null!=o?("string"==typeof o.indent&&(T.format.indent.style=o.indent),"number"==typeof o.base&&(T.format.indent.base=o.base),o=x(T,o),l=o.format.indent.style,u="string"==typeof o.base?o.base:P(l,o.format.indent.base)):(l=(o=T).format.indent.style,u=P(l,o.format.indent.base)),c=o.format.json,d=o.format.renumber,p=!c&&o.format.hexadecimal,g=c?"double":o.format.quotes,f=o.format.escapeless,h=o.format.newline,m=o.format.space,o.format.compact&&(h=m=l=u=""),y=o.format.parentheses,b=o.format.semicolons,S=o.format.safeConcatenation,_=o.directive,E=c?null:o.parse,A=o.sourceMap,N=o.sourceCode,v=o.format.preserveBlankLines&&null!==N,C=o,A&&(i=t.browser?r.g.sourceMap.SourceNode:r(9125).SourceNode),a=function(e){var t;if(t=new X,O(e))return t.generateStatement(e,1);if(function(e){return X.Expression.hasOwnProperty(e.type)}(e))return t.generateExpression(e,n.Sequence,7);throw new Error("Unknown node type: "+e.type)}(e),A?(s=a.toStringWithSourceMap({file:o.file,sourceRoot:o.sourceMapRoot}),o.sourceContent&&s.map.setSourceContent(o.sourceMap,o.sourceContent),o.sourceMapWithCode?s:s.map.toString()):(s={code:a.toString(),map:null},o.sourceMapWithCode?s:s.code)},t.attachComments=a.attachComments,t.Precedence=x({},n),t.browser=!1,t.FORMAT_MINIFY=T,t.FORMAT_DEFAULTS=I}()},4142:e=>{"use strict";e.exports={version:"2.1.1"}},1234:function(e,t){!function(e){"use strict";var t={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},r="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",n={5:r,"5module":r+" export import",6:r+" const class extends export import super"},o=/^in(stanceof)?$/,i="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",a="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",s=new RegExp("["+i+"]"),u=new RegExp("["+i+a+"]");i=a=null;var l=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],c=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function d(e,t){for(var r=65536,n=0;n<t.length;n+=2){if((r+=t[n])>e)return!1;if((r+=t[n+1])>=e)return!0}}function p(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&s.test(String.fromCharCode(e)):!1!==t&&d(e,l)))}function g(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&u.test(String.fromCharCode(e)):!1!==t&&(d(e,l)||d(e,c)))))}var f=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function h(e,t){return new f(e,{beforeExpr:!0,binop:t})}var m={beforeExpr:!0},y={startsExpr:!0},b={};function S(e,t){return void 0===t&&(t={}),t.keyword=e,b[e]=new f(e,t)}var _={num:new f("num",y),regexp:new f("regexp",y),string:new f("string",y),name:new f("name",y),eof:new f("eof"),bracketL:new f("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new f("]"),braceL:new f("{",{beforeExpr:!0,startsExpr:!0}),braceR:new f("}"),parenL:new f("(",{beforeExpr:!0,startsExpr:!0}),parenR:new f(")"),comma:new f(",",m),semi:new f(";",m),colon:new f(":",m),dot:new f("."),question:new f("?",m),questionDot:new f("?."),arrow:new f("=>",m),template:new f("template"),invalidTemplate:new f("invalidTemplate"),ellipsis:new f("...",m),backQuote:new f("`",y),dollarBraceL:new f("${",{beforeExpr:!0,startsExpr:!0}),eq:new f("=",{beforeExpr:!0,isAssign:!0}),assign:new f("_=",{beforeExpr:!0,isAssign:!0}),incDec:new f("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new f("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:h("||",1),logicalAND:h("&&",2),bitwiseOR:h("|",3),bitwiseXOR:h("^",4),bitwiseAND:h("&",5),equality:h("==/!=/===/!==",6),relational:h("</>/<=/>=",7),bitShift:h("<</>>/>>>",8),plusMin:new f("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:h("%",10),star:h("*",10),slash:h("/",10),starstar:new f("**",{beforeExpr:!0}),coalesce:h("??",1),_break:S("break"),_case:S("case",m),_catch:S("catch"),_continue:S("continue"),_debugger:S("debugger"),_default:S("default",m),_do:S("do",{isLoop:!0,beforeExpr:!0}),_else:S("else",m),_finally:S("finally"),_for:S("for",{isLoop:!0}),_function:S("function",y),_if:S("if"),_return:S("return",m),_switch:S("switch"),_throw:S("throw",m),_try:S("try"),_var:S("var"),_const:S("const"),_while:S("while",{isLoop:!0}),_with:S("with"),_new:S("new",{beforeExpr:!0,startsExpr:!0}),_this:S("this",y),_super:S("super",y),_class:S("class",y),_extends:S("extends",m),_export:S("export"),_import:S("import",y),_null:S("null",y),_true:S("true",y),_false:S("false",y),_in:S("in",{beforeExpr:!0,binop:7}),_instanceof:S("instanceof",{beforeExpr:!0,binop:7}),_typeof:S("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:S("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:S("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},C=/\r\n?|\n|\u2028|\u2029/,E=new RegExp(C.source,"g");function A(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var N=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,v=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,T=Object.prototype,I=T.hasOwnProperty,O=T.toString;function D(e,t){return I.call(e,t)}var R=Array.isArray||function(e){return"[object Array]"===O.call(e)};function P(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var M=function(e,t){this.line=e,this.column=t};M.prototype.offset=function(e){return new M(this.line,this.column+e)};var F=function(e,t,r){this.start=t,this.end=r,null!==e.sourceFile&&(this.source=e.sourceFile)};function x(e,t){for(var r=1,n=0;;){E.lastIndex=n;var o=E.exec(e);if(!(o&&o.index<t))return new M(r,t-n);++r,n=o.index+o[0].length}}var L={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},w=!1;function $(e){var t={};for(var r in L)t[r]=e&&D(e,r)?e[r]:L[r];if("latest"===t.ecmaVersion?t.ecmaVersion=1e8:null==t.ecmaVersion?(!w&&"object"==typeof console&&console.warn&&(w=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),R(t.onToken)){var n=t.onToken;t.onToken=function(e){return n.push(e)}}return R(t.onComment)&&(t.onComment=function(e,t){return function(r,n,o,i,a,s){var u={type:r?"Block":"Line",value:n,start:o,end:i};e.locations&&(u.loc=new F(this,a,s)),e.ranges&&(u.range=[o,i]),t.push(u)}}(t,t.onComment)),t}function B(e,t){return 2|(e?4:0)|(t?8:0)}var G=function(e,r,o){this.options=e=$(e),this.sourceFile=e.sourceFile,this.keywords=P(n[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var i="";!0!==e.allowReserved&&(i=t[e.ecmaVersion>=6?6:5===e.ecmaVersion?5:3],"module"===e.sourceType&&(i+=" await")),this.reservedWords=P(i);var a=(i?i+" ":"")+t.strict;this.reservedWordsStrict=P(a),this.reservedWordsStrictBind=P(a+" "+t.strictBind),this.input=String(r),this.containsEsc=!1,o?(this.pos=o,this.lineStart=this.input.lastIndexOf("\n",o-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(C).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=_.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},j={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},inNonArrowFunction:{configurable:!0}};G.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},j.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},j.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},j.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},j.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},j.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},j.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},j.inNonArrowFunction.get=function(){return(2&this.currentThisScope().flags)>0},G.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var r=this,n=0;n<e.length;n++)r=e[n](r);return r},G.parse=function(e,t){return new this(t,e).parse()},G.parseExpressionAt=function(e,t,r){var n=new this(r,e,t);return n.nextToken(),n.parseExpression()},G.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(G.prototype,j);var U=G.prototype,k=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;function V(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}U.strictDirective=function(e){for(;;){v.lastIndex=e,e+=v.exec(this.input)[0].length;var t=k.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2])){v.lastIndex=e+t[0].length;var r=v.exec(this.input),n=r.index+r[0].length,o=this.input.charAt(n);return";"===o||"}"===o||C.test(r[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(o)||"!"===o&&"="===this.input.charAt(n+1))}e+=t[0].length,v.lastIndex=e,e+=v.exec(this.input)[0].length,";"===this.input[e]&&e++}},U.eat=function(e){return this.type===e&&(this.next(),!0)},U.isContextual=function(e){return this.type===_.name&&this.value===e&&!this.containsEsc},U.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},U.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},U.canInsertSemicolon=function(){return this.type===_.eof||this.type===_.braceR||C.test(this.input.slice(this.lastTokEnd,this.start))},U.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},U.semicolon=function(){this.eat(_.semi)||this.insertSemicolon()||this.unexpected()},U.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},U.expect=function(e){this.eat(e)||this.unexpected()},U.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},U.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,"Parenthesized pattern")}},U.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,n=e.doubleProto;if(!t)return r>=0||n>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),n>=0&&this.raiseRecoverable(n,"Redefinition of __proto__ property")},U.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},U.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var H=G.prototype;H.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==_.eof;){var r=this.parseStatement(null,!0,t);e.body.push(r)}if(this.inModule)for(var n=0,o=Object.keys(this.undefinedExports);n<o.length;n+=1){var i=o[n];this.raiseRecoverable(this.undefinedExports[i].start,"Export '"+i+"' is not defined")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,"Program")};var W={kind:"loop"},K={kind:"switch"};H.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;v.lastIndex=this.pos;var t=v.exec(this.input),r=this.pos+t[0].length,n=this.input.charCodeAt(r);if(91===n)return!0;if(e)return!1;if(123===n)return!0;if(p(n,!0)){for(var i=r+1;g(this.input.charCodeAt(i),!0);)++i;var a=this.input.slice(r,i);if(!o.test(a))return!0}return!1},H.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;v.lastIndex=this.pos;var e=v.exec(this.input),t=this.pos+e[0].length;return!(C.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&g(this.input.charAt(t+8)))},H.parseStatement=function(e,t,r){var n,o=this.type,i=this.startNode();switch(this.isLet(e)&&(o=_._var,n="let"),o){case _._break:case _._continue:return this.parseBreakContinueStatement(i,o.keyword);case _._debugger:return this.parseDebuggerStatement(i);case _._do:return this.parseDoStatement(i);case _._for:return this.parseForStatement(i);case _._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(i,!1,!e);case _._class:return e&&this.unexpected(),this.parseClass(i,!0);case _._if:return this.parseIfStatement(i);case _._return:return this.parseReturnStatement(i);case _._switch:return this.parseSwitchStatement(i);case _._throw:return this.parseThrowStatement(i);case _._try:return this.parseTryStatement(i);case _._const:case _._var:return n=n||this.value,e&&"var"!==n&&this.unexpected(),this.parseVarStatement(i,n);case _._while:return this.parseWhileStatement(i);case _._with:return this.parseWithStatement(i);case _.braceL:return this.parseBlock(!0,i);case _.semi:return this.parseEmptyStatement(i);case _._export:case _._import:if(this.options.ecmaVersion>10&&o===_._import){v.lastIndex=this.pos;var a=v.exec(this.input),s=this.pos+a[0].length,u=this.input.charCodeAt(s);if(40===u||46===u)return this.parseExpressionStatement(i,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),o===_._import?this.parseImport(i):this.parseExport(i,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(i,!0,!e);var l=this.value,c=this.parseExpression();return o===_.name&&"Identifier"===c.type&&this.eat(_.colon)?this.parseLabeledStatement(i,l,c,e):this.parseExpressionStatement(i,c)}},H.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.eat(_.semi)||this.insertSemicolon()?e.label=null:this.type!==_.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var n=0;n<this.labels.length;++n){var o=this.labels[n];if(null==e.label||o.name===e.label.name){if(null!=o.kind&&(r||"loop"===o.kind))break;if(e.label&&r)break}}return n===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},H.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},H.parseDoStatement=function(e){return this.next(),this.labels.push(W),e.body=this.parseStatement("do"),this.labels.pop(),this.expect(_._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(_.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},H.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(W),this.enterScope(0),this.expect(_.parenL),this.type===_.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===_._var||this.type===_._const||r){var n=this.startNode(),o=r?"let":this.value;return this.next(),this.parseVar(n,!0,o),this.finishNode(n,"VariableDeclaration"),(this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===n.declarations.length?(this.options.ecmaVersion>=9&&(this.type===_._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,n)):(t>-1&&this.unexpected(t),this.parseFor(e,n))}var i=new V,a=this.parseExpression(!0,i);return this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===_._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(a,!1,i),this.checkLValPattern(a),this.parseForIn(e,a)):(this.checkExpressionErrors(i,!0),t>-1&&this.unexpected(t),this.parseFor(e,a))},H.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Y|(r?0:X),!1,t)},H.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(_._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},H.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(_.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},H.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(_.braceL),this.labels.push(K),this.enterScope(0);for(var r=!1;this.type!==_.braceR;)if(this.type===_._case||this.type===_._default){var n=this.type===_._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),n?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(_.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},H.parseThrowStatement=function(e){return this.next(),C.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var z=[];H.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===_._catch){var t=this.startNode();if(this.next(),this.eat(_.parenL)){t.param=this.parseBindingAtom();var r="Identifier"===t.param.type;this.enterScope(r?32:0),this.checkLValPattern(t.param,r?4:2),this.expect(_.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(_._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},H.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},H.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(W),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},H.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},H.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},H.parseLabeledStatement=function(e,t,r,n){for(var o=0,i=this.labels;o<i.length;o+=1)i[o].name===t&&this.raise(r.start,"Label '"+t+"' is already declared");for(var a=this.type.isLoop?"loop":this.type===_._switch?"switch":null,s=this.labels.length-1;s>=0;s--){var u=this.labels[s];if(u.statementStart!==e.start)break;u.statementStart=this.start,u.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(n?-1===n.indexOf("label")?n+"label":n:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},H.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},H.parseBlock=function(e,t,r){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(_.braceL),e&&this.enterScope(0);this.type!==_.braceR;){var n=this.parseStatement(null);t.body.push(n)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},H.parseFor=function(e,t){return e.init=t,this.expect(_.semi),e.test=this.type===_.semi?null:this.parseExpression(),this.expect(_.semi),e.update=this.type===_.parenR?null:this.parseExpression(),this.expect(_.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},H.parseForIn=function(e,t){var r=this.type===_._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!r||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(_.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")},H.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var n=this.startNode();if(this.parseVarId(n,r),this.eat(_.eq)?n.init=this.parseMaybeAssign(t):"const"!==r||this.type===_._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===n.id.type||t&&(this.type===_._in||this.isContextual("of"))?n.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(_.comma))break}return e},H.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,"var"===t?1:2,!1)};var Y=1,X=2;H.parseFunction=function(e,t,r,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!n)&&(this.type===_.star&&t&X&&this.unexpected(),e.generator=this.eat(_.star)),this.options.ecmaVersion>=8&&(e.async=!!n),t&Y&&(e.id=4&t&&this.type!==_.name?null:this.parseIdent(),!e.id||t&X||this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var o=this.yieldPos,i=this.awaitPos,a=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(B(e.async,e.generator)),t&Y||(e.id=this.type===_.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1),this.yieldPos=o,this.awaitPos=i,this.awaitIdentPos=a,this.finishNode(e,t&Y?"FunctionDeclaration":"FunctionExpression")},H.parseFunctionParams=function(e){this.expect(_.parenL),e.params=this.parseBindingList(_.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},H.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var n=this.startNode(),o=!1;for(n.body=[],this.expect(_.braceL);this.type!==_.braceR;){var i=this.parseClassElement(null!==e.superClass);i&&(n.body.push(i),"MethodDefinition"===i.type&&"constructor"===i.kind&&(o&&this.raise(i.start,"Duplicate constructor in the same class"),o=!0))}return this.strict=r,this.next(),e.body=this.finishNode(n,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},H.parseClassElement=function(e){var t=this;if(this.eat(_.semi))return null;var r=this.startNode(),n=function(e,n){void 0===n&&(n=!1);var o=t.start,i=t.startLoc;return!(!t.eatContextual(e)||(t.type===_.parenL||n&&t.canInsertSemicolon())&&(r.key&&t.unexpected(),r.computed=!1,r.key=t.startNodeAt(o,i),r.key.name=e,t.finishNode(r.key,"Identifier"),1))};r.kind="method",r.static=n("static");var o=this.eat(_.star),i=!1;o||(this.options.ecmaVersion>=8&&n("async",!0)?(i=!0,o=this.options.ecmaVersion>=9&&this.eat(_.star)):n("get")?r.kind="get":n("set")&&(r.kind="set")),r.key||this.parsePropertyName(r);var a=r.key,s=!1;return r.computed||r.static||!("Identifier"===a.type&&"constructor"===a.name||"Literal"===a.type&&"constructor"===a.value)?r.static&&"Identifier"===a.type&&"prototype"===a.name&&this.raise(a.start,"Classes may not have a static property named prototype"):("method"!==r.kind&&this.raise(a.start,"Constructor can't have get/set modifier"),o&&this.raise(a.start,"Constructor can't be a generator"),i&&this.raise(a.start,"Constructor can't be an async method"),r.kind="constructor",s=e),this.parseClassMethod(r,o,i,s),"get"===r.kind&&0!==r.value.params.length&&this.raiseRecoverable(r.value.start,"getter should have no params"),"set"===r.kind&&1!==r.value.params.length&&this.raiseRecoverable(r.value.start,"setter should have exactly one param"),"set"===r.kind&&"RestElement"===r.value.params[0].type&&this.raiseRecoverable(r.value.params[0].start,"Setter cannot use rest params"),r},H.parseClassMethod=function(e,t,r,n){return e.value=this.parseMethod(t,r,n),this.finishNode(e,"MethodDefinition")},H.parseClassId=function(e,t){this.type===_.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},H.parseClassSuper=function(e){e.superClass=this.eat(_._extends)?this.parseExprSubscripts():null},H.parseExport=function(e,t){if(this.next(),this.eat(_.star))return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==_.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(_._default)){var r;if(this.checkExport(t,"default",this.lastTokStart),this.type===_._function||(r=this.isAsyncFunction())){var n=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(n,4|Y,!1,r)}else if(this.type===_._class){var o=this.startNode();e.declaration=this.parseClass(o,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==_.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var i=0,a=e.specifiers;i<a.length;i+=1){var s=a[i];this.checkUnreserved(s.local),this.checkLocalExport(s.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},H.checkExport=function(e,t,r){e&&(D(e,t)&&this.raiseRecoverable(r,"Duplicate export '"+t+"'"),e[t]=!0)},H.checkPatternExport=function(e,t){var r=t.type;if("Identifier"===r)this.checkExport(e,t.name,t.start);else if("ObjectPattern"===r)for(var n=0,o=t.properties;n<o.length;n+=1){var i=o[n];this.checkPatternExport(e,i)}else if("ArrayPattern"===r)for(var a=0,s=t.elements;a<s.length;a+=1){var u=s[a];u&&this.checkPatternExport(e,u)}else"Property"===r?this.checkPatternExport(e,t.value):"AssignmentPattern"===r?this.checkPatternExport(e,t.left):"RestElement"===r?this.checkPatternExport(e,t.argument):"ParenthesizedExpression"===r&&this.checkPatternExport(e,t.expression)},H.checkVariableExport=function(e,t){if(e)for(var r=0,n=t;r<n.length;r+=1){var o=n[r];this.checkPatternExport(e,o.id)}},H.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},H.parseExportSpecifiers=function(e){var t=[],r=!0;for(this.expect(_.braceL);!this.eat(_.braceR);){if(r)r=!1;else if(this.expect(_.comma),this.afterTrailingComma(_.braceR))break;var n=this.startNode();n.local=this.parseIdent(!0),n.exported=this.eatContextual("as")?this.parseIdent(!0):n.local,this.checkExport(e,n.exported.name,n.exported.start),t.push(this.finishNode(n,"ExportSpecifier"))}return t},H.parseImport=function(e){return this.next(),this.type===_.string?(e.specifiers=z,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===_.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},H.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===_.name){var r=this.startNode();if(r.local=this.parseIdent(),this.checkLValSimple(r.local,2),e.push(this.finishNode(r,"ImportDefaultSpecifier")),!this.eat(_.comma))return e}if(this.type===_.star){var n=this.startNode();return this.next(),this.expectContextual("as"),n.local=this.parseIdent(),this.checkLValSimple(n.local,2),e.push(this.finishNode(n,"ImportNamespaceSpecifier")),e}for(this.expect(_.braceL);!this.eat(_.braceR);){if(t)t=!1;else if(this.expect(_.comma),this.afterTrailingComma(_.braceR))break;var o=this.startNode();o.imported=this.parseIdent(!0),this.eatContextual("as")?o.local=this.parseIdent():(this.checkUnreserved(o.imported),o.local=o.imported),this.checkLValSimple(o.local,2),e.push(this.finishNode(o,"ImportSpecifier"))}return e},H.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},H.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var q=G.prototype;q.toAssignable=function(e,t,r){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var n=0,o=e.properties;n<o.length;n+=1){var i=o[n];this.toAssignable(i,t),"RestElement"!==i.type||"ArrayPattern"!==i.argument.type&&"ObjectPattern"!==i.argument.type||this.raise(i.argument.start,"Unexpected token")}break;case"Property":"init"!==e.kind&&this.raise(e.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(e.value,t);break;case"ArrayExpression":e.type="ArrayPattern",r&&this.checkPatternErrors(r,!0),this.toAssignableList(e.elements,t);break;case"SpreadElement":e.type="RestElement",this.toAssignable(e.argument,t),"AssignmentPattern"===e.argument.type&&this.raise(e.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==e.operator&&this.raise(e.left.end,"Only '=' operator can be used for specifying default value."),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);break;case"ParenthesizedExpression":this.toAssignable(e.expression,t,r);break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}else r&&this.checkPatternErrors(r,!0);return e},q.toAssignableList=function(e,t){for(var r=e.length,n=0;n<r;n++){var o=e[n];o&&this.toAssignable(o,t)}if(r){var i=e[r-1];6===this.options.ecmaVersion&&t&&i&&"RestElement"===i.type&&"Identifier"!==i.argument.type&&this.unexpected(i.argument.start)}return e},q.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},q.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==_.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},q.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case _.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(_.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case _.braceL:return this.parseObj(!0)}return this.parseIdent()},q.parseBindingList=function(e,t,r){for(var n=[],o=!0;!this.eat(e);)if(o?o=!1:this.expect(_.comma),t&&this.type===_.comma)n.push(null);else{if(r&&this.afterTrailingComma(e))break;if(this.type===_.ellipsis){var i=this.parseRestBinding();this.parseBindingListItem(i),n.push(i),this.type===_.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var a=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(a),n.push(a)}return n},q.parseBindingListItem=function(e){return e},q.parseMaybeDefault=function(e,t,r){if(r=r||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(_.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},q.checkLValSimple=function(e,t,r){void 0===t&&(t=0);var n=0!==t;switch(e.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(n?"Binding ":"Assigning to ")+e.name+" in strict mode"),n&&(2===t&&"let"===e.name&&this.raiseRecoverable(e.start,"let is disallowed as a lexically bound name"),r&&(D(r,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),r[e.name]=!0),5!==t&&this.declareName(e.name,t,e.start));break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":n&&this.raiseRecoverable(e.start,"Binding member expression");break;case"ParenthesizedExpression":return n&&this.raiseRecoverable(e.start,"Binding parenthesized expression"),this.checkLValSimple(e.expression,t,r);default:this.raise(e.start,(n?"Binding":"Assigning to")+" rvalue")}},q.checkLValPattern=function(e,t,r){switch(void 0===t&&(t=0),e.type){case"ObjectPattern":for(var n=0,o=e.properties;n<o.length;n+=1){var i=o[n];this.checkLValInnerPattern(i,t,r)}break;case"ArrayPattern":for(var a=0,s=e.elements;a<s.length;a+=1){var u=s[a];u&&this.checkLValInnerPattern(u,t,r)}break;default:this.checkLValSimple(e,t,r)}},q.checkLValInnerPattern=function(e,t,r){switch(void 0===t&&(t=0),e.type){case"Property":this.checkLValInnerPattern(e.value,t,r);break;case"AssignmentPattern":this.checkLValPattern(e.left,t,r);break;case"RestElement":this.checkLValPattern(e.argument,t,r);break;default:this.checkLValPattern(e,t,r)}};var Z=G.prototype;Z.checkPropClash=function(e,t,r){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var n,o=e.key;switch(o.type){case"Identifier":n=o.name;break;case"Literal":n=String(o.value);break;default:return}var i=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===n&&"init"===i&&(t.proto&&(r?r.doubleProto<0&&(r.doubleProto=o.start):this.raiseRecoverable(o.start,"Redefinition of __proto__ property")),t.proto=!0);else{var a=t[n="$"+n];a?("init"===i?this.strict&&a.init||a.get||a.set:a.init||a[i])&&this.raiseRecoverable(o.start,"Redefinition of property"):a=t[n]={init:!1,get:!1,set:!1},a[i]=!0}}},Z.parseExpression=function(e,t){var r=this.start,n=this.startLoc,o=this.parseMaybeAssign(e,t);if(this.type===_.comma){var i=this.startNodeAt(r,n);for(i.expressions=[o];this.eat(_.comma);)i.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(i,"SequenceExpression")}return o},Z.parseMaybeAssign=function(e,t,r){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var n=!1,o=-1,i=-1;t?(o=t.parenthesizedAssign,i=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new V,n=!0);var a=this.start,s=this.startLoc;this.type!==_.parenL&&this.type!==_.name||(this.potentialArrowAt=this.start);var u=this.parseMaybeConditional(e,t);if(r&&(u=r.call(this,u,a,s)),this.type.isAssign){var l=this.startNodeAt(a,s);return l.operator=this.value,this.type===_.eq&&(u=this.toAssignable(u,!1,t)),n||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=u.start&&(t.shorthandAssign=-1),this.type===_.eq?this.checkLValPattern(u):this.checkLValSimple(u),l.left=u,this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return n&&this.checkExpressionErrors(t,!0),o>-1&&(t.parenthesizedAssign=o),i>-1&&(t.trailingComma=i),u},Z.parseMaybeConditional=function(e,t){var r=this.start,n=this.startLoc,o=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return o;if(this.eat(_.question)){var i=this.startNodeAt(r,n);return i.test=o,i.consequent=this.parseMaybeAssign(),this.expect(_.colon),i.alternate=this.parseMaybeAssign(e),this.finishNode(i,"ConditionalExpression")}return o},Z.parseExprOps=function(e,t){var r=this.start,n=this.startLoc,o=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||o.start===r&&"ArrowFunctionExpression"===o.type?o:this.parseExprOp(o,r,n,-1,e)},Z.parseExprOp=function(e,t,r,n,o){var i=this.type.binop;if(null!=i&&(!o||this.type!==_._in)&&i>n){var a=this.type===_.logicalOR||this.type===_.logicalAND,s=this.type===_.coalesce;s&&(i=_.logicalAND.binop);var u=this.value;this.next();var l=this.start,c=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1),l,c,i,o),p=this.buildBinary(t,r,e,d,u,a||s);return(a&&this.type===_.coalesce||s&&(this.type===_.logicalOR||this.type===_.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(p,t,r,n,o)}return e},Z.buildBinary=function(e,t,r,n,o,i){var a=this.startNodeAt(e,t);return a.left=r,a.operator=o,a.right=n,this.finishNode(a,i?"LogicalExpression":"BinaryExpression")},Z.parseMaybeUnary=function(e,t){var r,n=this.start,o=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))r=this.parseAwait(),t=!0;else if(this.type.prefix){var i=this.startNode(),a=this.type===_.incDec;i.operator=this.value,i.prefix=!0,this.next(),i.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLValSimple(i.argument):this.strict&&"delete"===i.operator&&"Identifier"===i.argument.type?this.raiseRecoverable(i.start,"Deleting local variable in strict mode"):t=!0,r=this.finishNode(i,a?"UpdateExpression":"UnaryExpression")}else{if(r=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return r;for(;this.type.postfix&&!this.canInsertSemicolon();){var s=this.startNodeAt(n,o);s.operator=this.value,s.prefix=!1,s.argument=r,this.checkLValSimple(r),this.next(),r=this.finishNode(s,"UpdateExpression")}}return!t&&this.eat(_.starstar)?this.buildBinary(n,o,r,this.parseMaybeUnary(null,!1),"**",!1):r},Z.parseExprSubscripts=function(e){var t=this.start,r=this.startLoc,n=this.parseExprAtom(e);if("ArrowFunctionExpression"===n.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return n;var o=this.parseSubscripts(n,t,r);return e&&"MemberExpression"===o.type&&(e.parenthesizedAssign>=o.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=o.start&&(e.parenthesizedBind=-1)),o},Z.parseSubscripts=function(e,t,r,n){for(var o=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start==5&&this.potentialArrowAt===e.start,i=!1;;){var a=this.parseSubscript(e,t,r,n,o,i);if(a.optional&&(i=!0),a===e||"ArrowFunctionExpression"===a.type){if(i){var s=this.startNodeAt(t,r);s.expression=a,a=this.finishNode(s,"ChainExpression")}return a}e=a}},Z.parseSubscript=function(e,t,r,n,o,i){var a=this.options.ecmaVersion>=11,s=a&&this.eat(_.questionDot);n&&s&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var u=this.eat(_.bracketL);if(u||s&&this.type!==_.parenL&&this.type!==_.backQuote||this.eat(_.dot)){var l=this.startNodeAt(t,r);l.object=e,l.property=u?this.parseExpression():this.parseIdent("never"!==this.options.allowReserved),l.computed=!!u,u&&this.expect(_.bracketR),a&&(l.optional=s),e=this.finishNode(l,"MemberExpression")}else if(!n&&this.eat(_.parenL)){var c=new V,d=this.yieldPos,p=this.awaitPos,g=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var f=this.parseExprList(_.parenR,this.options.ecmaVersion>=8,!1,c);if(o&&!s&&!this.canInsertSemicolon()&&this.eat(_.arrow))return this.checkPatternErrors(c,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=d,this.awaitPos=p,this.awaitIdentPos=g,this.parseArrowExpression(this.startNodeAt(t,r),f,!0);this.checkExpressionErrors(c,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=p||this.awaitPos,this.awaitIdentPos=g||this.awaitIdentPos;var h=this.startNodeAt(t,r);h.callee=e,h.arguments=f,a&&(h.optional=s),e=this.finishNode(h,"CallExpression")}else if(this.type===_.backQuote){(s||i)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var m=this.startNodeAt(t,r);m.tag=e,m.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(m,"TaggedTemplateExpression")}return e},Z.parseExprAtom=function(e){this.type===_.slash&&this.readRegexp();var t,r=this.potentialArrowAt===this.start;switch(this.type){case _._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),t=this.startNode(),this.next(),this.type!==_.parenL||this.allowDirectSuper||this.raise(t.start,"super() call outside constructor of a subclass"),this.type!==_.dot&&this.type!==_.bracketL&&this.type!==_.parenL&&this.unexpected(),this.finishNode(t,"Super");case _._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case _.name:var n=this.start,o=this.startLoc,i=this.containsEsc,a=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!i&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(_._function))return this.parseFunction(this.startNodeAt(n,o),0,!1,!0);if(r&&!this.canInsertSemicolon()){if(this.eat(_.arrow))return this.parseArrowExpression(this.startNodeAt(n,o),[a],!1);if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===_.name&&!i)return a=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(_.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(n,o),[a],!0)}return a;case _.regexp:var s=this.value;return(t=this.parseLiteral(s.value)).regex={pattern:s.pattern,flags:s.flags},t;case _.num:case _.string:return this.parseLiteral(this.value);case _._null:case _._true:case _._false:return(t=this.startNode()).value=this.type===_._null?null:this.type===_._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case _.parenL:var u=this.start,l=this.parseParenAndDistinguishExpression(r);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),l;case _.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(_.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case _.braceL:return this.parseObj(!1,e);case _._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case _._class:return this.parseClass(this.startNode(),!1);case _._new:return this.parseNew();case _.backQuote:return this.parseTemplate();case _._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},Z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case _.parenL:return this.parseDynamicImport(e);case _.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},Z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(_.parenR)){var t=this.start;this.eat(_.comma)&&this.eat(_.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},Z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},Z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},Z.parseParenExpression=function(){this.expect(_.parenL);var e=this.parseExpression();return this.expect(_.parenR),e},Z.parseParenAndDistinguishExpression=function(e){var t,r=this.start,n=this.startLoc,o=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var i,a=this.start,s=this.startLoc,u=[],l=!0,c=!1,d=new V,p=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==_.parenR;){if(l?l=!1:this.expect(_.comma),o&&this.afterTrailingComma(_.parenR,!0)){c=!0;break}if(this.type===_.ellipsis){i=this.start,u.push(this.parseParenItem(this.parseRestBinding())),this.type===_.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}u.push(this.parseMaybeAssign(!1,d,this.parseParenItem))}var f=this.start,h=this.startLoc;if(this.expect(_.parenR),e&&!this.canInsertSemicolon()&&this.eat(_.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=p,this.awaitPos=g,this.parseParenArrowList(r,n,u);u.length&&!c||this.unexpected(this.lastTokStart),i&&this.unexpected(i),this.checkExpressionErrors(d,!0),this.yieldPos=p||this.yieldPos,this.awaitPos=g||this.awaitPos,u.length>1?((t=this.startNodeAt(a,s)).expressions=u,this.finishNodeAt(t,"SequenceExpression",f,h)):t=u[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(r,n);return m.expression=t,this.finishNode(m,"ParenthesizedExpression")}return t},Z.parseParenItem=function(e){return e},Z.parseParenArrowList=function(e,t,r){return this.parseArrowExpression(this.startNodeAt(e,t),r)};var J=[];Z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(_.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.inNonArrowFunction||this.raiseRecoverable(e.start,"'new.target' can only be used in functions"),this.finishNode(e,"MetaProperty")}var n=this.start,o=this.startLoc,i=this.type===_._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,o,!0),i&&"ImportExpression"===e.callee.type&&this.raise(n,"Cannot use new with import()"),this.eat(_.parenL)?e.arguments=this.parseExprList(_.parenR,this.options.ecmaVersion>=8,!1):e.arguments=J,this.finishNode(e,"NewExpression")},Z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===_.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),r.tail=this.type===_.backQuote,this.finishNode(r,"TemplateElement")},Z.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var n=this.parseTemplateElement({isTagged:t});for(r.quasis=[n];!n.tail;)this.type===_.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(_.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(_.braceR),r.quasis.push(n=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")},Z.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===_.name||this.type===_.num||this.type===_.string||this.type===_.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===_.star)&&!C.test(this.input.slice(this.lastTokEnd,this.start))},Z.parseObj=function(e,t){var r=this.startNode(),n=!0,o={};for(r.properties=[],this.next();!this.eat(_.braceR);){if(n)n=!1;else if(this.expect(_.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(_.braceR))break;var i=this.parseProperty(e,t);e||this.checkPropClash(i,o,t),r.properties.push(i)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},Z.parseProperty=function(e,t){var r,n,o,i,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(_.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===_.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(this.type===_.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),a.argument=this.parseMaybeAssign(!1,t),this.type===_.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(o=this.start,i=this.startLoc),e||(r=this.eat(_.star)));var s=this.containsEsc;return this.parsePropertyName(a),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(a)?(n=!0,r=this.options.ecmaVersion>=9&&this.eat(_.star),this.parsePropertyName(a,t)):n=!1,this.parsePropertyValue(a,e,r,n,o,i,t,s),this.finishNode(a,"Property")},Z.parsePropertyValue=function(e,t,r,n,o,i,a,s){if((r||n)&&this.type===_.colon&&this.unexpected(),this.eat(_.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===_.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(r,n);else if(t||s||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===_.comma||this.type===_.braceR||this.type===_.eq)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((r||n)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=o),e.kind="init",t?e.value=this.parseMaybeDefault(o,i,this.copyNode(e.key)):this.type===_.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(o,i,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected();else{(r||n)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var u="get"===e.kind?0:1;if(e.value.params.length!==u){var l=e.value.start;"get"===e.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(_.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(_.bracketR),e.key;e.computed=!1}return e.key=this.type===_.num||this.type===_.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Z.parseMethod=function(e,t,r){var n=this.startNode(),o=this.yieldPos,i=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|B(t,n.generator)|(r?128:0)),this.expect(_.parenL),n.params=this.parseBindingList(_.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1,!0),this.yieldPos=o,this.awaitPos=i,this.awaitIdentPos=a,this.finishNode(n,"FunctionExpression")},Z.parseArrowExpression=function(e,t,r){var n=this.yieldPos,o=this.awaitPos,i=this.awaitIdentPos;return this.enterScope(16|B(r,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=n,this.awaitPos=o,this.awaitIdentPos=i,this.finishNode(e,"ArrowFunctionExpression")},Z.parseFunctionBody=function(e,t,r){var n=t&&this.type!==_.braceL,o=this.strict,i=!1;if(n)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var a=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);o&&!a||(i=this.strictDirective(this.end))&&a&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var s=this.labels;this.labels=[],i&&(this.strict=!0),this.checkParams(e,!o&&!i&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,5),e.body=this.parseBlock(!1,void 0,i&&!o),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=s}this.exitScope()},Z.isSimpleParamList=function(e){for(var t=0,r=e;t<r.length;t+=1)if("Identifier"!==r[t].type)return!1;return!0},Z.checkParams=function(e,t){for(var r={},n=0,o=e.params;n<o.length;n+=1){var i=o[n];this.checkLValInnerPattern(i,1,t?null:r)}},Z.parseExprList=function(e,t,r,n){for(var o=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(_.comma),t&&this.afterTrailingComma(e))break;var a=void 0;r&&this.type===_.comma?a=null:this.type===_.ellipsis?(a=this.parseSpread(n),n&&this.type===_.comma&&n.trailingComma<0&&(n.trailingComma=this.start)):a=this.parseMaybeAssign(!1,n),o.push(a)}return o},Z.checkUnreserved=function(e){var t=e.start,r=e.end,n=e.name;this.inGenerator&&"yield"===n&&this.raiseRecoverable(t,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===n&&this.raiseRecoverable(t,"Cannot use 'await' as identifier inside an async function"),this.keywords.test(n)&&this.raise(t,"Unexpected keyword '"+n+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,r).indexOf("\\")||(this.strict?this.reservedWordsStrict:this.reservedWords).test(n)&&(this.inAsync||"await"!==n||this.raiseRecoverable(t,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(t,"The keyword '"+n+"' is reserved"))},Z.parseIdent=function(e,t){var r=this.startNode();return this.type===_.name?r.name=this.value:this.type.keyword?(r.name=this.type.keyword,"class"!==r.name&&"function"!==r.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(r,"Identifier"),e||(this.checkUnreserved(r),"await"!==r.name||this.awaitIdentPos||(this.awaitIdentPos=r.start)),r},Z.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===_.semi||this.canInsertSemicolon()||this.type!==_.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(_.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,"YieldExpression")},Z.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0),this.finishNode(e,"AwaitExpression")};var Q=G.prototype;Q.raise=function(e,t){var r=x(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n.raisedAt=this.pos,n},Q.raiseRecoverable=Q.raise,Q.curPosition=function(){if(this.options.locations)return new M(this.curLine,this.pos-this.lineStart)};var ee=G.prototype,te=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};ee.enterScope=function(e){this.scopeStack.push(new te(e))},ee.exitScope=function(){this.scopeStack.pop()},ee.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},ee.declareName=function(e,t,r){var n=!1;if(2===t){var o=this.currentScope();n=o.lexical.indexOf(e)>-1||o.functions.indexOf(e)>-1||o.var.indexOf(e)>-1,o.lexical.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e]}else if(4===t)this.currentScope().lexical.push(e);else if(3===t){var i=this.currentScope();n=this.treatFunctionsAsVar?i.lexical.indexOf(e)>-1:i.lexical.indexOf(e)>-1||i.var.indexOf(e)>-1,i.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var s=this.scopeStack[a];if(s.lexical.indexOf(e)>-1&&!(32&s.flags&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){n=!0;break}if(s.var.push(e),this.inModule&&1&s.flags&&delete this.undefinedExports[e],3&s.flags)break}n&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")},ee.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},ee.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},ee.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},ee.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var re=function(e,t,r){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new F(e,r)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},ne=G.prototype;function oe(e,t,r,n){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=n),this.options.ranges&&(e.range[1]=r),e}ne.startNode=function(){return new re(this,this.start,this.startLoc)},ne.startNodeAt=function(e,t){return new re(this,e,t)},ne.finishNode=function(e,t){return oe.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},ne.finishNodeAt=function(e,t,r,n){return oe.call(this,e,t,r,n)},ne.copyNode=function(e){var t=new re(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var ie=function(e,t,r,n,o){this.token=e,this.isExpr=!!t,this.preserveSpace=!!r,this.override=n,this.generator=!!o},ae={b_stat:new ie("{",!1),b_expr:new ie("{",!0),b_tmpl:new ie("${",!1),p_stat:new ie("(",!1),p_expr:new ie("(",!0),q_tmpl:new ie("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new ie("function",!1),f_expr:new ie("function",!0),f_expr_gen:new ie("function",!0,!1,null,!0),f_gen:new ie("function",!1,!1,null,!0)},se=G.prototype;se.initialContext=function(){return[ae.b_stat]},se.braceIsBlock=function(e){var t=this.curContext();return t===ae.f_expr||t===ae.f_stat||(e!==_.colon||t!==ae.b_stat&&t!==ae.b_expr?e===_._return||e===_.name&&this.exprAllowed?C.test(this.input.slice(this.lastTokEnd,this.start)):e===_._else||e===_.semi||e===_.eof||e===_.parenR||e===_.arrow||(e===_.braceL?t===ae.b_stat:e!==_._var&&e!==_._const&&e!==_.name&&!this.exprAllowed):!t.isExpr)},se.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},se.updateContext=function(e){var t,r=this.type;r.keyword&&e===_.dot?this.exprAllowed=!1:(t=r.updateContext)?t.call(this,e):this.exprAllowed=r.beforeExpr},_.parenR.updateContext=_.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===ae.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},_.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ae.b_stat:ae.b_expr),this.exprAllowed=!0},_.dollarBraceL.updateContext=function(){this.context.push(ae.b_tmpl),this.exprAllowed=!0},_.parenL.updateContext=function(e){var t=e===_._if||e===_._for||e===_._with||e===_._while;this.context.push(t?ae.p_stat:ae.p_expr),this.exprAllowed=!0},_.incDec.updateContext=function(){},_._function.updateContext=_._class.updateContext=function(e){!e.beforeExpr||e===_._else||e===_.semi&&this.curContext()!==ae.p_stat||e===_._return&&C.test(this.input.slice(this.lastTokEnd,this.start))||(e===_.colon||e===_.braceL)&&this.curContext()===ae.b_stat?this.context.push(ae.f_stat):this.context.push(ae.f_expr),this.exprAllowed=!1},_.backQuote.updateContext=function(){this.curContext()===ae.q_tmpl?this.context.pop():this.context.push(ae.q_tmpl),this.exprAllowed=!1},_.star.updateContext=function(e){if(e===_._function){var t=this.context.length-1;this.context[t]===ae.f_expr?this.context[t]=ae.f_expr_gen:this.context[t]=ae.f_gen}this.exprAllowed=!0},_.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==_.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var ue="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",le=ue+" Extended_Pictographic",ce={9:ue,10:le,11:le,12:le+" EBase EComp EMod EPres ExtPict"},de="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",pe="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",ge=pe+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",fe=ge+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",he={9:pe,10:ge,11:fe,12:fe+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"},me={};function ye(e){var t=me[e]={binary:P(ce[e]+" "+de),nonBinary:{General_Category:P(de),Script:P(he[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}ye(9),ye(10),ye(11),ye(12);var be=G.prototype,Se=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=me[e.options.ecmaVersion>=12?12:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function _e(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Ce(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function Ee(e){return e>=65&&e<=90||e>=97&&e<=122}function Ae(e){return Ee(e)||95===e}function Ne(e){return Ae(e)||ve(e)}function ve(e){return e>=48&&e<=57}function Te(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ie(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function Oe(e){return e>=48&&e<=55}Se.prototype.reset=function(e,t,r){var n=-1!==r.indexOf("u");this.start=0|e,this.source=t+"",this.flags=r,this.switchU=n&&this.parser.options.ecmaVersion>=6,this.switchN=n&&this.parser.options.ecmaVersion>=9},Se.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},Se.prototype.at=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return-1;var o=r.charCodeAt(e);if(!t&&!this.switchU||o<=55295||o>=57344||e+1>=n)return o;var i=r.charCodeAt(e+1);return i>=56320&&i<=57343?(o<<10)+i-56613888:o},Se.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return n;var o,i=r.charCodeAt(e);return!t&&!this.switchU||i<=55295||i>=57344||e+1>=n||(o=r.charCodeAt(e+1))<56320||o>57343?e+1:e+2},Se.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},Se.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Se.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Se.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},be.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,n=0;n<r.length;n++){var o=r.charAt(n);-1===t.indexOf(o)&&this.raise(e.start,"Invalid regular expression flag"),r.indexOf(o,n+1)>-1&&this.raise(e.start,"Duplicate regular expression flag")}},be.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},be.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t<r.length;t+=1){var n=r[t];-1===e.groupNames.indexOf(n)&&e.raise("Invalid named capture referenced")}},be.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},be.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},be.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise("Invalid quantifier"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},be.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var r=!1;if(this.options.ecmaVersion>=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},be.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},be.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},be.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var n=0,o=-1;if(this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(o=e.lastIntValue),e.eat(125)))return-1!==o&&o<n&&!t&&e.raise("numbers out of order in {} quantifier"),!0;e.switchU&&!t&&e.raise("Incomplete quantifier"),e.pos=r}return!1},be.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},be.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},be.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}e.pos=t}return!1},be.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},be.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},be.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},be.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Ce(t)&&(e.lastIntValue=t,e.advance(),!0)},be.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;-1!==(r=e.current())&&!Ce(r);)e.advance();return e.pos!==t},be.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t||(e.advance(),0))},be.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},be.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},be.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=_e(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=_e(e.lastIntValue);return!0}return!1},be.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),function(e){return p(e,!0)||36===e||95===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},be.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),function(e){return g(e,!0)||36===e||95===e||8204===e||8205===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},be.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},be.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},be.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},be.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},be.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},be.regexp_eatZero=function(e){return 48===e.current()&&!ve(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},be.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},be.regexp_eatControlLetter=function(e){var t=e.current();return!!Ee(t)&&(e.lastIntValue=t%32,e.advance(),!0)},be.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var r,n=e.pos,o=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(o&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var s=e.lastIntValue;if(s>=56320&&s<=57343)return e.lastIntValue=1024*(i-55296)+(s-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(o&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((r=e.lastIntValue)>=0&&r<=1114111))return!0;o&&e.raise("Invalid unicode escape"),e.pos=n}return!1},be.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t||(e.lastIntValue=t,e.advance(),0))},be.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},be.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},be.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,n),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var o=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,o),!0}return!1},be.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")},be.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},be.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Ae(t=e.current());)e.lastStringValue+=_e(t),e.advance();return""!==e.lastStringValue},be.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ne(t=e.current());)e.lastStringValue+=_e(t),e.advance();return""!==e.lastStringValue},be.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},be.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},be.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;!e.switchU||-1!==t&&-1!==r||e.raise("Invalid character class"),-1!==t&&-1!==r&&t>r&&e.raise("Range out of order in character class")}}},be.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(99===r||Oe(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var n=e.current();return 93!==n&&(e.lastIntValue=n,e.advance(),!0)},be.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},be.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!ve(t)&&95!==t||(e.lastIntValue=t%32,e.advance(),0))},be.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},be.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;ve(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t},be.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Te(r=e.current());)e.lastIntValue=16*e.lastIntValue+Ie(r),e.advance();return e.pos!==t},be.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*r+e.lastIntValue:e.lastIntValue=8*t+r}else e.lastIntValue=t;return!0}return!1},be.regexp_eatOctalDigit=function(e){var t=e.current();return Oe(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},be.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var n=0;n<t;++n){var o=e.current();if(!Te(o))return e.pos=r,!1;e.lastIntValue=16*e.lastIntValue+Ie(o),e.advance()}return!0};var De=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new F(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},Re=G.prototype;function Pe(e){return"function"!=typeof BigInt?null:BigInt(e.replace(/_/g,""))}function Me(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}Re.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new De(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Re.getToken=function(){return this.next(),new De(this)},"undefined"!=typeof Symbol&&(Re[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===_.eof,value:t}}}}),Re.curContext=function(){return this.context[this.context.length-1]},Re.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(_.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},Re.readToken=function(e){return p(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},Re.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},Re.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),r=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(E.lastIndex=r;(e=E.exec(this.input))&&e.index<this.pos;)++this.curLine,this.lineStart=e.index+e[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(r+2,n),r,this.pos,t,this.curPosition())},Re.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),n=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!A(n);)n=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,r,this.curPosition())},Re.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.pos}}},Re.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},Re.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(_.ellipsis)):(++this.pos,this.finishToken(_.dot))},Re.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(_.assign,2):this.finishOp(_.slash,1)},Re.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,n=42===e?_.star:_.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++r,n=_.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(_.assign,r+1):this.finishOp(n,r)},Re.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(_.assign,3):this.finishOp(124===e?_.logicalOR:_.logicalAND,2):61===t?this.finishOp(_.assign,2):this.finishOp(124===e?_.bitwiseOR:_.bitwiseAND,1)},Re.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(_.assign,2):this.finishOp(_.bitwiseXOR,1)},Re.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!C.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(_.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(_.assign,2):this.finishOp(_.plusMin,1)},Re.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+r)?this.finishOp(_.assign,r+1):this.finishOp(_.bitShift,r)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(r=2),this.finishOp(_.relational,r)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Re.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(_.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(_.arrow)):this.finishOp(61===e?_.eq:_.prefix,1)},Re.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(_.questionDot,2)}if(63===t)return e>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(_.assign,3):this.finishOp(_.coalesce,2)}return this.finishOp(_.question,1)},Re.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(_.parenL);case 41:return++this.pos,this.finishToken(_.parenR);case 59:return++this.pos,this.finishToken(_.semi);case 44:return++this.pos,this.finishToken(_.comma);case 91:return++this.pos,this.finishToken(_.bracketL);case 93:return++this.pos,this.finishToken(_.bracketR);case 123:return++this.pos,this.finishToken(_.braceL);case 125:return++this.pos,this.finishToken(_.braceR);case 58:return++this.pos,this.finishToken(_.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(_.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(_.prefix,1)}this.raise(this.pos,"Unexpected character '"+Me(e)+"'")},Re.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},Re.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var n=this.input.charAt(this.pos);if(C.test(n)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===n)t=!0;else if("]"===n&&t)t=!1;else if("/"===n&&!t)break;e="\\"===n}++this.pos}var o=this.input.slice(r,this.pos);++this.pos;var i=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(i);var s=this.regexpState||(this.regexpState=new Se(this));s.reset(r,o,a),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var u=null;try{u=new RegExp(o,a)}catch(e){}return this.finishToken(_.regexp,{pattern:o,flags:a,value:u})},Re.readInt=function(e,t,r){for(var n=this.options.ecmaVersion>=12&&void 0===t,o=r&&48===this.input.charCodeAt(this.pos),i=this.pos,a=0,s=0,u=0,l=null==t?1/0:t;u<l;++u,++this.pos){var c=this.input.charCodeAt(this.pos),d=void 0;if(n&&95===c)o&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===s&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===u&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),s=c;else{if((d=c>=97?c-97+10:c>=65?c-65+10:c>=48&&c<=57?c-48:1/0)>=e)break;s=c,a=a*e+d}}return n&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===i||null!=t&&this.pos-i!==t?null:a},Re.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return null==r&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(r=Pe(this.input.slice(t,this.pos)),++this.pos):p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(_.num,r)},Re.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var r=this.pos-t>=2&&48===this.input.charCodeAt(t);r&&this.strict&&this.raise(t,"Invalid number");var n=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&110===n){var o=Pe(this.input.slice(t,this.pos));return++this.pos,p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(_.num,o)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),46!==n||r||(++this.pos,this.readInt(10),n=this.input.charCodeAt(this.pos)),69!==n&&101!==n||r||(43!==(n=this.input.charCodeAt(++this.pos))&&45!==n||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),p(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var i,a=(i=this.input.slice(t,this.pos),r?parseInt(i,8):parseFloat(i.replace(/_/g,"")));return this.finishToken(_.num,a)},Re.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},Re.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var n=this.input.charCodeAt(this.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):(A(n,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(_.string,t)};var Fe={};Re.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Fe)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Re.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Fe;this.raise(e,t)},Re.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(96===r||36===r&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==_.template&&this.type!==_.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(_.template,e)):36===r?(this.pos+=2,this.finishToken(_.dollarBraceL)):(++this.pos,this.finishToken(_.backQuote));if(92===r)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(A(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(r)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},Re.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(_.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},Re.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Me(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),e){var r=this.pos-1;return this.invalidStringToken(r,"Invalid escape sequence in template string"),null}default:if(t>=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(n,8);return o>255&&(n=n.slice(0,-1),o=parseInt(n,8)),this.pos+=n.length-1,t=this.input.charCodeAt(this.pos),"0"===n&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-n.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(o)}return A(t)?"":String.fromCharCode(t)}},Re.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return null===r&&this.invalidStringToken(t,"Bad character escape sequence"),r},Re.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,n=this.options.ecmaVersion>=6;this.pos<this.input.length;){var o=this.fullCharCodeAtPos();if(g(o,n))this.pos+=o<=65535?1:2;else{if(92!==o)break;this.containsEsc=!0,e+=this.input.slice(r,this.pos);var i=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var a=this.readCodePoint();(t?p:g)(a,n)||this.invalidStringToken(i,"Invalid Unicode escape"),e+=Me(a),r=this.pos}t=!1}return e+this.input.slice(r,this.pos)},Re.readWord=function(){var e=this.readWord1(),t=_.name;return this.keywords.test(e)&&(t=b[e]),this.finishToken(t,e)};var xe="8.0.4";G.acorn={Parser:G,version:xe,defaultOptions:L,Position:M,SourceLocation:F,getLineInfo:x,Node:re,TokenType:f,tokTypes:_,keywordTypes:b,TokContext:ie,tokContexts:ae,isIdentifierChar:g,isIdentifierStart:p,Token:De,isNewLine:A,lineBreak:C,lineBreakG:E,nonASCIIwhitespace:N},e.Node=re,e.Parser=G,e.Position=M,e.SourceLocation=F,e.TokContext=ie,e.Token=De,e.TokenType=f,e.defaultOptions=L,e.getLineInfo=x,e.isIdentifierChar=g,e.isIdentifierStart=p,e.isNewLine=A,e.keywordTypes=b,e.lineBreak=C,e.lineBreakG=E,e.nonASCIIwhitespace=N,e.parse=function(e,t){return G.parse(e,t)},e.parseExpressionAt=function(e,t,r){return G.parseExpressionAt(e,t,r)},e.tokContexts=ae,e.tokTypes=_,e.tokenizer=function(e,t){return G.tokenizer(e,t)},e.version=xe,Object.defineProperty(e,"__esModule",{value:!0})}(t)},2190:e=>{e.exports=function(e,r,n){if(e.filter)return e.filter(r,n);if(null==e)throw new TypeError;if("function"!=typeof r)throw new TypeError;for(var o=[],i=0;i<e.length;i++)if(t.call(e,i)){var a=e[i];r.call(n,a,i,e)&&o.push(a)}return o};var t=Object.prototype.hasOwnProperty},9282:(e,t,r)=>{"use strict";var n=r(4155);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i,a,s=r(2136).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,l=s.ERR_INVALID_ARG_TYPE,c=s.ERR_INVALID_ARG_VALUE,d=s.ERR_INVALID_RETURN_VALUE,p=s.ERR_MISSING_ARGS,g=r(5961),f=r(9539).inspect,h=r(9539).types,m=h.isPromise,y=h.isRegExp,b=Object.assign?Object.assign:r(8091).assign,S=Object.is?Object.is:r(609);function _(){var e=r(9158);i=e.isDeepEqual,a=e.isDeepStrictEqual}new Map;var C=!1,E=e.exports=T,A={};function N(e){if(e.message instanceof Error)throw e.message;throw new g(e)}function v(e,t,r,n){if(!r){var o=!1;if(0===t)o=!0,n="No value argument passed to `assert.ok()`";else if(n instanceof Error)throw n;var i=new g({actual:r,expected:!0,message:n,operator:"==",stackStartFn:e});throw i.generatedMessage=o,i}}function T(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];v.apply(void 0,[T,t.length].concat(t))}E.fail=function e(t,r,o,i,a){var s,u=arguments.length;if(0===u)s="Failed";else if(1===u)o=t,t=void 0;else{if(!1===C){C=!0;var l=n.emitWarning?n.emitWarning:console.warn.bind(console);l("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===u&&(i="!=")}if(o instanceof Error)throw o;var c={actual:t,expected:r,operator:void 0===i?"fail":i,stackStartFn:a||e};void 0!==o&&(c.message=o);var d=new g(c);throw s&&(d.message=s,d.generatedMessage=!0),d},E.AssertionError=g,E.ok=T,E.equal=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");t!=r&&N({actual:t,expected:r,message:n,operator:"==",stackStartFn:e})},E.notEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");t==r&&N({actual:t,expected:r,message:n,operator:"!=",stackStartFn:e})},E.deepEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");void 0===i&&_(),i(t,r)||N({actual:t,expected:r,message:n,operator:"deepEqual",stackStartFn:e})},E.notDeepEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");void 0===i&&_(),i(t,r)&&N({actual:t,expected:r,message:n,operator:"notDeepEqual",stackStartFn:e})},E.deepStrictEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");void 0===i&&_(),a(t,r)||N({actual:t,expected:r,message:n,operator:"deepStrictEqual",stackStartFn:e})},E.notDeepStrictEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");void 0===i&&_(),a(t,r)&&N({actual:t,expected:r,message:n,operator:"notDeepStrictEqual",stackStartFn:e})},E.strictEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");S(t,r)||N({actual:t,expected:r,message:n,operator:"strictEqual",stackStartFn:e})},E.notStrictEqual=function e(t,r,n){if(arguments.length<2)throw new p("actual","expected");S(t,r)&&N({actual:t,expected:r,message:n,operator:"notStrictEqual",stackStartFn:e})};var I=function e(t,r,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),r.forEach((function(e){e in t&&(void 0!==n&&"string"==typeof n[e]&&y(t[e])&&t[e].test(n[e])?o[e]=n[e]:o[e]=t[e])}))};function O(e,t,r,n,o,i){if(!(r in e)||!a(e[r],t[r])){if(!n){var s=new I(e,o),u=new I(t,o,e),l=new g({actual:s,expected:u,operator:"deepStrictEqual",stackStartFn:i});throw l.actual=e,l.expected=t,l.operator=i.name,l}N({actual:e,expected:t,message:n,operator:i.name,stackStartFn:i})}}function D(e,t,r,n){if("function"!=typeof t){if(y(t))return t.test(e);if(2===arguments.length)throw new l("expected",["Function","RegExp"],t);if("object"!==o(e)||null===e){var a=new g({actual:e,expected:t,message:r,operator:"deepStrictEqual",stackStartFn:n});throw a.operator=n.name,a}var s=Object.keys(t);if(t instanceof Error)s.push("name","message");else if(0===s.length)throw new c("error",t,"may not be an empty object");return void 0===i&&_(),s.forEach((function(o){"string"==typeof e[o]&&y(t[o])&&t[o].test(e[o])||O(e,t,o,r,s,n)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function R(e){if("function"!=typeof e)throw new l("fn","Function",e);try{e()}catch(e){return e}return A}function P(e){return m(e)||null!==e&&"object"===o(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function M(e){return Promise.resolve().then((function(){var t;if("function"==typeof e){if(!P(t=e()))throw new d("instance of Promise","promiseFn",t)}else{if(!P(e))throw new l("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return A})).catch((function(e){return e}))}))}function F(e,t,r,n){if("string"==typeof r){if(4===arguments.length)throw new l("error",["Object","Error","Function","RegExp"],r);if("object"===o(t)&&null!==t){if(t.message===r)throw new u("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===r)throw new u("error/message",'The error "'.concat(t,'" is identical to the message.'));n=r,r=void 0}else if(null!=r&&"object"!==o(r)&&"function"!=typeof r)throw new l("error",["Object","Error","Function","RegExp"],r);if(t===A){var i="";r&&r.name&&(i+=" (".concat(r.name,")")),i+=n?": ".concat(n):".";var a="rejects"===e.name?"rejection":"exception";N({actual:void 0,expected:r,operator:e.name,message:"Missing expected ".concat(a).concat(i),stackStartFn:e})}if(r&&!D(t,r,n,e))throw t}function x(e,t,r,n){if(t!==A){if("string"==typeof r&&(n=r,r=void 0),!r||D(t,r)){var o=n?": ".concat(n):".",i="doesNotReject"===e.name?"rejection":"exception";N({actual:t,expected:r,operator:e.name,message:"Got unwanted ".concat(i).concat(o,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function L(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];v.apply(void 0,[L,t.length].concat(t))}E.throws=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];F.apply(void 0,[e,R(t)].concat(n))},E.rejects=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return M(t).then((function(t){return F.apply(void 0,[e,t].concat(n))}))},E.doesNotThrow=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];x.apply(void 0,[e,R(t)].concat(n))},E.doesNotReject=function e(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return M(t).then((function(t){return x.apply(void 0,[e,t].concat(n))}))},E.ifError=function e(t){if(null!=t){var r="ifError got unwanted exception: ";"object"===o(t)&&"string"==typeof t.message?0===t.message.length&&t.constructor?r+=t.constructor.name:r+=t.message:r+=f(t);var n=new g({actual:t,expected:null,operator:"ifError",message:r,stackStartFn:e}),i=t.stack;if("string"==typeof i){var a=i.split("\n");a.shift();for(var s=n.stack.split("\n"),u=0;u<a.length;u++){var l=s.indexOf(a[u]);if(-1!==l){s=s.slice(0,l);break}}n.stack="".concat(s.join("\n"),"\n").concat(a.join("\n"))}throw n}},E.strict=b(L,E,{equal:E.strictEqual,deepEqual:E.deepStrictEqual,notEqual:E.notStrictEqual,notDeepEqual:E.notDeepStrictEqual}),E.strict.strict=E.strict},5961:(e,t,r)=>{"use strict";var n=r(4155);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function a(e,t){return!t||"object"!==g(t)&&"function"!=typeof t?s(e):t}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e){var t="function"==typeof Map?new Map:void 0;return(u=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return c(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),d(n,e)})(e)}function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function c(e,t,r){return(c=l()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&d(o,r.prototype),o}).apply(null,arguments)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var f=r(9539).inspect,h=r(2136).codes.ERR_INVALID_ARG_TYPE;function m(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}var y="",b="",S="",_="",C={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),r=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){r[t]=e[t]})),Object.defineProperty(r,"message",{value:e.message}),r}function A(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var N=function(e){function t(e){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==g(e)||null===e)throw new h("options","Object",e);var o=e.message,i=e.operator,u=e.stackStartFn,l=e.actual,c=e.expected,d=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)r=a(this,p(t).call(this,String(o)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(y="",b="",_="",S=""):(y="",b="",_="",S="")),"object"===g(l)&&null!==l&&"object"===g(c)&&null!==c&&"stack"in l&&l instanceof Error&&"stack"in c&&c instanceof Error&&(l=E(l),c=E(c)),"deepStrictEqual"===i||"strictEqual"===i)r=a(this,p(t).call(this,function(e,t,r){var o="",i="",a=0,s="",u=!1,l=A(e),c=l.split("\n"),d=A(t).split("\n"),p=0,f="";if("strictEqual"===r&&"object"===g(e)&&"object"===g(t)&&null!==e&&null!==t&&(r="strictEqualObject"),1===c.length&&1===d.length&&c[0]!==d[0]){var h=c[0].length+d[0].length;if(h<=10){if(!("object"===g(e)&&null!==e||"object"===g(t)&&null!==t||0===e&&0===t))return"".concat(C[r],"\n\n")+"".concat(c[0]," !== ").concat(d[0],"\n")}else if("strictEqualObject"!==r&&h<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;c[0][p]===d[0][p];)p++;p>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var r=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,r-e.length)}(" ",p),"^"),p=0)}}for(var E=c[c.length-1],N=d[d.length-1];E===N&&(p++<2?s="\n ".concat(E).concat(s):o=E,c.pop(),d.pop(),0!==c.length&&0!==d.length);)E=c[c.length-1],N=d[d.length-1];var v=Math.max(c.length,d.length);if(0===v){var T=l.split("\n");if(T.length>30)for(T[26]="".concat(y,"...").concat(_);T.length>27;)T.pop();return"".concat(C.notIdentical,"\n\n").concat(T.join("\n"),"\n")}p>3&&(s="\n".concat(y,"...").concat(_).concat(s),u=!0),""!==o&&(s="\n ".concat(o).concat(s),o="");var I=0,O=C[r]+"\n".concat(b,"+ actual").concat(_," ").concat(S,"- expected").concat(_),D=" ".concat(y,"...").concat(_," Lines skipped");for(p=0;p<v;p++){var R=p-a;if(c.length<p+1)R>1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(d[p-2]),I++),i+="\n ".concat(d[p-1]),I++),a=p,o+="\n".concat(S,"-").concat(_," ").concat(d[p]),I++;else if(d.length<p+1)R>1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(c[p-2]),I++),i+="\n ".concat(c[p-1]),I++),a=p,i+="\n".concat(b,"+").concat(_," ").concat(c[p]),I++;else{var P=d[p],M=c[p],F=M!==P&&(!m(M,",")||M.slice(0,-1)!==P);F&&m(P,",")&&P.slice(0,-1)===M&&(F=!1,M+=","),F?(R>1&&p>2&&(R>4?(i+="\n".concat(y,"...").concat(_),u=!0):R>3&&(i+="\n ".concat(c[p-2]),I++),i+="\n ".concat(c[p-1]),I++),a=p,i+="\n".concat(b,"+").concat(_," ").concat(M),o+="\n".concat(S,"-").concat(_," ").concat(P),I+=2):(i+=o,o="",1!==R&&0!==p||(i+="\n ".concat(M),I++))}if(I>20&&p<v-2)return"".concat(O).concat(D,"\n").concat(i,"\n").concat(y,"...").concat(_).concat(o,"\n")+"".concat(y,"...").concat(_)}return"".concat(O).concat(u?D:"","\n").concat(i).concat(o).concat(s).concat(f)}(l,c,i)));else if("notDeepStrictEqual"===i||"notStrictEqual"===i){var f=C[i],N=A(l).split("\n");if("notStrictEqual"===i&&"object"===g(l)&&null!==l&&(f=C.notStrictEqualObject),N.length>30)for(N[26]="".concat(y,"...").concat(_);N.length>27;)N.pop();r=1===N.length?a(this,p(t).call(this,"".concat(f," ").concat(N[0]))):a(this,p(t).call(this,"".concat(f,"\n\n").concat(N.join("\n"),"\n")))}else{var v=A(l),T="",I=C[i];"notDeepEqual"===i||"notEqual"===i?(v="".concat(C[i],"\n\n").concat(v)).length>1024&&(v="".concat(v.slice(0,1021),"...")):(T="".concat(A(c)),v.length>512&&(v="".concat(v.slice(0,509),"...")),T.length>512&&(T="".concat(T.slice(0,509),"...")),"deepEqual"===i||"equal"===i?v="".concat(I,"\n\n").concat(v,"\n\nshould equal\n\n"):T=" ".concat(i," ").concat(T)),r=a(this,p(t).call(this,"".concat(v).concat(T)))}return Error.stackTraceLimit=d,r.generatedMessage=!o,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=l,r.expected=c,r.operator=i,Error.captureStackTrace&&Error.captureStackTrace(s(r),u),r.stack,r.name="AssertionError",a(r)}var r,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(t,e),r=t,(u=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}({},t,{customInspect:!1,depth:0}))}}])&&i(r.prototype,u),t}(u(Error));e.exports=N},2136:(e,t,r)=>{"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a,s,u={};function l(e,t,r){r||(r=Error);var a=function(r){function a(r,i,s){var u;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(u=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,o(a).call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,i,s)))).code=e,u}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(a,r),a}(r);u[e]=a}function c(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,s,u,l,d;if(void 0===a&&(a=r(9282)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(0,s.length)===s)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(c(t,"type"));else{var p=("number"!=typeof d&&(d=0),d+".".length>(l=e).length||-1===l.indexOf(".",d)?"argument":"property");u='The "'.concat(e,'" ').concat(p," ").concat(i," ").concat(c(t,"type"))}return u+". Received type ".concat(n(o))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(9539));var o=s.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(n,". Received ").concat(o)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,r){var o;return o=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];void 0===a&&(a=r(9282)),a(t.length>0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=u},9158:(e,t,r)=>{"use strict";function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw i}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i=void 0!==/a/g.flags,a=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},s=function(e){var t=[];return e.forEach((function(e,r){return t.push([r,e])})),t},u=Object.is?Object.is:r(609),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},c=Number.isNaN?Number.isNaN:r(360);function d(e){return e.call.bind(e)}var p=d(Object.prototype.hasOwnProperty),g=d(Object.prototype.propertyIsEnumerable),f=d(Object.prototype.toString),h=r(9539).types,m=h.isAnyArrayBuffer,y=h.isArrayBufferView,b=h.isDate,S=h.isMap,_=h.isRegExp,C=h.isSet,E=h.isNativeError,A=h.isBoxedPrimitive,N=h.isNumberObject,v=h.isStringObject,T=h.isBooleanObject,I=h.isBigIntObject,O=h.isSymbolObject,D=h.isFloat32Array,R=h.isFloat64Array;function P(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var r=e.charCodeAt(t);if(r<48||r>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function M(e){return Object.keys(e).filter(P).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function F(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o<i;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0}function x(e,t,r,n){if(e===t)return 0!==e||!r||u(e,t);if(r){if("object"!==o(e))return"number"==typeof e&&c(e)&&c(t);if("object"!==o(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==o(e))return(null===t||"object"!==o(t))&&e==t;if(null===t||"object"!==o(t))return!1}var a,s,l,d,p=f(e);if(p!==f(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var g=M(e),h=M(t);return g.length===h.length&&w(e,t,r,n,1,g)}if("[object Object]"===p&&(!S(e)&&S(t)||!C(e)&&C(t)))return!1;if(b(e)){if(!b(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(_(e)){if(!_(t)||(l=e,d=t,!(i?l.source===d.source&&l.flags===d.flags:RegExp.prototype.toString.call(l)===RegExp.prototype.toString.call(d))))return!1}else if(E(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(y(e)){if(r||!D(e)&&!R(e)){if(!function(e,t){return e.byteLength===t.byteLength&&0===F(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}(e,t))return!1}else if(!function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}(e,t))return!1;var P=M(e),x=M(t);return P.length===x.length&&w(e,t,r,n,0,P)}if(C(e))return!(!C(t)||e.size!==t.size)&&w(e,t,r,n,2);if(S(e))return!(!S(t)||e.size!==t.size)&&w(e,t,r,n,3);if(m(e)){if(s=t,(a=e).byteLength!==s.byteLength||0!==F(new Uint8Array(a),new Uint8Array(s)))return!1}else if(A(e)&&!function(e,t){return N(e)?N(t)&&u(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):v(e)?v(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):T(e)?T(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):I(e)?I(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):O(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}(e,t))return!1}return w(e,t,r,n,0)}function L(e,t){return t.filter((function(t){return g(e,t)}))}function w(e,t,r,n,o,i){if(5===arguments.length){i=Object.keys(e);var a=Object.keys(t);if(i.length!==a.length)return!1}for(var s=0;s<i.length;s++)if(!p(t,i[s]))return!1;if(r&&5===arguments.length){var u=l(e);if(0!==u.length){var c=0;for(s=0;s<u.length;s++){var d=u[s];if(g(e,d)){if(!g(t,d))return!1;i.push(d),c++}else if(g(t,d))return!1}var f=l(t);if(u.length!==f.length&&L(t,f).length!==c)return!1}else{var h=l(t);if(0!==h.length&&0!==L(t,h).length)return!1}}if(0===i.length&&(0===o||1===o&&0===e.length||0===e.size))return!0;if(void 0===n)n={val1:new Map,val2:new Map,position:0};else{var m=n.val1.get(e);if(void 0!==m){var y=n.val2.get(t);if(void 0!==y)return m===y}n.position++}n.val1.set(e,n.position),n.val2.set(t,n.position);var b=k(e,t,r,i,n,o);return n.val1.delete(e),n.val2.delete(t),b}function $(e,t,r,n){for(var o=a(e),i=0;i<o.length;i++){var s=o[i];if(x(t,s,r,n))return e.delete(s),!0}return!1}function B(e){switch(o(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(c(e))return!1}return!0}function G(e,t,r){var n=B(r);return null!=n?n:t.has(n)&&!e.has(n)}function j(e,t,r,n,o){var i=B(r);if(null!=i)return i;var a=t.get(i);return!(void 0===a&&!t.has(i)||!x(n,a,!1,o))&&!e.has(i)&&x(n,a,!1,o)}function U(e,t,r,n,o,i){for(var s=a(e),u=0;u<s.length;u++){var l=s[u];if(x(r,l,o,i)&&x(n,t.get(l),o,i))return e.delete(l),!0}return!1}function k(e,t,r,i,u,l){var c=0;if(2===l){if(!function(e,t,r,n){for(var i=null,s=a(e),u=0;u<s.length;u++){var l=s[u];if("object"===o(l)&&null!==l)null===i&&(i=new Set),i.add(l);else if(!t.has(l)){if(r)return!1;if(!G(e,t,l))return!1;null===i&&(i=new Set),i.add(l)}}if(null!==i){for(var c=a(t),d=0;d<c.length;d++){var p=c[d];if("object"===o(p)&&null!==p){if(!$(i,p,r,n))return!1}else if(!r&&!e.has(p)&&!$(i,p,r,n))return!1}return 0===i.size}return!0}(e,t,r,u))return!1}else if(3===l){if(!function(e,t,r,i){for(var a=null,u=s(e),l=0;l<u.length;l++){var c=n(u[l],2),d=c[0],p=c[1];if("object"===o(d)&&null!==d)null===a&&(a=new Set),a.add(d);else{var g=t.get(d);if(void 0===g&&!t.has(d)||!x(p,g,r,i)){if(r)return!1;if(!j(e,t,d,p,i))return!1;null===a&&(a=new Set),a.add(d)}}}if(null!==a){for(var f=s(t),h=0;h<f.length;h++){var m=n(f[h],2),y=(d=m[0],m[1]);if("object"===o(d)&&null!==d){if(!U(a,e,d,y,r,i))return!1}else if(!(r||e.has(d)&&x(e.get(d),y,!1,i)||U(a,e,d,y,!1,i)))return!1}return 0===a.size}return!0}(e,t,r,u))return!1}else if(1===l)for(;c<e.length;c++){if(!p(e,c)){if(p(t,c))return!1;for(var d=Object.keys(e);c<d.length;c++){var g=d[c];if(!p(t,g)||!x(e[g],t[g],r,u))return!1}return d.length===Object.keys(t).length}if(!p(t,c)||!x(e[c],t[c],r,u))return!1}for(c=0;c<i.length;c++){var f=i[c];if(!x(e[f],t[f],r,u))return!1}return!0}e.exports={isDeepEqual:function(e,t){return x(e,t,!1)},isDeepStrictEqual:function(e,t){return x(e,t,!0)}}},6314:(e,t,r)=>{"use strict";var n=r(2190);e.exports=function(){return n(["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],(function(e){return"function"==typeof r.g[e]}))}},6064:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,o=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},a=e=>e,s=(e,t,r)=>[e,t,r],u=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let l;const c=(e,t,n,o)=>{void 0===l&&(l=r(1621));const i=o?10:0,a={};for(const[r,o]of Object.entries(l)){const s="ansi16"===r?"ansi":r;r===t?a[s]=e(n,i):"object"==typeof o&&(a[s]=e(o[t],i))}return a};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,o]of Object.entries(n))t[r]={open:`[${o[0]}m`,close:`[${o[1]}m`},n[r]=t[r],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",u(t.color,"ansi",(()=>c(n,"ansi16",a,!1))),u(t.color,"ansi256",(()=>c(o,"ansi256",a,!1))),u(t.color,"ansi16m",(()=>c(i,"rgb",s,!1))),u(t.bgColor,"ansi",(()=>c(n,"ansi16",a,!0))),u(t.bgColor,"ansi256",(()=>c(o,"ansi256",a,!0))),u(t.bgColor,"ansi16m",(()=>c(i,"rgb",s,!0))),t}})},3583:(e,t,r)=>{const n=r(4794),o={};for(const e of Object.keys(n))o[n[e]]=e;const i={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=i;for(const e of Object.keys(i)){if(!("channels"in i[e]))throw new Error("missing channels property: "+e);if(!("labels"in i[e]))throw new Error("missing channel labels property: "+e);if(i[e].labels.length!==i[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:r})}i.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.min(t,r,n),i=Math.max(t,r,n),a=i-o;let s,u;i===o?s=0:t===i?s=(r-n)/a:r===i?s=2+(n-t)/a:n===i&&(s=4+(t-r)/a),s=Math.min(60*s,360),s<0&&(s+=360);const l=(o+i)/2;return u=i===o?0:l<=.5?a/(i+o):a/(2-i-o),[s,100*u,100*l]},i.rgb.hsv=function(e){let t,r,n,o,i;const a=e[0]/255,s=e[1]/255,u=e[2]/255,l=Math.max(a,s,u),c=l-Math.min(a,s,u),d=function(e){return(l-e)/6/c+.5};return 0===c?(o=0,i=0):(i=c/l,t=d(a),r=d(s),n=d(u),a===l?o=n-r:s===l?o=1/3+t-n:u===l&&(o=2/3+r-t),o<0?o+=1:o>1&&(o-=1)),[360*o,100*i,100*l]},i.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const o=i.rgb.hsl(e)[0],a=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[o,100*a,100*n]},i.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.min(1-t,1-r,1-n);return[100*((1-t-o)/(1-o)||0),100*((1-r-o)/(1-o)||0),100*((1-n-o)/(1-o)||0),100*o]},i.rgb.keyword=function(e){const t=o[e];if(t)return t;let r,i=1/0;for(const t of Object.keys(n)){const o=(s=n[t],((a=e)[0]-s[0])**2+(a[1]-s[1])**2+(a[2]-s[2])**2);o<i&&(i=o,r=t)}var a,s;return r},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255;return t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},i.rgb.lab=function(e){const t=i.rgb.xyz(e);let r=t[0],n=t[1],o=t[2];return r/=95.047,n/=100,o/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*n-16,500*(r-n),200*(n-o)]},i.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let o,i,a;if(0===r)return a=255*n,[a,a,a];o=n<.5?n*(1+r):n+r-n*r;const s=2*n-o,u=[0,0,0];for(let e=0;e<3;e++)i=t+1/3*-(e-1),i<0&&i++,i>1&&i--,a=6*i<1?s+6*(o-s)*i:2*i<1?o:3*i<2?s+(o-s)*(2/3-i)*6:s,u[e]=255*a;return u},i.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,o=r;const i=Math.max(n,.01);return n*=2,r*=n<=1?n:2-n,o*=i<=1?i:2-i,[t,100*(0===n?2*o/(i+o):2*r/(n+r)),(n+r)/2*100]},i.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const o=Math.floor(t)%6,i=t-Math.floor(t),a=255*n*(1-r),s=255*n*(1-r*i),u=255*n*(1-r*(1-i));switch(n*=255,o){case 0:return[n,u,a];case 1:return[s,n,a];case 2:return[a,n,u];case 3:return[a,s,n];case 4:return[u,a,n];case 5:return[n,a,s]}},i.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,o=Math.max(n,.01);let i,a;a=(2-r)*n;const s=(2-r)*o;return i=r*o,i/=s<=1?s:2-s,i=i||0,a/=2,[t,100*i,100*a]},i.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const o=r+n;let i;o>1&&(r/=o,n/=o);const a=Math.floor(6*t),s=1-n;i=6*t-a,0!=(1&a)&&(i=1-i);const u=r+i*(s-r);let l,c,d;switch(a){default:case 6:case 0:l=s,c=u,d=r;break;case 1:l=u,c=s,d=r;break;case 2:l=r,c=s,d=u;break;case 3:l=r,c=u,d=s;break;case 4:l=u,c=r,d=s;break;case 5:l=s,c=r,d=u}return[255*l,255*c,255*d]},i.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,o=e[3]/100;return[255*(1-Math.min(1,t*(1-o)+o)),255*(1-Math.min(1,r*(1-o)+o)),255*(1-Math.min(1,n*(1-o)+o))]},i.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let o,i,a;return o=3.2406*t+-1.5372*r+-.4986*n,i=-.9689*t+1.8758*r+.0415*n,a=.0557*t+-.204*r+1.057*n,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),[255*o,255*i,255*a]},i.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];return t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,[116*r-16,500*(t-r),200*(r-n)]},i.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const o=r**3,i=t**3,a=n**3;return r=o>.008856?o:(r-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,n=a>.008856?a:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},i.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let o;return o=360*Math.atan2(n,r)/2/Math.PI,o<0&&(o+=360),[t,Math.sqrt(r*r+n*n),o]},i.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},i.rgb.ansi16=function(e,t=null){const[r,n,o]=e;let a=null===t?i.rgb.hsv(e)[2]:t;if(a=Math.round(a/50),0===a)return 30;let s=30+(Math.round(o/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},i.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;return e-=16,[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map((e=>e+e)).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},i.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.max(Math.max(t,r),n),i=Math.min(Math.min(t,r),n),a=o-i;let s,u;return s=a<1?i/(1-a):0,u=a<=0?0:o===t?(r-n)/a%6:o===r?2+(n-t)/a:4+(t-r)/a,u/=6,u%=1,[360*u,100*a,100*s]},i.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let o=0;return n<1&&(o=(r-.5*n)/(1-n)),[e[0],100*n,100*o]},i.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let o=0;return n<1&&(o=(r-n)/(1-n)),[e[0],100*n,100*o]},i.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const o=[0,0,0],i=t%1*6,a=i%1,s=1-a;let u=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=a,o[2]=0;break;case 1:o[0]=s,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=a;break;case 3:o[0]=0,o[1]=s,o[2]=1;break;case 4:o[0]=a,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=s}return u=(1-r)*n,[255*(r*o[0]+u),255*(r*o[1]+u),255*(r*o[2]+u)]},i.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},i.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},i.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},i.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let o=0;return n<1&&(o=(r-n)/(1-n)),[e[0],100*n,100*o]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},1621:(e,t,r)=>{const n=r(3583),o=r(9691),i={};Object.keys(n).forEach((e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});const t=o(e);Object.keys(t).forEach((r=>{const n=t[r];i[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t<e;t++)n[t]=Math.round(n[t]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(n),i[e][r].raw=function(e){const t=function(...t){const r=t[0];return null==r?r:(r.length>1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)}))})),e.exports=i},9691:(e,t,r)=>{const n=r(3583);function o(e,t){return function(r){return t(e(r))}}function i(e,t){const r=[t[e].parent,e];let i=n[t[e].parent][e],a=t[e].parent;for(;t[a].parent;)r.unshift(t[a].parent),i=o(n[t[a].parent][a],i),a=t[a].parent;return i.conversion=r,i}e.exports=function(e){const t=function(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n<r;n++)e[t[n]]={distance:-1,parent:null};return e}(),r=[e];for(t[e].distance=0;r.length;){const e=r.pop(),o=Object.keys(n[e]);for(let n=o.length,i=0;i<n;i++){const n=o[i],a=t[n];-1===a.distance&&(a.distance=t[e].distance+1,a.parent=e,r.unshift(n))}}return t}(e),r={},o=Object.keys(t);for(let e=o.length,n=0;n<e;n++){const e=o[n];null!==t[e].parent&&(r[e]=i(e,t))}return r}},4794:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},4061:(e,t,r)=>{"use strict";const n=r(6064),{stdout:o,stderr:i}=r(8555),{stringReplaceAll:a,stringEncaseCRLFWithFirstIndex:s}=r(3559),{isArray:u}=Array,l=["ansi","ansi","ansi256","ansi16m"],c=Object.create(null);class d{constructor(e){return p(e)}}const p=e=>{const t={};return((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const r=o?o.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>_(t.template,...e),Object.setPrototypeOf(t,g.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=d,t.template};function g(e){return p(e)}for(const[e,t]of Object.entries(n))c[e]={get(){const r=y(this,m(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};c.visible={get(){const e=y(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const f=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of f)c[e]={get(){const{level:t}=this;return function(...r){const o=m(n.color[l[t]][e](...r),n.color.close,this._styler);return y(this,o,this._isEmpty)}}};for(const e of f)c["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const o=m(n.bgColor[l[t]][e](...r),n.bgColor.close,this._styler);return y(this,o,this._isEmpty)}}};const h=Object.defineProperties((()=>{}),{...c,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),m=(e,t,r)=>{let n,o;return void 0===r?(n=e,o=t):(n=r.openAll+e,o=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:o,parent:r}},y=(e,t,r)=>{const n=(...e)=>u(e[0])&&u(e[0].raw)?b(n,_(n,...e)):b(n,1===e.length?""+e[0]:e.join(" "));return Object.setPrototypeOf(n,h),n._generator=e,n._styler=t,n._isEmpty=r,n},b=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:o}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=a(t,r.close,r.open),r=r.parent;const i=t.indexOf("\n");return-1!==i&&(t=s(t,o,n,i)),n+t+o};let S;const _=(e,...t)=>{const[n]=t;if(!u(n)||!u(n.raw))return t.join(" ");const o=t.slice(1),i=[n.raw[0]];for(let e=1;e<n.length;e++)i.push(String(o[e-1]).replace(/[{}\\]/g,"\\$&"),String(n.raw[e]));return void 0===S&&(S=r(9515)),S(e,i.join(""))};Object.defineProperties(g.prototype,c);const C=g();C.supportsColor=o,C.stderr=g({level:i?i.level:0}),C.stderr.supportsColor=i,e.exports=C},9515:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,o=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,i=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function a(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):i.get(e)||e}function s(e,t){const r=[],i=t.trim().split(/\s*,\s*/g);let s;for(const t of i){const i=Number(t);if(Number.isNaN(i)){if(!(s=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(s[2].replace(o,((e,t,r)=>t?a(t):r)))}else r.push(i)}return r}function u(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=s(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function l(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error("Unknown Chalk style: "+e);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],o=[];let i=[];if(r.replace(t,((t,r,s,c,d,p)=>{if(r)i.push(a(r));else if(c){const t=i.join("");i=[],o.push(0===n.length?t:l(e,n)(t)),n.push({inverse:s,styles:u(c)})}else if(d){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");o.push(l(e,n)(i.join(""))),i=[],n.pop()}else i.push(p)})),o.push(i.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return o.join("")}},3559:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const o=t.length;let i=0,a="";do{a+=e.substr(i,n-i)+t+r,i=n+o,n=e.indexOf(t,i)}while(-1!==n);return a+=e.substr(i),a},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let o=0,i="";do{const a="\r"===e[n-1];i+=e.substr(o,(a?n-1:n)-o)+t+(a?"\r\n":"\n")+r,o=n+1,n=e.indexOf("\n",o)}while(-1!==n);return i+=e.substr(o),i}}},714:(e,t)=>{var r;!function(){var n=9007199254740992,o="0123456789",i="abcdefghijklmnopqrstuvwxyz",a=i.toUpperCase(),s=o+"abcdef";function u(e){this.name="UnsupportedError",this.message=e||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var l=Array.prototype.slice;function c(e){if(!(this instanceof c))return e||(e=null),null===e?new c:new c(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var t=0;t<arguments.length;t++){var r=0;if("[object String]"===Object.prototype.toString.call(arguments[t]))for(var n=0;n<arguments[t].length;n++){for(var o=0,i=0;i<arguments[t].length;i++)o=arguments[t].charCodeAt(i)+(o<<6)+(o<<16)-o;r+=o}else r=arguments[t];this.seed+=(arguments.length-t)*r}return this.mt=this.mersenne_twister(this.seed),this.bimd5=this.blueimp_md5(),this.random=function(){return this.mt.random(this.seed)},this}function d(e,t){if(e=e||{},t)for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e}function p(e,t){if(e)throw new RangeError(t)}c.prototype.VERSION="1.1.7";var g=function(){throw new Error("No Base64 encoder available.")};function f(e){this.c=e}function h(e){this.c=e}function m(e){this.c=e}function y(e){return function(){return this.natural(e)}}"function"==typeof btoa?g=btoa:"function"==typeof Buffer&&(g=function(e){return new Buffer(e).toString("base64")}),c.prototype.bool=function(e){return p((e=d(e,{likelihood:50})).likelihood<0||e.likelihood>100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()<e.likelihood},c.prototype.falsy=function(e){var t=(e=d(e,{pool:[!1,null,0,NaN,""]})).pool;return t[this.integer({min:0,max:t.length})]},c.prototype.animal=function(e){return void 0!==(e=d(e)).type?(p(!this.get("animals")[e.type.toLowerCase()],"Please pick from desert, ocean, grassland, forest, zoo, pets, farm."),this.pick(this.get("animals")[e.type.toLowerCase()])):this.pick(this.get("animals")[this.pick(["desert","forest","ocean","zoo","farm","pet","grassland"])])},c.prototype.character=function(e){var t,r,n="!@#$%^&*()[]";return t="lower"===(e=d(e)).casing?i:"upper"===e.casing?a:i+a,e.pool?r=e.pool:(r="",e.alpha&&(r+=t),e.numeric&&(r+=o),e.symbols&&(r+=n),r||(r=t+o+n)),r.charAt(this.natural({max:r.length-1}))},c.prototype.floating=function(e){p((e=d(e,{fixed:4})).fixed&&e.precision,"Chance: Cannot specify both fixed and precision.");var t=Math.pow(10,e.fixed),r=n/t,o=-r;p(e.min&&e.fixed&&e.min<o,"Chance: Min specified is out of range with fixed. Min should be, at least, "+o),p(e.max&&e.fixed&&e.max>r,"Chance: Max specified is out of range with fixed. Max should be, at most, "+r),e=d(e,{min:o,max:r});var i=(this.integer({min:e.min*t,max:e.max*t})/t).toFixed(e.fixed);return parseFloat(i)},c.prototype.integer=function(e){return p((e=d(e,{min:-9007199254740992,max:n})).min>e.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(e.max-e.min+1)+e.min)},c.prototype.natural=function(e){if("number"==typeof(e=d(e,{min:0,max:n})).numerals&&(p(e.numerals<1,"Chance: Numerals cannot be less than one."),e.min=Math.pow(10,e.numerals-1),e.max=Math.pow(10,e.numerals)-1),p(e.min<0,"Chance: Min cannot be less than zero."),e.exclude){for(var t in p(!Array.isArray(e.exclude),"Chance: exclude must be an array."),e.exclude)p(!Number.isInteger(e.exclude[t]),"Chance: exclude must be numbers.");var r=e.min+this.natural({max:e.max-e.min-e.exclude.length}),o=e.exclude.sort();for(var t in o){if(r<o[t])break;r++}return r}return this.integer(e)},c.prototype.prime=function(e){p((e=d(e,{min:0,max:1e4})).min<0,"Chance: Min cannot be less than zero."),p(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=b.primes[b.primes.length-1];if(e.max>t)for(var r=t+2;r<=e.max;++r)this.is_prime(r)&&b.primes.push(r);var n=b.primes.filter((function(t){return t>=e.min&&t<=e.max}));return this.pick(n)},c.prototype.is_prime=function(e){if(e%1||e<2)return!1;if(e%2==0)return 2===e;if(e%3==0)return 3===e;for(var t=Math.sqrt(e),r=5;r<=t;r+=6)if(e%r==0||e%(r+2)==0)return!1;return!0},c.prototype.hex=function(e){p((e=d(e,{min:0,max:n,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var t=this.natural({min:e.min,max:e.max});return"upper"===e.casing?t.toString(16).toUpperCase():t.toString(16)},c.prototype.letter=function(e){e=d(e,{casing:"lower"});var t=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===e.casing&&(t=t.toUpperCase()),t},c.prototype.string=function(e){(e=d(e,{min:5,max:20})).length||(e.length=this.natural({min:e.min,max:e.max})),p(e.length<0,"Chance: Length cannot be less than zero.");var t=e.length;return this.n(this.character,t,e).join("")},f.prototype={substitute:function(){return this.c}},h.prototype={substitute:function(){if(!/[{}\\]/.test(this.c))throw new Error('Invalid escape sequence: "\\'+this.c+'".');return this.c}},m.prototype={replacers:{"#":function(e){return e.character({pool:o})},A:function(e){return e.character({pool:a})},a:function(e){return e.character({pool:i})}},substitute:function(e){var t=this.replacers[this.c];if(!t)throw new Error('Invalid replacement character: "'+this.c+'".');return t(e)}},c.prototype.template=function(e){if(!e)throw new Error("Template string is required");var t=this;return function(e){for(var t=[],r="identity",n=0;n<e.length;n++){var o=e[n];switch(r){case"escape":t.push(new h(o)),r="identity";break;case"identity":"{"===o?r="replace":"\\"===o?r="escape":t.push(new f(o));break;case"replace":"}"===o?r="identity":t.push(new m(o))}}return t}(e).map((function(e){return e.substitute(t)})).join("")},c.prototype.buffer=function(e){if("undefined"==typeof Buffer)throw new u("Sorry, the buffer() function is not supported on your platform");p((e=d(e,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var t=e.length,r=this.n(this.character,t,e);return Buffer.from(r)},c.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},c.prototype.mixin=function(e){for(var t in e)c.prototype[t]=e[t];return this},c.prototype.unique=function(e,t,r){p("function"!=typeof e,"Chance: The first argument must be a function.");var n=function(e,t){return-1!==e.indexOf(t)};r&&(n=r.comparator||n);for(var o,i=[],a=0,s=50*t,u=l.call(arguments,2);i.length<t;){var c=JSON.parse(JSON.stringify(u));if(n(i,o=e.apply(this,c))||(i.push(o),a=0),++a>s)throw new RangeError("Chance: num is likely too large for sample set")}return i},c.prototype.n=function(e,t){p("function"!=typeof e,"Chance: The first argument must be a function."),void 0===t&&(t=1);var r=t,n=[],o=l.call(arguments,2);for(r=Math.max(0,r);r--;null)n.push(e.apply(this,o));return n},c.prototype.pad=function(e,t,r){return r=r||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(r)+e},c.prototype.pick=function(e,t){if(0===e.length)throw new RangeError("Chance: Cannot pick() from an empty array");return t&&1!==t?this.shuffle(e).slice(0,t):e[this.natural({max:e.length-1})]},c.prototype.pickone=function(e){if(0===e.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return e[this.natural({max:e.length-1})]},c.prototype.pickset=function(e,t){if(0===t)return[];if(0===e.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(t<0)throw new RangeError("Chance: Count must be a positive number");if(t&&1!==t){var r=e.slice(0),n=r.length;return this.n((function(){var e=this.natural({max:--n}),t=r[e];return r[e]=r[n],t}),Math.min(n,t))}return[this.pickone(e)]},c.prototype.shuffle=function(e){for(var t,r,n=[],o=0,i=Number(e.length),a=(r=i,Array.apply(null,Array(r)).map((function(e,t){return t}))),s=i-1,u=0;u<i;u++)o=a[t=this.natural({max:s})],n[u]=e[o],a[t]=a[s],s-=1;return n},c.prototype.weighted=function(e,t,r){if(e.length!==t.length)throw new RangeError("Chance: Length of array and weights must match");for(var n,o=0,i=0;i<t.length;++i){if(n=t[i],isNaN(n))throw new RangeError("Chance: All weights must be numbers");n>0&&(o+=n)}if(0===o)throw new RangeError("Chance: No valid entries in array weights");var a,s=this.random()*o,u=0,l=-1;for(i=0;i<t.length;++i){if(u+=n=t[i],n>0){if(s<=u){a=i;break}l=i}i===t.length-1&&(a=l)}var c=e[a];return(r=void 0!==r&&r)&&(e.splice(a,1),t.splice(a,1)),c},c.prototype.paragraph=function(e){var t=(e=d(e)).sentences||this.natural({min:3,max:7}),r=this.n(this.sentence,t),n=!0===e.linebreak?"\n":" ";return r.join(n)},c.prototype.sentence=function(e){var t,r=(e=d(e)).words||this.natural({min:12,max:18}),n=e.punctuation;return t=this.n(this.word,r).join(" "),t=this.capitalize(t),!1===n||/^[.?;!:]$/.test(n)||(n="."),n&&(t+=n),t},c.prototype.syllable=function(e){for(var t,r=(e=d(e)).length||this.natural({min:2,max:3}),n="bcdfghjklmnprstvwz",o="",i=0;i<r;i++)o+=t=0===i?this.character({pool:"bcdfghjklmnprstvwzaeiou"}):-1===n.indexOf(t)?this.character({pool:n}):this.character({pool:"aeiou"});return e.capitalize&&(o=this.capitalize(o)),o},c.prototype.word=function(e){p((e=d(e)).syllables&&e.length,"Chance: Cannot specify both syllables AND length.");var t=e.syllables||this.natural({min:1,max:3}),r="";if(e.length){do{r+=this.syllable()}while(r.length<e.length);r=r.substring(0,e.length)}else for(var n=0;n<t;n++)r+=this.syllable();return e.capitalize&&(r=this.capitalize(r)),r},c.prototype.age=function(e){var t;switch((e=d(e)).type){case"child":t={min:0,max:12};break;case"teen":t={min:13,max:19};break;case"adult":t={min:18,max:65};break;case"senior":t={min:65,max:100};break;case"all":t={min:0,max:100};break;default:t={min:18,max:65}}return this.natural(t)},c.prototype.birthday=function(e){var t=this.age(e),r=(new Date).getFullYear();if(e&&e.type){var n=new Date,o=new Date;n.setFullYear(r-t-1),o.setFullYear(r-t),e=d(e,{min:n,max:o})}else e=d(e,{year:r-t});return this.date(e)},c.prototype.cpf=function(e){e=d(e,{formatted:!0});var t=this.n(this.natural,9,{max:9}),r=2*t[8]+3*t[7]+4*t[6]+5*t[5]+6*t[4]+7*t[3]+8*t[2]+9*t[1]+10*t[0];(r=11-r%11)>=10&&(r=0);var n=2*r+3*t[8]+4*t[7]+5*t[6]+6*t[5]+7*t[4]+8*t[3]+9*t[2]+10*t[1]+11*t[0];(n=11-n%11)>=10&&(n=0);var o=""+t[0]+t[1]+t[2]+"."+t[3]+t[4]+t[5]+"."+t[6]+t[7]+t[8]+"-"+r+n;return e.formatted?o:o.replace(/\D/g,"")},c.prototype.cnpj=function(e){e=d(e,{formatted:!0});var t=this.n(this.natural,12,{max:12}),r=2*t[11]+3*t[10]+4*t[9]+5*t[8]+6*t[7]+7*t[6]+8*t[5]+9*t[4]+2*t[3]+3*t[2]+4*t[1]+5*t[0];(r=11-r%11)<2&&(r=0);var n=2*r+3*t[11]+4*t[10]+5*t[9]+6*t[8]+7*t[7]+8*t[6]+9*t[5]+2*t[4]+3*t[3]+4*t[2]+5*t[1]+6*t[0];(n=11-n%11)<2&&(n=0);var o=""+t[0]+t[1]+"."+t[2]+t[3]+t[4]+"."+t[5]+t[6]+t[7]+"/"+t[8]+t[9]+t[10]+t[11]+"-"+r+n;return e.formatted?o:o.replace(/\D/g,"")},c.prototype.first=function(e){return e=d(e,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[e.gender.toLowerCase()][e.nationality.toLowerCase()])},c.prototype.profession=function(e){return(e=d(e)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},c.prototype.company=function(){return this.pick(this.get("company"))},c.prototype.gender=function(e){return e=d(e,{extraGenders:[]}),this.pick(["Male","Female"].concat(e.extraGenders))},c.prototype.last=function(e){if("*"===(e=d(e,{nationality:"*"})).nationality){var t=[],r=this.get("lastNames");return Object.keys(r).forEach((function(e){t=t.concat(r[e])})),this.pick(t)}return this.pick(this.get("lastNames")[e.nationality.toLowerCase()])},c.prototype.israelId=function(){for(var e=this.string({pool:"0123456789",length:8}),t=0,r=0;r<e.length;r++){var n=e[r]*(r/2===parseInt(r/2)?1:2);n=this.pad(n,2).toString(),t+=n=parseInt(n[0])+parseInt(n[1])}return e+(10-parseInt(t.toString().slice(-1))).toString().slice(-1)},c.prototype.mrz=function(e){var t,r,n,o,i=function(e){var t="<ABCDEFGHIJKLMNOPQRSTUVWXYXZ".split(""),r=[7,3,1],n=0;return"string"!=typeof e&&(e=e.toString()),e.split("").forEach((function(e,o){var i=t.indexOf(e);e=-1!==i?0===i?0:i+9:parseInt(e,10),n+=e*=r[o%r.length]})),n%10},a=this;return n=function(e){return new Array(e+1).join("<")},(o=["P<",(r=e=d(e,{first:this.first(),last:this.last(),passportNumber:this.integer({min:1e8,max:999999999}),dob:(t=a.birthday({type:"adult"}),[t.getFullYear().toString().substr(2),a.pad(t.getMonth()+1,2),a.pad(t.getDate(),2)].join("")),expiry:function(){var e=new Date;return[(e.getFullYear()+5).toString().substr(2),a.pad(e.getMonth()+1,2),a.pad(e.getDate(),2)].join("")}(),gender:"Female"===this.gender()?"F":"M",issuer:"GBR",nationality:"GBR"})).issuer,r.last.toUpperCase(),"<<",r.first.toUpperCase(),n(39-(r.last.length+r.first.length+2)),r.passportNumber,i(r.passportNumber),r.nationality,r.dob,i(r.dob),r.gender,r.expiry,i(r.expiry),n(14),i(n(14))].join(""))+i(o.substr(44,10)+o.substr(57,7)+o.substr(65,7))},c.prototype.name=function(e){e=d(e);var t,r=this.first(e),n=this.last(e);return t=e.middle?r+" "+this.first(e)+" "+n:e.middle_initial?r+" "+this.character({alpha:!0,casing:"upper"})+". "+n:r+" "+n,e.prefix&&(t=this.prefix(e)+" "+t),e.suffix&&(t=t+" "+this.suffix(e)),t},c.prototype.name_prefixes=function(e){var t=[{name:"Doctor",abbreviation:"Dr."}];return"male"!==(e=(e=e||"all").toLowerCase())&&"all"!==e||t.push({name:"Mister",abbreviation:"Mr."}),"female"!==e&&"all"!==e||(t.push({name:"Miss",abbreviation:"Miss"}),t.push({name:"Misses",abbreviation:"Mrs."})),t},c.prototype.prefix=function(e){return this.name_prefix(e)},c.prototype.name_prefix=function(e){return(e=d(e,{gender:"all"})).full?this.pick(this.name_prefixes(e.gender)).name:this.pick(this.name_prefixes(e.gender)).abbreviation},c.prototype.HIDN=function(){var e="";return(e+=this.string({pool:"0123456789",length:6}))+this.string({pool:"ABCDEFGHIJKLMNOPQRSTUVWXYXZ",length:2})},c.prototype.ssn=function(e){var t="1234567890",r=(e=d(e,{ssnFour:!1,dashes:!0})).dashes?"-":"";return e.ssnFour?this.string({pool:t,length:4}):this.string({pool:t,length:3})+r+this.string({pool:t,length:2})+r+this.string({pool:t,length:4})},c.prototype.aadhar=function(e){var t="1234567890",r=(e=d(e,{onlyLastFour:!1,separatedByWhiteSpace:!0})).separatedByWhiteSpace?" ":"";return e.onlyLastFour?this.string({pool:t,length:4}):this.string({pool:t,length:4})+r+this.string({pool:t,length:4})+r+this.string({pool:t,length:4})},c.prototype.name_suffixes=function(){return[{name:"Doctor of Osteopathic Medicine",abbreviation:"D.O."},{name:"Doctor of Philosophy",abbreviation:"Ph.D."},{name:"Esquire",abbreviation:"Esq."},{name:"Junior",abbreviation:"Jr."},{name:"Juris Doctor",abbreviation:"J.D."},{name:"Master of Arts",abbreviation:"M.A."},{name:"Master of Business Administration",abbreviation:"M.B.A."},{name:"Master of Science",abbreviation:"M.S."},{name:"Medical Doctor",abbreviation:"M.D."},{name:"Senior",abbreviation:"Sr."},{name:"The Third",abbreviation:"III"},{name:"The Fourth",abbreviation:"IV"},{name:"Bachelor of Engineering",abbreviation:"B.E"},{name:"Bachelor of Technology",abbreviation:"B.TECH"}]},c.prototype.suffix=function(e){return this.name_suffix(e)},c.prototype.name_suffix=function(e){return(e=d(e)).full?this.pick(this.name_suffixes()).name:this.pick(this.name_suffixes()).abbreviation},c.prototype.nationalities=function(){return this.get("nationalities")},c.prototype.nationality=function(){return this.pick(this.nationalities()).name},c.prototype.android_id=function(){return"APA91"+this.string({pool:"0123456789abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_",length:178})},c.prototype.apple_token=function(){return this.string({pool:"abcdef1234567890",length:64})},c.prototype.wp8_anid2=function(){return g(this.hash({length:32}))},c.prototype.wp7_anid=function(){return"A="+this.guid().replace(/-/g,"").toUpperCase()+"&E="+this.hash({length:3})+"&W="+this.integer({min:0,max:9})},c.prototype.bb_pin=function(){return this.hash({length:8})},c.prototype.avatar=function(e){var t={protocol:null,email:null,fileExtension:null,size:null,fallback:null,rating:null};if(e)if("string"==typeof e)t.email=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.email=this.email(),e={};return(t=d(e,t)).email||(t.email=this.email()),t.protocol={http:"http",https:"https"}[t.protocol]?t.protocol+":":"",t.size=parseInt(t.size,0)?t.size:"",t.rating={g:"g",pg:"pg",r:"r",x:"x"}[t.rating]?t.rating:"",t.fallback={404:"404",mm:"mm",identicon:"identicon",monsterid:"monsterid",wavatar:"wavatar",retro:"retro",blank:"blank"}[t.fallback]?t.fallback:"",t.fileExtension={bmp:"bmp",gif:"gif",jpg:"jpg",png:"png"}[t.fileExtension]?t.fileExtension:"",t.protocol+"//www.gravatar.com/avatar/"+this.bimd5.md5(t.email)+(t.fileExtension?"."+t.fileExtension:"")+(t.size||t.rating||t.fallback?"?":"")+(t.size?"&s="+t.size.toString():"")+(t.rating?"&r="+t.rating:"")+(t.fallback?"&d="+t.fallback:"")},c.prototype.color=function(e){function t(e,t){return[e,e,e].join(t||"")}function r(e){var r=e?"rgba":"rgb",n=e?","+this.floating({min:h,max:m}):"";return r+"("+(i?t(this.natural({min:a,max:s}),","):this.natural({min:c,max:p})+","+this.natural({min:g,max:f})+","+this.natural({max:255}))+n+")"}function n(r,n,o){var d=o?"#":"",h="";return i?(h=t(this.pad(this.hex({min:a,max:s}),2)),"shorthex"===e.format&&(h=t(this.hex({min:0,max:15})))):h="shorthex"===e.format?this.pad(this.hex({min:Math.floor(u/16),max:Math.floor(l/16)}),1)+this.pad(this.hex({min:Math.floor(c/16),max:Math.floor(p/16)}),1)+this.pad(this.hex({min:Math.floor(g/16),max:Math.floor(f/16)}),1):void 0!==u||void 0!==l||void 0!==c||void 0!==p||void 0!==g||void 0!==f?this.pad(this.hex({min:u,max:l}),2)+this.pad(this.hex({min:c,max:p}),2)+this.pad(this.hex({min:g,max:f}),2):this.pad(this.hex({min:a,max:s}),2)+this.pad(this.hex({min:a,max:s}),2)+this.pad(this.hex({min:a,max:s}),2),d+h}var o,i=(e=d(e,{format:this.pick(["hex","shorthex","rgb","rgba","0x","name"]),grayscale:!1,casing:"lower",min:0,max:255,min_red:void 0,max_red:void 0,min_green:void 0,max_green:void 0,min_blue:void 0,max_blue:void 0,min_alpha:0,max_alpha:1})).grayscale,a=e.min,s=e.max,u=e.min_red,l=e.max_red,c=e.min_green,p=e.max_green,g=e.min_blue,f=e.max_blue,h=e.min_alpha,m=e.max_alpha;if(void 0===e.min_red&&(u=a),void 0===e.max_red&&(l=s),void 0===e.min_green&&(c=a),void 0===e.max_green&&(p=s),void 0===e.min_blue&&(g=a),void 0===e.max_blue&&(f=s),void 0===e.min_alpha&&(h=0),void 0===e.max_alpha&&(m=1),i&&0===a&&255===s&&void 0!==u&&void 0!==l&&(a=(u+c+g)/3,s=(l+p+f)/3),"hex"===e.format)o=n.call(this,2,6,!0);else if("shorthex"===e.format)o=n.call(this,1,3,!0);else if("rgb"===e.format)o=r.call(this,!1);else if("rgba"===e.format)o=r.call(this,!0);else{if("0x"!==e.format){if("name"===e.format)return this.pick(this.get("colorNames"));throw new RangeError('Invalid format provided. Please provide one of "hex", "shorthex", "rgb", "rgba", "0x" or "name".')}o="0x"+n.call(this,2,6)}return"upper"===e.casing&&(o=o.toUpperCase()),o},c.prototype.domain=function(e){return e=d(e),this.word()+"."+(e.tld||this.tld())},c.prototype.email=function(e){return e=d(e),this.word({length:e.length})+"@"+(e.domain||this.domain())},c.prototype.fbid=function(){return"10000"+this.string({pool:"1234567890",length:11})},c.prototype.google_analytics=function(){return"UA-"+this.pad(this.natural({max:999999}),6)+"-"+this.pad(this.natural({max:99}),2)},c.prototype.hashtag=function(){return"#"+this.word()},c.prototype.ip=function(){return this.natural({min:1,max:254})+"."+this.natural({max:255})+"."+this.natural({max:255})+"."+this.natural({min:1,max:254})},c.prototype.ipv6=function(){return this.n(this.hash,8,{length:4}).join(":")},c.prototype.klout=function(){return this.natural({min:1,max:99})},c.prototype.semver=function(e){e=d(e,{include_prerelease:!0});var t=this.pickone(["^","~","<",">","<=",">=","="]);e.range&&(t=e.range);var r="";return e.include_prerelease&&(r=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),t+this.rpg("3d10").join(".")+r},c.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},c.prototype.tld=function(){return this.pick(this.tlds())},c.prototype.twitter=function(){return"@"+this.word()},c.prototype.url=function(e){var t=(e=d(e,{protocol:"http",domain:this.domain(e),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(e.extensions):"",r=e.domain_prefix?e.domain_prefix+"."+e.domain:e.domain;return e.protocol+"://"+r+"/"+e.path+t},c.prototype.port=function(){return this.integer({min:0,max:65535})},c.prototype.locale=function(e){return(e=d(e)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},c.prototype.locales=function(e){return(e=d(e)).region?this.get("locale_regions"):this.get("locale_languages")},c.prototype.loremPicsum=function(e){var t=(e=d(e,{width:500,height:500,greyscale:!1,blurred:!1})).greyscale?"g/":"",r=e.blurred?"/?blur":"/?random";return"https://picsum.photos/"+t+e.width+"/"+e.height+r},c.prototype.address=function(e){return e=d(e),this.natural({min:5,max:2e3})+" "+this.street(e)},c.prototype.altitude=function(e){return e=d(e,{fixed:5,min:0,max:8848}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},c.prototype.areacode=function(e){e=d(e,{parens:!0});var t=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?"("+t+")":t},c.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},c.prototype.coordinates=function(e){return this.latitude(e)+", "+this.longitude(e)},c.prototype.countries=function(){return this.get("countries")},c.prototype.country=function(e){e=d(e);var t=this.pick(this.countries());return e.raw?t:e.full?t.name:t.abbreviation},c.prototype.depth=function(e){return e=d(e,{fixed:5,min:-10994,max:0}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},c.prototype.geohash=function(e){return e=d(e,{length:7}),this.string({length:e.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},c.prototype.geojson=function(e){return this.latitude(e)+", "+this.longitude(e)+", "+this.altitude(e)},c.prototype.latitude=function(e){const[t,r,n]=["ddm","dms","dd"],o=(e=d(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:89,fixed:4}:{fixed:5,min:-90,max:90,format:n})).format.toLowerCase();switch(o!==t&&o!==r||(p(e.min<0||e.min>89,"Chance: Min specified is out of range. Should be between 0 - 89"),p(e.max<0||e.max>89,"Chance: Max specified is out of range. Should be between 0 - 89"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),o){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59,fixed:e.fixed})+"”";case n:default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},c.prototype.longitude=function(e){const[t,r,n]=["ddm","dms","dd"],o=(e=d(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:179,fixed:4}:{fixed:5,min:-180,max:180,format:n})).format.toLowerCase();switch(o!==t&&o!==r||(p(e.min<0||e.min>179,"Chance: Min specified is out of range. Should be between 0 - 179"),p(e.max<0||e.max>179,"Chance: Max specified is out of range. Should be between 0 - 179"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),o){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59.9999,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59.9999,fixed:e.fixed})+"”";case n:default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},c.prototype.phone=function(e){var t,r,n=this,o=function(e){var t=[];return e.sections.forEach((function(e){t.push(n.string({pool:"0123456789",length:e}))})),e.area+t.join(" ")};switch((e=d(e,{formatted:!0,country:"us",mobile:!1})).formatted||(e.parens=!1),e.country){case"fr":e.mobile?(t=this.pick(["06","07"])+n.string({pool:"0123456789",length:8}),r=e.formatted?t.match(/../g).join(" "):t):(t=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+n.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+n.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+n.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+n.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+n.string({pool:"0123456789",length:6}),"09"+n.string({pool:"0123456789",length:8})]),r=e.formatted?t.match(/../g).join(" "):t);break;case"uk":e.mobile?(t=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),r=e.formatted?o(t):o(t).replace(" ","")):(t=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),r=e.formatted?o(t):o(t).replace(" ","","g"));break;case"za":e.mobile?(t=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+n.string({pool:"0123456789",length:6}),"06"+n.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t):(t=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+n.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+n.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+n.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t);break;case"us":var i=this.areacode(e).toString(),a=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),s=this.natural({min:1e3,max:9999}).toString();r=e.formatted?i+" "+a+"-"+s:i+a+s;break;case"br":var u,l=this.pick(["11","12","13","14","15","16","17","18","19","21","22","24","27","28","31","32","33","34","35","37","38","41","42","43","44","45","46","47","48","49","51","53","54","55","61","62","63","64","65","66","67","68","69","71","73","74","75","77","79","81","82","83","84","85","86","87","88","89","91","92","93","94","95","96","97","98","99"]);u=e.mobile?"9"+n.string({pool:"0123456789",length:4}):this.natural({min:2e3,max:5999}).toString();var c=n.string({pool:"0123456789",length:4});r=e.formatted?"("+l+") "+u+"-"+c:l+u+c}return r},c.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},c.prototype.postcode=function(){return this.pick(this.get("postcodeAreas")).code+this.natural({max:9})+(this.bool()?this.character({alpha:!0,casing:"upper"}):"")+" "+(this.natural({max:9})+(this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})))},c.prototype.counties=function(e){return e=d(e,{country:"uk"}),this.get("counties")[e.country.toLowerCase()]},c.prototype.county=function(e){return this.pick(this.counties(e)).name},c.prototype.provinces=function(e){return e=d(e,{country:"ca"}),this.get("provinces")[e.country.toLowerCase()]},c.prototype.province=function(e){return e&&e.full?this.pick(this.provinces(e)).name:this.pick(this.provinces(e)).abbreviation},c.prototype.state=function(e){return e&&e.full?this.pick(this.states(e)).name:this.pick(this.states(e)).abbreviation},c.prototype.states=function(e){var t;switch((e=d(e,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var r=this.get("us_states_and_dc"),n=this.get("territories"),o=this.get("armed_forces");t=[],e.us_states_and_dc&&(t=t.concat(r)),e.territories&&(t=t.concat(n)),e.armed_forces&&(t=t.concat(o));break;case"it":case"mx":t=this.get("country_regions")[e.country.toLowerCase()];break;case"uk":t=this.get("counties")[e.country.toLowerCase()]}return t},c.prototype.street=function(e){var t;switch((e=d(e,{country:"us",syllables:2})).country.toLowerCase()){case"us":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t+=" ",t+=e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name;break;case"it":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t=(e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name)+" "+t}return t},c.prototype.street_suffix=function(e){return e=d(e,{country:"us"}),this.pick(this.street_suffixes(e))},c.prototype.street_suffixes=function(e){return e=d(e,{country:"us"}),this.get("street_suffixes")[e.country.toLowerCase()]},c.prototype.zip=function(e){var t=this.n(this.natural,5,{max:9});return e&&!0===e.plusfour&&(t.push("-"),t=t.concat(this.n(this.natural,4,{max:9}))),t.join("")},c.prototype.ampm=function(){return this.bool()?"am":"pm"},c.prototype.date=function(e){var t,r;if(e&&(e.min||e.max)){var n=void 0!==(e=d(e,{american:!0,string:!1})).min?e.min.getTime():1,o=void 0!==e.max?e.max.getTime():864e13;r=new Date(this.integer({min:n,max:o}))}else{var i=this.month({raw:!0}),a=i.days;e&&e.month&&(a=this.get("months")[(e.month%12+12)%12].days),e=d(e,{year:parseInt(this.year(),10),month:i.numeric-1,day:this.natural({min:1,max:a}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),r=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}return t=e.american?r.getMonth()+1+"/"+r.getDate()+"/"+r.getFullYear():r.getDate()+"/"+(r.getMonth()+1)+"/"+r.getFullYear(),e.string?t:r},c.prototype.hammertime=function(e){return this.date(e).getTime()},c.prototype.hour=function(e){return p((e=d(e,{min:e&&e.twentyfour?0:1,max:e&&e.twentyfour?23:12})).min<0,"Chance: Min cannot be less than 0."),p(e.twentyfour&&e.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),p(!e.twentyfour&&e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},c.prototype.millisecond=function(){return this.natural({max:999})},c.prototype.minute=c.prototype.second=function(e){return p((e=d(e,{min:0,max:59})).min<0,"Chance: Min cannot be less than 0."),p(e.max>59,"Chance: Max cannot be greater than 59."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},c.prototype.month=function(e){p((e=d(e,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),p(e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=this.pick(this.months().slice(e.min-1,e.max));return e.raw?t:t.name},c.prototype.months=function(){return this.get("months")},c.prototype.second=function(){return this.natural({max:59})},c.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},c.prototype.weekday=function(e){var t=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(e=d(e,{weekday_only:!1})).weekday_only||(t.push("Saturday"),t.push("Sunday")),this.pickone(t)},c.prototype.year=function(e){return(e=d(e,{min:(new Date).getFullYear()})).max=void 0!==e.max?e.max:e.min+100,this.natural(e).toString()},c.prototype.cc=function(e){var t,r,n;return r=(t=(e=d(e)).type?this.cc_type({name:e.type,raw:!0}):this.cc_type({raw:!0})).prefix.split(""),n=t.length-t.prefix.length-1,(r=r.concat(this.n(this.integer,n,{min:0,max:9}))).push(this.luhn_calculate(r.join(""))),r.join("")},c.prototype.cc_types=function(){return this.get("cc_types")},c.prototype.cc_type=function(e){e=d(e);var t=this.cc_types(),r=null;if(e.name){for(var n=0;n<t.length;n++)if(t[n].name===e.name||t[n].short_name===e.name){r=t[n];break}if(null===r)throw new RangeError("Chance: Credit card type '"+e.name+"' is not supported")}else r=this.pick(t);return e.raw?r:r.name},c.prototype.currency_types=function(){return this.get("currency_types")},c.prototype.currency=function(){return this.pick(this.currency_types())},c.prototype.timezones=function(){return this.get("timezones")},c.prototype.timezone=function(){return this.pick(this.timezones())},c.prototype.currency_pair=function(e){var t=this.unique(this.currency,2,{comparator:function(e,t){return e.reduce((function(e,r){return e||r.code===t.code}),!1)}});return e?t[0].code+"/"+t[1].code:t},c.prototype.dollar=function(e){e=d(e,{max:1e4,min:0});var t=this.floating({min:e.min,max:e.max,fixed:2}).toString(),r=t.split(".")[1];return void 0===r?t+=".00":r.length<2&&(t+="0"),t<0?"-$"+t.replace("-",""):"$"+t},c.prototype.euro=function(e){return Number(this.dollar(e).replace("$","")).toLocaleString()+"€"},c.prototype.exp=function(e){e=d(e);var t={};return t.year=this.exp_year(),t.year===(new Date).getFullYear().toString()?t.month=this.exp_month({future:!0}):t.month=this.exp_month(),e.raw?t:t.month+"/"+t.year},c.prototype.exp_month=function(e){e=d(e);var t,r,n=(new Date).getMonth()+1;if(e.future&&12!==n)do{t=this.month({raw:!0}).numeric,r=parseInt(t,10)}while(r<=n);else t=this.month({raw:!0}).numeric;return t},c.prototype.exp_year=function(){var e=(new Date).getMonth()+1,t=(new Date).getFullYear();return this.year({min:12===e?t+1:t,max:t+10})},c.prototype.vat=function(e){switch((e=d(e,{country:"it"})).country.toLowerCase()){case"it":return this.it_vat()}},c.prototype.iban=function(){return this.string({length:2,pool:"ABCDEFGHIJKLMNOPQRSTUVWXYZ"})+this.pad(this.integer({min:0,max:99}),2)+this.string({length:4,pool:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"})+this.pad(this.natural(),this.natural({min:6,max:26}))},c.prototype.it_vat=function(){var e=this.natural({min:1,max:18e5});return(e=this.pad(e,7)+this.pad(this.pick(this.provinces({country:"it"})).code,3))+this.luhn_calculate(e)},c.prototype.cf=function(e){var t=(e=e||{}).gender?e.gender:this.gender(),r=e.first?e.first:this.first({gender:t,nationality:"it"}),n=e.last?e.last:this.last({nationality:"it"}),o=e.birthday?e.birthday:this.birthday(),i=e.city?e.city:this.pickone(["A","B","C","D","E","F","G","H","I","L","M","Z"])+this.pad(this.natural({max:999}),3),a=[],s=function(e,t){var r,n=[];return e.length<3?n=e.split("").concat("XXX".split("")).splice(0,3):((r=e.toUpperCase().split("").map((function(e){return-1!=="BCDFGHJKLMNPRSTVWZ".indexOf(e)?e:void 0})).join("")).length>3&&(r=t?r.substr(0,3):r[0]+r.substr(2,2)),r.length<3&&(n=r,r=e.toUpperCase().split("").map((function(e){return-1!=="AEIOU".indexOf(e)?e:void 0})).join("").substr(0,3-n.length)),n+=r),n};return a=a.concat(s(n,!0),s(r),function(e,t,r){return e.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][e.getMonth()]+r.pad(e.getDate()+("female"===t.toLowerCase()?40:0),2)}(o,t,this),i.toUpperCase().split("")).join(""),(a+=function(e){for(var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",o=0,i=0;i<15;i++)o+=i%2!=0?n.indexOf(r[t.indexOf(e[i])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(r[t.indexOf(e[i])]);return n[o%26]}(a.toUpperCase())).toUpperCase()},c.prototype.pl_pesel=function(){for(var e=this.natural({min:1,max:9999999999}),t=this.pad(e,10).split(""),r=0;r<t.length;r++)t[r]=parseInt(t[r]);var n=(1*t[0]+3*t[1]+7*t[2]+9*t[3]+1*t[4]+3*t[5]+7*t[6]+9*t[7]+1*t[8]+3*t[9])%10;return 0!==n&&(n=10-n),t.join("")+n},c.prototype.pl_nip=function(){for(var e=this.natural({min:1,max:999999999}),t=this.pad(e,9).split(""),r=0;r<t.length;r++)t[r]=parseInt(t[r]);var n=(6*t[0]+5*t[1]+7*t[2]+2*t[3]+3*t[4]+4*t[5]+5*t[6]+6*t[7]+7*t[8])%11;return 10===n?this.pl_nip():t.join("")+n},c.prototype.pl_regon=function(){for(var e=this.natural({min:1,max:99999999}),t=this.pad(e,8).split(""),r=0;r<t.length;r++)t[r]=parseInt(t[r]);var n=(8*t[0]+9*t[1]+2*t[2]+3*t[3]+4*t[4]+5*t[5]+6*t[6]+7*t[7])%11;return 10===n&&(n=0),t.join("")+n},c.prototype.note=function(e){e=d(e,{notes:"flatKey"});var t={naturals:["C","D","E","F","G","A","B"],flats:["D♭","E♭","G♭","A♭","B♭"],sharps:["C♯","D♯","F♯","G♯","A♯"]};return t.all=t.naturals.concat(t.flats.concat(t.sharps)),t.flatKey=t.naturals.concat(t.flats),t.sharpKey=t.naturals.concat(t.sharps),this.pickone(t[e.notes])},c.prototype.midi_note=function(e){return e=d(e,{min:0,max:127}),this.integer({min:e.min,max:e.max})},c.prototype.chord_quality=function(e){var t=["maj","min","aug","dim"];return(e=d(e,{jazz:!0})).jazz&&(t=["maj7","min7","7","sus","dim","ø"]),this.pickone(t)},c.prototype.chord=function(e){return e=d(e),this.note(e)+this.chord_quality(e)},c.prototype.tempo=function(e){return e=d(e,{min:40,max:320}),this.integer({min:e.min,max:e.max})},c.prototype.coin=function(){return this.bool()?"heads":"tails"},c.prototype.d4=y({min:1,max:4}),c.prototype.d6=y({min:1,max:6}),c.prototype.d8=y({min:1,max:8}),c.prototype.d10=y({min:1,max:10}),c.prototype.d12=y({min:1,max:12}),c.prototype.d20=y({min:1,max:20}),c.prototype.d30=y({min:1,max:30}),c.prototype.d100=y({min:1,max:100}),c.prototype.rpg=function(e,t){if(t=d(t),e){var r=e.toLowerCase().split("d"),n=[];if(2!==r.length||!parseInt(r[0],10)||!parseInt(r[1],10))throw new Error("Chance: Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die");for(var o=r[0];o>0;o--)n[o-1]=this.natural({min:1,max:r[1]});return void 0!==t.sum&&t.sum?n.reduce((function(e,t){return e+t})):n}throw new RangeError("Chance: A type of die roll must be included")},c.prototype.guid=function(e){e=d(e,{version:5});var t="abcdef1234567890";return this.string({pool:t,length:8})+"-"+this.string({pool:t,length:4})+"-"+e.version+this.string({pool:t,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:t,length:3})+"-"+this.string({pool:t,length:12})},c.prototype.hash=function(e){var t="upper"===(e=d(e,{length:40,casing:"lower"})).casing?s.toUpperCase():s;return this.string({pool:t,length:e.length})},c.prototype.luhn_check=function(e){var t=e.toString();return+t.substring(t.length-1)===this.luhn_calculate(+t.substring(0,t.length-1))},c.prototype.luhn_calculate=function(e){for(var t,r=e.toString().split("").reverse(),n=0,o=0,i=r.length;i>o;++o)t=+r[o],o%2==0&&(t*=2)>9&&(t-=9),n+=t;return 9*n%10},c.prototype.md5=function(e){var t={str:"",key:null,raw:!1};if(e)if("string"==typeof e)t.str=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.str=this.string(),e={};if(!(t=d(e,t)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(t.str,t.key,t.raw)},c.prototype.file=function(e){var t,r=e||{},n="fileExtension",o=Object.keys(this.get("fileExtension"));if(t=this.word({length:r.length}),r.extension)return t+"."+r.extension;if(r.extensions){if(Array.isArray(r.extensions))return t+"."+this.pickone(r.extensions);if(r.extensions.constructor===Object){var i=r.extensions,a=Object.keys(i);return t+"."+this.pickone(i[this.pickone(a)])}throw new Error("Chance: Extensions must be an Array or Object")}if(r.fileType){var s=r.fileType;if(-1!==o.indexOf(s))return t+"."+this.pickone(this.get(n)[s]);throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return t+"."+this.pickone(this.get(n)[this.pickone(o)])};var b={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"],fr:["Aaron","Abdon","Abel","Abélard","Abelin","Abondance","Abraham","Absalon","Acace","Achaire","Achille","Adalard","Adalbald","Adalbéron","Adalbert","Adalric","Adam","Adegrin","Adel","Adelin","Andelin","Adelphe","Adam","Adéodat","Adhémar","Adjutor","Adolphe","Adonis","Adon","Adrien","Agapet","Agathange","Agathon","Agilbert","Agénor","Agnan","Aignan","Agrippin","Aimable","Aimé","Alain","Alban","Albin","Aubin","Albéric","Albert","Albertet","Alcibiade","Alcide","Alcée","Alcime","Aldonce","Aldric","Aldéric","Aleaume","Alexandre","Alexis","Alix","Alliaume","Aleaume","Almine","Almire","Aloïs","Alphée","Alphonse","Alpinien","Alverède","Amalric","Amaury","Amandin","Amant","Ambroise","Amédée","Amélien","Amiel","Amour","Anaël","Anastase","Anatole","Ancelin","Andéol","Andoche","André","Andoche","Ange","Angelin","Angilbe","Anglebert","Angoustan","Anicet","Anne","Annibal","Ansbert","Anselme","Anthelme","Antheaume","Anthime","Antide","Antoine","Antonius","Antonin","Apollinaire","Apollon","Aquilin","Arcade","Archambaud","Archambeau","Archange","Archibald","Arian","Ariel","Ariste","Aristide","Armand","Armel","Armin","Arnould","Arnaud","Arolde","Arsène","Arsinoé","Arthaud","Arthème","Arthur","Ascelin","Athanase","Aubry","Audebert","Audouin","Audran","Audric","Auguste","Augustin","Aurèle","Aurélien","Aurian","Auxence","Axel","Aymard","Aymeric","Aymon","Aymond","Balthazar","Baptiste","Barnabé","Barthélemy","Bartimée","Basile","Bastien","Baudouin","Bénigne","Benjamin","Benoît","Bérenger","Bérard","Bernard","Bertrand","Blaise","Bon","Boniface","Bouchard","Brice","Brieuc","Bruno","Brunon","Calixte","Calliste","Camélien","Camille","Camillien","Candide","Caribert","Carloman","Cassandre","Cassien","Cédric","Céleste","Célestin","Célien","Césaire","César","Charles","Charlemagne","Childebert","Chilpéric","Chrétien","Christian","Christodule","Christophe","Chrysostome","Clarence","Claude","Claudien","Cléandre","Clément","Clotaire","Côme","Constance","Constant","Constantin","Corentin","Cyprien","Cyriaque","Cyrille","Cyril","Damien","Daniel","David","Delphin","Denis","Désiré","Didier","Dieudonné","Dimitri","Dominique","Dorian","Dorothée","Edgard","Edmond","Édouard","Éleuthère","Élie","Élisée","Émeric","Émile","Émilien","Emmanuel","Enguerrand","Épiphane","Éric","Esprit","Ernest","Étienne","Eubert","Eudes","Eudoxe","Eugène","Eusèbe","Eustache","Évariste","Évrard","Fabien","Fabrice","Falba","Félicité","Félix","Ferdinand","Fiacre","Fidèle","Firmin","Flavien","Flodoard","Florent","Florentin","Florestan","Florian","Fortuné","Foulques","Francisque","François","Français","Franciscus","Francs","Frédéric","Fulbert","Fulcran","Fulgence","Gabin","Gabriel","Gaël","Garnier","Gaston","Gaspard","Gatien","Gaud","Gautier","Gédéon","Geoffroy","Georges","Géraud","Gérard","Gerbert","Germain","Gervais","Ghislain","Gilbert","Gilles","Girart","Gislebert","Gondebaud","Gonthier","Gontran","Gonzague","Grégoire","Guérin","Gui","Guillaume","Gustave","Guy","Guyot","Hardouin","Hector","Hédelin","Hélier","Henri","Herbert","Herluin","Hervé","Hilaire","Hildebert","Hincmar","Hippolyte","Honoré","Hubert","Hugues","Innocent","Isabeau","Isidore","Jacques","Japhet","Jason","Jean","Jeannel","Jeannot","Jérémie","Jérôme","Joachim","Joanny","Job","Jocelyn","Joël","Johan","Jonas","Jonathan","Joseph","Josse","Josselin","Jourdain","Jude","Judicaël","Jules","Julien","Juste","Justin","Lambert","Landry","Laurent","Lazare","Léandre","Léon","Léonard","Léopold","Leu","Loup","Leufroy","Libère","Liétald","Lionel","Loïc","Longin","Lorrain","Lorraine","Lothaire","Louis","Loup","Luc","Lucas","Lucien","Ludolphe","Ludovic","Macaire","Malo","Mamert","Manassé","Marc","Marceau","Marcel","Marcelin","Marius","Marseille","Martial","Martin","Mathurin","Matthias","Mathias","Matthieu","Maugis","Maurice","Mauricet","Maxence","Maxime","Maximilien","Mayeul","Médéric","Melchior","Mence","Merlin","Mérovée","Michaël","Michel","Moïse","Morgan","Nathan","Nathanaël","Narcisse","Néhémie","Nestor","Nestor","Nicéphore","Nicolas","Noé","Noël","Norbert","Normand","Normands","Octave","Odilon","Odon","Oger","Olivier","Oury","Pacôme","Palémon","Parfait","Pascal","Paterne","Patrice","Paul","Pépin","Perceval","Philémon","Philibert","Philippe","Philothée","Pie","Pierre","Pierrick","Prosper","Quentin","Raoul","Raphaël","Raymond","Régis","Réjean","Rémi","Renaud","René","Reybaud","Richard","Robert","Roch","Rodolphe","Rodrigue","Roger","Roland","Romain","Romuald","Roméo","Rome","Ronan","Roselin","Salomon","Samuel","Savin","Savinien","Scholastique","Sébastien","Séraphin","Serge","Séverin","Sidoine","Sigebert","Sigismond","Silvère","Simon","Siméon","Sixte","Stanislas","Stéphane","Stephan","Sylvain","Sylvestre","Tancrède","Tanguy","Taurin","Théodore","Théodose","Théophile","Théophraste","Thibault","Thibert","Thierry","Thomas","Timoléon","Timothée","Titien","Tonnin","Toussaint","Trajan","Tristan","Turold","Tim","Ulysse","Urbain","Valentin","Valère","Valéry","Venance","Venant","Venceslas","Vianney","Victor","Victorien","Victorin","Vigile","Vincent","Vital","Vitalien","Vivien","Waleran","Wandrille","Xavier","Xénophon","Yves","Zacharie","Zaché","Zéphirin"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"],fr:["Abdon","Abel","Abigaëlle","Abigaïl","Acacius","Acanthe","Adalbert","Adalsinde","Adegrine","Adélaïde","Adèle","Adélie","Adeline","Adeltrude","Adolphe","Adonis","Adrastée","Adrehilde","Adrienne","Agathe","Agilbert","Aglaé","Aignan","Agneflète","Agnès","Agrippine","Aimé","Alaine","Alaïs","Albane","Albérade","Alberte","Alcide","Alcine","Alcyone","Aldegonde","Aleth","Alexandrine","Alexine","Alice","Aliénor","Aliette","Aline","Alix","Alizé","Aloïse","Aloyse","Alphonsine","Althée","Amaliane","Amalthée","Amande","Amandine","Amant","Amarande","Amaranthe","Amaryllis","Ambre","Ambroisie","Amélie","Améthyste","Aminte","Anaël","Anaïs","Anastasie","Anatole","Ancelin","Andrée","Anémone","Angadrême","Angèle","Angeline","Angélique","Angilbert","Anicet","Annabelle","Anne","Annette","Annick","Annie","Annonciade","Ansbert","Anstrudie","Anthelme","Antigone","Antoinette","Antonine","Aphélie","Apolline","Apollonie","Aquiline","Arabelle","Arcadie","Archange","Argine","Ariane","Aricie","Ariel","Arielle","Arlette","Armance","Armande","Armandine","Armelle","Armide","Armelle","Armin","Arnaud","Arsène","Arsinoé","Artémis","Arthur","Ascelin","Ascension","Assomption","Astarté","Astérie","Astrée","Astrid","Athalie","Athanasie","Athina","Aube","Albert","Aude","Audrey","Augustine","Aure","Aurélie","Aurélien","Aurèle","Aurore","Auxence","Aveline","Abigaëlle","Avoye","Axelle","Aymard","Azalée","Adèle","Adeline","Barbe","Basilisse","Bathilde","Béatrice","Béatrix","Bénédicte","Bérengère","Bernadette","Berthe","Bertille","Beuve","Blanche","Blanc","Blandine","Brigitte","Brune","Brunehilde","Callista","Camille","Capucine","Carine","Caroline","Cassandre","Catherine","Cécile","Céleste","Célestine","Céline","Chantal","Charlène","Charline","Charlotte","Chloé","Christelle","Christiane","Christine","Claire","Clara","Claude","Claudine","Clarisse","Clémence","Clémentine","Cléo","Clio","Clotilde","Coline","Conception","Constance","Coralie","Coraline","Corentine","Corinne","Cyrielle","Daniel","Daniel","Daphné","Débora","Delphine","Denise","Diane","Dieudonné","Dominique","Doriane","Dorothée","Douce","Édith","Edmée","Éléonore","Éliane","Élia","Éliette","Élisabeth","Élise","Ella","Élodie","Éloïse","Elsa","Émeline","Émérance","Émérentienne","Émérencie","Émilie","Emma","Emmanuelle","Emmelie","Ernestine","Esther","Estelle","Eudoxie","Eugénie","Eulalie","Euphrasie","Eusébie","Évangéline","Eva","Ève","Évelyne","Fanny","Fantine","Faustine","Félicie","Fernande","Flavie","Fleur","Flore","Florence","Florie","Fortuné","France","Francia","Françoise","Francine","Gabrielle","Gaëlle","Garance","Geneviève","Georgette","Gerberge","Germaine","Gertrude","Gisèle","Guenièvre","Guilhemine","Guillemette","Gustave","Gwenael","Hélène","Héloïse","Henriette","Hermine","Hermione","Hippolyte","Honorine","Hortense","Huguette","Ines","Irène","Irina","Iris","Isabeau","Isabelle","Iseult","Isolde","Ismérie","Jacinthe","Jacqueline","Jade","Janine","Jeanne","Jocelyne","Joëlle","Joséphine","Judith","Julia","Julie","Jules","Juliette","Justine","Katy","Kathy","Katie","Laura","Laure","Laureline","Laurence","Laurene","Lauriane","Laurianne","Laurine","Léa","Léna","Léonie","Léon","Léontine","Lorraine","Lucie","Lucienne","Lucille","Ludivine","Lydie","Lydie","Megane","Madeleine","Magali","Maguelone","Mallaury","Manon","Marceline","Margot","Marguerite","Marianne","Marie","Myriam","Marie","Marine","Marion","Marlène","Marthe","Martine","Mathilde","Maud","Maureen","Mauricette","Maxime","Mélanie","Melissa","Mélissandre","Mélisande","Mélodie","Michel","Micheline","Mireille","Miriam","Moïse","Monique","Morgane","Muriel","Mylène","Nadège","Nadine","Nathalie","Nicole","Nicolette","Nine","Noël","Noémie","Océane","Odette","Odile","Olive","Olivia","Olympe","Ombline","Ombeline","Ophélie","Oriande","Oriane","Ozanne","Pascale","Pascaline","Paule","Paulette","Pauline","Priscille","Prisca","Prisque","Pécine","Pélagie","Pénélope","Perrine","Pétronille","Philippine","Philomène","Philothée","Primerose","Prudence","Pulchérie","Quentine","Quiéta","Quintia","Quintilla","Rachel","Raphaëlle","Raymonde","Rebecca","Régine","Réjeanne","René","Rita","Rita","Rolande","Romane","Rosalie","Rose","Roseline","Sabine","Salomé","Sandra","Sandrine","Sarah","Ségolène","Séverine","Sibylle","Simone","Sixt","Solange","Soline","Solène","Sophie","Stéphanie","Suzanne","Sylvain","Sylvie","Tatiana","Thaïs","Théodora","Thérèse","Tiphaine","Ursule","Valentine","Valérie","Véronique","Victoire","Victorine","Vinciane","Violette","Virginie","Viviane","Xavière","Yolande","Ysaline","Yvette","Yvonne","Zélie","Zita","Zoé"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"],uk:["Smith","Jones","Williams","Taylor","Brown","Davies","Evans","Wilson","Thomas","Johnson","Roberts","Robinson","Thompson","Wright","Walker","White","Edwards","Hughes","Green","Hall","Lewis","Harris","Clarke","Patel","Jackson","Wood","Turner","Martin","Cooper","Hill","Ward","Morris","Moore","Clark","Lee","King","Baker","Harrison","Morgan","Allen","James","Scott","Phillips","Watson","Davis","Parker","Price","Bennett","Young","Griffiths","Mitchell","Kelly","Cook","Carter","Richardson","Bailey","Collins","Bell","Shaw","Murphy","Miller","Cox","Richards","Khan","Marshall","Anderson","Simpson","Ellis","Adams","Singh","Begum","Wilkinson","Foster","Chapman","Powell","Webb","Rogers","Gray","Mason","Ali","Hunt","Hussain","Campbell","Matthews","Owen","Palmer","Holmes","Mills","Barnes","Knight","Lloyd","Butler","Russell","Barker","Fisher","Stevens","Jenkins","Murray","Dixon","Harvey","Graham","Pearson","Ahmed","Fletcher","Walsh","Kaur","Gibson","Howard","Andrews","Stewart","Elliott","Reynolds","Saunders","Payne","Fox","Ford","Pearce","Day","Brooks","West","Lawrence","Cole","Atkinson","Bradley","Spencer","Gill","Dawson","Ball","Burton","O'brien","Watts","Rose","Booth","Perry","Ryan","Grant","Wells","Armstrong","Francis","Rees","Hayes","Hart","Hudson","Newman","Barrett","Webster","Hunter","Gregory","Carr","Lowe","Page","Marsh","Riley","Dunn","Woods","Parsons","Berry","Stone","Reid","Holland","Hawkins","Harding","Porter","Robertson","Newton","Oliver","Reed","Kennedy","Williamson","Bird","Gardner","Shah","Dean","Lane","Cooke","Bates","Henderson","Parry","Burgess","Bishop","Walton","Burns","Nicholson","Shepherd","Ross","Cross","Long","Freeman","Warren","Nicholls","Hamilton","Byrne","Sutton","Mcdonald","Yates","Hodgson","Robson","Curtis","Hopkins","O'connor","Harper","Coleman","Watkins","Moss","Mccarthy","Chambers","O'neill","Griffin","Sharp","Hardy","Wheeler","Potter","Osborne","Johnston","Gordon","Doyle","Wallace","George","Jordan","Hutchinson","Rowe","Burke","May","Pritchard","Gilbert","Willis","Higgins","Read","Miles","Stevenson","Stephenson","Hammond","Arnold","Buckley","Walters","Hewitt","Barber","Nelson","Slater","Austin","Sullivan","Whitehead","Mann","Frost","Lambert","Stephens","Blake","Akhtar","Lynch","Goodwin","Barton","Woodward","Thomson","Cunningham","Quinn","Barnett","Baxter","Bibi","Clayton","Nash","Greenwood","Jennings","Holt","Kemp","Poole","Gallagher","Bond","Stokes","Tucker","Davidson","Fowler","Heath","Norman","Middleton","Lawson","Banks","French","Stanley","Jarvis","Gibbs","Ferguson","Hayward","Carroll","Douglas","Dickinson","Todd","Barlow","Peters","Lucas","Knowles","Hartley","Miah","Simmons","Morton","Alexander","Field","Morrison","Norris","Townsend","Preston","Hancock","Thornton","Baldwin","Burrows","Briggs","Parkinson","Reeves","Macdonald","Lamb","Black","Abbott","Sanders","Thorpe","Holden","Tomlinson","Perkins","Ashton","Rhodes","Fuller","Howe","Bryant","Vaughan","Dale","Davey","Weston","Bartlett","Whittaker","Davison","Kent","Skinner","Birch","Morley","Daniels","Glover","Howell","Cartwright","Pugh","Humphreys","Goddard","Brennan","Wall","Kirby","Bowen","Savage","Bull","Wong","Dobson","Smart","Wilkins","Kirk","Fraser","Duffy","Hicks","Patterson","Bradshaw","Little","Archer","Warner","Waters","O'sullivan","Farrell","Brookes","Atkins","Kay","Dodd","Bentley","Flynn","John","Schofield","Short","Haynes","Wade","Butcher","Henry","Sanderson","Crawford","Sheppard","Bolton","Coates","Giles","Gould","Houghton","Gibbons","Pratt","Manning","Law","Hooper","Noble","Dyer","Rahman","Clements","Moran","Sykes","Chan","Doherty","Connolly","Joyce","Franklin","Hobbs","Coles","Herbert","Steele","Kerr","Leach","Winter","Owens","Duncan","Naylor","Fleming","Horton","Finch","Fitzgerald","Randall","Carpenter","Marsden","Browne","Garner","Pickering","Hale","Dennis","Vincent","Chadwick","Chandler","Sharpe","Nolan","Lyons","Hurst","Collier","Peacock","Howarth","Faulkner","Rice","Pollard","Welch","Norton","Gough","Sinclair","Blackburn","Bryan","Conway","Power","Cameron","Daly","Allan","Hanson","Gardiner","Boyle","Myers","Turnbull","Wallis","Mahmood","Sims","Swift","Iqbal","Pope","Brady","Chamberlain","Rowley","Tyler","Farmer","Metcalfe","Hilton","Godfrey","Holloway","Parkin","Bray","Talbot","Donnelly","Nixon","Charlton","Benson","Whitehouse","Barry","Hope","Lord","North","Storey","Connor","Potts","Bevan","Hargreaves","Mclean","Mistry","Bruce","Howells","Hyde","Parkes","Wyatt","Fry","Lees","O'donnell","Craig","Forster","Mckenzie","Humphries","Mellor","Carey","Ingram","Summers","Leonard"],de:["Müller","Schmidt","Schneider","Fischer","Weber","Meyer","Wagner","Becker","Schulz","Hoffmann","Schäfer","Koch","Bauer","Richter","Klein","Wolf","Schröder","Neumann","Schwarz","Zimmermann","Braun","Krüger","Hofmann","Hartmann","Lange","Schmitt","Werner","Schmitz","Krause","Meier","Lehmann","Schmid","Schulze","Maier","Köhler","Herrmann","König","Walter","Mayer","Huber","Kaiser","Fuchs","Peters","Lang","Scholz","Möller","Weiß","Jung","Hahn","Schubert","Vogel","Friedrich","Keller","Günther","Frank","Berger","Winkler","Roth","Beck","Lorenz","Baumann","Franke","Albrecht","Schuster","Simon","Ludwig","Böhm","Winter","Kraus","Martin","Schumacher","Krämer","Vogt","Stein","Jäger","Otto","Sommer","Groß","Seidel","Heinrich","Brandt","Haas","Schreiber","Graf","Schulte","Dietrich","Ziegler","Kuhn","Kühn","Pohl","Engel","Horn","Busch","Bergmann","Thomas","Voigt","Sauer","Arnold","Wolff","Pfeiffer"],jp:["Sato","Suzuki","Takahashi","Tanaka","Watanabe","Ito","Yamamoto","Nakamura","Kobayashi","Kato","Yoshida","Yamada","Sasaki","Yamaguchi","Saito","Matsumoto","Inoue","Kimura","Hayashi","Shimizu","Yamazaki","Mori","Abe","Ikeda","Hashimoto","Yamashita","Ishikawa","Nakajima","Maeda","Fujita","Ogawa","Goto","Okada","Hasegawa","Murakami","Kondo","Ishii","Saito","Sakamoto","Endo","Aoki","Fujii","Nishimura","Fukuda","Ota","Miura","Fujiwara","Okamoto","Matsuda","Nakagawa","Nakano","Harada","Ono","Tamura","Takeuchi","Kaneko","Wada","Nakayama","Ishida","Ueda","Morita","Hara","Shibata","Sakai","Kudo","Yokoyama","Miyazaki","Miyamoto","Uchida","Takagi","Ando","Taniguchi","Ohno","Maruyama","Imai","Takada","Fujimoto","Takeda","Murata","Ueno","Sugiyama","Masuda","Sugawara","Hirano","Kojima","Otsuka","Chiba","Kubo","Matsui","Iwasaki","Sakurai","Kinoshita","Noguchi","Matsuo","Nomura","Kikuchi","Sano","Onishi","Sugimoto","Arai"],es:["Garcia","Fernandez","Lopez","Martinez","Gonzalez","Rodriguez","Sanchez","Perez","Martin","Gomez","Ruiz","Diaz","Hernandez","Alvarez","Jimenez","Moreno","Munoz","Alonso","Romero","Navarro","Gutierrez","Torres","Dominguez","Gil","Vazquez","Blanco","Serrano","Ramos","Castro","Suarez","Sanz","Rubio","Ortega","Molina","Delgado","Ortiz","Morales","Ramirez","Marin","Iglesias","Santos","Castillo","Garrido","Calvo","Pena","Cruz","Cano","Nunez","Prieto","Diez","Lozano","Vidal","Pascual","Ferrer","Medina","Vega","Leon","Herrero","Vicente","Mendez","Guerrero","Fuentes","Campos","Nieto","Cortes","Caballero","Ibanez","Lorenzo","Pastor","Gimenez","Saez","Soler","Marquez","Carrasco","Herrera","Montero","Arias","Crespo","Flores","Andres","Aguilar","Hidalgo","Cabrera","Mora","Duran","Velasco","Rey","Pardo","Roman","Vila","Bravo","Merino","Moya","Soto","Izquierdo","Reyes","Redondo","Marcos","Carmona","Menendez"],fr:["Martin","Bernard","Thomas","Petit","Robert","Richard","Durand","Dubois","Moreau","Laurent","Simon","Michel","Lefèvre","Leroy","Roux","David","Bertrand","Morel","Fournier","Girard","Bonnet","Dupont","Lambert","Fontaine","Rousseau","Vincent","Müller","Lefèvre","Faure","André","Mercier","Blanc","Guérin","Boyer","Garnier","Chevalier","François","Legrand","Gauthier","Garcia","Perrin","Robin","Clément","Morin","Nicolas","Henry","Roussel","Matthieu","Gautier","Masson","Marchand","Duval","Denis","Dumont","Marie","Lemaire","Noël","Meyer","Dufour","Meunier","Brun","Blanchard","Giraud","Joly","Rivière","Lucas","Brunet","Gaillard","Barbier","Arnaud","Martínez","Gérard","Roche","Renard","Schmitt","Roy","Leroux","Colin","Vidal","Caron","Picard","Roger","Fabre","Aubert","Lemoine","Renaud","Dumas","Lacroix","Olivier","Philippe","Bourgeois","Pierre","Benoît","Rey","Leclerc","Payet","Rolland","Leclercq","Guillaume","Lecomte","López","Jean","Dupuy","Guillot","Hubert","Berger","Carpentier","Sánchez","Dupuis","Moulin","Louis","Deschamps","Huet","Vasseur","Perez","Boucher","Fleury","Royer","Klein","Jacquet","Adam","Paris","Poirier","Marty","Aubry","Guyot","Carré","Charles","Renault","Charpentier","Ménard","Maillard","Baron","Bertin","Bailly","Hervé","Schneider","Fernández","Le GallGall","Collet","Léger","Bouvier","Julien","Prévost","Millet","Perrot","Daniel","Le RouxRoux","Cousin","Germain","Breton","Besson","Langlois","Rémi","Le GoffGoff","Pelletier","Lévêque","Perrier","Leblanc","Barré","Lebrun","Marchal","Weber","Mallet","Hamon","Boulanger","Jacob","Monnier","Michaud","Rodríguez","Guichard","Gillet","Étienne","Grondin","Poulain","Tessier","Chevallier","Collin","Chauvin","Da SilvaSilva","Bouchet","Gay","Lemaître","Bénard","Maréchal","Humbert","Reynaud","Antoine","Hoarau","Perret","Barthélemy","Cordier","Pichon","Lejeune","Gilbert","Lamy","Delaunay","Pasquier","Carlier","LaporteLaporte"]},postcodeAreas:[{code:"AB"},{code:"AL"},{code:"B"},{code:"BA"},{code:"BB"},{code:"BD"},{code:"BH"},{code:"BL"},{code:"BN"},{code:"BR"},{code:"BS"},{code:"BT"},{code:"CA"},{code:"CB"},{code:"CF"},{code:"CH"},{code:"CM"},{code:"CO"},{code:"CR"},{code:"CT"},{code:"CV"},{code:"CW"},{code:"DA"},{code:"DD"},{code:"DE"},{code:"DG"},{code:"DH"},{code:"DL"},{code:"DN"},{code:"DT"},{code:"DY"},{code:"E"},{code:"EC"},{code:"EH"},{code:"EN"},{code:"EX"},{code:"FK"},{code:"FY"},{code:"G"},{code:"GL"},{code:"GU"},{code:"GY"},{code:"HA"},{code:"HD"},{code:"HG"},{code:"HP"},{code:"HR"},{code:"HS"},{code:"HU"},{code:"HX"},{code:"IG"},{code:"IM"},{code:"IP"},{code:"IV"},{code:"JE"},{code:"KA"},{code:"KT"},{code:"KW"},{code:"KY"},{code:"L"},{code:"LA"},{code:"LD"},{code:"LE"},{code:"LL"},{code:"LN"},{code:"LS"},{code:"LU"},{code:"M"},{code:"ME"},{code:"MK"},{code:"ML"},{code:"N"},{code:"NE"},{code:"NG"},{code:"NN"},{code:"NP"},{code:"NR"},{code:"NW"},{code:"OL"},{code:"OX"},{code:"PA"},{code:"PE"},{code:"PH"},{code:"PL"},{code:"PO"},{code:"PR"},{code:"RG"},{code:"RH"},{code:"RM"},{code:"S"},{code:"SA"},{code:"SE"},{code:"SG"},{code:"SK"},{code:"SL"},{code:"SM"},{code:"SN"},{code:"SO"},{code:"SP"},{code:"SR"},{code:"SS"},{code:"ST"},{code:"SW"},{code:"SY"},{code:"TA"},{code:"TD"},{code:"TF"},{code:"TN"},{code:"TQ"},{code:"TR"},{code:"TS"},{code:"TW"},{code:"UB"},{code:"W"},{code:"WA"},{code:"WC"},{code:"WD"},{code:"WF"},{code:"WN"},{code:"WR"},{code:"WS"},{code:"WV"},{code:"YO"},{code:"ZE"}],countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}],mx:[{name:"Aguascalientes",abbreviation:"AGU"},{name:"Baja California",abbreviation:"BCN"},{name:"Baja California Sur",abbreviation:"BCS"},{name:"Campeche",abbreviation:"CAM"},{name:"Chiapas",abbreviation:"CHP"},{name:"Chihuahua",abbreviation:"CHH"},{name:"Ciudad de México",abbreviation:"DIF"},{name:"Coahuila",abbreviation:"COA"},{name:"Colima",abbreviation:"COL"},{name:"Durango",abbreviation:"DUR"},{name:"Guanajuato",abbreviation:"GUA"},{name:"Guerrero",abbreviation:"GRO"},{name:"Hidalgo",abbreviation:"HID"},{name:"Jalisco",abbreviation:"JAL"},{name:"México",abbreviation:"MEX"},{name:"Michoacán",abbreviation:"MIC"},{name:"Morelos",abbreviation:"MOR"},{name:"Nayarit",abbreviation:"NAY"},{name:"Nuevo León",abbreviation:"NLE"},{name:"Oaxaca",abbreviation:"OAX"},{name:"Puebla",abbreviation:"PUE"},{name:"Querétaro",abbreviation:"QUE"},{name:"Quintana Roo",abbreviation:"ROO"},{name:"San Luis Potosí",abbreviation:"SLP"},{name:"Sinaloa",abbreviation:"SIN"},{name:"Sonora",abbreviation:"SON"},{name:"Tabasco",abbreviation:"TAB"},{name:"Tamaulipas",abbreviation:"TAM"},{name:"Tlaxcala",abbreviation:"TLA"},{name:"Veracruz",abbreviation:"VER"},{name:"Yucatán",abbreviation:"YUC"},{name:"Zacatecas",abbreviation:"ZAC"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]},primes:[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007],emotions:["love","joy","surprise","anger","sadness","fear"]},S=Object.prototype.hasOwnProperty,_=Object.keys||function(e){var t=[];for(var r in e)S.call(e,r)&&t.push(r);return t};function C(e,t){var r=Array.isArray(e),n=t||(r?new Array(e.length):{});return r?function(e,t){for(var r=0,n=e.length;r<n;r++)t[r]=e[r]}(e,n):function(e,t){for(var r,n=_(e),o=0,i=n.length;o<i;o++)t[r=n[o]]=e[r]||t[r]}(e,n),n}c.prototype.get=function(e){return C(b[e])},c.prototype.mac_address=function(e){(e=d(e)).separator||(e.separator=e.networkVersion?".":":");var t="ABCDEF1234567890";return e.networkVersion?this.n(this.string,3,{pool:t,length:4}).join(e.separator):this.n(this.string,6,{pool:t,length:2}).join(e.separator)},c.prototype.normal=function(e){if(p((e=d(e,{mean:0,dev:1,pool:[]})).pool.constructor!==Array,"Chance: The pool option must be a valid array."),p("number"!=typeof e.mean,"Chance: Mean (mean) must be a number"),p("number"!=typeof e.dev,"Chance: Standard deviation (dev) must be a number"),e.pool.length>0)return this.normal_pool(e);var t,r,n,o=e.mean,i=e.dev;do{t=(r=2*this.random()-1)*r+(n=2*this.random()-1)*n}while(t>=1);return i*(r*Math.sqrt(-2*Math.log(t)/t))+o},c.prototype.normal_pool=function(e){var t=0;do{var r=Math.round(this.normal({mean:e.mean,dev:e.dev}));if(r<e.pool.length&&r>=0)return e.pool[r];t++}while(t<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},c.prototype.radio=function(e){var t="";switch((e=d(e,{side:"?"})).side.toLowerCase()){case"east":case"e":t="W";break;case"west":case"w":t="K";break;default:t=this.character({pool:"KW"})}return t+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},c.prototype.set=function(e,t){"string"==typeof e?b[e]=t:b=C(e,b)},c.prototype.tv=function(e){return this.radio(e)},c.prototype.cnpj=function(){var e=this.n(this.natural,8,{max:9}),t=2+6*e[7]+7*e[6]+8*e[5]+9*e[4]+2*e[3]+3*e[2]+4*e[1]+5*e[0];(t=11-t%11)>=10&&(t=0);var r=2*t+3+7*e[7]+8*e[6]+9*e[5]+2*e[4]+3*e[3]+4*e[2]+5*e[1]+6*e[0];return(r=11-r%11)>=10&&(r=0),""+e[0]+e[1]+"."+e[2]+e[3]+e[4]+"."+e[5]+e[6]+e[7]+"/0001-"+t+r},c.prototype.emotion=function(){return this.pick(this.get("emotions"))},c.prototype.mersenne_twister=function(e){return new E(e)},c.prototype.blueimp_md5=function(){return new A};var E=function(e){void 0===e&&(e=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};E.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++)e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},E.prototype.init_by_array=function(e,t){var r,n,o=1,i=0;for(this.init_genrand(19650218),r=this.N>t?this.N:t;r;r--)n=this.mt[o-1]^this.mt[o-1]>>>30,this.mt[o]=(this.mt[o]^(1664525*((4294901760&n)>>>16)<<16)+1664525*(65535&n))+e[i]+i,this.mt[o]>>>=0,i++,++o>=this.N&&(this.mt[0]=this.mt[this.N-1],o=1),i>=t&&(i=0);for(r=this.N-1;r;r--)n=this.mt[o-1]^this.mt[o-1]>>>30,this.mt[o]=(this.mt[o]^(1566083941*((4294901760&n)>>>16)<<16)+1566083941*(65535&n))-o,this.mt[o]>>>=0,++o>=this.N&&(this.mt[0]=this.mt[this.N-1],o=1);this.mt[0]=2147483648},E.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti===this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},E.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},E.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},E.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},E.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},E.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var A=function(){};A.prototype.VERSION="1.0.1",A.prototype.safe_add=function(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r},A.prototype.bit_roll=function(e,t){return e<<t|e>>>32-t},A.prototype.md5_cmn=function(e,t,r,n,o,i){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(t,e),this.safe_add(n,i)),o),r)},A.prototype.md5_ff=function(e,t,r,n,o,i,a){return this.md5_cmn(t&r|~t&n,e,t,o,i,a)},A.prototype.md5_gg=function(e,t,r,n,o,i,a){return this.md5_cmn(t&n|r&~n,e,t,o,i,a)},A.prototype.md5_hh=function(e,t,r,n,o,i,a){return this.md5_cmn(t^r^n,e,t,o,i,a)},A.prototype.md5_ii=function(e,t,r,n,o,i,a){return this.md5_cmn(r^(t|~n),e,t,o,i,a)},A.prototype.binl_md5=function(e,t){e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;var r,n,o,i,a,s=1732584193,u=-271733879,l=-1732584194,c=271733878;for(r=0;r<e.length;r+=16)n=s,o=u,i=l,a=c,s=this.md5_ff(s,u,l,c,e[r],7,-680876936),c=this.md5_ff(c,s,u,l,e[r+1],12,-389564586),l=this.md5_ff(l,c,s,u,e[r+2],17,606105819),u=this.md5_ff(u,l,c,s,e[r+3],22,-1044525330),s=this.md5_ff(s,u,l,c,e[r+4],7,-176418897),c=this.md5_ff(c,s,u,l,e[r+5],12,1200080426),l=this.md5_ff(l,c,s,u,e[r+6],17,-1473231341),u=this.md5_ff(u,l,c,s,e[r+7],22,-45705983),s=this.md5_ff(s,u,l,c,e[r+8],7,1770035416),c=this.md5_ff(c,s,u,l,e[r+9],12,-1958414417),l=this.md5_ff(l,c,s,u,e[r+10],17,-42063),u=this.md5_ff(u,l,c,s,e[r+11],22,-1990404162),s=this.md5_ff(s,u,l,c,e[r+12],7,1804603682),c=this.md5_ff(c,s,u,l,e[r+13],12,-40341101),l=this.md5_ff(l,c,s,u,e[r+14],17,-1502002290),u=this.md5_ff(u,l,c,s,e[r+15],22,1236535329),s=this.md5_gg(s,u,l,c,e[r+1],5,-165796510),c=this.md5_gg(c,s,u,l,e[r+6],9,-1069501632),l=this.md5_gg(l,c,s,u,e[r+11],14,643717713),u=this.md5_gg(u,l,c,s,e[r],20,-373897302),s=this.md5_gg(s,u,l,c,e[r+5],5,-701558691),c=this.md5_gg(c,s,u,l,e[r+10],9,38016083),l=this.md5_gg(l,c,s,u,e[r+15],14,-660478335),u=this.md5_gg(u,l,c,s,e[r+4],20,-405537848),s=this.md5_gg(s,u,l,c,e[r+9],5,568446438),c=this.md5_gg(c,s,u,l,e[r+14],9,-1019803690),l=this.md5_gg(l,c,s,u,e[r+3],14,-187363961),u=this.md5_gg(u,l,c,s,e[r+8],20,1163531501),s=this.md5_gg(s,u,l,c,e[r+13],5,-1444681467),c=this.md5_gg(c,s,u,l,e[r+2],9,-51403784),l=this.md5_gg(l,c,s,u,e[r+7],14,1735328473),u=this.md5_gg(u,l,c,s,e[r+12],20,-1926607734),s=this.md5_hh(s,u,l,c,e[r+5],4,-378558),c=this.md5_hh(c,s,u,l,e[r+8],11,-2022574463),l=this.md5_hh(l,c,s,u,e[r+11],16,1839030562),u=this.md5_hh(u,l,c,s,e[r+14],23,-35309556),s=this.md5_hh(s,u,l,c,e[r+1],4,-1530992060),c=this.md5_hh(c,s,u,l,e[r+4],11,1272893353),l=this.md5_hh(l,c,s,u,e[r+7],16,-155497632),u=this.md5_hh(u,l,c,s,e[r+10],23,-1094730640),s=this.md5_hh(s,u,l,c,e[r+13],4,681279174),c=this.md5_hh(c,s,u,l,e[r],11,-358537222),l=this.md5_hh(l,c,s,u,e[r+3],16,-722521979),u=this.md5_hh(u,l,c,s,e[r+6],23,76029189),s=this.md5_hh(s,u,l,c,e[r+9],4,-640364487),c=this.md5_hh(c,s,u,l,e[r+12],11,-421815835),l=this.md5_hh(l,c,s,u,e[r+15],16,530742520),u=this.md5_hh(u,l,c,s,e[r+2],23,-995338651),s=this.md5_ii(s,u,l,c,e[r],6,-198630844),c=this.md5_ii(c,s,u,l,e[r+7],10,1126891415),l=this.md5_ii(l,c,s,u,e[r+14],15,-1416354905),u=this.md5_ii(u,l,c,s,e[r+5],21,-57434055),s=this.md5_ii(s,u,l,c,e[r+12],6,1700485571),c=this.md5_ii(c,s,u,l,e[r+3],10,-1894986606),l=this.md5_ii(l,c,s,u,e[r+10],15,-1051523),u=this.md5_ii(u,l,c,s,e[r+1],21,-2054922799),s=this.md5_ii(s,u,l,c,e[r+8],6,1873313359),c=this.md5_ii(c,s,u,l,e[r+15],10,-30611744),l=this.md5_ii(l,c,s,u,e[r+6],15,-1560198380),u=this.md5_ii(u,l,c,s,e[r+13],21,1309151649),s=this.md5_ii(s,u,l,c,e[r+4],6,-145523070),c=this.md5_ii(c,s,u,l,e[r+11],10,-1120210379),l=this.md5_ii(l,c,s,u,e[r+2],15,718787259),u=this.md5_ii(u,l,c,s,e[r+9],21,-343485551),s=this.safe_add(s,n),u=this.safe_add(u,o),l=this.safe_add(l,i),c=this.safe_add(c,a);return[s,u,l,c]},A.prototype.binl2rstr=function(e){var t,r="";for(t=0;t<32*e.length;t+=8)r+=String.fromCharCode(e[t>>5]>>>t%32&255);return r},A.prototype.rstr2binl=function(e){var t,r=[];for(r[(e.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;for(t=0;t<8*e.length;t+=8)r[t>>5]|=(255&e.charCodeAt(t/8))<<t%32;return r},A.prototype.rstr_md5=function(e){return this.binl2rstr(this.binl_md5(this.rstr2binl(e),8*e.length))},A.prototype.rstr_hmac_md5=function(e,t){var r,n,o=this.rstr2binl(e),i=[],a=[];for(i[15]=a[15]=void 0,o.length>16&&(o=this.binl_md5(o,8*e.length)),r=0;r<16;r+=1)i[r]=909522486^o[r],a[r]=1549556828^o[r];return n=this.binl_md5(i.concat(this.rstr2binl(t)),512+8*t.length),this.binl2rstr(this.binl_md5(a.concat(n),640))},A.prototype.rstr2hex=function(e){var t,r,n="0123456789abcdef",o="";for(r=0;r<e.length;r+=1)t=e.charCodeAt(r),o+=n.charAt(t>>>4&15)+n.charAt(15&t);return o},A.prototype.str2rstr_utf8=function(e){return unescape(encodeURIComponent(e))},A.prototype.raw_md5=function(e){return this.rstr_md5(this.str2rstr_utf8(e))},A.prototype.hex_md5=function(e){return this.rstr2hex(this.raw_md5(e))},A.prototype.raw_hmac_md5=function(e,t){return this.rstr_hmac_md5(this.str2rstr_utf8(e),this.str2rstr_utf8(t))},A.prototype.hex_hmac_md5=function(e,t){return this.rstr2hex(this.raw_hmac_md5(e,t))},A.prototype.md5=function(e,t,r){return t?r?this.raw_hmac_md5(t,e):this.hex_hmac_md5(t,e):r?this.raw_md5(e):this.hex_md5(e)},e.exports&&(t=e.exports=c),t.Chance=c,void 0===(r=function(){return c}.apply(t,[]))||(e.exports=r),"undefined"!=typeof importScripts&&(chance=new c,self.Chance=c),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=c,window.chance=new c)}()},6880:e=>{"use strict";e.exports=()=>{const e="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",t="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",n="(?:\\uD83C[\\uDDE6-\\uDDFF]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",i=`(?:${e}|${t})?`,a="[\\ufe0e\\ufe0f]?",s=a+i+`(?:\\u200d(?:${[r,n,o].join("|")})${a+i})*`,u=`(?:${[`${r}${e}?`,e,n,o,"[\\ud800-\\udfff]","[\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83C\\uDF93]"].join("|")})`;return new RegExp(`(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40(?:\\udc65|\\udc73|\\udc77)\\udb40(?:\\udc6e|\\udc63|\\udc6c)\\udb40(?:\\udc67|\\udc74|\\udc73)\\udb40\\udc7f)|${t}(?=${t})|${u+s}`,"g")}},487:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r<e.length;r++)t.push(255&e.charCodeAt(r));return t},bytesToString:function(e){for(var t=[],r=0;r<e.length;r++)t.push(String.fromCharCode(e[r]));return t.join("")}}};e.exports=t},5545:(e,t,r)=>{"use strict";r.r(t),r.d(t,{ARRAY_CONTAINS:()=>Go,ARRAY_MAX_SIZE:()=>Zo,ARRAY_MIN_SIZE:()=>Yo,ARRAY_NOT_CONTAINS:()=>ko,ARRAY_NOT_EMPTY:()=>Wo,ARRAY_UNIQUE:()=>ei,Allow:()=>S,ArrayContains:()=>Uo,ArrayMaxSize:()=>Qo,ArrayMinSize:()=>qo,ArrayNotContains:()=>Ho,ArrayNotEmpty:()=>zo,ArrayUnique:()=>ri,CONTAINS:()=>De,Contains:()=>Pe,EQUALS:()=>H,Equals:()=>K,IS_ALPHA:()=>Le,IS_ALPHANUMERIC:()=>Be,IS_ARRAY:()=>Fo,IS_ASCII:()=>He,IS_BASE32:()=>dn,IS_BASE64:()=>ze,IS_BIC:()=>fn,IS_BOOLEAN:()=>ho,IS_BOOLEAN_STRING:()=>on,IS_BTC_ADDRESS:()=>yn,IS_BYTE_LENGTH:()=>qe,IS_CREDIT_CARD:()=>Qe,IS_CURRENCY:()=>rt,IS_DATA_URI:()=>_n,IS_DATE:()=>bo,IS_DATE_STRING:()=>tn,IS_DECIMAL:()=>Ue,IS_DEFINED:()=>N,IS_DIVISIBLE_BY:()=>ue,IS_EAN:()=>An,IS_EMAIL:()=>it,IS_EMPTY:()=>q,IS_ENUM:()=>No,IS_ETHEREUM_ADDRESS:()=>Tn,IS_FIREBASE_PUSH_ID:()=>Nr,IS_FQDN:()=>ut,IS_FULL_WIDTH:()=>dt,IS_HALF_WIDTH:()=>ft,IS_HASH:()=>Xr,IS_HEXADECIMAL:()=>At,IS_HEX_COLOR:()=>_t,IS_HSL:()=>Dn,IS_IBAN:()=>Mn,IS_IDENTITY_CARD:()=>Ln,IS_IN:()=>re,IS_INSTANCE:()=>ai,IS_INT:()=>Io,IS_IP:()=>Rt,IS_ISBN:()=>wt,IS_ISIN:()=>Gt,IS_ISO31661_ALPHA_2:()=>nr,IS_ISO31661_ALPHA_3:()=>ar,IS_ISO8601:()=>kt,IS_ISRC:()=>Bn,IS_ISSN:()=>Jr,IS_JSON:()=>Wt,IS_JWT:()=>Yt,IS_LATITUDE:()=>B,IS_LATLONG:()=>L,IS_LOCALE:()=>Un,IS_LONGITUDE:()=>U,IS_LOWERCASE:()=>Zt,IS_MAC_ADDRESS:()=>It,IS_MAGNET_URI:()=>Hn,IS_MILITARY_TIME:()=>Kr,IS_MIME_TYPE:()=>zn,IS_MOBILE_PHONE:()=>er,IS_MONGO_ID:()=>lr,IS_MULTIBYTE:()=>pr,IS_NEGATIVE:()=>fe,IS_NOT_EMPTY:()=>Q,IS_NOT_EMPTY_OBJECT:()=>ni,IS_NOT_IN:()=>ie,IS_NUMBER:()=>Co,IS_NUMBER_STRING:()=>un,IS_OBJECT:()=>wo,IS_OCTAL:()=>qn,IS_PASSPORT_NUMBER:()=>Qn,IS_PHONE_NUMBER:()=>Vr,IS_PORT:()=>Ft,IS_POSITIVE:()=>de,IS_POSTAL_CODE:()=>ro,IS_RFC_3339:()=>io,IS_RGB_COLOR:()=>uo,IS_SEM_VER:()=>po,IS_STRING:()=>Ro,IS_SURROGATE_PAIR:()=>hr,IS_UPPERCASE:()=>Ir,IS_URL:()=>br,IS_UUID:()=>Cr,IS_VARIABLE_WIDTH:()=>yt,IsAlpha:()=>$e,IsAlphanumeric:()=>je,IsArray:()=>Lo,IsAscii:()=>Ke,IsBIC:()=>mn,IsBase32:()=>gn,IsBase64:()=>Xe,IsBoolean:()=>yo,IsBooleanString:()=>sn,IsBtcAddress:()=>Sn,IsByteLength:()=>Je,IsCreditCard:()=>tt,IsCurrency:()=>ot,IsDataURI:()=>En,IsDate:()=>_o,IsDateString:()=>nn,IsDecimal:()=>Ve,IsDefined:()=>T,IsDivisibleBy:()=>ce,IsEAN:()=>vn,IsEmail:()=>st,IsEmpty:()=>J,IsEnum:()=>To,IsEthereumAddress:()=>On,IsFQDN:()=>ct,IsFirebasePushId:()=>Tr,IsFullWidth:()=>gt,IsHSL:()=>Pn,IsHalfWidth:()=>mt,IsHash:()=>Zr,IsHexColor:()=>Et,IsHexadecimal:()=>vt,IsIBAN:()=>xn,IsIP:()=>Mt,IsISBN:()=>Bt,IsISIN:()=>Ut,IsISO31661Alpha2:()=>ir,IsISO31661Alpha3:()=>ur,IsISO8601:()=>Ht,IsISRC:()=>jn,IsISSN:()=>en,IsIdentityCard:()=>$n,IsIn:()=>oe,IsInstance:()=>ui,IsInt:()=>Do,IsJSON:()=>zt,IsJWT:()=>qt,IsLatLong:()=>$,IsLatitude:()=>j,IsLocale:()=>Vn,IsLongitude:()=>V,IsLowercase:()=>Qt,IsMACAddress:()=>Dt,IsMagnetURI:()=>Kn,IsMilitaryTime:()=>Yr,IsMimeType:()=>Xn,IsMobilePhone:()=>rr,IsMongoId:()=>dr,IsMultibyte:()=>fr,IsNegative:()=>me,IsNotEmpty:()=>te,IsNotEmptyObject:()=>ii,IsNotIn:()=>se,IsNumber:()=>Ao,IsNumberString:()=>cn,IsObject:()=>Bo,IsOctal:()=>Jn,IsOptional:()=>I,IsPassportNumber:()=>to,IsPhoneNumber:()=>Wr,IsPort:()=>Lt,IsPositive:()=>ge,IsPostalCode:()=>oo,IsRFC3339:()=>so,IsRgbColor:()=>co,IsSemVer:()=>fo,IsString:()=>Mo,IsSurrogatePair:()=>yr,IsUUID:()=>Ar,IsUppercase:()=>Dr,IsUrl:()=>_r,IsVariableWidth:()=>St,LENGTH:()=>Rr,Length:()=>Mr,MATCHES:()=>Gr,MAX:()=>ye,MAX_DATE:()=>Te,MAX_LENGTH:()=>Fr,MIN:()=>_e,MIN_DATE:()=>Ae,MIN_LENGTH:()=>wr,Matches:()=>Ur,Max:()=>Se,MaxDate:()=>Oe,MaxLength:()=>Lr,MetadataStorage:()=>a,Min:()=>Ee,MinDate:()=>ve,MinLength:()=>Br,NOT_CONTAINS:()=>Me,NOT_EQUALS:()=>z,NotContains:()=>xe,NotEquals:()=>X,Validate:()=>D,ValidateBy:()=>A,ValidateIf:()=>R,ValidateNested:()=>P,ValidatePromise:()=>M,ValidationError:()=>u,ValidationTypes:()=>l,Validator:()=>h,ValidatorConstraint:()=>O,arrayContains:()=>jo,arrayMaxSize:()=>Jo,arrayMinSize:()=>Xo,arrayNotContains:()=>Vo,arrayNotEmpty:()=>Ko,arrayUnique:()=>ti,buildMessage:()=>E,contains:()=>Re,equals:()=>W,getFromContainer:()=>b,getMetadataStorage:()=>i,isAlpha:()=>we,isAlphanumeric:()=>Ge,isArray:()=>xo,isAscii:()=>We,isBIC:()=>hn,isBase32:()=>pn,isBase64:()=>Ye,isBoolean:()=>mo,isBooleanString:()=>an,isBtcAddress:()=>bn,isByteLength:()=>Ze,isCreditCard:()=>et,isCurrency:()=>nt,isDataURI:()=>Cn,isDate:()=>So,isDateString:()=>rn,isDecimal:()=>ke,isDefined:()=>v,isDivisibleBy:()=>le,isEAN:()=>Nn,isEmail:()=>at,isEmpty:()=>Z,isEnum:()=>vo,isEthereumAddress:()=>In,isFQDN:()=>lt,isFirebasePushId:()=>vr,isFullWidth:()=>pt,isHSL:()=>Rn,isHalfWidth:()=>ht,isHash:()=>qr,isHexColor:()=>Ct,isHexadecimal:()=>Nt,isIBAN:()=>Fn,isIP:()=>Pt,isISBN:()=>$t,isISIN:()=>jt,isISO31661Alpha2:()=>or,isISO31661Alpha3:()=>sr,isISO8601:()=>Vt,isISRC:()=>Gn,isISSN:()=>Qr,isIdentityCard:()=>wn,isIn:()=>ne,isInstance:()=>si,isInt:()=>Oo,isJSON:()=>Kt,isJWT:()=>Xt,isLatLong:()=>w,isLatitude:()=>G,isLocale:()=>kn,isLongitude:()=>k,isLowercase:()=>Jt,isMACAddress:()=>Ot,isMagnetURI:()=>Wn,isMilitaryTime:()=>zr,isMimeType:()=>Yn,isMobilePhone:()=>tr,isMongoId:()=>cr,isMultibyte:()=>gr,isNegative:()=>he,isNotEmpty:()=>ee,isNotEmptyObject:()=>oi,isNotIn:()=>ae,isNumber:()=>Eo,isNumberString:()=>ln,isObject:()=>$o,isOctal:()=>Zn,isPassportNumber:()=>eo,isPhoneNumber:()=>Hr,isPort:()=>xt,isPositive:()=>pe,isPostalCode:()=>no,isRFC3339:()=>ao,isRgbColor:()=>lo,isSemVer:()=>go,isString:()=>Po,isSurrogatePair:()=>mr,isURL:()=>Sr,isUUID:()=>Er,isUppercase:()=>Or,isValidationOptions:()=>Tt,isVariableWidth:()=>bt,length:()=>Pr,matches:()=>jr,max:()=>be,maxDate:()=>Ie,maxLength:()=>xr,min:()=>Ce,minDate:()=>Ne,minLength:()=>$r,notContains:()=>Fe,notEquals:()=>Y,registerDecorator:()=>C,registerSchema:()=>pi,useContainer:()=>y,validate:()=>li,validateOrReject:()=>ci,validateSync:()=>di});var n=function(e){this.groups=[],this.always=!1,this.each=!1,this.context=void 0,this.type=e.type,this.target=e.target,this.propertyName=e.propertyName,this.constraints=e.constraints,this.constraintCls=e.constraintCls,this.validationTypeOptions=e.validationTypeOptions,e.validationOptions&&(this.message=e.validationOptions.message,this.groups=e.validationOptions.groups,this.always=e.validationOptions.always,this.each=e.validationOptions.each,this.context=e.validationOptions.context)},o=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach((function(r){e.properties[r].forEach((function(o){var i={message:o.message,groups:o.groups,always:o.always,each:o.each},a={type:o.type,target:e.name,propertyName:r,constraints:o.constraints,validationTypeOptions:o.options,validationOptions:i};t.push(new n(a))}))})),t},e}();function i(){return"undefined"!=typeof window&&(window.global=window),r.g.classValidatorMetadataStorage||(r.g.classValidatorMetadataStorage=new a),r.g.classValidatorMetadataStorage}var a=function(){function e(){this.validationMetadatas=[],this.constraintMetadatas=[]}return Object.defineProperty(e.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.length},enumerable:!0,configurable:!0}),e.prototype.addValidationSchema=function(e){var t=this;(new o).transform(e).forEach((function(e){return t.addValidationMetadata(e)}))},e.prototype.addValidationMetadata=function(e){this.validationMetadatas.push(e)},e.prototype.addConstraintMetadata=function(e){this.constraintMetadatas.push(e)},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach((function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)})),t},e.prototype.getTargetValidationMetadatas=function(e,t,r){var n=this.validationMetadatas.filter((function(n){return(n.target===e||n.target===t)&&(!!n.always||!(r&&r.length>0)||n.groups&&!!n.groups.find((function(e){return-1!==r.indexOf(e)})))})),o=this.validationMetadatas.filter((function(t){return"string"!=typeof t.target&&t.target!==e&&(!(t.target instanceof Function)||e.prototype instanceof t.target)&&(!!t.always||!(r&&r.length>0)||t.groups&&!!t.groups.find((function(e){return-1!==r.indexOf(e)})))})).filter((function(e){return!n.find((function(t){return t.propertyName===e.propertyName&&t.type===e.type}))}));return n.concat(o)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.filter((function(t){return t.target===e}))},e}(),s=function(){return(s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var u=function(){function e(){}return e.prototype.toString=function(e,t,r){var n=this;void 0===e&&(e=!1),void 0===t&&(t=!1),void 0===r&&(r="");var o=e?"":"",i=e?"":"",a=function(e){return" - property "+o+r+e+i+" has failed the following constraints: "+o+Object.keys(n.constraints).join(", ")+i+" \n"};if(t){var s=Number.isInteger(+this.property)?"["+this.property+"]":(r?".":"")+this.property;return this.constraints?a(s):this.children.map((function(t){return t.toString(e,!0,""+r+s)})).join("")}return"An instance of "+o+(this.target?this.target.constructor.name:"an object")+i+" has failed the validation:\n"+(this.constraints?a(this.property):"")+this.children.map((function(t){return t.toString(e,!0,n.property)})).join("")},e}(),l=function(){function e(){}return e.isValid=function(e){var t=this;return"isValid"!==e&&"getMessage"!==e&&-1!==Object.keys(this).map((function(e){return t[e]})).indexOf(e)},e.CUSTOM_VALIDATION="customValidation",e.NESTED_VALIDATION="nestedValidation",e.PROMISE_VALIDATION="promiseValidation",e.CONDITIONAL_VALIDATION="conditionalValidation",e.WHITELIST="whitelistValidation",e.IS_DEFINED="isDefined",e}(),c=function(){function e(){}return e.replaceMessageSpecialTokens=function(e,t){var r;return e instanceof Function?r=e(t):"string"==typeof e&&(r=e),r&&t.constraints instanceof Array&&t.constraints.forEach((function(e,t){r=r.replace(new RegExp("\\$constraint"+(t+1),"g"),e)})),r&&void 0!==t.value&&null!==t.value&&"string"==typeof t.value&&(r=r.replace(/\$value/g,t.value)),r&&(r=r.replace(/\$property/g,t.property)),r&&(r=r.replace(/\$target/g,t.targetName)),r},e}();function d(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}var p,g,f=function(){function e(e,t){this.validator=e,this.validatorOptions=t,this.awaitingPromises=[],this.ignoreAsyncValidations=!1,this.metadataStorage=i()}return e.prototype.execute=function(e,t,r){var n=this;this.metadataStorage.hasValidationMetaData||console.warn("No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.");var o=this.validatorOptions?this.validatorOptions.groups:void 0,i=this.metadataStorage.getTargetValidationMetadatas(e.constructor,t,o),a=this.metadataStorage.groupByPropertyName(i);if(this.validatorOptions&&this.validatorOptions.forbidUnknownValues&&!i.length){var s=new u;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(s.target=e),s.value=void 0,s.property=void 0,s.children=[],s.constraints={unknownValue:"an unknown value was passed to the validate function"},void r.push(s)}this.validatorOptions&&this.validatorOptions.whitelist&&this.whitelist(e,a,r),Object.keys(a).forEach((function(t){var o=e[t],i=a[t].filter((function(e){return e.type===l.IS_DEFINED})),s=a[t].filter((function(e){return e.type!==l.IS_DEFINED&&e.type!==l.WHITELIST}));o instanceof Promise&&s.find((function(e){return e.type===l.PROMISE_VALIDATION}))?n.awaitingPromises.push(o.then((function(o){n.performValidations(e,o,t,i,s,r)}))):n.performValidations(e,o,t,i,s,r)}))},e.prototype.whitelist=function(e,t,r){var n=this,o=[];Object.keys(e).forEach((function(e){t[e]&&0!==t[e].length||o.push(e)})),o.length>0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?o.forEach((function(t){var o,i=n.generateValidationError(e,e[t],t);i.constraints=((o={})[l.WHITELIST]="property "+t+" should not exist",o),i.children=void 0,r.push(i)})):o.forEach((function(t){return delete e[t]})))},e.prototype.stripEmptyErrors=function(e){var t=this;return e.filter((function(e){if(e.children&&(e.children=t.stripEmptyErrors(e.children)),0===Object.keys(e.constraints).length){if(0===e.children.length)return!1;delete e.constraints}return!0}))},e.prototype.performValidations=function(e,t,r,n,o,i){var a=o.filter((function(e){return e.type===l.CUSTOM_VALIDATION})),s=o.filter((function(e){return e.type===l.NESTED_VALIDATION})),u=o.filter((function(e){return e.type===l.CONDITIONAL_VALIDATION})),c=this.generateValidationError(e,t,r);i.push(c),this.conditionalValidations(e,t,u)&&(this.customValidations(e,t,n,c),this.mapContexts(e,t,n,c),void 0===t&&this.validatorOptions&&!0===this.validatorOptions.skipUndefinedProperties||null===t&&this.validatorOptions&&!0===this.validatorOptions.skipNullProperties||null==t&&this.validatorOptions&&!0===this.validatorOptions.skipMissingProperties||(this.customValidations(e,t,a,c),this.nestedValidations(t,s,c.children),this.mapContexts(e,t,o,c),this.mapContexts(e,t,a,c)))},e.prototype.generateValidationError=function(e,t,r){var n=new u;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(n.target=e),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(n.value=t),n.property=r,n.children=[],n.constraints={},n},e.prototype.conditionalValidations=function(e,t,r){return r.map((function(r){return r.constraints[0](e,t)})).reduce((function(e,t){return e&&t}),!0)},e.prototype.customValidations=function(e,t,r,n){var o=this;r.forEach((function(r){o.metadataStorage.getTargetValidatorConstraints(r.constraintCls).forEach((function(i){if(!i.async||!o.ignoreAsyncValidations){var a={targetName:e.constructor?e.constructor.name:void 0,property:r.propertyName,object:e,value:t,constraints:r.constraints};if(r.each&&(t instanceof Array||t instanceof Set||t instanceof Map)){var s,u=((s=t)instanceof Map?Array.from(s.values()):Array.isArray(s)?s:Array.from(s)).map((function(e){return i.instance.validate(e,a)}));if(u.some((function(e){return d(e)}))){var l=u.map((function(e){return d(e)?e:Promise.resolve(e)})),c=Promise.all(l).then((function(a){if(!a.every((function(e){return e}))){var s=o.createValidationError(e,t,r,i),u=s[0],l=s[1];n.constraints[u]=l,r.context&&(n.contexts||(n.contexts={}),n.contexts[u]=Object.assign(n.contexts[u]||{},r.context))}}));o.awaitingPromises.push(c)}else if(!u.every((function(e){return e}))){var p=o.createValidationError(e,t,r,i);m=p[0],y=p[1],n.constraints[m]=y}}else{var g=i.instance.validate(t,a);if(d(g)){var f=g.then((function(a){if(!a){var s=o.createValidationError(e,t,r,i),u=s[0],l=s[1];n.constraints[u]=l,r.context&&(n.contexts||(n.contexts={}),n.contexts[u]=Object.assign(n.contexts[u]||{},r.context))}}));o.awaitingPromises.push(f)}else if(!g){var h=o.createValidationError(e,t,r,i),m=h[0],y=h[1];n.constraints[m]=y}}}}))}))},e.prototype.nestedValidations=function(e,t,r){var n=this;void 0!==e&&t.forEach((function(o){var i;if(o.type===l.NESTED_VALIDATION||o.type===l.PROMISE_VALIDATION)if(e instanceof Array||e instanceof Set||e instanceof Map)(e instanceof Set?Array.from(e):e).forEach((function(o,i){n.performValidations(e,o,i.toString(),[],t,r)}));else if(e instanceof Object){var a="string"==typeof o.target?o.target:o.target.name;n.execute(e,a,r)}else{var s=new u;s.value=e,s.property=o.propertyName,s.target=o.target;var c=n.createValidationError(o.target,e,o),d=c[0],p=c[1];s.constraints=((i={})[d]=p,i),r.push(s)}}))},e.prototype.mapContexts=function(e,t,r,n){var o=this;return r.forEach((function(e){if(e.context){var t=void 0;e.type===l.CUSTOM_VALIDATION&&(t=o.metadataStorage.getTargetValidatorConstraints(e.constraintCls)[0]);var r=o.getConstraintType(e,t);n.constraints[r]&&(n.contexts||(n.contexts={}),n.contexts[r]=Object.assign(n.contexts[r]||{},e.context))}}))},e.prototype.createValidationError=function(e,t,r,n){var o=e.constructor?e.constructor.name:void 0,i=this.getConstraintType(r,n),a={targetName:o,property:r.propertyName,object:e,value:t,constraints:r.constraints},s=r.message||"";return r.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||n&&n.instance.defaultMessage instanceof Function&&(s=n.instance.defaultMessage(a)),[i,c.replaceMessageSpecialTokens(s,a)]},e.prototype.getConstraintType=function(e,t){return t&&t.name?t.name:e.type},e}(),h=function(){function e(){}return e.prototype.coreValidate=function(e,t,r){var n="string"==typeof e?t:e,o="string"==typeof e?e:void 0,i=new f(this,"string"==typeof e?r:t),a=[];return i.execute(n,o,a),Promise.all(i.awaitingPromises).then((function(){return i.stripEmptyErrors(a)}))},e.prototype.validate=function(e,t,r){return this.coreValidate(e,t,r)},e.prototype.validateOrReject=function(e,t,r){return n=this,o=void 0,a=function(){var n;return function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(o){switch(o.label){case 0:return[4,this.coreValidate(e,t,r)];case 1:return(n=o.sent()).length?[2,Promise.reject(n)]:[2]}}))},new((i=void 0)||(i=Promise))((function(e,t){function r(e){try{u(a.next(e))}catch(e){t(e)}}function s(e){try{u(a.throw(e))}catch(e){t(e)}}function u(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(r,s)}u((a=a.apply(n,o||[])).next())}));var n,o,i,a},e.prototype.validateSync=function(e,t,r){var n="string"==typeof e?t:e,o="string"==typeof e?e:void 0,i=new f(this,"string"==typeof e?r:t);i.ignoreAsyncValidations=!0;var a=[];return i.execute(n,o,a),i.stripEmptyErrors(a)},e}(),m=new(function(){function e(){this.instances=[]}return e.prototype.get=function(e){var t=this.instances.find((function(t){return t.type===e}));return t||(t={type:e,object:new e},this.instances.push(t)),t.object},e}());function y(e,t){p=e,g=t}function b(e){if(p)try{var t=p.get(e);if(t)return t;if(!g||!g.fallback)return t}catch(e){if(!g||!g.fallbackOnErrors)throw e}return m.get(e)}function S(e){return function(t,r){var o={type:l.WHITELIST,target:t.constructor,propertyName:r,validationOptions:e};i().addValidationMetadata(new n(o))}}var _=function(){function e(e,t,r){void 0===r&&(r=!1),this.target=e,this.name=t,this.async=r}return Object.defineProperty(e.prototype,"instance",{get:function(){return b(this.target)},enumerable:!0,configurable:!0}),e}();function C(e){var t;if(e.validator instanceof Function){if(t=e.validator,b(a).getTargetValidatorConstraints(e.validator).length>1)throw"More than one implementation of ValidatorConstraintInterface found for validator on: "+e.target+":"+e.propertyName}else{var r=e.validator;t=function(){function e(){}return e.prototype.validate=function(e,t){return r.validate(e,t)},e.prototype.defaultMessage=function(e){return r.defaultMessage?r.defaultMessage(e):""},e}(),i().addConstraintMetadata(new _(t,e.name,e.async))}var o={type:e.name&&l.isValid(e.name)?e.name:l.CUSTOM_VALIDATION,target:e.target,propertyName:e.propertyName,validationOptions:e.options,constraintCls:t,constraints:e.constraints};i().addValidationMetadata(new n(o))}function E(e,t){return function(r){var n=t&&t.each?"each value in ":"";return e(n,r)}}function A(e,t){return function(r,n){C({name:e.name,target:r.constructor,propertyName:n,options:t,constraints:e.constraints,validator:e.validator})}}var N=l.IS_DEFINED;function v(e){return null!=e}function T(e){return A({name:N,validator:{validate:function(e){return v(e)},defaultMessage:E((function(e){return e+"$property should not be null or undefined"}),e)}},e)}function I(e){return function(t,r){var o={type:l.CONDITIONAL_VALIDATION,target:t.constructor,propertyName:r,constraints:[function(e,t){return null!==e[r]&&void 0!==e[r]}],validationOptions:e};i().addValidationMetadata(new n(o))}}function O(e){return function(t){var r=!(!e||!e.async),n=e&&e.name?e.name:"";n||(n=t.name)||(n=n.replace(/\.?([A-Z]+)/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/^_/,""));var o=new _(t,n,r);i().addConstraintMetadata(o)}}function D(e,t,r){return function(o,a){var s={type:l.CUSTOM_VALIDATION,target:o.constructor,propertyName:a,constraintCls:e,constraints:t instanceof Array?t:void 0,validationOptions:t instanceof Array?r:t};i().addValidationMetadata(new n(s))}}function R(e,t){return function(r,o){var a={type:l.CONDITIONAL_VALIDATION,target:r.constructor,propertyName:o,constraints:[e],validationOptions:t};i().addValidationMetadata(new n(a))}}function P(e){var t=s({},e),r=t.each?"each value in ":"";return t.message=t.message||r+"nested property $property must be either object or array",function(e,r){var o={type:l.NESTED_VALIDATION,target:e.constructor,propertyName:r,validationOptions:t};i().addValidationMetadata(new n(o))}}function M(e){return function(t,r){var o={type:l.PROMISE_VALIDATION,target:t.constructor,propertyName:r,validationOptions:e};i().addValidationMetadata(new n(o))}}var F=r(8966),x=r.n(F),L="isLatLong";function w(e){return"string"==typeof e&&x().isLatLong(e)}function $(e){return A({name:L,validator:{validate:function(e,t){return w(e)},defaultMessage:E((function(e){return e+"$property must be a latitude,longitude string"}),e)}},e)}var B="isLatitude";function G(e){return("number"==typeof e||"string"==typeof e)&&w(e+",0")}function j(e){return A({name:B,validator:{validate:function(e,t){return G(e)},defaultMessage:E((function(e){return e+"$property must be a latitude string or number"}),e)}},e)}var U="isLongitude";function k(e){return("number"==typeof e||"string"==typeof e)&&w("0,"+e)}function V(e){return A({name:U,validator:{validate:function(e,t){return k(e)},defaultMessage:E((function(e){return e+"$property must be a longitude string or number"}),e)}},e)}var H="equals";function W(e,t){return e===t}function K(e,t){return A({name:H,constraints:[e],validator:{validate:function(e,t){return W(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be equal to $constraint1"}),t)}},t)}var z="notEquals";function Y(e,t){return e!==t}function X(e,t){return A({name:z,constraints:[e],validator:{validate:function(e,t){return Y(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not be equal to $constraint1"}),t)}},t)}var q="isEmpty";function Z(e){return""===e||null==e}function J(e){return A({name:q,validator:{validate:function(e,t){return Z(e)},defaultMessage:E((function(e){return e+"$property must be empty"}),e)}},e)}var Q="isNotEmpty";function ee(e){return""!==e&&null!=e}function te(e){return A({name:Q,validator:{validate:function(e,t){return ee(e)},defaultMessage:E((function(e){return e+"$property should not be empty"}),e)}},e)}var re="isIn";function ne(e,t){return!(t instanceof Array)||t.some((function(t){return t===e}))}function oe(e,t){return A({name:re,constraints:[e],validator:{validate:function(e,t){return ne(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be one of the following values: $constraint1"}),t)}},t)}var ie="isNotIn";function ae(e,t){return!(t instanceof Array&&t.some((function(t){return t===e})))}function se(e,t){return A({name:ie,constraints:[e],validator:{validate:function(e,t){return ae(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not be one of the following values: $constraint1"}),t)}},t)}var ue="isDivisibleBy";function le(e,t){return"number"==typeof e&&"number"==typeof t&&x().isDivisibleBy(String(e),t)}function ce(e,t){return A({name:ue,constraints:[e],validator:{validate:function(e,t){return le(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be divisible by $constraint1"}),t)}},t)}var de="isPositive";function pe(e){return"number"==typeof e&&e>0}function ge(e){return A({name:de,validator:{validate:function(e,t){return pe(e)},defaultMessage:E((function(e){return e+"$property must be a positive number"}),e)}},e)}var fe="isNegative";function he(e){return"number"==typeof e&&e<0}function me(e){return A({name:fe,validator:{validate:function(e,t){return he(e)},defaultMessage:E((function(e){return e+"$property must be a negative number"}),e)}},e)}var ye="max";function be(e,t){return"number"==typeof e&&"number"==typeof t&&e<=t}function Se(e,t){return A({name:ye,constraints:[e],validator:{validate:function(e,t){return be(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must not be greater than $constraint1"}),t)}},t)}var _e="min";function Ce(e,t){return"number"==typeof e&&"number"==typeof t&&e>=t}function Ee(e,t){return A({name:_e,constraints:[e],validator:{validate:function(e,t){return Ce(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must not be less than $constraint1"}),t)}},t)}var Ae="minDate";function Ne(e,t){return e instanceof Date&&e.getTime()>=t.getTime()}function ve(e,t){return A({name:Ae,constraints:[e],validator:{validate:function(e,t){return Ne(e,t.constraints[0])},defaultMessage:E((function(e){return"minimal allowed date for "+e+"$property is $constraint1"}),t)}},t)}var Te="maxDate";function Ie(e,t){return e instanceof Date&&e.getTime()<=t.getTime()}function Oe(e,t){return A({name:Te,constraints:[e],validator:{validate:function(e,t){return Ie(e,t.constraints[0])},defaultMessage:E((function(e){return"maximal allowed date for "+e+"$property is $constraint1"}),t)}},t)}var De="contains";function Re(e,t){return"string"==typeof e&&x().contains(e,t)}function Pe(e,t){return A({name:De,constraints:[e],validator:{validate:function(e,t){return Re(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain a $constraint1 string"}),t)}},t)}var Me="notContains";function Fe(e,t){return"string"==typeof e&&!x().contains(e,t)}function xe(e,t){return A({name:Me,constraints:[e],validator:{validate:function(e,t){return Fe(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not contain a $constraint1 string"}),t)}},t)}var Le="isAlpha";function we(e,t){return"string"==typeof e&&x().isAlpha(e,t)}function $e(e,t){return A({name:Le,constraints:[e],validator:{validate:function(e,t){return we(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain only letters (a-zA-Z)"}),t)}},t)}var Be="isAlphanumeric";function Ge(e,t){return"string"==typeof e&&x().isAlphanumeric(e,t)}function je(e,t){return A({name:Be,constraints:[e],validator:{validate:function(e,t){return Ge(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain only letters and numbers"}),t)}},t)}var Ue="isDecimal";function ke(e,t){return"string"==typeof e&&x().isDecimal(e,t)}function Ve(e,t){return A({name:Ue,constraints:[e],validator:{validate:function(e,t){return ke(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property is not a valid decimal number."}),t)}},t)}var He="isAscii";function We(e){return"string"==typeof e&&x().isAscii(e)}function Ke(e){return A({name:He,validator:{validate:function(e,t){return We(e)},defaultMessage:E((function(e){return e+"$property must contain only ASCII characters"}),e)}},e)}var ze="isBase64";function Ye(e){return"string"==typeof e&&x().isBase64(e)}function Xe(e){return A({name:ze,validator:{validate:function(e,t){return Ye(e)},defaultMessage:E((function(e){return e+"$property must be base64 encoded"}),e)}},e)}var qe="isByteLength";function Ze(e,t,r){return"string"==typeof e&&x().isByteLength(e,{min:t,max:r})}function Je(e,t,r){return A({name:qe,constraints:[e,t],validator:{validate:function(e,t){return Ze(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e){return e+"$property's byte length must fall into ($constraint1, $constraint2) range"}),r)}},r)}var Qe="isCreditCard";function et(e){return"string"==typeof e&&x().isCreditCard(e)}function tt(e){return A({name:Qe,validator:{validate:function(e,t){return et(e)},defaultMessage:E((function(e){return e+"$property must be a credit card"}),e)}},e)}var rt="isCurrency";function nt(e,t){return"string"==typeof e&&x().isCurrency(e,t)}function ot(e,t){return A({name:rt,constraints:[e],validator:{validate:function(e,t){return nt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a currency"}),t)}},t)}var it="isEmail";function at(e,t){return"string"==typeof e&&x().isEmail(e,t)}function st(e,t){return A({name:it,constraints:[e],validator:{validate:function(e,t){return at(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an email"}),t)}},t)}var ut="isFqdn";function lt(e,t){return"string"==typeof e&&x().isFQDN(e,t)}function ct(e,t){return A({name:ut,constraints:[e],validator:{validate:function(e,t){return lt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid domain name"}),t)}},t)}var dt="isFullWidth";function pt(e){return"string"==typeof e&&x().isFullWidth(e)}function gt(e){return A({name:dt,validator:{validate:function(e,t){return pt(e)},defaultMessage:E((function(e){return e+"$property must contain a full-width characters"}),e)}},e)}var ft="isHalfWidth";function ht(e){return"string"==typeof e&&x().isHalfWidth(e)}function mt(e){return A({name:ft,validator:{validate:function(e,t){return ht(e)},defaultMessage:E((function(e){return e+"$property must contain a half-width characters"}),e)}},e)}var yt="isVariableWidth";function bt(e){return"string"==typeof e&&x().isVariableWidth(e)}function St(e){return A({name:yt,validator:{validate:function(e,t){return bt(e)},defaultMessage:E((function(e){return e+"$property must contain a full-width and half-width characters"}),e)}},e)}var _t="isHexColor";function Ct(e){return"string"==typeof e&&x().isHexColor(e)}function Et(e){return A({name:_t,validator:{validate:function(e,t){return Ct(e)},defaultMessage:E((function(e){return e+"$property must be a hexadecimal color"}),e)}},e)}var At="isHexadecimal";function Nt(e){return"string"==typeof e&&x().isHexadecimal(e)}function vt(e){return A({name:At,validator:{validate:function(e,t){return Nt(e)},defaultMessage:E((function(e){return e+"$property must be a hexadecimal number"}),e)}},e)}function Tt(e){return!!e&&("each"in e||"message"in e||"groups"in e||"always"in e||"context"in e)}var It="isMacAddress";function Ot(e,t){return"string"==typeof e&&x().isMACAddress(e,t)}function Dt(e,t){var r=Tt(e)?void 0:e,n=Tt(e)?e:t;return A({name:It,constraints:[r],validator:{validate:function(e,t){return Ot(e,r)},defaultMessage:E((function(e){return e+"$property must be a MAC Address"}),n)}},n)}var Rt="isIp";function Pt(e,t){var r=t?""+t:void 0;return"string"==typeof e&&x().isIP(e,r)}function Mt(e,t){return A({name:Rt,constraints:[e],validator:{validate:function(e,t){return Pt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an ip address"}),t)}},t)}var Ft="isPort";function xt(e){return"string"==typeof e&&x().isPort(e)}function Lt(e){return A({name:Ft,validator:{validate:function(e,t){return xt(e)},defaultMessage:E((function(e){return e+"$property must be a port"}),e)}},e)}var wt="isIsbn";function $t(e,t){var r=t?""+t:void 0;return"string"==typeof e&&x().isISBN(e,r)}function Bt(e,t){return A({name:wt,constraints:[e],validator:{validate:function(e,t){return $t(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an ISBN"}),t)}},t)}var Gt="isIsin";function jt(e){return"string"==typeof e&&x().isISIN(e)}function Ut(e){return A({name:Gt,validator:{validate:function(e,t){return jt(e)},defaultMessage:E((function(e){return e+"$property must be an ISIN (stock/security identifier)"}),e)}},e)}var kt="isIso8601";function Vt(e,t){return"string"==typeof e&&x().isISO8601(e,t)}function Ht(e,t){return A({name:kt,constraints:[e],validator:{validate:function(e,t){return Vt(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid ISO 8601 date string"}),t)}},t)}var Wt="isJson";function Kt(e){return"string"==typeof e&&x().isJSON(e)}function zt(e){return A({name:Wt,validator:{validate:function(e,t){return Kt(e)},defaultMessage:E((function(e){return e+"$property must be a json string"}),e)}},e)}var Yt="isJwt";function Xt(e){return"string"==typeof e&&x().isJWT(e)}function qt(e){return A({name:Yt,validator:{validate:function(e,t){return Xt(e)},defaultMessage:E((function(e){return e+"$property must be a jwt string"}),e)}},e)}var Zt="isLowercase";function Jt(e){return"string"==typeof e&&x().isLowercase(e)}function Qt(e){return A({name:Zt,validator:{validate:function(e,t){return Jt(e)},defaultMessage:E((function(e){return e+"$property must be a lowercase string"}),e)}},e)}var er="isMobilePhone";function tr(e,t,r){return"string"==typeof e&&x().isMobilePhone(e,t,r)}function rr(e,t,r){return A({name:er,constraints:[e,t],validator:{validate:function(e,t){return tr(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e){return e+"$property must be a phone number"}),r)}},r)}var nr="isISO31661Alpha2";function or(e){return"string"==typeof e&&x().isISO31661Alpha2(e)}function ir(e){return A({name:nr,validator:{validate:function(e,t){return or(e)},defaultMessage:E((function(e){return e+"$property must be a valid ISO31661 Alpha2 code"}),e)}},e)}var ar="isISO31661Alpha3";function sr(e){return"string"==typeof e&&x().isISO31661Alpha3(e)}function ur(e){return A({name:ar,validator:{validate:function(e,t){return sr(e)},defaultMessage:E((function(e){return e+"$property must be a valid ISO31661 Alpha3 code"}),e)}},e)}var lr="isMongoId";function cr(e){return"string"==typeof e&&x().isMongoId(e)}function dr(e){return A({name:lr,validator:{validate:function(e,t){return cr(e)},defaultMessage:E((function(e){return e+"$property must be a mongodb id"}),e)}},e)}var pr="isMultibyte";function gr(e){return"string"==typeof e&&x().isMultibyte(e)}function fr(e){return A({name:pr,validator:{validate:function(e,t){return gr(e)},defaultMessage:E((function(e){return e+"$property must contain one or more multibyte chars"}),e)}},e)}var hr="isSurrogatePair";function mr(e){return"string"==typeof e&&x().isSurrogatePair(e)}function yr(e){return A({name:hr,validator:{validate:function(e,t){return mr(e)},defaultMessage:E((function(e){return e+"$property must contain any surrogate pairs chars"}),e)}},e)}var br="isUrl";function Sr(e,t){return"string"==typeof e&&x().isURL(e,t)}function _r(e,t){return A({name:br,constraints:[e],validator:{validate:function(e,t){return Sr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an URL address"}),t)}},t)}var Cr="isUuid";function Er(e,t){return"string"==typeof e&&x().isUUID(e,t)}function Ar(e,t){return A({name:Cr,constraints:[e],validator:{validate:function(e,t){return Er(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be an UUID"}),t)}},t)}var Nr="IsFirebasePushId";function vr(e){return"string"==typeof e&&20===e.length&&/^[a-zA-Z0-9_-]*$/.test(e)}function Tr(e){return A({name:Nr,validator:{validate:function(e,t){return vr(e)},defaultMessage:E((function(e){return e+"$property must be a Firebase Push Id"}),e)}},e)}var Ir="isUppercase";function Or(e){return"string"==typeof e&&x().isUppercase(e)}function Dr(e){return A({name:Ir,validator:{validate:function(e,t){return Or(e)},defaultMessage:E((function(e){return e+"$property must be uppercase"}),e)}},e)}var Rr="length";function Pr(e,t,r){return"string"==typeof e&&x().isLength(e,{min:t,max:r})}function Mr(e,t,r){return A({name:Rr,constraints:[e,t],validator:{validate:function(e,t){return Pr(e,t.constraints[0],t.constraints[1])},defaultMessage:E((function(e,t){var r=null!==t.constraints[0]&&void 0!==t.constraints[0],n=null!==t.constraints[1]&&void 0!==t.constraints[1];return r&&(!t.value||t.value.length<t.constraints[0])?e+"$property must be longer than or equal to $constraint1 characters":n&&t.value.length>t.constraints[1]?e+"$property must be shorter than or equal to $constraint2 characters":e+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"}),r)}},r)}var Fr="maxLength";function xr(e,t){return"string"==typeof e&&x().isLength(e,{min:0,max:t})}function Lr(e,t){return A({name:Fr,constraints:[e],validator:{validate:function(e,t){return xr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be shorter than or equal to $constraint1 characters"}),t)}},t)}var wr="minLength";function $r(e,t){return"string"==typeof e&&x().isLength(e,{min:t})}function Br(e,t){return A({name:wr,constraints:[e],validator:{validate:function(e,t){return $r(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be longer than or equal to $constraint1 characters"}),t)}},t)}var Gr="matches";function jr(e,t,r){return"string"==typeof e&&x().matches(e,t,r)}function Ur(e,t,r){var n;return t&&t instanceof Object&&!r?r=t:n=t,A({name:Gr,constraints:[e,n],validator:{validate:function(e,t){return jr(e,t.constraints[0],t.constraints[0])},defaultMessage:E((function(e,t){return e+"$property must match $constraint1 regular expression"}),r)}},r)}var kr=r(3791),Vr="isPhoneNumber";function Hr(e,t){var r=kr.PhoneNumberUtil.getInstance();try{var n=r.parseAndKeepRawInput(e,t);return r.isValidNumber(n)}catch(e){return!1}}function Wr(e,t){return A({name:Vr,constraints:[e],validator:{validate:function(e,t){return Hr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid phone number"}),t)}},t)}var Kr="isMilitaryTime";function zr(e){return"string"==typeof e&&x().matches(e,/^([01]\d|2[0-3]):?([0-5]\d)$/)}function Yr(e){return A({name:Kr,validator:{validate:function(e,t){return zr(e)},defaultMessage:E((function(e){return e+"$property must be a valid representation of military time in the format HH:MM"}),e)}},e)}var Xr="isHash";function qr(e,t){return"string"==typeof e&&x().isHash(e,t)}function Zr(e,t){return A({name:Xr,constraints:[e],validator:{validate:function(e,t){return qr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a hash of type $constraint1"}),t)}},t)}var Jr="isISSN";function Qr(e,t){return"string"==typeof e&&x().isISSN(e,t)}function en(e,t){return A({name:Jr,constraints:[e],validator:{validate:function(e,t){return Qr(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a ISSN"}),t)}},t)}var tn="isDateString";function rn(e){return"string"==typeof e&&/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[\+\-][0-2]\d(?:\:[0-5]\d)?)?$/g.test(e)}function nn(e){return A({name:tn,validator:{validate:function(e,t){return rn(e)},defaultMessage:E((function(e){return e+"$property must be a ISOString"}),e)}},e)}var on="isBooleanString";function an(e){return"string"==typeof e&&x().isBoolean(e)}function sn(e){return A({name:on,validator:{validate:function(e,t){return an(e)},defaultMessage:E((function(e){return e+"$property must be a boolean string"}),e)}},e)}var un="isNumberString";function ln(e,t){return"string"==typeof e&&x().isNumeric(e,t)}function cn(e,t){return A({name:un,constraints:[e],validator:{validate:function(e,t){return ln(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a number string"}),t)}},t)}var dn="isBase32";function pn(e){return"string"==typeof e&&x().isBase32(e)}function gn(e){return A({name:dn,validator:{validate:function(e,t){return pn(e)},defaultMessage:E((function(e){return e+"$property must be base32 encoded"}),e)}},e)}var fn="isBIC";function hn(e){return"string"==typeof e&&x().isBIC(e)}function mn(e){return A({name:fn,validator:{validate:function(e,t){return hn(e)},defaultMessage:E((function(e){return e+"$property must be a BIC or SWIFT code"}),e)}},e)}var yn="isBtcAddress";function bn(e){return"string"==typeof e&&x().isBtcAddress(e)}function Sn(e){return A({name:yn,validator:{validate:function(e,t){return bn(e)},defaultMessage:E((function(e){return e+"$property must be a BTC address"}),e)}},e)}var _n="isDataURI";function Cn(e){return"string"==typeof e&&x().isDataURI(e)}function En(e){return A({name:_n,validator:{validate:function(e,t){return Cn(e)},defaultMessage:E((function(e){return e+"$property must be a data uri format"}),e)}},e)}var An="isEAN";function Nn(e){return"string"==typeof e&&x().isEAN(e)}function vn(e){return A({name:An,validator:{validate:function(e,t){return Nn(e)},defaultMessage:E((function(e){return e+"$property must be an EAN (European Article Number)"}),e)}},e)}var Tn="isEthereumAddress";function In(e){return"string"==typeof e&&x().isEthereumAddress(e)}function On(e){return A({name:Tn,validator:{validate:function(e,t){return In(e)},defaultMessage:E((function(e){return e+"$property must be an Ethereum address"}),e)}},e)}var Dn="isHSL";function Rn(e){return"string"==typeof e&&x().isHSL(e)}function Pn(e){return A({name:Dn,validator:{validate:function(e,t){return Rn(e)},defaultMessage:E((function(e){return e+"$property must be a HSL color"}),e)}},e)}var Mn="isIBAN";function Fn(e){return"string"==typeof e&&x().isIBAN(e)}function xn(e){return A({name:Mn,validator:{validate:function(e,t){return Fn(e)},defaultMessage:E((function(e){return e+"$property must be an IBAN"}),e)}},e)}var Ln="isIdentityCard";function wn(e,t){return"string"==typeof e&&x().isIdentityCard(e,t)}function $n(e,t){return A({name:Ln,constraints:[e],validator:{validate:function(e,t){return wn(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a identity card number"}),t)}},t)}var Bn="isISRC";function Gn(e){return"string"==typeof e&&x().isISRC(e)}function jn(e){return A({name:Bn,validator:{validate:function(e,t){return Gn(e)},defaultMessage:E((function(e){return e+"$property must be an ISRC"}),e)}},e)}var Un="isLocale";function kn(e){return"string"==typeof e&&x().isLocale(e)}function Vn(e){return A({name:Un,validator:{validate:function(e,t){return kn(e)},defaultMessage:E((function(e){return e+"$property must be locale"}),e)}},e)}var Hn="isMagnetURI";function Wn(e){return"string"==typeof e&&x().isMagnetURI(e)}function Kn(e){return A({name:Hn,validator:{validate:function(e,t){return Wn(e)},defaultMessage:E((function(e){return e+"$property must be magnet uri format"}),e)}},e)}var zn="isMimeType";function Yn(e){return"string"==typeof e&&x().isMimeType(e)}function Xn(e){return A({name:zn,validator:{validate:function(e,t){return Yn(e)},defaultMessage:E((function(e){return e+"$property must be MIME type format"}),e)}},e)}var qn="isOctal";function Zn(e){return"string"==typeof e&&x().isOctal(e)}function Jn(e){return A({name:qn,validator:{validate:function(e,t){return Zn(e)},defaultMessage:E((function(e){return e+"$property must be valid octal number"}),e)}},e)}var Qn="isPassportNumber";function eo(e,t){return"string"==typeof e&&x().isPassportNumber(e,t)}function to(e,t){return A({name:Qn,constraints:[e],validator:{validate:function(e,t){return eo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be valid passport number"}),t)}},t)}var ro="isPostalCode";function no(e,t){return"string"==typeof e&&x().isPostalCode(e,t)}function oo(e,t){return A({name:ro,constraints:[e],validator:{validate:function(e,t){return no(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a postal code"}),t)}},t)}var io="isRFC3339";function ao(e){return"string"==typeof e&&x().isRFC3339(e)}function so(e){return A({name:io,validator:{validate:function(e,t){return ao(e)},defaultMessage:E((function(e){return e+"$property must be RFC 3339 date"}),e)}},e)}var uo="isRgbColor";function lo(e,t){return"string"==typeof e&&x().isRgbColor(e,t)}function co(e,t){return A({name:uo,constraints:[e],validator:{validate:function(e,t){return lo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be RGB color"}),t)}},t)}var po="isSemVer";function go(e){return"string"==typeof e&&x().isSemVer(e)}function fo(e){return A({name:po,validator:{validate:function(e,t){return go(e)},defaultMessage:E((function(e){return e+"$property must be a Semantic Versioning Specification"}),e)}},e)}var ho="isBoolean";function mo(e){return e instanceof Boolean||"boolean"==typeof e}function yo(e){return A({name:ho,validator:{validate:function(e,t){return mo(e)},defaultMessage:E((function(e){return e+"$property must be a boolean value"}),e)}},e)}var bo="isDate";function So(e){return e instanceof Date&&!isNaN(e.getTime())}function _o(e){return A({name:bo,validator:{validate:function(e,t){return So(e)},defaultMessage:E((function(e){return e+"$property must be a Date instance"}),e)}},e)}var Co="isNumber";function Eo(e,t){if(void 0===t&&(t={}),"number"!=typeof e)return!1;if(e===1/0||e===-1/0)return t.allowInfinity;if(Number.isNaN(e))return t.allowNaN;if(void 0!==t.maxDecimalPlaces){var r=0;if(e%1!=0&&(r=e.toString().split(".")[1].length),r>t.maxDecimalPlaces)return!1}return Number.isFinite(e)}function Ao(e,t){return void 0===e&&(e={}),A({name:Co,constraints:[e],validator:{validate:function(e,t){return Eo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a number conforming to the specified constraints"}),t)}},t)}var No="isEnum";function vo(e,t){return Object.keys(t).map((function(e){return t[e]})).indexOf(e)>=0}function To(e,t){return A({name:No,constraints:[e],validator:{validate:function(e,t){return vo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must be a valid enum value"}),t)}},t)}var Io="isInt";function Oo(e){return"number"==typeof e&&Number.isInteger(e)}function Do(e){return A({name:Io,validator:{validate:function(e,t){return Oo(e)},defaultMessage:E((function(e){return e+"$property must be an integer number"}),e)}},e)}var Ro="isString";function Po(e){return e instanceof String||"string"==typeof e}function Mo(e){return A({name:Ro,validator:{validate:function(e,t){return Po(e)},defaultMessage:E((function(e){return e+"$property must be a string"}),e)}},e)}var Fo="isArray";function xo(e){return e instanceof Array}function Lo(e){return A({name:Fo,validator:{validate:function(e,t){return xo(e)},defaultMessage:E((function(e){return e+"$property must be an array"}),e)}},e)}var wo="isObject";function $o(e){return null!=e&&("object"==typeof e||"function"==typeof e)&&!Array.isArray(e)}function Bo(e){return A({name:wo,validator:{validate:function(e,t){return $o(e)},defaultMessage:E((function(e){return e+"$property must be an object"}),e)}},e)}var Go="arrayContains";function jo(e,t){return e instanceof Array&&t.every((function(t){return-1!==e.indexOf(t)}))}function Uo(e,t){return A({name:Go,constraints:[e],validator:{validate:function(e,t){return jo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain $constraint1 values"}),t)}},t)}var ko="arrayNotContains";function Vo(e,t){return e instanceof Array&&t.every((function(t){return-1===e.indexOf(t)}))}function Ho(e,t){return A({name:ko,constraints:[e],validator:{validate:function(e,t){return Vo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property should not contain $constraint1 values"}),t)}},t)}var Wo="arrayNotEmpty";function Ko(e){return e instanceof Array&&e.length>0}function zo(e){return A({name:Wo,validator:{validate:function(e,t){return Ko(e)},defaultMessage:E((function(e){return e+"$property should not be empty"}),e)}},e)}var Yo="arrayMinSize";function Xo(e,t){return e instanceof Array&&e.length>=t}function qo(e,t){return A({name:Yo,constraints:[e],validator:{validate:function(e,t){return Xo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain at least $constraint1 elements"}),t)}},t)}var Zo="arrayMaxSize";function Jo(e,t){return e instanceof Array&&e.length<=t}function Qo(e,t){return A({name:Zo,constraints:[e],validator:{validate:function(e,t){return Jo(e,t.constraints[0])},defaultMessage:E((function(e){return e+"$property must contain not more than $constraint1 elements"}),t)}},t)}var ei="arrayUnique";function ti(e){if(!(e instanceof Array))return!1;var t=e.filter((function(e,t,r){return r.indexOf(e)===t}));return e.length===t.length}function ri(e){return A({name:ei,validator:{validate:function(e,t){return ti(e)},defaultMessage:E((function(e){return e+"All $property's elements must be unique"}),e)}},e)}var ni="isNotEmptyObject";function oi(e){if(!$o(e))return!1;for(var t in e)if(e.hasOwnProperty(t))return!0;return!1}function ii(e){return A({name:ni,validator:{validate:function(e,t){return oi(e)},defaultMessage:E((function(e){return e+"$property must be a non-empty object"}),e)}},e)}var ai="isInstance";function si(e,t){return t&&"function"==typeof t&&e instanceof t}function ui(e,t){return A({name:ai,constraints:[e],validator:{validate:function(e,t){return si(e,t.constraints[0])},defaultMessage:E((function(e,t){return t.constraints[0]?e+"$property must be an instance of "+t.constraints[0].name:e+(ai+" decorator expects and object as value, but got falsy value.")}),t)}},t)}function li(e,t,r){return"string"==typeof e?b(h).validate(e,t,r):b(h).validate(e,t)}function ci(e,t,r){return"string"==typeof e?b(h).validateOrReject(e,t,r):b(h).validateOrReject(e,t)}function di(e,t,r){return"string"==typeof e?b(h).validateSync(e,t,r):b(h).validateSync(e,t)}function pi(e){i().addValidationSchema(e)}},1012:e=>{var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r<e.length;r++,n+=8)t[n>>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r<e.length;r++)t.push((e[r]>>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},bytesToBase64:function(e){for(var r=[],n=0;n<e.length;n+=3)for(var o=e[n]<<16|e[n+1]<<8|e[n+2],i=0;i<4;i++)8*n+6*i<=8*e.length?r.push(t.charAt(o>>>6*(3-i)&63)):r.push("=");return r.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],n=0,o=0;n<e.length;o=++n%4)0!=o&&r.push((t.indexOf(e.charAt(n-1))&Math.pow(2,-2*o+8)-1)<<2*o|t.indexOf(e.charAt(n))>>>6-2*o);return r}},e.exports=r},4289:(e,t,r)=>{"use strict";var n=r(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=s&&function(){var e={};try{for(var t in s(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),l=function(e,t,r,n){var o;(!(t in e)||"function"==typeof(o=n)&&"[object Function]"===i.call(o)&&n())&&(u?s(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r)},c=function(e,t){var r=arguments.length>2?arguments[2]:{},i=n(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)l(e,i[s],t[i[s]],r[i[s]])};c.supportsDescriptors=!!u,e.exports=c},8091:e=>{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var r=Object(e),n=1;n<arguments.length;n++){var o=arguments[n];if(null!=o)for(var i=Object.keys(Object(o)),a=0,s=i.length;a<s;a++){var u=i[a],l=Object.getOwnPropertyDescriptor(o,u);void 0!==l&&l.enumerable&&(r[u]=o[u])}}return r}e.exports={assign:t,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:t})}}},1300:(e,t,r)=>{"use strict";const n=r(1509);class o{constructor(e,t,r,n,o,i){this.type=e,this.name=t,this.node=r,this.parent=n,this.index=o,this.kind=i}}e.exports={ParameterDefinition:class extends o{constructor(e,t,r,o){super(n.Parameter,e,t,null,r,null),this.rest=o}},Definition:o}},5048:(e,t,r)=>{"use strict";const n=r(9282),o=r(4140),i=r(1625),a=r(6469),s=r(1509),u=r(5099).Scope,l=r(2245).i8;function c(e,t){function r(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof Array)&&!(e instanceof RegExp)}for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const o=t[n];r(o)?r(e[n])?c(e[n],o):e[n]=c({},o):e[n]=o}return e}e.exports={version:l,Reference:a,Variable:s,Scope:u,ScopeManager:o,analyze:function(e,t){const r=c({optimistic:!1,directive:!1,nodejsScope:!1,impliedStrict:!1,sourceType:"script",ecmaVersion:5,childVisitorKeys:null,fallback:"iteration"},t),a=new o(r);return new i(r,a).visit(e),n(null===a.__currentScope,"currentScope should be null."),a}}},9851:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(8192);class i extends o.Visitor{static isPattern(e){const t=e.type;return t===n.Identifier||t===n.ObjectPattern||t===n.ArrayPattern||t===n.SpreadElement||t===n.RestElement||t===n.AssignmentPattern}constructor(e,t,r){super(null,e),this.rootPattern=t,this.callback=r,this.assignments=[],this.rightHandNodes=[],this.restElements=[]}Identifier(e){const t=(r=this.restElements)[r.length-1]||null;var r;this.callback(e,{topLevel:e===this.rootPattern,rest:null!=t&&t.argument===e,assignments:this.assignments})}Property(e){e.computed&&this.rightHandNodes.push(e.key),this.visit(e.value)}ArrayPattern(e){for(let t=0,r=e.elements.length;t<r;++t){const r=e.elements[t];this.visit(r)}}AssignmentPattern(e){this.assignments.push(e),this.visit(e.left),this.rightHandNodes.push(e.right),this.assignments.pop()}RestElement(e){this.restElements.push(e),this.visit(e.argument),this.restElements.pop()}MemberExpression(e){e.computed&&this.rightHandNodes.push(e.property),this.rightHandNodes.push(e.object)}SpreadElement(e){this.visit(e.argument)}ArrayExpression(e){e.elements.forEach(this.visit,this)}AssignmentExpression(e){this.assignments.push(e),this.visit(e.left),this.rightHandNodes.push(e.right),this.assignments.pop()}CallExpression(e){e.arguments.forEach((e=>{this.rightHandNodes.push(e)})),this.visit(e.callee)}}e.exports=i},6469:e=>{"use strict";class t{constructor(e,t,r,n,o,i,a){this.identifier=e,this.from=t,this.tainted=!1,this.resolved=null,this.flag=r,this.isWrite()&&(this.writeExpr=n,this.partial=i,this.init=a),this.__maybeImplicitGlobal=o}isStatic(){return!this.tainted&&this.resolved&&this.resolved.scope.isStatic()}isWrite(){return!!(this.flag&t.WRITE)}isRead(){return!!(this.flag&t.READ)}isReadOnly(){return this.flag===t.READ}isWriteOnly(){return this.flag===t.WRITE}isReadWrite(){return this.flag===t.RW}}t.READ=1,t.WRITE=2,t.RW=3,e.exports=t},1625:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(8192),i=r(6469),a=r(1509),s=r(9851),u=r(1300),l=r(9282),c=u.ParameterDefinition,d=u.Definition;class p extends o.Visitor{constructor(e,t){super(null,t.options),this.declaration=e,this.referencer=t}visitImport(e,t){this.referencer.visitPattern(e,(e=>{this.referencer.currentScope().__define(e,new d(a.ImportBinding,e,t,this.declaration,null,null))}))}ImportNamespaceSpecifier(e){const t=e.local||e.id;t&&this.visitImport(t,e)}ImportDefaultSpecifier(e){const t=e.local||e.id;this.visitImport(t,e)}ImportSpecifier(e){const t=e.local||e.id;e.name?this.visitImport(e.name,e):this.visitImport(t,e)}}class g extends o.Visitor{constructor(e,t){super(null,e),this.options=e,this.scopeManager=t,this.parent=null,this.isInnerMethodDefinition=!1}currentScope(){return this.scopeManager.__currentScope}close(e){for(;this.currentScope()&&e===this.currentScope().block;)this.scopeManager.__currentScope=this.currentScope().__close(this.scopeManager)}pushInnerMethodDefinition(e){const t=this.isInnerMethodDefinition;return this.isInnerMethodDefinition=e,t}popInnerMethodDefinition(e){this.isInnerMethodDefinition=e}referencingDefaultValue(e,t,r,n){const o=this.currentScope();t.forEach((t=>{o.__referencing(e,i.WRITE,t.right,r,e!==t.left,n)}))}visitPattern(e,t,r){let n=t,o=r;"function"==typeof t&&(o=t,n={processRightHandNodes:!1}),function(e,t,r,n){const o=new s(e,t,n);o.visit(t),null!=r&&o.rightHandNodes.forEach(r.visit,r)}(this.options,e,n.processRightHandNodes?this:null,o)}visitFunction(e){let t,r;e.type===n.FunctionDeclaration&&this.currentScope().__define(e.id,new d(a.FunctionName,e.id,e,null,null,null)),e.type===n.FunctionExpression&&e.id&&this.scopeManager.__nestFunctionExpressionNameScope(e),this.scopeManager.__nestFunctionScope(e,this.isInnerMethodDefinition);const o=this;function i(r,n){o.currentScope().__define(r,new c(r,e,t,n.rest)),o.referencingDefaultValue(r,n.assignments,null,!0)}for(t=0,r=e.params.length;t<r;++t)this.visitPattern(e.params[t],{processRightHandNodes:!0},i);e.rest&&this.visitPattern({type:"RestElement",argument:e.rest},(t=>{this.currentScope().__define(t,new c(t,e,e.params.length,!0))})),e.body&&(e.body.type===n.BlockStatement?this.visitChildren(e.body):this.visit(e.body)),this.close(e)}visitClass(e){e.type===n.ClassDeclaration&&this.currentScope().__define(e.id,new d(a.ClassName,e.id,e,null,null,null)),this.visit(e.superClass),this.scopeManager.__nestClassScope(e),e.id&&this.currentScope().__define(e.id,new d(a.ClassName,e.id,e)),this.visit(e.body),this.close(e)}visitProperty(e){let t;e.computed&&this.visit(e.key);const r=e.type===n.MethodDefinition;r&&(t=this.pushInnerMethodDefinition(!0)),this.visit(e.value),r&&this.popInnerMethodDefinition(t)}visitForIn(e){e.left.type===n.VariableDeclaration&&"var"!==e.left.kind&&this.scopeManager.__nestForScope(e),e.left.type===n.VariableDeclaration?(this.visit(e.left),this.visitPattern(e.left.declarations[0].id,(t=>{this.currentScope().__referencing(t,i.WRITE,e.right,null,!0,!0)}))):this.visitPattern(e.left,{processRightHandNodes:!0},((t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,i.WRITE,e.right,n,!0,!1)})),this.visit(e.right),this.visit(e.body),this.close(e)}visitVariableDeclaration(e,t,r,n){const o=r.declarations[n],a=o.init;this.visitPattern(o.id,{processRightHandNodes:!0},((s,u)=>{e.__define(s,new d(t,s,o,r,n,r.kind)),this.referencingDefaultValue(s,u.assignments,null,!0),a&&this.currentScope().__referencing(s,i.WRITE,a,null,!u.topLevel,!0)}))}AssignmentExpression(e){s.isPattern(e.left)?"="===e.operator?this.visitPattern(e.left,{processRightHandNodes:!0},((t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,i.WRITE,e.right,n,!r.topLevel,!1)})):this.currentScope().__referencing(e.left,i.RW,e.right):this.visit(e.left),this.visit(e.right)}CatchClause(e){this.scopeManager.__nestCatchScope(e),this.visitPattern(e.param,{processRightHandNodes:!0},((t,r)=>{this.currentScope().__define(t,new d(a.CatchClause,e.param,e,null,null,null)),this.referencingDefaultValue(t,r.assignments,null,!0)})),this.visit(e.body),this.close(e)}Program(e){this.scopeManager.__nestGlobalScope(e),this.scopeManager.__isNodejsScope()&&(this.currentScope().isStrict=!1,this.scopeManager.__nestFunctionScope(e,!1)),this.scopeManager.__isES6()&&this.scopeManager.isModule()&&this.scopeManager.__nestModuleScope(e),this.scopeManager.isStrictModeSupported()&&this.scopeManager.isImpliedStrict()&&(this.currentScope().isStrict=!0),this.visitChildren(e),this.close(e)}Identifier(e){this.currentScope().__referencing(e)}UpdateExpression(e){s.isPattern(e.argument)?this.currentScope().__referencing(e.argument,i.RW,null):this.visitChildren(e)}MemberExpression(e){this.visit(e.object),e.computed&&this.visit(e.property)}Property(e){this.visitProperty(e)}MethodDefinition(e){this.visitProperty(e)}BreakStatement(){}ContinueStatement(){}LabeledStatement(e){this.visit(e.body)}ForStatement(e){e.init&&e.init.type===n.VariableDeclaration&&"var"!==e.init.kind&&this.scopeManager.__nestForScope(e),this.visitChildren(e),this.close(e)}ClassExpression(e){this.visitClass(e)}ClassDeclaration(e){this.visitClass(e)}CallExpression(e){this.scopeManager.__ignoreEval()||e.callee.type!==n.Identifier||"eval"!==e.callee.name||this.currentScope().variableScope.__detectEval(),this.visitChildren(e)}BlockStatement(e){this.scopeManager.__isES6()&&this.scopeManager.__nestBlockScope(e),this.visitChildren(e),this.close(e)}ThisExpression(){this.currentScope().variableScope.__detectThis()}WithStatement(e){this.visit(e.object),this.scopeManager.__nestWithScope(e),this.visit(e.body),this.close(e)}VariableDeclaration(e){const t="var"===e.kind?this.currentScope().variableScope:this.currentScope();for(let r=0,n=e.declarations.length;r<n;++r){const n=e.declarations[r];this.visitVariableDeclaration(t,a.Variable,e,r),n.init&&this.visit(n.init)}}SwitchStatement(e){this.visit(e.discriminant),this.scopeManager.__isES6()&&this.scopeManager.__nestSwitchScope(e);for(let t=0,r=e.cases.length;t<r;++t)this.visit(e.cases[t]);this.close(e)}FunctionDeclaration(e){this.visitFunction(e)}FunctionExpression(e){this.visitFunction(e)}ForOfStatement(e){this.visitForIn(e)}ForInStatement(e){this.visitForIn(e)}ArrowFunctionExpression(e){this.visitFunction(e)}ImportDeclaration(e){l(this.scopeManager.__isES6()&&this.scopeManager.isModule(),"ImportDeclaration should appear when the mode is ES6 and in the module context."),new p(e,this).visit(e)}visitExportDeclaration(e){e.source||(e.declaration?this.visit(e.declaration):this.visitChildren(e))}ExportDeclaration(e){this.visitExportDeclaration(e)}ExportAllDeclaration(e){this.visitExportDeclaration(e)}ExportDefaultDeclaration(e){this.visitExportDeclaration(e)}ExportNamedDeclaration(e){this.visitExportDeclaration(e)}ExportSpecifier(e){const t=e.id||e.local;this.visit(t)}MetaProperty(){}}e.exports=g},4140:(e,t,r)=>{"use strict";const n=r(5099),o=r(9282),i=n.GlobalScope,a=n.CatchScope,s=n.WithScope,u=n.ModuleScope,l=n.ClassScope,c=n.SwitchScope,d=n.FunctionScope,p=n.ForScope,g=n.FunctionExpressionNameScope,f=n.BlockScope;e.exports=class{constructor(e){this.scopes=[],this.globalScope=null,this.__nodeToScope=new WeakMap,this.__currentScope=null,this.__options=e,this.__declaredVariables=new WeakMap}__useDirective(){return this.__options.directive}__isOptimistic(){return this.__options.optimistic}__ignoreEval(){return this.__options.ignoreEval}__isNodejsScope(){return this.__options.nodejsScope}isModule(){return"module"===this.__options.sourceType}isImpliedStrict(){return this.__options.impliedStrict}isStrictModeSupported(){return this.__options.ecmaVersion>=5}__get(e){return this.__nodeToScope.get(e)}getDeclaredVariables(e){return this.__declaredVariables.get(e)||[]}acquire(e,t){function r(e){return"function"!==e.type||!e.functionExpressionScope}const n=this.__get(e);if(!n||0===n.length)return null;if(1===n.length)return n[0];if(t)for(let e=n.length-1;e>=0;--e){const t=n[e];if(r(t))return t}else for(let e=0,t=n.length;e<t;++e){const t=n[e];if(r(t))return t}return null}acquireAll(e){return this.__get(e)}release(e,t){const r=this.__get(e);if(r&&r.length){const e=r[0].upper;return e?this.acquire(e.block,t):null}return null}attach(){}detach(){}__nestScope(e){return e instanceof i&&(o(null===this.__currentScope),this.globalScope=e),this.__currentScope=e,e}__nestGlobalScope(e){return this.__nestScope(new i(this,e))}__nestBlockScope(e){return this.__nestScope(new f(this,this.__currentScope,e))}__nestFunctionScope(e,t){return this.__nestScope(new d(this,this.__currentScope,e,t))}__nestForScope(e){return this.__nestScope(new p(this,this.__currentScope,e))}__nestCatchScope(e){return this.__nestScope(new a(this,this.__currentScope,e))}__nestWithScope(e){return this.__nestScope(new s(this,this.__currentScope,e))}__nestClassScope(e){return this.__nestScope(new l(this,this.__currentScope,e))}__nestSwitchScope(e){return this.__nestScope(new c(this,this.__currentScope,e))}__nestModuleScope(e){return this.__nestScope(new u(this,this.__currentScope,e))}__nestFunctionExpressionNameScope(e){return this.__nestScope(new g(this,this.__currentScope,e))}__isES6(){return this.__options.ecmaVersion>=6}}},5099:(e,t,r)=>{"use strict";const n=r(7901).Syntax,o=r(6469),i=r(1509),a=r(1300).Definition,s=r(9282);function u(e){return e.type===i.ClassName||e.type===i.Variable&&"var"!==e.parent.kind}class l{constructor(e,t,r,o,i){this.type=t,this.set=new Map,this.taints=new Map,this.dynamic="global"===this.type||"with"===this.type,this.block=o,this.through=[],this.variables=[],this.references=[],this.variableScope="global"===this.type||"function"===this.type||"module"===this.type?this:r.variableScope,this.functionExpressionScope=!1,this.directCallToEvalScope=!1,this.thisFound=!1,this.__left=[],this.upper=r,this.isStrict=function(e,t,r,o){let i;if(e.upper&&e.upper.isStrict)return!0;if(r)return!0;if("class"===e.type||"module"===e.type)return!0;if("block"===e.type||"switch"===e.type)return!1;if("function"===e.type){if(t.type===n.ArrowFunctionExpression&&t.body.type!==n.BlockStatement)return!1;if(i=t.type===n.Program?t:t.body,!i)return!1}else{if("global"!==e.type)return!1;i=t}if(o)for(let e=0,t=i.body.length;e<t;++e){const t=i.body[e];if(t.type!==n.DirectiveStatement)break;if('"use strict"'===t.raw||"'use strict'"===t.raw)return!0}else for(let e=0,t=i.body.length;e<t;++e){const t=i.body[e];if(t.type!==n.ExpressionStatement)break;const r=t.expression;if(r.type!==n.Literal||"string"!=typeof r.value)break;if(null!==r.raw&&void 0!==r.raw){if('"use strict"'===r.raw||"'use strict'"===r.raw)return!0}else if("use strict"===r.value)return!0}return!1}(this,o,i,e.__useDirective()),this.childScopes=[],this.upper&&this.upper.childScopes.push(this),this.__declaredVariables=e.__declaredVariables,function(e,t){e.scopes.push(t);const r=e.__nodeToScope.get(t.block);r?r.push(t):e.__nodeToScope.set(t.block,[t])}(e,this)}__shouldStaticallyClose(e){return!this.dynamic||e.__isOptimistic()}__shouldStaticallyCloseForGlobal(e){const t=e.identifier.name;if(!this.set.has(t))return!1;const r=this.set.get(t).defs;return r.length>0&&r.every(u)}__staticCloseRef(e){this.__resolve(e)||this.__delegateToUpperScope(e)}__dynamicCloseRef(e){let t=this;do{t.through.push(e),t=t.upper}while(t)}__globalCloseRef(e){this.__shouldStaticallyCloseForGlobal(e)?this.__staticCloseRef(e):this.__dynamicCloseRef(e)}__close(e){let t;t=this.__shouldStaticallyClose(e)?this.__staticCloseRef:"global"!==this.type?this.__dynamicCloseRef:this.__globalCloseRef;for(let e=0,r=this.__left.length;e<r;++e){const r=this.__left[e];t.call(this,r)}return this.__left=null,this.upper}__isValidResolution(e,t){return!0}__resolve(e){const t=e.identifier.name;if(!this.set.has(t))return!1;const r=this.set.get(t);return!!this.__isValidResolution(e,r)&&(r.references.push(e),r.stack=r.stack&&e.from.variableScope===this.variableScope,e.tainted&&(r.tainted=!0,this.taints.set(r.name,!0)),e.resolved=r,!0)}__delegateToUpperScope(e){this.upper&&this.upper.__left.push(e),this.through.push(e)}__addDeclaredVariablesOfNode(e,t){if(null==t)return;let r=this.__declaredVariables.get(t);null==r&&(r=[],this.__declaredVariables.set(t,r)),-1===r.indexOf(e)&&r.push(e)}__defineGeneric(e,t,r,n,o){let a;a=t.get(e),a||(a=new i(e,this),t.set(e,a),r.push(a)),o&&(a.defs.push(o),this.__addDeclaredVariablesOfNode(a,o.node),this.__addDeclaredVariablesOfNode(a,o.parent)),n&&a.identifiers.push(n)}__define(e,t){e&&e.type===n.Identifier&&this.__defineGeneric(e.name,this.set,this.variables,e,t)}__referencing(e,t,r,i,a,s){if(!e||e.type!==n.Identifier)return;if("super"===e.name)return;const u=new o(e,this,t||o.READ,r,i,!!a,!!s);this.references.push(u),this.__left.push(u)}__detectEval(){let e=this;this.directCallToEvalScope=!0;do{e.dynamic=!0,e=e.upper}while(e)}__detectThis(){this.thisFound=!0}__isClosed(){return null===this.__left}resolve(e){let t,r,o;for(s(this.__isClosed(),"Scope should be closed."),s(e.type===n.Identifier,"Target should be identifier."),r=0,o=this.references.length;r<o;++r)if(t=this.references[r],t.identifier===e)return t;return null}isStatic(){return!this.dynamic}isArgumentsMaterialized(){return!0}isThisMaterialized(){return!0}isUsedName(e){if(this.set.has(e))return!0;for(let t=0,r=this.through.length;t<r;++t)if(this.through[t].identifier.name===e)return!0;return!1}}e.exports={Scope:l,GlobalScope:class extends l{constructor(e,t){super(e,"global",null,t,!1),this.implicit={set:new Map,variables:[],left:[]}}__close(e){const t=[];for(let e=0,r=this.__left.length;e<r;++e){const r=this.__left[e];r.__maybeImplicitGlobal&&!this.set.has(r.identifier.name)&&t.push(r.__maybeImplicitGlobal)}for(let e=0,r=t.length;e<r;++e){const r=t[e];this.__defineImplicit(r.pattern,new a(i.ImplicitGlobalVariable,r.pattern,r.node,null,null,null))}return this.implicit.left=this.__left,super.__close(e)}__defineImplicit(e,t){e&&e.type===n.Identifier&&this.__defineGeneric(e.name,this.implicit.set,this.implicit.variables,e,t)}},ModuleScope:class extends l{constructor(e,t,r){super(e,"module",t,r,!1)}},FunctionExpressionNameScope:class extends l{constructor(e,t,r){super(e,"function-expression-name",t,r,!1),this.__define(r.id,new a(i.FunctionName,r.id,r,null,null,null)),this.functionExpressionScope=!0}},CatchScope:class extends l{constructor(e,t,r){super(e,"catch",t,r,!1)}},WithScope:class extends l{constructor(e,t,r){super(e,"with",t,r,!1)}__close(e){if(this.__shouldStaticallyClose(e))return super.__close(e);for(let e=0,t=this.__left.length;e<t;++e){const t=this.__left[e];t.tainted=!0,this.__delegateToUpperScope(t)}return this.__left=null,this.upper}},BlockScope:class extends l{constructor(e,t,r){super(e,"block",t,r,!1)}},SwitchScope:class extends l{constructor(e,t,r){super(e,"switch",t,r,!1)}},FunctionScope:class extends l{constructor(e,t,r,o){super(e,"function",t,r,o),this.block.type!==n.ArrowFunctionExpression&&this.__defineArguments()}isArgumentsMaterialized(){if(this.block.type===n.ArrowFunctionExpression)return!1;if(!this.isStatic())return!0;const e=this.set.get("arguments");return s(e,"Always have arguments variable."),e.tainted||0!==e.references.length}isThisMaterialized(){return!this.isStatic()||this.thisFound}__defineArguments(){this.__defineGeneric("arguments",this.set,this.variables,null,null),this.taints.set("arguments",!0)}__isValidResolution(e,t){if("Program"===this.block.type)return!0;const r=this.block.body.range[0];return!(t.scope===this&&e.identifier.range[0]<r&&t.defs.every((e=>e.name.range[0]>=r)))}},ForScope:class extends l{constructor(e,t,r){super(e,"for",t,r,!1)}},ClassScope:class extends l{constructor(e,t,r){super(e,"class",t,r,!1)}}}},1509:e=>{"use strict";class t{constructor(e,t){this.name=e,this.identifiers=[],this.references=[],this.defs=[],this.tainted=!1,this.stack=!0,this.scope=t}}t.CatchClause="CatchClause",t.Parameter="Parameter",t.FunctionName="FunctionName",t.ClassName="ClassName",t.Variable="Variable",t.ImportBinding="ImportBinding",t.ImplicitGlobalVariable="ImplicitGlobalVariable",e.exports=t},7901:(e,t,r)=>{!function e(t){"use strict";var n,o,i,a,s,u;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function c(e,t){this.parent=e,this.key=t}function d(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function p(){}function g(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function f(e,t){return(e===n.ObjectExpression||e===n.ObjectPattern)&&"properties"===t}function h(e,t){return(new p).traverse(e,t)}function m(e,t){var r;return r=function(t,r){var n,o,i,a;for(o=t.length,i=0;o;)t[a=i+(n=o>>>1)].range[0]>e.range[0]?o=n:(i=a+1,o-=n+1);return i}(t),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return n={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},o={Break:a={},Skip:s={},Remove:u={}},c.prototype.replace=function(e){this.parent[this.key]=e},c.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},p.prototype.path=function(){var e,t,r,n,o;function i(e,t){if(Array.isArray(t))for(r=0,n=t.length;r<n;++r)e.push(t[r]);else e.push(t)}if(!this.__current.path)return null;for(o=[],e=2,t=this.__leavelist.length;e<t;++e)i(o,this.__leavelist[e].path);return i(o,this.__current.path),o},p.prototype.type=function(){return this.current().type||this.__current.wrap},p.prototype.parents=function(){var e,t,r;for(r=[],e=1,t=this.__leavelist.length;e<t;++e)r.push(this.__leavelist[e].node);return r},p.prototype.current=function(){return this.__current.node},p.prototype.__execute=function(e,t){var r,n;return n=void 0,r=this.__current,this.__current=t,this.__state=null,e&&(n=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=r,n},p.prototype.notify=function(e){this.__state=e},p.prototype.skip=function(){this.notify(s)},p.prototype.break=function(){this.notify(a)},p.prototype.remove=function(){this.notify(u)},p.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,"iteration"===t.fallback?this.__fallback=Object.keys:"function"==typeof t.fallback&&(this.__fallback=t.fallback),this.__keys=i,t.keys&&(this.__keys=Object.assign(Object.create(this.__keys),t.keys))},p.prototype.traverse=function(e,t){var r,n,o,i,u,l,c,p,h,m,y,b;for(this.__initialize(e,t),b={},r=this.__worklist,n=this.__leavelist,r.push(new d(e,null,null,null)),n.push(new d(null,null,null,null));r.length;)if((o=r.pop())!==b){if(o.node){if(l=this.__execute(t.enter,o),this.__state===a||l===a)return;if(r.push(b),n.push(o),this.__state===s||l===s)continue;if(u=(i=o.node).type||o.wrap,!(m=this.__keys[u])){if(!this.__fallback)throw new Error("Unknown node type "+u+".");m=this.__fallback(i)}for(p=m.length;(p-=1)>=0;)if(y=i[c=m[p]])if(Array.isArray(y)){for(h=y.length;(h-=1)>=0;)if(y[h]){if(f(u,m[p]))o=new d(y[h],[c,h],"Property",null);else{if(!g(y[h]))continue;o=new d(y[h],[c,h],null,null)}r.push(o)}}else g(y)&&r.push(new d(y,c,null,null))}}else if(o=n.pop(),l=this.__execute(t.leave,o),this.__state===a||l===a)return},p.prototype.replace=function(e,t){var r,n,o,i,l,p,h,m,y,b,S,_,C;function E(e){var t,n,o,i;if(e.ref.remove())for(n=e.ref.key,i=e.ref.parent,t=r.length;t--;)if((o=r[t]).ref&&o.ref.parent===i){if(o.ref.key<n)break;--o.ref.key}}for(this.__initialize(e,t),S={},r=this.__worklist,n=this.__leavelist,p=new d(e,null,null,new c(_={root:e},"root")),r.push(p),n.push(p);r.length;)if((p=r.pop())!==S){if(void 0!==(l=this.__execute(t.enter,p))&&l!==a&&l!==s&&l!==u&&(p.ref.replace(l),p.node=l),this.__state!==u&&l!==u||(E(p),p.node=null),this.__state===a||l===a)return _.root;if((o=p.node)&&(r.push(S),n.push(p),this.__state!==s&&l!==s)){if(i=o.type||p.wrap,!(y=this.__keys[i])){if(!this.__fallback)throw new Error("Unknown node type "+i+".");y=this.__fallback(o)}for(h=y.length;(h-=1)>=0;)if(b=o[C=y[h]])if(Array.isArray(b)){for(m=b.length;(m-=1)>=0;)if(b[m]){if(f(i,y[h]))p=new d(b[m],[C,m],"Property",new c(b,m));else{if(!g(b[m]))continue;p=new d(b[m],[C,m],null,new c(b,m))}r.push(p)}}else g(b)&&r.push(new d(b,C,null,new c(o,C)))}}else if(p=n.pop(),void 0!==(l=this.__execute(t.leave,p))&&l!==a&&l!==s&&l!==u&&p.ref.replace(l),this.__state!==u&&l!==u||E(p),this.__state===a||l===a)return _.root;return _.root},t.version=r(2887).i8,t.Syntax=n,t.traverse=h,t.replace=function(e,t){return(new p).replace(e,t)},t.attachComments=function(e,t,r){var n,i,a,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,i=t.length;a<i;a+=1)(n=l(t[a])).extendedRange=[0,e.range[0]],u.push(n);e.leadingComments=u}return e}for(a=0,i=t.length;a<i;a+=1)u.push(m(l(t[a]),r));return s=0,h(e,{enter:function(e){for(var t;s<u.length&&!((t=u[s]).extendedRange[1]>e.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?o.Break:u[s].extendedRange[0]>e.range[1]?o.Skip:void 0}}),s=0,h(e,{leave:function(e){for(var t;s<u.length&&(t=u[s],!(e.range[1]<t.extendedRange[0]));)e.range[1]===t.extendedRange[0]?(e.trailingComments||(e.trailingComments=[]),e.trailingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?o.Break:u[s].extendedRange[0]>e.range[1]?o.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=o,t.Controller=p,t.cloneEnvironment=function(){return e({})},t}(t)},2887:e=>{"use strict";e.exports={i8:"4.3.0"}},2245:e=>{"use strict";e.exports={i8:"5.1.1"}},8192:(e,t,r)=>{!function(){"use strict";var e=r(7085);function n(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function o(t,r){r=r||{},this.__visitor=t||this,this.__childVisitorKeys=r.childVisitorKeys?Object.assign({},e.VisitorKeys,r.childVisitorKeys):e.VisitorKeys,"iteration"===r.fallback?this.__fallback=Object.keys:"function"==typeof r.fallback&&(this.__fallback=r.fallback)}o.prototype.visitChildren=function(t){var r,o,i,a,s,u,l;if(null!=t){if(r=t.type||e.Syntax.Property,!(o=this.__childVisitorKeys[r])){if(!this.__fallback)throw new Error("Unknown node type "+r+".");o=this.__fallback(t)}for(i=0,a=o.length;i<a;++i)if(l=t[o[i]])if(Array.isArray(l))for(s=0,u=l.length;s<u;++s)l[s]&&(!n(l[s])&&(c=r,d=o[i],c!==e.Syntax.ObjectExpression&&c!==e.Syntax.ObjectPattern||"properties"!==d)||this.visit(l[s]));else n(l)&&this.visit(l);var c,d}},o.prototype.visit=function(t){var r;null!=t&&(r=t.type||e.Syntax.Property,this.__visitor[r]?this.__visitor[r].call(this,t):this.visitChildren(t))},t.version=r(3143).version,t.Visitor=o,t.visit=function(e,t,r){new o(t,r).visit(e)}}()},3143:e=>{"use strict";e.exports={version:"4.3.0"}},7085:(e,t)=>{!function e(t){"use strict";var r,n,o,i,a,s;function u(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?u(r):r);return n}function l(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function d(){}function p(e){return null!=e&&"object"==typeof e&&"string"==typeof e.type}function g(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function f(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function h(e,t){return(new d).traverse(e,t)}function m(e,t){var r;return r=function(t,r){var n,o,i,a;for(o=t.length,i=0;o;)t[a=i+(n=o>>>1)].range[0]>e.range[0]?o=n:(i=a+1,o-=n+1);return i}(t),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},o={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:i={},Skip:a={},Remove:s={}},l.prototype.replace=function(e){this.parent[this.key]=e},l.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},d.prototype.path=function(){var e,t,r,n,o;function i(e,t){if(Array.isArray(t))for(r=0,n=t.length;r<n;++r)e.push(t[r]);else e.push(t)}if(!this.__current.path)return null;for(o=[],e=2,t=this.__leavelist.length;e<t;++e)i(o,this.__leavelist[e].path);return i(o,this.__current.path),o},d.prototype.type=function(){return this.current().type||this.__current.wrap},d.prototype.parents=function(){var e,t,r;for(r=[],e=1,t=this.__leavelist.length;e<t;++e)r.push(this.__leavelist[e].node);return r},d.prototype.current=function(){return this.__current.node},d.prototype.__execute=function(e,t){var r,n;return n=void 0,r=this.__current,this.__current=t,this.__state=null,e&&(n=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=r,n},d.prototype.notify=function(e){this.__state=e},d.prototype.skip=function(){this.notify(a)},d.prototype.break=function(){this.notify(i)},d.prototype.remove=function(){this.notify(s)},d.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,"iteration"===t.fallback?this.__fallback=Object.keys:"function"==typeof t.fallback&&(this.__fallback=t.fallback),this.__keys=o,t.keys&&(this.__keys=Object.assign(Object.create(this.__keys),t.keys))},d.prototype.traverse=function(e,t){var r,n,o,s,u,l,d,h,m,y,b,S;for(this.__initialize(e,t),S={},r=this.__worklist,n=this.__leavelist,r.push(new c(e,null,null,null)),n.push(new c(null,null,null,null));r.length;)if((o=r.pop())!==S){if(o.node){if(l=this.__execute(t.enter,o),this.__state===i||l===i)return;if(r.push(S),n.push(o),this.__state===a||l===a)continue;if(u=(s=o.node).type||o.wrap,!(y=this.__keys[u])){if(!this.__fallback)throw new Error("Unknown node type "+u+".");y=this.__fallback(s)}for(h=y.length;(h-=1)>=0;)if(b=s[d=y[h]])if(Array.isArray(b)){for(m=b.length;(m-=1)>=0;)if(b[m]&&!f(n,b[m])){if(g(u,y[h]))o=new c(b[m],[d,m],"Property",null);else{if(!p(b[m]))continue;o=new c(b[m],[d,m],null,null)}r.push(o)}}else if(p(b)){if(f(n,b))continue;r.push(new c(b,d,null,null))}}}else if(o=n.pop(),l=this.__execute(t.leave,o),this.__state===i||l===i)return},d.prototype.replace=function(e,t){var r,n,o,u,d,f,h,m,y,b,S,_,C;function E(e){var t,n,o,i;if(e.ref.remove())for(n=e.ref.key,i=e.ref.parent,t=r.length;t--;)if((o=r[t]).ref&&o.ref.parent===i){if(o.ref.key<n)break;--o.ref.key}}for(this.__initialize(e,t),S={},r=this.__worklist,n=this.__leavelist,f=new c(e,null,null,new l(_={root:e},"root")),r.push(f),n.push(f);r.length;)if((f=r.pop())!==S){if(void 0!==(d=this.__execute(t.enter,f))&&d!==i&&d!==a&&d!==s&&(f.ref.replace(d),f.node=d),this.__state!==s&&d!==s||(E(f),f.node=null),this.__state===i||d===i)return _.root;if((o=f.node)&&(r.push(S),n.push(f),this.__state!==a&&d!==a)){if(u=o.type||f.wrap,!(y=this.__keys[u])){if(!this.__fallback)throw new Error("Unknown node type "+u+".");y=this.__fallback(o)}for(h=y.length;(h-=1)>=0;)if(b=o[C=y[h]])if(Array.isArray(b)){for(m=b.length;(m-=1)>=0;)if(b[m]){if(g(u,y[h]))f=new c(b[m],[C,m],"Property",new l(b,m));else{if(!p(b[m]))continue;f=new c(b[m],[C,m],null,new l(b,m))}r.push(f)}}else p(b)&&r.push(new c(b,C,null,new l(o,C)))}}else if(f=n.pop(),void 0!==(d=this.__execute(t.leave,f))&&d!==i&&d!==a&&d!==s&&f.ref.replace(d),this.__state!==s&&d!==s||E(f),this.__state===i||d===i)return _.root;return _.root},t.Syntax=r,t.traverse=h,t.replace=function(e,t){return(new d).replace(e,t)},t.attachComments=function(e,t,r){var o,i,a,s,l=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,i=t.length;a<i;a+=1)(o=u(t[a])).extendedRange=[0,e.range[0]],l.push(o);e.leadingComments=l}return e}for(a=0,i=t.length;a<i;a+=1)l.push(m(u(t[a]),r));return s=0,h(e,{enter:function(e){for(var t;s<l.length&&!((t=l[s]).extendedRange[1]>e.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),l.splice(s,1)):s+=1;return s===l.length?n.Break:l[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,h(e,{leave:function(e){for(var t;s<l.length&&(t=l[s],!(e.range[1]<t.extendedRange[0]));)e.range[1]===t.extendedRange[0]?(e.trailingComments||(e.trailingComments=[]),e.trailingComments.push(t),l.splice(s,1)):s+=1;return s===l.length?n.Break:l[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=o,t.VisitorOption=n,t.Controller=d,t.cloneEnvironment=function(){return e({})},t}(t)},4974:e=>{!function(){"use strict";function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=r(t)}while(t);return!1},trailingStatement:r}}()},5619:e=>{!function(){"use strict";var t,r,n,o,i,a;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],o=new Array(128),a=0;a<128;++a)o[a]=a>=97&&a<=122||a>=65&&a<=90||36===a||95===a;for(i=new Array(128),a=0;a<128;++a)i[a]=a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||36===a||95===a;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&n.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?o[e]:r.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?i[e]:r.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?o[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},702:(e,t,r)=>{!function(){"use strict";var t=r(5619);function n(e,t){return!(!t&&"yield"===e)&&o(e,t)}function o(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function i(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||o(e,t)}function s(e){var r,n,o;if(0===e.length)return!1;if(o=e.charCodeAt(0),!t.isIdentifierStartES5(o))return!1;for(r=1,n=e.length;r<n;++r)if(o=e.charCodeAt(r),!t.isIdentifierPartES5(o))return!1;return!0}function u(e){var r,n,o,i,a;if(0===e.length)return!1;for(a=t.isIdentifierStartES6,r=0,n=e.length;r<n;++r){if(55296<=(o=e.charCodeAt(r))&&o<=56319){if(++r>=n)return!1;if(!(56320<=(i=e.charCodeAt(r))&&i<=57343))return!1;o=1024*(o-55296)+(i-56320)+65536}if(!a(o))return!1;a=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:n,isKeywordES6:o,isReservedWordES5:i,isReservedWordES6:a,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return s(e)&&!i(e,t)},isIdentifierES6:function(e,t){return u(e)&&!a(e,t)}}}()},649:(e,t,r)=>{!function(){"use strict";t.ast=r(4974),t.code=r(5619),t.keyword=r(702)}()},6729:e=>{"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function o(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,a){if("function"!=typeof n)throw new TypeError("The listener must be a function");var s=new o(n,i||e,a),u=r?r+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],s]:e._events[u].push(s):(e._events[u]=s,e._eventsCount++),e}function a(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function s(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),s.prototype.eventNames=function(){var e,n,o=[];if(0===this._eventsCount)return o;for(n in e=this._events)t.call(e,n)&&o.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},s.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,a=new Array(i);o<i;o++)a[o]=n[o].fn;return a},s.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},s.prototype.emit=function(e,t,n,o,i,a){var s=r?r+e:e;if(!this._events[s])return!1;var u,l,c=this._events[s],d=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,i),!0;case 6:return c.fn.call(c.context,t,n,o,i,a),!0}for(l=1,u=new Array(d-1);l<d;l++)u[l-1]=arguments[l];c.fn.apply(c.context,u)}else{var p,g=c.length;for(l=0;l<g;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,n);break;case 4:c[l].fn.call(c[l].context,t,n,o);break;default:if(!u)for(p=1,u=new Array(d-1);p<d;p++)u[p-1]=arguments[p];c[l].fn.apply(c[l].context,u)}}return!0},s.prototype.on=function(e,t,r){return i(this,e,t,r,!1)},s.prototype.once=function(e,t,r){return i(this,e,t,r,!0)},s.prototype.removeListener=function(e,t,n,o){var i=r?r+e:e;if(!this._events[i])return this;if(!t)return a(this,i),this;var s=this._events[i];if(s.fn)s.fn!==t||o&&!s.once||n&&s.context!==n||a(this,i);else{for(var u=0,l=[],c=s.length;u<c;u++)(s[u].fn!==t||o&&!s[u].once||n&&s[u].context!==n)&&l.push(s[u]);l.length?this._events[i]=1===l.length?l[0]:l:a(this,i)}return this},s.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&a(this,t)):(this._events=new n,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=r,s.EventEmitter=s,e.exports=s},4063:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,o,i;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(o=n;0!=o--;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(i=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,i[o]))return!1;for(o=n;0!=o--;){var a=i[o];if(!e(t[a],r[a]))return!1}return!0}return t!=t&&r!=r}},9804:e=>{var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString;e.exports=function(e,n,o){if("[object Function]"!==r.call(n))throw new TypeError("iterator must be a function");var i=e.length;if(i===+i)for(var a=0;a<i;a++)n.call(o,e[a],a,e);else for(var s in e)t.call(e,s)&&n.call(o,e[s],s,e)}},7648:e=>{"use strict";var t="Function.prototype.bind called on incompatible ",r=Array.prototype.slice,n=Object.prototype.toString,o="[object Function]";e.exports=function(e){var i=this;if("function"!=typeof i||n.call(i)!==o)throw new TypeError(t+i);for(var a,s=r.call(arguments,1),u=function(){if(this instanceof a){var t=i.apply(this,s.concat(r.call(arguments)));return Object(t)===t?t:this}return i.apply(e,s.concat(r.call(arguments)))},l=Math.max(0,i.length-s.length),c=[],d=0;d<l;d++)c.push("$"+d);if(a=Function("binder","return function ("+c.join(",")+"){ return binder.apply(this,arguments); }")(u),i.prototype){var p=function(){};p.prototype=i.prototype,a.prototype=new p,p.prototype=null}return a}},8612:(e,t,r)=>{"use strict";var n=r(7648);e.exports=Function.prototype.bind||n},3791:module=>{var f;f=function(){var define,module,exports;return function e(t,r,n){function o(a,s){if(!r[a]){if(!t[a]){if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=r[a]={exports:{}};t[a][0].call(l.exports,(function(e){return o(t[a][1][e]||e)}),l,l.exports,e,t,r,n)}return r[a].exports}for(var i=void 0,a=0;a<n.length;a++)o(n[a]);return o}({1:[function(require,module,exports){var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.exportPath_=function(e,t,r){e=e.split("."),r=r||goog.global,e[0]in r||void 0===r.execScript||r.execScript("var "+e[0]);for(var n;e.length&&(n=e.shift());)e.length||void 0===t?r=r[n]&&r[n]!==Object.prototype[n]?r[n]:r[n]={}:r[n]=t},goog.define=function(e,t){var r=t;if(!COMPILED){var n=goog.global.CLOSURE_UNCOMPILED_DEFINES,o=goog.global.CLOSURE_DEFINES;n&&void 0===n.nodeType&&Object.prototype.hasOwnProperty.call(n,e)?r=n[e]:o&&void 0===o.nodeType&&Object.prototype.hasOwnProperty.call(o,e)&&(r=o[e])}return r},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,t){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var r=e;(r=r.substring(0,r.lastIndexOf(".")))&&!goog.getObjectByName(r);)goog.implicitNamespaces_[r]=!0}goog.exportPath_(e,t)},goog.getScriptNonce=function(e){return e&&e!=goog.global?goog.getScriptNonce_(e.document):(null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(e){return(e=e.querySelector&&e.querySelector("script[nonce]"))&&(e=e.nonce||e.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(e)?e:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if("string"!=typeof e||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error('Namespace "'+e+'" already declared.');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){if(!COMPILED){if(e in goog.loadedModules_)return goog.loadedModules_[e].exports;if(!goog.implicitNamespaces_[e])return null!=(e=goog.getObjectByName(e))?e:null}return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var e=goog.global.$jscomp;return!!e&&"function"==typeof e.getCurrentModulePath&&!!e.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(e){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(e in goog.loadedModules_)throw Error('Module with namespace "'+e+'" already exists.')}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=e;else{var t=goog.global.$jscomp;if(!t||"function"!=typeof t.getCurrentModulePath)throw Error('Module with namespace "'+e+'" has been loaded incorrectly.');t=t.require(t.getCurrentModulePath()),goog.loadedModules_[e]={exports:t,type:goog.ModuleType.ES6,moduleId:e}}},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&null!=goog.getObjectByName(e)},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,t){for(var r=e.split("."),n=t||goog.global,o=0;o<r.length;o++)if(null==(n=n[r[o]]))return null;return n},goog.globalize=function(e,t){var r,n=t||goog.global;for(r in e)n[r]=e[r]},goog.addDependency=function(e,t,r,n){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(e,t,r,n)},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(e),goog.isProvided_(e)){if(goog.isInModuleLoader_())return goog.module.getInternal_(e)}else if(goog.ENABLE_DEBUG_LOADER){var t=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(e)}finally{goog.moduleLoaderState_=t}}return null}},goog.requireType=function(e){return{}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.instance_=void 0,e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.TRANSPILE="detect",goog.ASSUME_ES_MODULES_TRANSPILED=!1,goog.TRANSPILE_TO_LANGUAGE="",goog.TRANSPILER="transpile.js",goog.hasBadLetScoping=null,goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(e){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping},goog.workaroundSafari10EvalBug=function(e){return"(function(){"+e+"\n;})();\n"},goog.loadModule=function(e){var t=goog.moduleLoaderState_;try{if(goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG},goog.isFunction(e))var r=e.call(void 0,{});else{if("string"!=typeof e)throw Error("Invalid module definition");goog.useSafari10Workaround()&&(e=goog.workaroundSafari10EvalBug(e)),r=goog.loadModuleFromSource_.call(void 0,e)}var n=goog.moduleLoaderState_.moduleName;if("string"!=typeof n||!n)throw Error('Invalid module name "'+n+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(n,r):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof r&&null!=r&&Object.seal(r),goog.loadedModules_[n]={exports:r,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName}}finally{goog.moduleLoaderState_=t}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.normalizePath_=function(e){e=e.split("/");for(var t=0;t<e.length;)"."==e[t]?e.splice(t,1):t&&".."==e[t]&&e[t-1]&&".."!=e[t-1]?e.splice(--t,2):t++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);try{var t=new goog.global.XMLHttpRequest;return t.open("get",e,!1),t.send(),0==t.status||200==t.status?t.responseText:null}catch(e){return null}},goog.transpile_=function(e,t,r){var n=goog.global.$jscomp;n||(goog.global.$jscomp=n={});var o=n.transpile;if(!o){var i=goog.basePath+goog.TRANSPILER,a=goog.loadFileSync_(i);if(a){if(function(){(0,eval)(a+"\n//# sourceURL="+i)}.call(goog.global),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,o=(n=goog.global.$jscomp).transpile}}return o||(o=n.transpile=function(e,t){return goog.logToConsole_(t+" requires transpilation but no transpiler was found."),e}),o(e,t,r)},goog.typeOf=function(e){var t=typeof e;if("object"==t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var r=Object.prototype.toString.call(e);if("[object Window]"==r)return"object";if("[object Array]"==r||"number"==typeof e.length&&void 0!==e.splice&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==r||void 0!==e.call&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==t&&void 0===e.call)return"object";return t},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var t=goog.typeOf(e);return"array"==t||"object"==t&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var t=typeof e;return"object"==t&&null!=e||"function"==t},goog.getUid=function(e){return Object.prototype.hasOwnProperty.call(e,goog.UID_PROPERTY_)&&e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(e){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if("function"==typeof e.clone)return e.clone();for(var r in t="array"==t?[]:{},e)t[r]=goog.cloneObject(e[r]);return t}return e},goog.bindNative_=function(e,t,r){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,r){if(!e)throw Error();if(2<arguments.length){var n=Array.prototype.slice.call(arguments,2);return function(){var r=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(r,n),e.apply(t,r)}}return function(){return e.apply(t,arguments)}},goog.bind=function(e,t,r){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}},goog.mixin=function(e,t){for(var r in t)e[r]=t[r]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ = 1;")}catch(e){}if(void 0!==goog.global._evalTest_){try{delete goog.global._evalTest_}catch(e){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,r=t.createElement("script");r.type="text/javascript",r.defer=!1,r.appendChild(t.createTextNode(e)),t.head.appendChild(r),t.head.removeChild(r)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,t){if("."==String(e).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+e);var r=function(e){return goog.cssNameMapping_[e]||e},n=function(e){e=e.split("-");for(var t=[],n=0;n<e.length;n++)t.push(r(e[n]));return t.join("-")};return n=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?r:n:function(e){return e},n=t?e+"-"+n(t):n(e),goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(n):n},goog.setCssNameMapping=function(e,t){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=t},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(e,t,r){return r&&r.html&&(e=e.replace(/</g,"&lt;")),t&&(e=e.replace(/\{\$([^}]+)}/g,(function(e,r){return null!=t&&r in t?t[r]:e}))),e},goog.getMsgWithFallback=function(e,t){return e},goog.exportSymbol=function(e,t,r){goog.exportPath_(e,t,r)},goog.exportProperty=function(e,t,r){e[t]=r},goog.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.base=function(e,r,n){for(var o=Array(arguments.length-2),i=2;i<arguments.length;i++)o[i-2]=arguments[i];return t.prototype[r].apply(e,o)}},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");e.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(e,t){var r=t.constructor,n=t.statics;return r&&r!=Object.prototype.constructor||(r=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),r=goog.defineClass.createSealingConstructor_(r,e),e&&goog.inherits(r,e),delete t.constructor,delete t.statics,goog.defineClass.applyProperties_(r.prototype,t),null!=n&&(n instanceof Function?n(r):goog.defineClass.applyProperties_(r,n)),r},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,t){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var r=!goog.defineClass.isUnsealable_(t),n=function(){var t=e.apply(this,arguments)||this;return t[goog.UID_PROPERTY_]=t[goog.UID_PROPERTY_],this.constructor===n&&r&&Object.seal instanceof Function&&Object.seal(t),t};return n},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);for(var n=0;n<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;n++)r=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[n],Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},goog.tagUnsealableClass=function(e){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.isDocumentLoading_=function(){var e=goog.global.document;return e.attachEvent?"complete"!=e.readyState:"loading"==e.readyState},goog.findBasePath_=function(){if(null!=goog.global.CLOSURE_BASE_PATH&&"string"==typeof goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var e=goog.global.document,t=e.currentScript;for(t=(e=t?[t]:e.getElementsByTagName("SCRIPT")).length-1;0<=t;--t){var r=e[t].src,n=r.lastIndexOf("?");if(n=-1==n?r.length:n,"base.js"==r.substr(n-7,7)){goog.basePath=r.substr(0,n-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null,this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(t,r){e?d[t]=!0:r()?(c=t,d[t]=!1):e=d[t]=!0}function b(a){try{return!!eval(a)}catch(e){return!1}}var c="es3",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"";return a("es5",(function(){return b("[1,].length==1")})),a("es6",(function(){return!f.match(/Edge\/(\d+)(\.\d)*/i)&&b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')})),a("es7",(function(){return b("2 ** 2 == 4")})),a("es8",(function(){return b("async () => 1, true")})),a("es9",(function(){return b("({...rest} = {}), true")})),a("es_next",(function(){return!1})),{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(e,t){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var r=this.createRequiresTranspilation_();this.requiresTranspilation_=r.map,this.transpilationTarget_=this.transpilationTarget_||r.target}if(e in this.requiresTranspilation_)return!!this.requiresTranspilation_[e]||!(!goog.inHtmlDocument_()||"es6"!=t||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+e)},goog.Transpiler.prototype.transpile=function(e,t){return goog.transpile_(e,t,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(e){return e.replace(/<\/(SCRIPT)/gi,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(e,t){function r(){n&&(goog.global.setTimeout(n,0),n=null)}var n=t;if(e.length){for(var o=[],i=0;i<e.length;i++){var a=this.getPathFromDeps_(e[i]);if(!a)throw Error("Unregonized namespace: "+e[i]);o.push(this.dependencies_[a])}a=goog.require;var s=0;for(i=0;i<e.length;i++)a(e[i]),o[i].onLoad((function(){++s==e.length&&r()}))}else r()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+"deps.js"),"deps.js",[],[],{},!1)),this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(e,t){var r=this.getPathFromDeps_(e);if(r&&(t||this.areDepsLoaded_(this.dependencies_[r].requires))){var n=this.deferredCallbacks_[r];n&&(delete this.deferredCallbacks_[r],n())}},goog.DebugLoader_.prototype.setDependencyFactory=function(e){this.factory_=e},goog.DebugLoader_.prototype.load_=function(e){if(!this.getPathFromDeps_(e))throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e);var t=this,r=[],n=function(e){var o=t.getPathFromDeps_(e);if(!o)throw Error("Bad dependency path or symbol: "+e);if(!t.written_[o]){for(t.written_[o]=!0,e=t.dependencies_[o],o=0;o<e.requires.length;o++)goog.isProvided_(e.requires[o])||n(e.requires[o]);r.push(e)}};n(e),e=!!this.depsToLoad_.length,this.depsToLoad_=this.depsToLoad_.concat(r),this.paused_||e||this.loadDeps_()},goog.DebugLoader_.prototype.loadDeps_=function(){for(var e=this,t=this.paused_;this.depsToLoad_.length&&!t;)!function(){var r=!1,n=e.depsToLoad_.shift(),o=!1;e.loading_(n);var i={pause:function(){if(r)throw Error("Cannot call pause after the call to load.");t=!0},resume:function(){r?e.resume_():t=!1},loaded:function(){if(o)throw Error("Double call to loaded.");o=!0,e.loaded_(n)},pending:function(){for(var t=[],r=0;r<e.loadingDeps_.length;r++)t.push(e.loadingDeps_[r]);return t},setModuleState:function(e){goog.moduleLoaderState_={type:e,moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(e,t,r){r&&(goog.loadedModules_[r]={exports:t,type:goog.ModuleType.ES6,moduleId:r||""})},registerGoogModuleExports:function(e,t){goog.loadedModules_[e]={exports:t,type:goog.ModuleType.GOOG,moduleId:e}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(t){if(r)throw Error("Cannot register with defer after the call to load.");e.defer_(n,t)},areDepsLoaded:function(){return e.areDepsLoaded_(n.requires)}};try{n.load(i)}finally{r=!0}}();t&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(e){this.loadingDeps_.push(e)},goog.DebugLoader_.prototype.loaded_=function(e){for(var t=0;t<this.loadingDeps_.length;t++)if(this.loadingDeps_[t]==e){this.loadingDeps_.splice(t,1);break}for(t=0;t<this.deferredQueue_.length;t++)if(this.deferredQueue_[t]==e.path){this.deferredQueue_.splice(t,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);e.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(e){for(var t=0;t<e.length;t++){var r=this.getPathFromDeps_(e[t]);if(!r||!(r in this.deferredCallbacks_)&&!goog.isProvided_(e[t]))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=function(e){return e in this.idToPath_?this.idToPath_[e]:e in this.dependencies_?e:null},goog.DebugLoader_.prototype.defer_=function(e,t){this.deferredCallbacks_[e.path]=t,this.deferredQueue_.push(e.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(e,t,r){},goog.LoadController.prototype.setModuleState=function(e){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(e){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(e,t,r,n,o){this.path=e,this.relativePath=t,this.provides=r,this.requires=n,this.loadFlags=o,this.loaded_=!1,this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var e=this.path,t=e.indexOf("://");return 0<=t&&0<=(t=(e=e.substring(t+3)).indexOf("/"))&&(e=e.substring(t+1)),e},goog.Dependency.prototype.onLoad=function(e){this.loaded_?e():this.loadCallbacks_.push(e)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var e=this.loadCallbacks_;this.loadCallbacks_=[];for(var t=0;t<e.length;t++)e[t]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(e){var t=Math.random().toString(32);return goog.Dependency.callbackMap_[t]=e,t},goog.Dependency.unregisterCallback_=function(e){delete goog.Dependency.callbackMap_[e]},goog.Dependency.callback_=function(e,t){if(!(e in goog.Dependency.callbackMap_))throw Error("Callback key "+e+" does not exist (was base.js loaded more than once?).");for(var r=goog.Dependency.callbackMap_[e],n=[],o=1;o<arguments.length;o++)n.push(arguments[o]);r.apply(void 0,n)},goog.Dependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document;if("complete"==t.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\bdeps.js$/.test(this.path))return void e.loaded();throw Error('Cannot write "'+this.path+'" after document load')}if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var r=goog.Dependency.registerCallback_((function(t){goog.DebugLoader_.IS_OLD_IE_&&"complete"!=t.readyState||(goog.Dependency.unregisterCallback_(r),e.loaded())})),n=!goog.DebugLoader_.IS_OLD_IE_&&goog.getScriptNonce()?' nonce="'+goog.getScriptNonce()+'"':"";n='<script src="'+this.path+'" '+(goog.DebugLoader_.IS_OLD_IE_?"onreadystatechange":"onload")+"=\"goog.Dependency.callback_('"+r+'\', this)" type="text/javascript" '+(goog.Dependency.defer_?"defer":"")+n+"><\/script>",t.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(n):n)}else{var o=t.createElement("script");o.defer=goog.Dependency.defer_,o.async=!1,o.type="text/javascript",(n=goog.getScriptNonce())&&o.setAttribute("nonce",n),goog.DebugLoader_.IS_OLD_IE_?(e.pause(),o.onreadystatechange=function(){"loaded"!=o.readyState&&"complete"!=o.readyState||(e.loaded(),e.resume())}):o.onload=function(){o.onload=null,e.loaded()},o.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path,t.head.appendChild(o)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),e.loaded()):e.pause()},goog.Es6ModuleDependency=function(e,t,r,n,o){goog.Dependency.call(this,e,t,r,n,o)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document,r=this;if(goog.isDocumentLoading_()){var n=function(e,r){var n=r?'<script type="module" crossorigin>'+r+"<\/script>":'<script type="module" crossorigin src="'+e+'"><\/script>';t.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(n):n)};goog.Dependency.defer_=!0}else n=function(e,r){var n=t.createElement("script");n.defer=!0,n.async=!1,n.type="module",n.setAttribute("crossorigin",!0);var o=goog.getScriptNonce();o&&n.setAttribute("nonce",o),r?n.textContent=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(r):r:n.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(e):e,t.head.appendChild(n)};var o=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(o),e.setModuleState(goog.ModuleType.ES6)}));n(void 0,'goog.Dependency.callback_("'+o+'")'),n(this.path,void 0);var i=goog.Dependency.registerCallback_((function(t){goog.Dependency.unregisterCallback_(i),e.registerEs6ModuleExports(r.path,t,goog.moduleLoaderState_.moduleName)}));n(void 0,'import * as m from "'+this.path+'"; goog.Dependency.callback_("'+i+'", m)');var a=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(a),e.clearModuleState(),e.loaded()}));n(void 0,'goog.Dependency.callback_("'+a+'")')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),e.pause()},goog.TransformedDependency=function(e,t,r,n,o){goog.Dependency.call(this,e,t,r,n,o),this.contents_=null,this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(e){function t(){n.contents_=goog.loadFileSync_(n.path),n.contents_&&(n.contents_=n.transform(n.contents_),n.contents_&&(n.contents_+="\n//# sourceURL="+n.path))}function r(){if(n.lazyFetch_&&t(),n.contents_){o&&e.setModuleState(goog.ModuleType.ES6);try{var r=n.contents_;if(n.contents_=null,goog.globalEval(r),o)var i=goog.moduleLoaderState_.moduleName}finally{o&&e.clearModuleState()}o&&goog.global.$jscomp.require.ensure([n.getPathName()],(function(){e.registerEs6ModuleExports(n.path,goog.global.$jscomp.require(n.getPathName()),i)})),e.loaded()}}var n=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)t(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,e.loaded()):e.pause();else{var o=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||t();var i=1<e.pending().length,a=i&&goog.DebugLoader_.IS_OLD_IE_;if(i=goog.Dependency.defer_&&(i||goog.isDocumentLoading_()),a||i)e.defer((function(){r()}));else{var s=goog.global.document;if(a=goog.inHtmlDocument_()&&"ActiveXObject"in goog.global,o&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!a){goog.Dependency.defer_=!0,e.pause();var u=s.onreadystatechange;s.onreadystatechange=function(){"interactive"==s.readyState&&(s.onreadystatechange=u,r(),e.resume()),goog.isFunction(u)&&u.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?function(){var e=goog.global.document,t=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(t),r()})),n='<script type="text/javascript">'+goog.protectScriptTag_('goog.Dependency.callback_("'+t+'");')+"<\/script>";e.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(n):n)}():r()}}},goog.TransformedDependency.prototype.transform=function(e){},goog.TranspiledDependency=function(e,t,r,n,o,i){goog.TransformedDependency.call(this,e,t,r,n,o),this.transpiler=i},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),goog.TranspiledDependency.prototype.transform=function(e){return this.transpiler.transpile(e,this.getPathName())},goog.PreTranspiledEs6ModuleDependency=function(e,t,r,n,o){goog.TransformedDependency.call(this,e,t,r,n,o)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(e){return e},goog.GoogModuleDependency=function(e,t,r,n,o,i,a){goog.TransformedDependency.call(this,e,t,r,n,o),this.needsTranspile_=i,this.transpiler_=a},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=function(e){return this.needsTranspile_&&(e=this.transpiler_.transpile(e,this.getPathName())),goog.LOAD_MODULE_USING_EVAL&&void 0!==goog.global.JSON?"goog.loadModule("+goog.global.JSON.stringify(e+"\n//# sourceURL="+this.path+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+e+"\n;return exports});\n//# sourceURL="+this.path+"\n"},goog.DebugLoader_.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(e,t,r,n){t=t||[],e=e.replace(/\\/g,"/");var o=goog.normalizePath_(goog.basePath+e);for(n&&"boolean"!=typeof n||(n=n?{module:goog.ModuleType.GOOG}:{}),r=this.factory_.createDependency(o,e,t,r,n,goog.transpiler_.needsTranspile(n.lang||"es3",n.module)),this.dependencies_[o]=r,r=0;r<t.length;r++)this.idToPath_[t[r]]=o;this.idToPath_[e]=o},goog.DependencyFactory=function(e){this.transpiler=e},goog.DependencyFactory.prototype.createDependency=function(e,t,r,n,o,i){return o.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(e,t,r,n,o,i,this.transpiler):i?new goog.TranspiledDependency(e,t,r,n,o,this.transpiler):o.module==goog.ModuleType.ES6?"never"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(e,t,r,n,o):new goog.Es6ModuleDependency(e,t,r,n,o):new goog.Dependency(e,t,r,n,o)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(e){goog.debugLoader_.setDependencyFactory(e)},goog.global.CLOSURE_NO_DEPS||goog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(e,t){goog.debugLoader_.bootstrap(e,t)}),goog.TRUSTED_TYPES_POLICY_NAME="",goog.identity_=function(e){return e},goog.createTrustedTypesPolicy=function(e){var t=null,r=goog.global.trustedTypes||goog.global.TrustedTypes;if(!r||!r.createPolicy)return t;try{t=r.createPolicy(e,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(e){goog.logToConsole_(e.message)}return t},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.string={},goog.string.StringBuffer=function(e,t){null!=e&&this.append.apply(this,arguments)},goog.string.StringBuffer.prototype.buffer_="",goog.string.StringBuffer.prototype.set=function(e){this.buffer_=""+e},goog.string.StringBuffer.prototype.append=function(e,t,r){if(this.buffer_+=String(e),null!=t)for(var n=1;n<arguments.length;n++)this.buffer_+=arguments[n];return this},goog.string.StringBuffer.prototype.clear=function(){this.buffer_=""},goog.string.StringBuffer.prototype.getLength=function(){return this.buffer_.length},goog.string.StringBuffer.prototype.toString=function(){return this.buffer_},goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,t){goog.debug.Error.call(this,goog.asserts.subs_(e,t)),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(e,t){for(var r=e.split("%s"),n="",o=r.length-1,i=0;i<o;i++)n+=r[i]+(i<t.length?t[i]:"%s");return n+r[o]},goog.asserts.doAssertFailure_=function(e,t,r,n){var o="Assertion failed";if(r){o+=": "+r;var i=n}else e&&(o+=": "+e,i=t);e=new goog.asserts.AssertionError(""+o,i||[]),goog.asserts.errorHandler_(e)},goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertExists=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&null==e&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,t){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"number"!=typeof e&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"string"!=typeof e&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"boolean"!=typeof e&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,t,r){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,t,r,n){return!goog.asserts.ENABLE_ASSERTS||e instanceof t||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(t),goog.asserts.getType_(e)],r,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertFinite=function(e,t,r){return!goog.asserts.ENABLE_ASSERTS||"number"==typeof e&&isFinite(e)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.indexOf.call(e,t,r)}:function(e,t,r){if(r=null==r?0:0>r?Math.max(0,e.length+r):r,"string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.indexOf(t,r);for(;r<e.length;r++)if(r in e&&e[r]===t)return r;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.lastIndexOf.call(e,t,null==r?e.length-1:r)}:function(e,t,r){if(0>(r=null==r?e.length-1:r)&&(r=Math.max(0,e.length+r)),"string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.lastIndexOf(t,r);for(;0<=r;r--)if(r in e&&e[r]===t)return r;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,t,r){goog.asserts.assert(null!=e.length),Array.prototype.forEach.call(e,t,r)}:function(e,t,r){for(var n=e.length,o="string"==typeof e?e.split(""):e,i=0;i<n;i++)i in o&&t.call(r,o[i],i,e)},goog.array.forEachRight=function(e,t,r){var n=e.length,o="string"==typeof e?e.split(""):e;for(--n;0<=n;--n)n in o&&t.call(r,o[n],n,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.filter.call(e,t,r)}:function(e,t,r){for(var n=e.length,o=[],i=0,a="string"==typeof e?e.split(""):e,s=0;s<n;s++)if(s in a){var u=a[s];t.call(r,u,s,e)&&(o[i++]=u)}return o},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.map.call(e,t,r)}:function(e,t,r){for(var n=e.length,o=Array(n),i="string"==typeof e?e.split(""):e,a=0;a<n;a++)a in i&&(o[a]=t.call(r,i[a],a,e));return o},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,t,r,n){return goog.asserts.assert(null!=e.length),n&&(t=goog.bind(t,n)),Array.prototype.reduce.call(e,t,r)}:function(e,t,r,n){var o=r;return goog.array.forEach(e,(function(r,i){o=t.call(n,o,r,i,e)})),o},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,t,r,n){return goog.asserts.assert(null!=e.length),goog.asserts.assert(null!=t),n&&(t=goog.bind(t,n)),Array.prototype.reduceRight.call(e,t,r)}:function(e,t,r,n){var o=r;return goog.array.forEachRight(e,(function(r,i){o=t.call(n,o,r,i,e)})),o},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.some.call(e,t,r)}:function(e,t,r){for(var n=e.length,o="string"==typeof e?e.split(""):e,i=0;i<n;i++)if(i in o&&t.call(r,o[i],i,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.every.call(e,t,r)}:function(e,t,r){for(var n=e.length,o="string"==typeof e?e.split(""):e,i=0;i<n;i++)if(i in o&&!t.call(r,o[i],i,e))return!1;return!0},goog.array.count=function(e,t,r){var n=0;return goog.array.forEach(e,(function(e,o,i){t.call(r,e,o,i)&&++n}),r),n},goog.array.find=function(e,t,r){return 0>(t=goog.array.findIndex(e,t,r))?null:"string"==typeof e?e.charAt(t):e[t]},goog.array.findIndex=function(e,t,r){for(var n=e.length,o="string"==typeof e?e.split(""):e,i=0;i<n;i++)if(i in o&&t.call(r,o[i],i,e))return i;return-1},goog.array.findRight=function(e,t,r){return 0>(t=goog.array.findIndexRight(e,t,r))?null:"string"==typeof e?e.charAt(t):e[t]},goog.array.findIndexRight=function(e,t,r){var n=e.length,o="string"==typeof e?e.split(""):e;for(--n;0<=n;n--)if(n in o&&t.call(r,o[n],n,e))return n;return-1},goog.array.contains=function(e,t){return 0<=goog.array.indexOf(e,t)},goog.array.isEmpty=function(e){return 0==e.length},goog.array.clear=function(e){if(!goog.isArray(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0},goog.array.insert=function(e,t){goog.array.contains(e,t)||e.push(t)},goog.array.insertAt=function(e,t,r){goog.array.splice(e,r,0,t)},goog.array.insertArrayAt=function(e,t,r){goog.partial(goog.array.splice,e,r,0).apply(null,t)},goog.array.insertBefore=function(e,t,r){var n;2==arguments.length||0>(n=goog.array.indexOf(e,r))?e.push(t):goog.array.insertAt(e,t,n)},goog.array.remove=function(e,t){var r,n=goog.array.indexOf(e,t);return(r=0<=n)&&goog.array.removeAt(e,n),r},goog.array.removeLast=function(e,t){var r=goog.array.lastIndexOf(e,t);return 0<=r&&(goog.array.removeAt(e,r),!0)},goog.array.removeAt=function(e,t){return goog.asserts.assert(null!=e.length),1==Array.prototype.splice.call(e,t,1).length},goog.array.removeIf=function(e,t,r){return 0<=(t=goog.array.findIndex(e,t,r))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAllIf=function(e,t,r){var n=0;return goog.array.forEachRight(e,(function(o,i){t.call(r,o,i,e)&&goog.array.removeAt(e,i)&&n++})),n},goog.array.concat=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(e){var t=e.length;if(0<t){for(var r=Array(t),n=0;n<t;n++)r[n]=e[n];return r}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,t){for(var r=1;r<arguments.length;r++){var n=arguments[r];if(goog.isArrayLike(n)){var o=e.length||0,i=n.length||0;e.length=o+i;for(var a=0;a<i;a++)e[o+a]=n[a]}else e.push(n)}},goog.array.splice=function(e,t,r,n){return goog.asserts.assert(null!=e.length),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,t,r){return goog.asserts.assert(null!=e.length),2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,r)},goog.array.removeDuplicates=function(e,t,r){t=t||e;var n=function(e){return goog.isObject(e)?"o"+goog.getUid(e):(typeof e).charAt(0)+e};r=r||n,n={};for(var o=0,i=0;i<e.length;){var a=e[i++],s=r(a);Object.prototype.hasOwnProperty.call(n,s)||(n[s]=!0,t[o++]=a)}t.length=o},goog.array.binarySearch=function(e,t,r){return goog.array.binarySearch_(e,r||goog.array.defaultCompare,!1,t)},goog.array.binarySelect=function(e,t,r){return goog.array.binarySearch_(e,t,!0,void 0,r)},goog.array.binarySearch_=function(e,t,r,n,o){for(var i,a=0,s=e.length;a<s;){var u=a+(s-a>>>1),l=r?t.call(o,e[u],u,e):t(n,e[u]);0<l?a=u+1:(s=u,i=!l)}return i?a:-a-1},goog.array.sort=function(e,t){e.sort(t||goog.array.defaultCompare)},goog.array.stableSort=function(e,t){for(var r=Array(e.length),n=0;n<e.length;n++)r[n]={index:n,value:e[n]};var o=t||goog.array.defaultCompare;for(goog.array.sort(r,(function(e,t){return o(e.value,t.value)||e.index-t.index})),n=0;n<e.length;n++)e[n]=r[n].value},goog.array.sortByKey=function(e,t,r){var n=r||goog.array.defaultCompare;goog.array.sort(e,(function(e,r){return n(t(e),t(r))}))},goog.array.sortObjectsByKey=function(e,t,r){goog.array.sortByKey(e,(function(e){return e[t]}),r)},goog.array.isSorted=function(e,t,r){t=t||goog.array.defaultCompare;for(var n=1;n<e.length;n++){var o=t(e[n-1],e[n]);if(0<o||0==o&&r)return!1}return!0},goog.array.equals=function(e,t,r){if(!goog.isArrayLike(e)||!goog.isArrayLike(t)||e.length!=t.length)return!1;var n=e.length;r=r||goog.array.defaultCompareEquality;for(var o=0;o<n;o++)if(!r(e[o],t[o]))return!1;return!0},goog.array.compare3=function(e,t,r){r=r||goog.array.defaultCompare;for(var n=Math.min(e.length,t.length),o=0;o<n;o++){var i=r(e[o],t[o]);if(0!=i)return i}return goog.array.defaultCompare(e.length,t.length)},goog.array.defaultCompare=function(e,t){return e>t?1:e<t?-1:0},goog.array.inverseDefaultCompare=function(e,t){return-goog.array.defaultCompare(e,t)},goog.array.defaultCompareEquality=function(e,t){return e===t},goog.array.binaryInsert=function(e,t,r){return 0>(r=goog.array.binarySearch(e,t,r))&&(goog.array.insertAt(e,t,-(r+1)),!0)},goog.array.binaryRemove=function(e,t,r){return 0<=(t=goog.array.binarySearch(e,t,r))&&goog.array.removeAt(e,t)},goog.array.bucket=function(e,t,r){for(var n={},o=0;o<e.length;o++){var i=e[o],a=t.call(r,i,o,e);void 0!==a&&(n[a]||(n[a]=[])).push(i)}return n},goog.array.toObject=function(e,t,r){var n={};return goog.array.forEach(e,(function(o,i){n[t.call(r,o,i,e)]=o})),n},goog.array.range=function(e,t,r){var n=[],o=0,i=e;if(void 0!==t&&(o=e,i=t),0>(r=r||1)*(i-o))return[];if(0<r)for(e=o;e<i;e+=r)n.push(e);else for(e=o;e>i;e+=r)n.push(e);return n},goog.array.repeat=function(e,t){for(var r=[],n=0;n<t;n++)r[n]=e;return r},goog.array.flatten=function(e){for(var t=[],r=0;r<arguments.length;r++){var n=arguments[r];if(goog.isArray(n))for(var o=0;o<n.length;o+=8192){var i=goog.array.slice(n,o,o+8192);i=goog.array.flatten.apply(null,i);for(var a=0;a<i.length;a++)t.push(i[a])}else t.push(n)}return t},goog.array.rotate=function(e,t){return goog.asserts.assert(null!=e.length),e.length&&(0<(t%=e.length)?Array.prototype.unshift.apply(e,e.splice(-t,t)):0>t&&Array.prototype.push.apply(e,e.splice(0,-t))),e},goog.array.moveItem=function(e,t,r){goog.asserts.assert(0<=t&&t<e.length),goog.asserts.assert(0<=r&&r<e.length),t=Array.prototype.splice.call(e,t,1),Array.prototype.splice.call(e,r,0,t[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var t=[],r=arguments[0].length,n=1;n<arguments.length;n++)arguments[n].length<r&&(r=arguments[n].length);for(n=0;n<r;n++){for(var o=[],i=0;i<arguments.length;i++)o.push(arguments[i][n]);t.push(o)}return t},goog.array.shuffle=function(e,t){for(var r=t||Math.random,n=e.length-1;0<n;n--){var o=Math.floor(r()*(n+1)),i=e[n];e[n]=e[o],e[o]=i}},goog.array.copyByIndex=function(e,t){var r=[];return goog.array.forEach(t,(function(t){r.push(e[t])})),r},goog.array.concatMap=function(e,t,r){return goog.array.concat.apply([],goog.array.map(e,t,r))},goog.object={},goog.object.is=function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},goog.object.forEach=function(e,t,r){for(var n in e)t.call(r,e[n],n,e)},goog.object.filter=function(e,t,r){var n,o={};for(n in e)t.call(r,e[n],n,e)&&(o[n]=e[n]);return o},goog.object.map=function(e,t,r){var n,o={};for(n in e)o[n]=t.call(r,e[n],n,e);return o},goog.object.some=function(e,t,r){for(var n in e)if(t.call(r,e[n],n,e))return!0;return!1},goog.object.every=function(e,t,r){for(var n in e)if(!t.call(r,e[n],n,e))return!1;return!0},goog.object.getCount=function(e){var t,r=0;for(t in e)r++;return r},goog.object.getAnyKey=function(e){for(var t in e)return t},goog.object.getAnyValue=function(e){for(var t in e)return e[t]},goog.object.contains=function(e,t){return goog.object.containsValue(e,t)},goog.object.getValues=function(e){var t,r=[],n=0;for(t in e)r[n++]=e[t];return r},goog.object.getKeys=function(e){var t,r=[],n=0;for(t in e)r[n++]=t;return r},goog.object.getValueByKeys=function(e,t){var r=goog.isArrayLike(t),n=r?t:arguments;for(r=r?0:1;r<n.length;r++){if(null==e)return;e=e[n[r]]}return e},goog.object.containsKey=function(e,t){return null!==e&&t in e},goog.object.containsValue=function(e,t){for(var r in e)if(e[r]==t)return!0;return!1},goog.object.findKey=function(e,t,r){for(var n in e)if(t.call(r,e[n],n,e))return n},goog.object.findValue=function(e,t,r){return(t=goog.object.findKey(e,t,r))&&e[t]},goog.object.isEmpty=function(e){for(var t in e)return!1;return!0},goog.object.clear=function(e){for(var t in e)delete e[t]},goog.object.remove=function(e,t){var r;return(r=t in e)&&delete e[t],r},goog.object.add=function(e,t,r){if(null!==e&&t in e)throw Error('The object already contains the key "'+t+'"');goog.object.set(e,t,r)},goog.object.get=function(e,t,r){return null!==e&&t in e?e[t]:r},goog.object.set=function(e,t,r){e[t]=r},goog.object.setIfUndefined=function(e,t,r){return t in e?e[t]:e[t]=r},goog.object.setWithReturnValueIfNotSet=function(e,t,r){return t in e?e[t]:(r=r(),e[t]=r)},goog.object.equals=function(e,t){for(var r in e)if(!(r in t)||e[r]!==t[r])return!1;for(var n in t)if(!(n in e))return!1;return!0},goog.object.clone=function(e){var t,r={};for(t in e)r[t]=e[t];return r},goog.object.unsafeClone=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if(goog.isFunction(e.clone))return e.clone();for(var r in t="array"==t?[]:{},e)t[r]=goog.object.unsafeClone(e[r]);return t}return e},goog.object.transpose=function(e){var t,r={};for(t in e)r[e[t]]=t;return r},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,t){for(var r,n,o=1;o<arguments.length;o++){for(r in n=arguments[o])e[r]=n[r];for(var i=0;i<goog.object.PROTOTYPE_FIELDS_.length;i++)r=goog.object.PROTOTYPE_FIELDS_[i],Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}},goog.object.create=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(t%2)throw Error("Uneven number of arguments");for(var r={},n=0;n<t;n+=2)r[arguments[n]]=arguments[n+1];return r},goog.object.createSet=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var r={},n=0;n<t;n++)r[arguments[n]]=!0;return r},goog.object.createImmutableView=function(e){var t=e;return Object.isFrozen&&!Object.isFrozen(e)&&(t=Object.create(e),Object.freeze(t)),t},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.object.getAllPropertyNames=function(e,t,r){if(!e)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(e);for(var n={};e&&(e!==Object.prototype||t)&&(e!==Function.prototype||r);){for(var o=Object.getOwnPropertyNames(e),i=0;i<o.length;i++)n[o[i]]=!0;e=Object.getPrototypeOf(e)}return goog.object.getKeys(n)},goog.object.getSuperClass=function(e){return(e=Object.getPrototypeOf(e.prototype))&&e.constructor},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(e){if(goog.asserts.ENABLE_ASSERTS){var t=goog.dom.asserts.getWindow_(e);t&&(!e||!(e instanceof t.Location)&&e instanceof t.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(e))}return e},goog.dom.asserts.assertIsElementType_=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var r=goog.dom.asserts.getWindow_(e);r&&void 0!==r[t]&&(e&&(e instanceof r[t]||!(e instanceof r.Location||e instanceof r.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",t,goog.dom.asserts.debugStringForType_(e)))}return e},goog.dom.asserts.assertIsHTMLAnchorElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(e){if(!goog.isObject(e))return void 0===e?"undefined":null===e?"null":typeof e;try{return e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e)}catch(e){return"<object could not be stringified>"}},goog.dom.asserts.getWindow_=function(e){try{var t=e&&e.ownerDocument,r=t&&(t.defaultView||t.parentWindow);if((r=r||goog.global).Element&&r.Location)return r}catch(e){}return null},goog.functions={},goog.functions.constant=function(e){return function(){return e}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(e,t){return e},goog.functions.error=function(e){return function(){throw Error(e)}},goog.functions.fail=function(e){return function(){throw e}},goog.functions.lock=function(e,t){return t=t||0,function(){return e.apply(this,Array.prototype.slice.call(arguments,0,t))}},goog.functions.nth=function(e){return function(){return arguments[e]}},goog.functions.partialRight=function(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=Array.prototype.slice.call(arguments);return t.push.apply(t,r),e.apply(this,t)}},goog.functions.withReturnValue=function(e,t){return goog.functions.sequence(e,goog.functions.constant(t))},goog.functions.equalTo=function(e,t){return function(r){return t?e==r:e===r}},goog.functions.compose=function(e,t){var r=arguments,n=r.length;return function(){var e;n&&(e=r[n-1].apply(this,arguments));for(var t=n-2;0<=t;t--)e=r[t].call(this,e);return e}},goog.functions.sequence=function(e){var t=arguments,r=t.length;return function(){for(var e,n=0;n<r;n++)e=t[n].apply(this,arguments);return e}},goog.functions.and=function(e){var t=arguments,r=t.length;return function(){for(var e=0;e<r;e++)if(!t[e].apply(this,arguments))return!1;return!0}},goog.functions.or=function(e){var t=arguments,r=t.length;return function(){for(var e=0;e<r;e++)if(t[e].apply(this,arguments))return!0;return!1}},goog.functions.not=function(e){return function(){return!e.apply(this,arguments)}},goog.functions.create=function(e,t){var r=function(){};return r.prototype=e.prototype,r=new r,e.apply(r,Array.prototype.slice.call(arguments,1)),r},goog.functions.CACHE_RETURN_VALUE=!0,goog.functions.cacheReturnValue=function(e){var t,r=!1;return function(){return goog.functions.CACHE_RETURN_VALUE?(r||(t=e(),r=!0),t):e()}},goog.functions.once=function(e){var t=e;return function(){if(t){var e=t;t=null,e()}}},goog.functions.debounce=function(e,t,r){var n=0;return function(o){goog.global.clearTimeout(n);var i=arguments;n=goog.global.setTimeout((function(){e.apply(r,i)}),t)}},goog.functions.throttle=function(e,t,r){var n=0,o=!1,i=[],a=function(){n=0,o&&(o=!1,s())},s=function(){n=goog.global.setTimeout(a,t),e.apply(r,i)};return function(e){i=arguments,n?o=!0:s()}},goog.functions.rateLimit=function(e,t,r){var n=0,o=function(){n=0};return function(i){n||(n=goog.global.setTimeout(o,t),e.apply(r,arguments))}},goog.dom.HtmlElement=function(){},goog.dom.TagName=function(e){this.tagName_=e},goog.dom.TagName.prototype.toString=function(){return this.tagName_},goog.dom.TagName.A=new goog.dom.TagName("A"),goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR"),goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM"),goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS"),goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET"),goog.dom.TagName.AREA=new goog.dom.TagName("AREA"),goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE"),goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE"),goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO"),goog.dom.TagName.B=new goog.dom.TagName("B"),goog.dom.TagName.BASE=new goog.dom.TagName("BASE"),goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT"),goog.dom.TagName.BDI=new goog.dom.TagName("BDI"),goog.dom.TagName.BDO=new goog.dom.TagName("BDO"),goog.dom.TagName.BIG=new goog.dom.TagName("BIG"),goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE"),goog.dom.TagName.BODY=new goog.dom.TagName("BODY"),goog.dom.TagName.BR=new goog.dom.TagName("BR"),goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON"),goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS"),goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION"),goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER"),goog.dom.TagName.CITE=new goog.dom.TagName("CITE"),goog.dom.TagName.CODE=new goog.dom.TagName("CODE"),goog.dom.TagName.COL=new goog.dom.TagName("COL"),goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP"),goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND"),goog.dom.TagName.DATA=new goog.dom.TagName("DATA"),goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST"),goog.dom.TagName.DD=new goog.dom.TagName("DD"),goog.dom.TagName.DEL=new goog.dom.TagName("DEL"),goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS"),goog.dom.TagName.DFN=new goog.dom.TagName("DFN"),goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG"),goog.dom.TagName.DIR=new goog.dom.TagName("DIR"),goog.dom.TagName.DIV=new goog.dom.TagName("DIV"),goog.dom.TagName.DL=new goog.dom.TagName("DL"),goog.dom.TagName.DT=new goog.dom.TagName("DT"),goog.dom.TagName.EM=new goog.dom.TagName("EM"),goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED"),goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET"),goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION"),goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE"),goog.dom.TagName.FONT=new goog.dom.TagName("FONT"),goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER"),goog.dom.TagName.FORM=new goog.dom.TagName("FORM"),goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME"),goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET"),goog.dom.TagName.H1=new goog.dom.TagName("H1"),goog.dom.TagName.H2=new goog.dom.TagName("H2"),goog.dom.TagName.H3=new goog.dom.TagName("H3"),goog.dom.TagName.H4=new goog.dom.TagName("H4"),goog.dom.TagName.H5=new goog.dom.TagName("H5"),goog.dom.TagName.H6=new goog.dom.TagName("H6"),goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD"),goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER"),goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP"),goog.dom.TagName.HR=new goog.dom.TagName("HR"),goog.dom.TagName.HTML=new goog.dom.TagName("HTML"),goog.dom.TagName.I=new goog.dom.TagName("I"),goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME"),goog.dom.TagName.IMG=new goog.dom.TagName("IMG"),goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT"),goog.dom.TagName.INS=new goog.dom.TagName("INS"),goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX"),goog.dom.TagName.KBD=new goog.dom.TagName("KBD"),goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN"),goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL"),goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND"),goog.dom.TagName.LI=new goog.dom.TagName("LI"),goog.dom.TagName.LINK=new goog.dom.TagName("LINK"),goog.dom.TagName.MAIN=new goog.dom.TagName("MAIN"),goog.dom.TagName.MAP=new goog.dom.TagName("MAP"),goog.dom.TagName.MARK=new goog.dom.TagName("MARK"),goog.dom.TagName.MATH=new goog.dom.TagName("MATH"),goog.dom.TagName.MENU=new goog.dom.TagName("MENU"),goog.dom.TagName.MENUITEM=new goog.dom.TagName("MENUITEM"),goog.dom.TagName.META=new goog.dom.TagName("META"),goog.dom.TagName.METER=new goog.dom.TagName("METER"),goog.dom.TagName.NAV=new goog.dom.TagName("NAV"),goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES"),goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT"),goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT"),goog.dom.TagName.OL=new goog.dom.TagName("OL"),goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP"),goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION"),goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT"),goog.dom.TagName.P=new goog.dom.TagName("P"),goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM"),goog.dom.TagName.PICTURE=new goog.dom.TagName("PICTURE"),goog.dom.TagName.PRE=new goog.dom.TagName("PRE"),goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS"),goog.dom.TagName.Q=new goog.dom.TagName("Q"),goog.dom.TagName.RP=new goog.dom.TagName("RP"),goog.dom.TagName.RT=new goog.dom.TagName("RT"),goog.dom.TagName.RTC=new goog.dom.TagName("RTC"),goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY"),goog.dom.TagName.S=new goog.dom.TagName("S"),goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP"),goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT"),goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION"),goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT"),goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL"),goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE"),goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN"),goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE"),goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG"),goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE"),goog.dom.TagName.SUB=new goog.dom.TagName("SUB"),goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY"),goog.dom.TagName.SUP=new goog.dom.TagName("SUP"),goog.dom.TagName.SVG=new goog.dom.TagName("SVG"),goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE"),goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY"),goog.dom.TagName.TD=new goog.dom.TagName("TD"),goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE"),goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA"),goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT"),goog.dom.TagName.TH=new goog.dom.TagName("TH"),goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD"),goog.dom.TagName.TIME=new goog.dom.TagName("TIME"),goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE"),goog.dom.TagName.TR=new goog.dom.TagName("TR"),goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK"),goog.dom.TagName.TT=new goog.dom.TagName("TT"),goog.dom.TagName.U=new goog.dom.TagName("U"),goog.dom.TagName.UL=new goog.dom.TagName("UL"),goog.dom.TagName.VAR=new goog.dom.TagName("VAR"),goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO"),goog.dom.TagName.WBR=new goog.dom.TagName("WBR"),goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(e){return!0===goog.dom.tags.VOID_TAGS_[e]},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.string.TypedString=function(){},goog.string.Const=function(e,t){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=e===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.DEBUG&&(goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"}),goog.string.Const.unwrap=function(e){return e instanceof goog.string.Const&&e.constructor===goog.string.Const&&e.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?e.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+e+"'"),"type_error:Const")},goog.string.Const.from=function(e){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="",this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0,goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeScript.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeScript.fromConstantAndArgs=function(e,t){for(var r=[],n=1;n<arguments.length;n++)r.push(goog.html.SafeScript.stringify_(arguments[n]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(e)+")("+r.join(", ")+");")},goog.html.SafeScript.fromJson=function(e){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(e))},goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),goog.html.SafeScript.unwrap=function(e){return goog.html.SafeScript.unwrapTrustedScript(e).toString()},goog.html.SafeScript.unwrapTrustedScript=function(e){return e instanceof goog.html.SafeScript&&e.constructor===goog.html.SafeScript&&e.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeScriptWrappedValue_:(goog.asserts.fail("expected object of type SafeScript, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeScript")},goog.html.SafeScript.stringify_=function(e){return JSON.stringify(e).replace(/</g,"\\x3c")},goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(e):e,this},goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(null!=e)return e;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return void 0!==goog.global.URL&&void 0!==goog.global.URL.createObjectURL?goog.global.URL:void 0!==goog.global.webkitURL&&void 0!==goog.global.webkitURL.createObjectURL?goog.global.webkitURL:void 0!==goog.global.createObjectURL?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.fs.blob={},goog.fs.blob.getBlob=function(e){var t=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==t){t=new t;for(var r=0;r<arguments.length;r++)t.append(arguments[r]);return t.getBlob()}return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments))},goog.fs.blob.getBlobWithProperties=function(e,t,r){var n=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==n){n=new n;for(var o=0;o<e.length;o++)n.append(e[o],r);return n.getBlob(t)}if(void 0!==goog.global.Blob)return n={},t&&(n.type=t),r&&(n.endings=r),new Blob(e,n);throw Error("This browser doesn't seem to support creating Blobs")},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))&&("adlm"==goog.LOCALE.substring(3,7).toLowerCase()||"arab"==goog.LOCALE.substring(3,7).toLowerCase()||"hebr"==goog.LOCALE.substring(3,7).toLowerCase()||"nkoo"==goog.LOCALE.substring(3,7).toLowerCase()||"rohg"==goog.LOCALE.substring(3,7).toLowerCase()||"thaa"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))&&("adlm"==goog.LOCALE.substring(4,8).toLowerCase()||"arab"==goog.LOCALE.substring(4,8).toLowerCase()||"hebr"==goog.LOCALE.substring(4,8).toLowerCase()||"nkoo"==goog.LOCALE.substring(4,8).toLowerCase()||"rohg"==goog.LOCALE.substring(4,8).toLowerCase()||"thaa"==goog.LOCALE.substring(4,8).toLowerCase()),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,t){return"number"==typeof e?0<e?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:t?null:goog.i18n.bidi.Dir.NEUTRAL:null==e?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\ud801\ud804-\ud839\ud83c-\udbff豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\ud802-\ud803\ud83a-\ud83bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,t){return t?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,t){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,t){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,t){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,t){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(e,t){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,t){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,t){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,t){var r=(void 0===t?goog.i18n.bidi.hasAnyRtl(e):t)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return e.replace(goog.i18n.bidi.bracketGuardTextRe_,r+"$&"+r)},goog.i18n.bidi.enforceRtlInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,t){for(var r=0,n=0,o=!1,i=goog.i18n.bidi.stripHtmlIfNeeded_(e,t).split(goog.i18n.bidi.wordSeparatorRe_),a=0;a<i.length;a++){var s=i[a];goog.i18n.bidi.startsWithRtl(s)?(r++,n++):goog.i18n.bidi.isRequiredLtrRe_.test(s)?o=!0:goog.i18n.bidi.hasAnyLtr(s)?n++:goog.i18n.bidi.hasNumeralsRe_.test(s)&&(o=!0)}return 0==n?o?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:r/n>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,t){return goog.i18n.bidi.estimateDirection(e,t)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,t){e&&(t=goog.i18n.bidi.toDir(t))&&(e.style.textAlign=t==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=t==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,t){switch(goog.i18n.bidi.estimateDirection(t)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(e,t){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(e,t){var r=goog.html.TrustedResourceUrl.unwrap(this),n=(r=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(r))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(r[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",r[2]||"",e)+goog.html.TrustedResourceUrl.stringifyParams_("#",n,t))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(e,t){var r=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(r))throw Error("Invalid TrustedResourceUrl format: "+r);var n=r.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,(function(e,n){if(!Object.prototype.hasOwnProperty.call(t,n))throw Error('Found marker, "'+n+'", in format string, "'+r+'", but no valid label mapping found in args: '+JSON.stringify(t));var o=t[n];return o instanceof goog.string.Const?goog.string.Const.unwrap(o):encodeURIComponent(String(o))}));return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(e,t,r,n){return goog.html.TrustedResourceUrl.format(e,t).cloneWithParams(r,n)},goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var t="",r=0;r<e.length;r++)t+=goog.string.Const.unwrap(e[r]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.fromSafeScript=function(e){return e=goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(e)],"text/javascript"),e=goog.fs.url.createObjectUrl(e),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){return e=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(e):e,new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.TrustedResourceUrl.stringifyParams_=function(e,t,r){if(null==r)return t;if("string"==typeof r)return r?e+encodeURIComponent(r):"";for(var n in r){var o=r[n];o=goog.isArray(o)?o:[o];for(var i=0;i<o.length;i++){var a=o[i];null!=a&&(t||(t=e),t+=(t.length>e.length?"&":"")+encodeURIComponent(n)+"="+encodeURIComponent(String(a)))}}return t},goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.internal={},goog.string.internal.startsWith=function(e,t){return 0==e.lastIndexOf(t,0)},goog.string.internal.endsWith=function(e,t){var r=e.length-t.length;return 0<=r&&e.indexOf(t,r)==r},goog.string.internal.caseInsensitiveStartsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(0,t.length))},goog.string.internal.caseInsensitiveEndsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(e.length-t.length,t.length))},goog.string.internal.caseInsensitiveEquals=function(e,t){return e.toLowerCase()==t.toLowerCase()},goog.string.internal.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(e)[1]},goog.string.internal.caseInsensitiveCompare=function(e,t){var r=String(e).toLowerCase(),n=String(t).toLowerCase();return r<n?-1:r==n?0:1},goog.string.internal.newLineToBr=function(e,t){return e.replace(/(\r\n|\r|\n)/g,t?"<br />":"<br>")},goog.string.internal.htmlEscape=function(e,t){if(t)e=e.replace(goog.string.internal.AMP_RE_,"&amp;").replace(goog.string.internal.LT_RE_,"&lt;").replace(goog.string.internal.GT_RE_,"&gt;").replace(goog.string.internal.QUOT_RE_,"&quot;").replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.internal.NULL_RE_,"&#0;");else{if(!goog.string.internal.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.internal.AMP_RE_,"&amp;")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.internal.LT_RE_,"&lt;")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.internal.GT_RE_,"&gt;")),-1!=e.indexOf('"')&&(e=e.replace(goog.string.internal.QUOT_RE_,"&quot;")),-1!=e.indexOf("'")&&(e=e.replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;")),-1!=e.indexOf("\0")&&(e=e.replace(goog.string.internal.NULL_RE_,"&#0;"))}return e},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=/</g,goog.string.internal.GT_RE_=/>/g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(e,t){return goog.string.internal.newLineToBr(e.replace(/ /g," &#160;"),t)},goog.string.internal.contains=function(e,t){return-1!=e.indexOf(t)},goog.string.internal.caseInsensitiveContains=function(e,t){return goog.string.internal.contains(e.toLowerCase(),t.toLowerCase())},goog.string.internal.compareVersions=function(e,t){for(var r=0,n=goog.string.internal.trim(String(e)).split("."),o=goog.string.internal.trim(String(t)).split("."),i=Math.max(n.length,o.length),a=0;0==r&&a<i;a++){var s=n[a]||"",u=o[a]||"";do{if(s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],u=/(\d*)(\D*)(.*)/.exec(u)||["","","",""],0==s[0].length&&0==u[0].length)break;r=0==s[1].length?0:parseInt(s[1],10);var l=0==u[1].length?0:parseInt(u[1],10);r=goog.string.internal.compareElements_(r,l)||goog.string.internal.compareElements_(0==s[2].length,0==u[2].length)||goog.string.internal.compareElements_(s[2],u[2]),s=s[3],u=u[3]}while(0==r)}return r},goog.string.internal.compareElements_=function(e,t){return e<t?-1:e>t?1:0},goog.html.SafeUrl=function(e,t){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=e===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\w+=(?:\w+|"[\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(e){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(e)},goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SAFE_MIME_TYPE_PATTERN_.test(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){var t=(e=e.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return t=t&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(t[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(e){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(e))||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"fb-messenger://share")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromWhatsAppUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"whatsapp://send")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromSmsUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(e){var t=e.indexOf("#");if(0<t&&(e=e.substring(0,t)),!(t=e.match(/[?&]body=/gi)))return!0;if(1<t.length)return!1;if(!(e=e.match(/[?&]body=([^&]*)/)[1]))return!0;try{decodeURIComponent(e)}catch(e){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(e)},goog.html.SafeUrl.fromSshUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"ssh://")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeExtensionUrl_=function(e,t,r){return(e=e.exec(t))?(e=e[1],-1==(r instanceof goog.string.Const?[goog.string.Const.unwrap(r)]:r.map((function(e){return goog.string.Const.unwrap(e)}))).indexOf(e)&&(t=goog.html.SafeUrl.INNOCUOUS_STRING)):t=goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromTrustedResourceUrl=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(e))},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.sanitizeAssertUnchanged=function(e,t){if(e instanceof goog.html.SafeUrl)return e;if(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),t&&/^data:/i.test(e)){var r=goog.html.SafeUrl.fromDataUrl(e);if(r.getTypedStringValue()==e)return r}return goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(e),"%s does not match the safe URL pattern",e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="",this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyle.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyle.EMPTY:(goog.asserts.assert(goog.string.internal.endsWith(e,";"),"Last character of style string is not ';': "+e),goog.asserts.assert(goog.string.internal.contains(e,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var t,r="";for(t in e){if(!/^[-_a-zA-Z0-9]+$/.test(t))throw Error("Name allows only [-_a-zA-Z0-9], got: "+t);var n=e[t];null!=n&&(r+=t+":"+(n=goog.isArray(n)?goog.array.map(n,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(n))+";")}return r?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(r):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.sanitizePropertyValue_=function(e){if(e instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(e).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';if(e=e instanceof goog.string.Const?goog.string.Const.unwrap(e):goog.html.SafeStyle.sanitizePropertyValueString_(String(e)),/[{;}]/.test(e))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[e]);return e},goog.html.SafeStyle.sanitizePropertyValueString_=function(e){var t=e.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");return goog.html.SafeStyle.VALUE_RE_.test(t)?goog.html.SafeStyle.COMMENT_RE_.test(e)?(goog.asserts.fail("String value disallows comments, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):goog.html.SafeStyle.hasBalancedQuotes_(e)?goog.html.SafeStyle.hasBalancedSquareBrackets_(e)?goog.html.SafeStyle.sanitizeUrl_(e):(goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value requires balanced quotes, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING)},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var t=!0,r=!0,n=0;n<e.length;n++){var o=e.charAt(n);"'"==o&&r?t=!t:'"'==o&&t&&(r=!r)}return t&&r},goog.html.SafeStyle.hasBalancedSquareBrackets_=function(e){for(var t=!0,r=/^[-_a-zA-Z0-9]$/,n=0;n<e.length;n++){var o=e.charAt(n);if("]"==o){if(t)return!1;t=!0}else if("["==o){if(!t)return!1;t=!1}else if(!t&&!r.test(o))return!1}return t},goog.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9\\[\\]]",goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$"),goog.html.SafeStyle.URL_RE_=RegExp("\\b(url\\([ \t\n]*)('[ -&(-\\[\\]-~]*'|\"[ !#-\\[\\]-~]*\"|[!#-&*-\\[\\]-~]*)([ \t\n]*\\))","g"),goog.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" "),goog.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g"),goog.html.SafeStyle.COMMENT_RE_=/\/\*/,goog.html.SafeStyle.sanitizeUrl_=function(e){return e.replace(goog.html.SafeStyle.URL_RE_,(function(e,t,r,n){var o="";return r=r.replace(/^(['"])(.*)\1$/,(function(e,t,r){return o=t,r})),e=goog.html.SafeUrl.sanitize(r).getTypedStringValue(),t+o+e+o+n}))},goog.html.SafeStyle.concat=function(e){var t="",r=function(e){goog.isArray(e)?goog.array.forEach(e,r):t+=goog.html.SafeStyle.unwrap(e)};return goog.array.forEach(arguments,r),t?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.createRule=function(e,t){if(goog.string.internal.contains(e,"<"))throw Error("Selector does not allow '<', got: "+e);var r=e.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(r))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+e);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(r))throw Error("() and [] in selector must be balanced, got: "+e);return t instanceof goog.html.SafeStyle||(t=goog.html.SafeStyle.create(t)),r=e+"{"+goog.html.SafeStyle.unwrap(t).replace(/</g,"\\3C ")+"}",goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(r)},goog.html.SafeStyleSheet.hasBalancedBrackets_=function(e){for(var t={"(":")","[":"]"},r=[],n=0;n<e.length;n++){var o=e[n];if(t[o])r.push(t[o]);else if(goog.object.contains(t,o)&&r.pop()!=o)return!1}return 0==r.length},goog.html.SafeStyleSheet.concat=function(e){var t="",r=function(e){goog.isArray(e)?goog.array.forEach(e,r):t+=goog.html.SafeStyleSheet.unwrap(e)};return goog.array.forEach(arguments,r),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeStyleSheet.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.internal.contains(e,"<"),"Forbidden '<' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(t,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(t,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var t,r=RegExp("(\\w[\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g"),n=[];t=r.exec(e);)n.push([t[1],t[2],t[3]||void 0]);return n},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")},goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_,goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_,goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(e){return e=goog.array.find(e,n),r[e]||""}var t=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(t);t=goog.labs.userAgent.util.extractVersionTuples(t);var r={};goog.array.forEach(t,(function(e){r[e[0]]=e[1]}));var n=goog.partial(goog.object.containsKey,r);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isEdgeChromium()?e(["Edg"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS","HeadlessChrome"]):(t=t[2])&&t[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){var t=/rv: *([\d\.]*)/.exec(e);if(t&&t[1])return t[1];t="";var r=/MSIE +([\d\.]+)/.exec(e);if(r&&r[1])if(e=/Trident\/(\d.\d)/.exec(e),"7.0"==r[1])if(e&&e[1])switch(e[1]){case"4.0":t="8.0";break;case"5.0":t="9.0";break;case"6.0":t="10.0";break;case"7.0":t="11.0"}else t="7.0";else t=r[1];return t},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG,goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0,goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return goog.html.SafeHtml.unwrapTrustedHTML(e).toString()},goog.html.SafeHtml.unwrapTrustedHTML=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var t="object"==typeof e,r=null;return t&&e.implementsGoogI18nBidiDirectionalString&&(r=e.getDirection()),e=t&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(e),r)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,t,r){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),t,r)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name <"+e+">.":"");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+e+"> is not allowed for SafeHtml.":"")},goog.html.SafeHtml.createIframe=function(e,t,r,n){e&&goog.html.TrustedResourceUrl.unwrap(e);var o={};return o.src=e||null,o.srcdoc=t&&goog.html.SafeHtml.unwrap(t),e=goog.html.SafeHtml.combineAttributes(o,{sandbox:""},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.createSandboxIframe=function(e,t,r,n){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var o={};return o.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,o.srcdoc=t||null,o.sandbox="",e=goog.html.SafeHtml.combineAttributes(o,{},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,n)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,t){goog.html.TrustedResourceUrl.unwrap(e);var r=goog.html.SafeHtml.combineAttributes({src:e},{},t);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",r)},goog.html.SafeHtml.createScript=function(e,t){for(var r in t){var n=r.toLowerCase();if("language"==n||"src"==n||"text"==n||"type"==n)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+n+'" attribute':"")}for(r="",e=goog.array.concat(e),n=0;n<e.length;n++)r+=goog.html.SafeScript.unwrap(e[n]);return r=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t,r)},goog.html.SafeHtml.createStyle=function(e,t){var r=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},t),n="";e=goog.array.concat(e);for(var o=0;o<e.length;o++)n+=goog.html.SafeStyleSheet.unwrap(e[o]);return n=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",r,n)},goog.html.SafeHtml.createMetaRefresh=function(e,t){var r=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e));return(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(r,";")&&(r="'"+r.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(t||0)+"; url="+r})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,t,r){if(r instanceof goog.string.Const)r=goog.string.Const.unwrap(r);else if("style"==t.toLowerCase()){if(!goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");r=goog.html.SafeHtml.getStyleValue_(r)}else{if(/^on/i.test(t))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" requires goog.string.Const value, "'+r+'" given.':"");if(t.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(r instanceof goog.html.TrustedResourceUrl)r=goog.html.TrustedResourceUrl.unwrap(r);else if(r instanceof goog.html.SafeUrl)r=goog.html.SafeUrl.unwrap(r);else{if("string"!=typeof r)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" on tag "'+e+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+r+'" given.':"");r=goog.html.SafeUrl.sanitize(r).getTypedStringValue()}}return r.implementsGoogStringTypedString&&(r=r.getTypedStringValue()),goog.asserts.assert("string"==typeof r||"number"==typeof r,"String or number value expected, got "+typeof r+" with value: "+r),t+'="'+goog.string.internal.htmlEscape(String(r))+'"'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e:"");return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,t,r,n){return(t=goog.html.SafeHtml.create(t,r,n)).dir_=e,t},goog.html.SafeHtml.join=function(e,t){var r=goog.html.SafeHtml.htmlEscape(e),n=r.getDirection(),o=[],i=function(e){goog.isArray(e)?goog.array.forEach(e,i):(e=goog.html.SafeHtml.htmlEscape(e),o.push(goog.html.SafeHtml.unwrap(e)),e=e.getDirection(),n==goog.i18n.bidi.Dir.NEUTRAL?n=e:e!=goog.i18n.bidi.Dir.NEUTRAL&&n!=e&&(n=null))};return goog.array.forEach(t,i),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o.join(goog.html.SafeHtml.unwrap(r)),n)},goog.html.SafeHtml.concat=function(e){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))},goog.html.SafeHtml.concatWithDir=function(e,t){var r=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return r.dir_=e,r},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,t){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(e,t)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,t){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(e):e,this.dir_=t,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,t,r){var n=null,o="<"+e+goog.html.SafeHtml.stringifyAttributes(e,t);return null==r?r=[]:goog.isArray(r)||(r=[r]),goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!r.length,"Void tag <"+e+"> does not allow content."),o+=">"):(n=goog.html.SafeHtml.concat(r),o+=">"+goog.html.SafeHtml.unwrap(n)+"</"+e+">",n=n.getDirection()),(e=t&&t.dir)&&(n=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,n)},goog.html.SafeHtml.stringifyAttributes=function(e,t){var r="";if(t)for(var n in t){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(n))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+n+'".':"");var o=t[n];null!=o&&(r+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,n,o))}return r},goog.html.SafeHtml.combineAttributes=function(e,t,r){var n,o={};for(n in e)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),o[n]=e[n];for(n in t)goog.asserts.assert(n.toLowerCase()==n,"Must be lower case"),o[n]=t[n];if(r)for(n in r){var i=n.toLowerCase();if(i in e)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+i+'" attribute, got "'+n+'" with value "'+r[n]+'"':"");i in t&&delete o[i],o[n]=r[n]}return o},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(e,t,r){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,r||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,t,r){e.insertAdjacentHTML(t,goog.html.SafeHtml.unwrapTrustedHTML(r))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue((function(){if(goog.DEBUG&&"undefined"==typeof document)return!1;var e=document.createElement("div"),t=document.createElement("div");return t.appendChild(document.createElement("div")),e.appendChild(t),!(goog.DEBUG&&!e.firstChild||(t=e.firstChild.firstChild,e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),t.parentElement))})),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(e,t){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;e.lastChild;)e.removeChild(e.lastChild);e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setInnerHtml=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var r=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[r])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(e,t)},goog.dom.safe.setOuterHtml=function(e,t){e.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setFormElementAction=function(e,t){var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);goog.dom.asserts.assertIsHTMLFormElement(e).action=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setButtonFormAction=function(e,t){var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);goog.dom.asserts.assertIsHTMLButtonElement(e).formAction=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setInputFormAction=function(e,t){var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);goog.dom.asserts.assertIsHTMLInputElement(e).formAction=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setStyle=function(e,t){e.style.cssText=goog.html.SafeStyle.unwrap(t)},goog.dom.safe.documentWrite=function(e,t){e.write(goog.html.SafeHtml.unwrapTrustedHTML(t))},goog.dom.safe.setAnchorHref=function(e,t){goog.dom.asserts.assertIsHTMLAnchorElement(e);var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);e.href=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setImageSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLImageElement(e),t instanceof goog.html.SafeUrl)var r=t;else r=/^data:image\//i.test(t),r=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r);e.src=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setAudioSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLAudioElement(e),t instanceof goog.html.SafeUrl)var r=t;else r=/^data:audio\//i.test(t),r=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r);e.src=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setVideoSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLVideoElement(e),t instanceof goog.html.SafeUrl)var r=t;else r=/^data:video\//i.test(t),r=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r);e.src=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.setEmbedSrc=function(e,t){goog.dom.asserts.assertIsHTMLEmbedElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setFrameSrc=function(e,t){goog.dom.asserts.assertIsHTMLFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrcdoc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setLinkHrefAndRel=function(e,t,r){goog.dom.asserts.assertIsHTMLLinkElement(e),e.rel=r,goog.string.internal.caseInsensitiveContains(r,"stylesheet")?(goog.asserts.assert(t instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),e.href=goog.html.TrustedResourceUrl.unwrap(t)):e.href=t instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(t):t instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(t):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(t))},goog.dom.safe.setObjectData=function(e,t){goog.dom.asserts.assertIsHTMLObjectElement(e),e.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setScriptSrc=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t);var r=goog.getScriptNonce();r&&e.setAttribute("nonce",r)},goog.dom.safe.setScriptContent=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.text=goog.html.SafeScript.unwrapTrustedScript(t);var r=goog.getScriptNonce();r&&e.setAttribute("nonce",r)},goog.dom.safe.setLocationHref=function(e,t){goog.dom.asserts.assertIsLocation(e);var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);e.href=goog.html.SafeUrl.unwrap(r)},goog.dom.safe.assignLocation=function(e,t){goog.dom.asserts.assertIsLocation(e);var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);e.assign(goog.html.SafeUrl.unwrap(r))},goog.dom.safe.replaceLocation=function(e,t){goog.dom.asserts.assertIsLocation(e);var r=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t);e.replace(goog.html.SafeUrl.unwrap(r))},goog.dom.safe.openInWindow=function(e,t,r,n,o){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),(t||goog.global).open(goog.html.SafeUrl.unwrap(e),r?goog.string.Const.unwrap(r):"",n,o)},goog.dom.safe.parseFromStringHtml=function(e,t){return goog.dom.safe.parseFromString(e,t,"text/html")},goog.dom.safe.parseFromString=function(e,t,r){return e.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(t),r)},goog.dom.safe.createImageFromBlob=function(e){if(!/^image\/.*/g.test(e.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var t=goog.global.URL.createObjectURL(e);return(e=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(t)},goog.dom.safe.setImageSrc(e,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),t)),e},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(e,t){for(var r=e.split("%s"),n="",o=Array.prototype.slice.call(arguments,1);o.length&&1<r.length;)n+=r.shift()+o.shift();return n+r.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace,goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&" "<=e&&"~">=e||"€"<=e&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(e,t,r){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var n=e.toLowerCase().match(r),o=t.toLowerCase().match(r),i=Math.min(n.length,o.length),a=0;a<i;a++){r=n[a];var s=o[a];if(r!=s)return e=parseInt(r,10),!isNaN(e)&&(t=parseInt(s,10),!isNaN(t)&&e-t)?e-t:r<s?-1:1}return n.length!=o.length?n.length-o.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(e,t){return e=goog.string.internal.htmlEscape(e,t),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"&#101;")),e},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e};goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var r={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},n=t?t.createElement("div"):goog.global.document.createElement("div");return e.replace(goog.string.HTML_ENTITY_PATTERN_,(function(e,t){var o=r[e];if(o)return o;if("#"==t.charAt(0)){var i=Number("0"+t.substr(1));isNaN(i)||(o=String.fromCharCode(i))}return o||(goog.dom.safe.setInnerHtml(n,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),e+" ")),o=n.firstChild.nodeValue.slice(0,-1)),r[e]=o}))},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,(function(e,t){switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:if("#"==t.charAt(0)){var r=Number("0"+t.substr(1));if(!isNaN(r))return String.fromCharCode(r)}return e}}))},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/ /g," &#160;"),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var r=t.length,n=0;n<r;n++){var o=1==r?t:t.charAt(n);if(e.charAt(0)==o&&e.charAt(e.length-1)==o)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,r){return r&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),r&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,r,n){if(r&&(e=goog.string.unescapeEntities(e)),n&&e.length>t){n>t&&(n=t);var o=e.length-n;e=e.substring(0,t-n)+"..."+e.substring(o)}else e.length>t&&(n=Math.floor(t/2),o=e.length-n,e=e.substring(0,n+t%2)+"..."+e.substring(o));return r&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var t=['"'],r=0;r<e.length;r++){var n=e.charAt(r),o=n.charCodeAt(0);t[r+1]=goog.string.specialEscapeChars_[n]||(31<o&&127>o?n:goog.string.escapeChar(n))}return t.push('"'),t.join("")},goog.string.escapeString=function(e){for(var t=[],r=0;r<e.length;r++)t[r]=goog.string.escapeChar(e.charAt(r));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t=e.charCodeAt(0);if(31<t&&127>t)var r=e;else 256>t?(r="\\x",(16>t||256<t)&&(r+="0")):(r="\\u",4096>t&&(r+="0")),r+=t.toString(16).toUpperCase();return goog.string.jsEscapeCache_[e]=r},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,r){var n=e;return 0<=t&&t<e.length&&0<r&&(n=e.substr(0,t)+e.substr(t+r,e.length-t-r)),n},goog.string.remove=function(e,t){return e.replace(t,"")},goog.string.removeAll=function(e,t){var r=new RegExp(goog.string.regExpEscape(t),"g");return e.replace(r,"")},goog.string.replaceAll=function(e,t,r){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,r.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,r){return-1==(r=(e=void 0!==r?e.toFixed(r):String(e)).indexOf("."))&&(r=e.length),goog.string.repeat("0",Math.max(0,t-r))+e},goog.string.makeSafe=function(e){return null==e?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(e){for(var t=0,r=0;r<e.length;++r)t=31*t+e.charCodeAt(r)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return 0==t&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,(function(e,t){return t.toUpperCase()}))},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){var r="string"==typeof t?goog.string.regExpEscape(t):"\\s";return e.replace(new RegExp("(^"+(r?"|["+r+"]+":"")+")([a-z])","g"),(function(e,t,r){return t+r.toUpperCase()}))},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),"string"==typeof e?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,r){e=e.split(t);for(var n=[];0<r&&e.length;)n.push(e.shift()),r--;return e.length&&n.push(e.join(t)),n},goog.string.lastComponent=function(e,t){if(!t)return e;"string"==typeof t&&(t=[t]);for(var r=-1,n=0;n<t.length;n++)if(""!=t[n]){var o=e.lastIndexOf(t[n]);o>r&&(r=o)}return-1==r?e:e.slice(r+1)},goog.string.editDistance=function(e,t){var r=[],n=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var o=0;o<t.length+1;o++)r[o]=o;for(o=0;o<e.length;o++){n[0]=o+1;for(var i=0;i<t.length;i++)n[i+1]=Math.min(n[i]+1,r[i+1]+1,r[i]+Number(e[o]!=t[i]));for(i=0;i<r.length;i++)r[i]=n[i]}return n[t.length]},goog.proto2={},goog.proto2.Descriptor=function(e,t,r){for(this.messageType_=e,this.name_=t.name||null,this.fullName_=t.fullName||null,this.containingType_=t.containingType,this.fields_={},e=0;e<r.length;e++)t=r[e],this.fields_[t.getTag()]=t},goog.proto2.Descriptor.prototype.getName=function(){return this.name_},goog.proto2.Descriptor.prototype.getFullName=function(){return this.fullName_},goog.proto2.Descriptor.prototype.getContainingType=function(){return this.containingType_?this.containingType_.getDescriptor():null},goog.proto2.Descriptor.prototype.getFields=function(){var e=goog.object.getValues(this.fields_);return goog.array.sort(e,(function(e,t){return e.getTag()-t.getTag()})),e},goog.proto2.Descriptor.prototype.getFieldsMap=function(){return this.fields_},goog.proto2.Descriptor.prototype.findFieldByName=function(e){return goog.object.findValue(this.fields_,(function(t,r,n){return t.getName()==e}))||null},goog.proto2.Descriptor.prototype.findFieldByTag=function(e){return goog.asserts.assert(goog.string.isNumeric(e)),this.fields_[parseInt(e,10)]||null},goog.proto2.Descriptor.prototype.createMessageInstance=function(){return new this.messageType_},goog.proto2.FieldDescriptor=function(e,t,r){switch(this.parent_=e,goog.asserts.assert(goog.string.isNumeric(t)),this.tag_=t,this.name_=r.name,this.isPacked_=!!r.packed,this.isRepeated_=!!r.repeated,this.isRequired_=!!r.required,this.fieldType_=r.fieldType,this.nativeType_=r.type,this.deserializationConversionPermitted_=!1,this.fieldType_){case goog.proto2.FieldDescriptor.FieldType.INT64:case goog.proto2.FieldDescriptor.FieldType.UINT64:case goog.proto2.FieldDescriptor.FieldType.FIXED64:case goog.proto2.FieldDescriptor.FieldType.SFIXED64:case goog.proto2.FieldDescriptor.FieldType.SINT64:case goog.proto2.FieldDescriptor.FieldType.FLOAT:case goog.proto2.FieldDescriptor.FieldType.DOUBLE:this.deserializationConversionPermitted_=!0}this.defaultValue_=r.defaultValue},goog.proto2.FieldDescriptor.FieldType={DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18},goog.proto2.FieldDescriptor.prototype.getTag=function(){return this.tag_},goog.proto2.FieldDescriptor.prototype.getContainingType=function(){return this.parent_.prototype.getDescriptor()},goog.proto2.FieldDescriptor.prototype.getName=function(){return this.name_},goog.proto2.FieldDescriptor.prototype.getDefaultValue=function(){if(void 0===this.defaultValue_){var e=this.nativeType_;if(e===Boolean)this.defaultValue_=!1;else if(e===Number)this.defaultValue_=0;else{if(e!==String)return new e;this.defaultValue_=this.deserializationConversionPermitted_?"0":""}}return this.defaultValue_},goog.proto2.FieldDescriptor.prototype.getFieldType=function(){return this.fieldType_},goog.proto2.FieldDescriptor.prototype.getNativeType=function(){return this.nativeType_},goog.proto2.FieldDescriptor.prototype.deserializationConversionPermitted=function(){return this.deserializationConversionPermitted_},goog.proto2.FieldDescriptor.prototype.getFieldMessageType=function(){return this.nativeType_.prototype.getDescriptor()},goog.proto2.FieldDescriptor.prototype.isCompositeType=function(){return this.fieldType_==goog.proto2.FieldDescriptor.FieldType.MESSAGE||this.fieldType_==goog.proto2.FieldDescriptor.FieldType.GROUP},goog.proto2.FieldDescriptor.prototype.isPacked=function(){return this.isPacked_},goog.proto2.FieldDescriptor.prototype.isRepeated=function(){return this.isRepeated_},goog.proto2.FieldDescriptor.prototype.isRequired=function(){return this.isRequired_},goog.proto2.FieldDescriptor.prototype.isOptional=function(){return!this.isRepeated_&&!this.isRequired_},goog.proto2.Message=function(){this.values_={},this.fields_=this.getDescriptor().getFieldsMap(),this.deserializedFields_=this.lazyDeserializer_=null},goog.proto2.Message.FieldType={DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18},goog.proto2.Message.prototype.initializeForLazyDeserializer=function(e,t){this.lazyDeserializer_=e,this.values_=t,this.deserializedFields_={}},goog.proto2.Message.prototype.setUnknown=function(e,t){goog.asserts.assert(!this.fields_[e],"Field is not unknown in this message"),goog.asserts.assert(1<=e,"Tag "+e+' has value "'+t+'" in descriptor '+this.getDescriptor().getName()),goog.asserts.assert(null!==t,"Value cannot be null"),this.values_[e]=t,this.deserializedFields_&&delete this.deserializedFields_[e]},goog.proto2.Message.prototype.forEachUnknown=function(e,t){var r,n=t||this;for(r in this.values_){var o=Number(r);this.fields_[o]||e.call(n,o,this.values_[r])}},goog.proto2.Message.prototype.getDescriptor=goog.abstractMethod,goog.proto2.Message.prototype.has=function(e){return goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.has$Value(e.getTag())},goog.proto2.Message.prototype.arrayOf=function(e){return goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.array$Values(e.getTag())},goog.proto2.Message.prototype.countOf=function(e){return goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.count$Values(e.getTag())},goog.proto2.Message.prototype.get=function(e,t){return goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.get$Value(e.getTag(),t)},goog.proto2.Message.prototype.getOrDefault=function(e,t){return goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.get$ValueOrDefault(e.getTag(),t)},goog.proto2.Message.prototype.set=function(e,t){goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.set$Value(e.getTag(),t)},goog.proto2.Message.prototype.add=function(e,t){goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.add$Value(e.getTag(),t)},goog.proto2.Message.prototype.clear=function(e){goog.asserts.assert(e.getContainingType()==this.getDescriptor(),"The current message does not contain the given field"),this.clear$Field(e.getTag())},goog.proto2.Message.prototype.equals=function(e){if(!e||this.constructor!=e.constructor)return!1;for(var t=this.getDescriptor().getFields(),r=0;r<t.length;r++){var n=t[r],o=n.getTag();if(this.has$Value(o)!=e.has$Value(o))return!1;if(this.has$Value(o)){var i=n.isCompositeType(),a=this.getValueForTag_(o);if(o=e.getValueForTag_(o),n.isRepeated()){if(a.length!=o.length)return!1;for(n=0;n<a.length;n++){var s=a[n],u=o[n];if(i?!s.equals(u):s!=u)return!1}}else if(i?!a.equals(o):a!=o)return!1}}return!0},goog.proto2.Message.prototype.copyFrom=function(e){goog.asserts.assert(this.constructor==e.constructor,"The source message must have the same type."),this!=e&&(this.values_={},this.deserializedFields_&&(this.deserializedFields_={}),this.mergeFrom(e))},goog.proto2.Message.prototype.mergeFrom=function(e){goog.asserts.assert(this.constructor==e.constructor,"The source message must have the same type.");for(var t=this.getDescriptor().getFields(),r=0;r<t.length;r++){var n=t[r],o=n.getTag();if(e.has$Value(o)){this.deserializedFields_&&delete this.deserializedFields_[n.getTag()];var i=n.isCompositeType();if(n.isRepeated()){n=e.array$Values(o);for(var a=0;a<n.length;a++)this.add$Value(o,i?n[a].clone():n[a])}else n=e.getValueForTag_(o),i?(i=this.getValueForTag_(o))?i.mergeFrom(n):this.set$Value(o,n.clone()):this.set$Value(o,n)}}},goog.proto2.Message.prototype.clone=function(){var e=new this.constructor;return e.copyFrom(this),e},goog.proto2.Message.prototype.initDefaults=function(e){for(var t=this.getDescriptor().getFields(),r=0;r<t.length;r++){var n=t[r],o=n.getTag(),i=n.isCompositeType();if(this.has$Value(o)||n.isRepeated()||(i?this.values_[o]=new(n.getNativeType()):e&&(this.values_[o]=n.getDefaultValue())),i)if(n.isRepeated())for(n=this.array$Values(o),o=0;o<n.length;o++)n[o].initDefaults(e);else this.get$Value(o).initDefaults(e)}},goog.proto2.Message.prototype.has$Value=function(e){return null!=this.values_[e]},goog.proto2.Message.prototype.getValueForTag_=function(e){var t=this.values_[e];return null==t?null:this.lazyDeserializer_?e in this.deserializedFields_?this.deserializedFields_[e]:(t=this.lazyDeserializer_.deserializeField(this,this.fields_[e],t),this.deserializedFields_[e]=t):t},goog.proto2.Message.prototype.get$Value=function(e,t){var r=this.getValueForTag_(e);if(this.fields_[e].isRepeated()){var n=t||0;return goog.asserts.assert(0<=n&&n<r.length,"Given index %s is out of bounds. Repeated field length: %s",n,r.length),r[n]}return r},goog.proto2.Message.prototype.get$ValueOrDefault=function(e,t){return this.has$Value(e)?this.get$Value(e,t):this.fields_[e].getDefaultValue()},goog.proto2.Message.prototype.array$Values=function(e){return this.getValueForTag_(e)||[]},goog.proto2.Message.prototype.count$Values=function(e){return this.fields_[e].isRepeated()?this.has$Value(e)?this.values_[e].length:0:this.has$Value(e)?1:0},goog.proto2.Message.prototype.set$Value=function(e,t){goog.asserts.ENABLE_ASSERTS&&this.checkFieldType_(this.fields_[e],t),this.values_[e]=t,this.deserializedFields_&&(this.deserializedFields_[e]=t)},goog.proto2.Message.prototype.add$Value=function(e,t){goog.asserts.ENABLE_ASSERTS&&this.checkFieldType_(this.fields_[e],t),this.values_[e]||(this.values_[e]=[]),this.values_[e].push(t),this.deserializedFields_&&delete this.deserializedFields_[e]},goog.proto2.Message.prototype.checkFieldType_=function(e,t){e.getFieldType()==goog.proto2.FieldDescriptor.FieldType.ENUM?goog.asserts.assertNumber(t):goog.asserts.assert(Object(t).constructor==e.getNativeType())},goog.proto2.Message.prototype.clear$Field=function(e){delete this.values_[e],this.deserializedFields_&&delete this.deserializedFields_[e]},goog.proto2.Message.createDescriptor=function(e,t){var r,n=[],o=t[0];for(r in t)0!=r&&n.push(new goog.proto2.FieldDescriptor(e,r,t[r]));return new goog.proto2.Descriptor(e,o,n)},goog.proto2.Serializer=function(){},goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS=!1,goog.proto2.Serializer.prototype.serialize=goog.abstractMethod,goog.proto2.Serializer.prototype.getSerializedValue=function(e,t){return e.isCompositeType()?this.serialize(t):"number"!=typeof t||isFinite(t)?t:t.toString()},goog.proto2.Serializer.prototype.deserialize=function(e,t){var r=e.createMessageInstance();return this.deserializeTo(r,t),goog.asserts.assert(r instanceof goog.proto2.Message),r},goog.proto2.Serializer.prototype.deserializeTo=goog.abstractMethod,goog.proto2.Serializer.prototype.getDeserializedValue=function(e,t){if(e.isCompositeType())return t instanceof goog.proto2.Message?t:this.deserialize(e.getFieldMessageType(),t);if(e.getFieldType()==goog.proto2.FieldDescriptor.FieldType.ENUM){if(goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS&&"string"==typeof t){var r=e.getNativeType();if(r.hasOwnProperty(t))return r[t]}return"string"==typeof t&&goog.proto2.Serializer.INTEGER_REGEX.test(t)&&0<(r=Number(t))?r:t}if(!e.deserializationConversionPermitted())return t;if((r=e.getNativeType())===String){if("number"==typeof t)return String(t)}else if(r===Number&&"string"==typeof t&&("Infinity"===t||"-Infinity"===t||"NaN"===t||goog.proto2.Serializer.INTEGER_REGEX.test(t)))return Number(t);return t},goog.proto2.Serializer.INTEGER_REGEX=/^-?[0-9]+$/,goog.proto2.LazyDeserializer=function(){},goog.inherits(goog.proto2.LazyDeserializer,goog.proto2.Serializer),goog.proto2.LazyDeserializer.prototype.deserialize=function(e,t){var r=e.createMessageInstance();return r.initializeForLazyDeserializer(this,t),goog.asserts.assert(r instanceof goog.proto2.Message),r},goog.proto2.LazyDeserializer.prototype.deserializeTo=function(e,t){throw Error("Unimplemented")},goog.proto2.LazyDeserializer.prototype.deserializeField=goog.abstractMethod,goog.proto2.PbLiteSerializer=function(){},goog.inherits(goog.proto2.PbLiteSerializer,goog.proto2.LazyDeserializer),goog.proto2.PbLiteSerializer.prototype.zeroIndexing_=!1,goog.proto2.PbLiteSerializer.prototype.setZeroIndexed=function(e){this.zeroIndexing_=e},goog.proto2.PbLiteSerializer.prototype.serialize=function(e){for(var t=e.getDescriptor().getFields(),r=[],n=this.zeroIndexing_,o=0;o<t.length;o++){var i=t[o];if(e.has(i)){var a=i.getTag();if(a=n?a-1:a,i.isRepeated()){r[a]=[];for(var s=0;s<e.countOf(i);s++)r[a][s]=this.getSerializedValue(i,e.get(i,s))}else r[a]=this.getSerializedValue(i,e.get(i))}}return e.forEachUnknown((function(e,t){r[n?e-1:e]=t})),r},goog.proto2.PbLiteSerializer.prototype.deserializeField=function(e,t,r){if(null==r)return r;if(t.isRepeated()){e=[],goog.asserts.assert(goog.isArray(r),"Value must be array: %s",r);for(var n=0;n<r.length;n++)e[n]=this.getDeserializedValue(t,r[n]);return e}return this.getDeserializedValue(t,r)},goog.proto2.PbLiteSerializer.prototype.getSerializedValue=function(e,t){return e.getFieldType()==goog.proto2.FieldDescriptor.FieldType.BOOL?t?1:0:goog.proto2.Serializer.prototype.getSerializedValue.apply(this,arguments)},goog.proto2.PbLiteSerializer.prototype.getDeserializedValue=function(e,t){return e.getFieldType()==goog.proto2.FieldDescriptor.FieldType.BOOL?(goog.asserts.assert("number"==typeof t||"boolean"==typeof t,"Value is expected to be a number or boolean"),!!t):goog.proto2.Serializer.prototype.getDeserializedValue.apply(this,arguments)},goog.proto2.PbLiteSerializer.prototype.deserialize=function(e,t){var r=t;if(this.zeroIndexing_)for(var n in r=[],t)r[parseInt(n,10)+1]=t[n];return goog.proto2.PbLiteSerializer.superClass_.deserialize.call(this,e,r)};var i18n={phonenumbers:{}};i18n.phonenumbers.NumberFormat=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.NumberFormat,goog.proto2.Message),i18n.phonenumbers.NumberFormat.descriptor_=null,i18n.phonenumbers.NumberFormat.prototype.getPattern=function(){return this.get$Value(1)},i18n.phonenumbers.NumberFormat.prototype.getPatternOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.NumberFormat.prototype.setPattern=function(e){this.set$Value(1,e)},i18n.phonenumbers.NumberFormat.prototype.hasPattern=function(){return this.has$Value(1)},i18n.phonenumbers.NumberFormat.prototype.patternCount=function(){return this.count$Values(1)},i18n.phonenumbers.NumberFormat.prototype.clearPattern=function(){this.clear$Field(1)},i18n.phonenumbers.NumberFormat.prototype.getFormat=function(){return this.get$Value(2)},i18n.phonenumbers.NumberFormat.prototype.getFormatOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.NumberFormat.prototype.setFormat=function(e){this.set$Value(2,e)},i18n.phonenumbers.NumberFormat.prototype.hasFormat=function(){return this.has$Value(2)},i18n.phonenumbers.NumberFormat.prototype.formatCount=function(){return this.count$Values(2)},i18n.phonenumbers.NumberFormat.prototype.clearFormat=function(){this.clear$Field(2)},i18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPattern=function(e){return this.get$Value(3,e)},i18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPatternOrDefault=function(e){return this.get$ValueOrDefault(3,e)},i18n.phonenumbers.NumberFormat.prototype.addLeadingDigitsPattern=function(e){this.add$Value(3,e)},i18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternArray=function(){return this.array$Values(3)},i18n.phonenumbers.NumberFormat.prototype.hasLeadingDigitsPattern=function(){return this.has$Value(3)},i18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternCount=function(){return this.count$Values(3)},i18n.phonenumbers.NumberFormat.prototype.clearLeadingDigitsPattern=function(){this.clear$Field(3)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRule=function(){return this.get$Value(4)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRuleOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.NumberFormat.prototype.setNationalPrefixFormattingRule=function(e){this.set$Value(4,e)},i18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixFormattingRule=function(){return this.has$Value(4)},i18n.phonenumbers.NumberFormat.prototype.nationalPrefixFormattingRuleCount=function(){return this.count$Values(4)},i18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixFormattingRule=function(){this.clear$Field(4)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormatting=function(){return this.get$Value(6)},i18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormattingOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.NumberFormat.prototype.setNationalPrefixOptionalWhenFormatting=function(e){this.set$Value(6,e)},i18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixOptionalWhenFormatting=function(){return this.has$Value(6)},i18n.phonenumbers.NumberFormat.prototype.nationalPrefixOptionalWhenFormattingCount=function(){return this.count$Values(6)},i18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixOptionalWhenFormatting=function(){this.clear$Field(6)},i18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRule=function(){return this.get$Value(5)},i18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRuleOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.NumberFormat.prototype.setDomesticCarrierCodeFormattingRule=function(e){this.set$Value(5,e)},i18n.phonenumbers.NumberFormat.prototype.hasDomesticCarrierCodeFormattingRule=function(){return this.has$Value(5)},i18n.phonenumbers.NumberFormat.prototype.domesticCarrierCodeFormattingRuleCount=function(){return this.count$Values(5)},i18n.phonenumbers.NumberFormat.prototype.clearDomesticCarrierCodeFormattingRule=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneNumberDesc=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneNumberDesc,goog.proto2.Message),i18n.phonenumbers.PhoneNumberDesc.descriptor_=null,i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPattern=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPatternOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.setNationalNumberPattern=function(e){this.set$Value(2,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasNationalNumberPattern=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.nationalNumberPatternCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearNationalNumberPattern=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLength=function(e){return this.get$Value(9,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthOrDefault=function(e){return this.get$ValueOrDefault(9,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLength=function(e){this.add$Value(9,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthArray=function(){return this.array$Values(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLength=function(){return this.has$Value(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthCount=function(){return this.count$Values(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLength=function(){this.clear$Field(9)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnly=function(e){return this.get$Value(10,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnlyOrDefault=function(e){return this.get$ValueOrDefault(10,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLengthLocalOnly=function(e){this.add$Value(10,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyArray=function(){return this.array$Values(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLengthLocalOnly=function(){return this.has$Value(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyCount=function(){return this.count$Values(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLengthLocalOnly=function(){this.clear$Field(10)},i18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumber=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumberOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.setExampleNumber=function(e){this.set$Value(6,e)},i18n.phonenumbers.PhoneNumberDesc.prototype.hasExampleNumber=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.exampleNumberCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneNumberDesc.prototype.clearExampleNumber=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneMetadata=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneMetadata,goog.proto2.Message),i18n.phonenumbers.PhoneMetadata.descriptor_=null,i18n.phonenumbers.PhoneMetadata.prototype.getGeneralDesc=function(){return this.get$Value(1)},i18n.phonenumbers.PhoneMetadata.prototype.getGeneralDescOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.PhoneMetadata.prototype.setGeneralDesc=function(e){this.set$Value(1,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasGeneralDesc=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneMetadata.prototype.generalDescCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneMetadata.prototype.clearGeneralDesc=function(){this.clear$Field(1)},i18n.phonenumbers.PhoneMetadata.prototype.getFixedLine=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneMetadata.prototype.getFixedLineOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneMetadata.prototype.setFixedLine=function(e){this.set$Value(2,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasFixedLine=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneMetadata.prototype.fixedLineCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneMetadata.prototype.clearFixedLine=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneMetadata.prototype.getMobile=function(){return this.get$Value(3)},i18n.phonenumbers.PhoneMetadata.prototype.getMobileOrDefault=function(){return this.get$ValueOrDefault(3)},i18n.phonenumbers.PhoneMetadata.prototype.setMobile=function(e){this.set$Value(3,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasMobile=function(){return this.has$Value(3)},i18n.phonenumbers.PhoneMetadata.prototype.mobileCount=function(){return this.count$Values(3)},i18n.phonenumbers.PhoneMetadata.prototype.clearMobile=function(){this.clear$Field(3)},i18n.phonenumbers.PhoneMetadata.prototype.getTollFree=function(){return this.get$Value(4)},i18n.phonenumbers.PhoneMetadata.prototype.getTollFreeOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.PhoneMetadata.prototype.setTollFree=function(e){this.set$Value(4,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasTollFree=function(){return this.has$Value(4)},i18n.phonenumbers.PhoneMetadata.prototype.tollFreeCount=function(){return this.count$Values(4)},i18n.phonenumbers.PhoneMetadata.prototype.clearTollFree=function(){this.clear$Field(4)},i18n.phonenumbers.PhoneMetadata.prototype.getPremiumRate=function(){return this.get$Value(5)},i18n.phonenumbers.PhoneMetadata.prototype.getPremiumRateOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.PhoneMetadata.prototype.setPremiumRate=function(e){this.set$Value(5,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasPremiumRate=function(){return this.has$Value(5)},i18n.phonenumbers.PhoneMetadata.prototype.premiumRateCount=function(){return this.count$Values(5)},i18n.phonenumbers.PhoneMetadata.prototype.clearPremiumRate=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneMetadata.prototype.getSharedCost=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneMetadata.prototype.getSharedCostOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneMetadata.prototype.setSharedCost=function(e){this.set$Value(6,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasSharedCost=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneMetadata.prototype.sharedCostCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneMetadata.prototype.clearSharedCost=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumber=function(){return this.get$Value(7)},i18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumberOrDefault=function(){return this.get$ValueOrDefault(7)},i18n.phonenumbers.PhoneMetadata.prototype.setPersonalNumber=function(e){this.set$Value(7,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasPersonalNumber=function(){return this.has$Value(7)},i18n.phonenumbers.PhoneMetadata.prototype.personalNumberCount=function(){return this.count$Values(7)},i18n.phonenumbers.PhoneMetadata.prototype.clearPersonalNumber=function(){this.clear$Field(7)},i18n.phonenumbers.PhoneMetadata.prototype.getVoip=function(){return this.get$Value(8)},i18n.phonenumbers.PhoneMetadata.prototype.getVoipOrDefault=function(){return this.get$ValueOrDefault(8)},i18n.phonenumbers.PhoneMetadata.prototype.setVoip=function(e){this.set$Value(8,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasVoip=function(){return this.has$Value(8)},i18n.phonenumbers.PhoneMetadata.prototype.voipCount=function(){return this.count$Values(8)},i18n.phonenumbers.PhoneMetadata.prototype.clearVoip=function(){this.clear$Field(8)},i18n.phonenumbers.PhoneMetadata.prototype.getPager=function(){return this.get$Value(21)},i18n.phonenumbers.PhoneMetadata.prototype.getPagerOrDefault=function(){return this.get$ValueOrDefault(21)},i18n.phonenumbers.PhoneMetadata.prototype.setPager=function(e){this.set$Value(21,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasPager=function(){return this.has$Value(21)},i18n.phonenumbers.PhoneMetadata.prototype.pagerCount=function(){return this.count$Values(21)},i18n.phonenumbers.PhoneMetadata.prototype.clearPager=function(){this.clear$Field(21)},i18n.phonenumbers.PhoneMetadata.prototype.getUan=function(){return this.get$Value(25)},i18n.phonenumbers.PhoneMetadata.prototype.getUanOrDefault=function(){return this.get$ValueOrDefault(25)},i18n.phonenumbers.PhoneMetadata.prototype.setUan=function(e){this.set$Value(25,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasUan=function(){return this.has$Value(25)},i18n.phonenumbers.PhoneMetadata.prototype.uanCount=function(){return this.count$Values(25)},i18n.phonenumbers.PhoneMetadata.prototype.clearUan=function(){this.clear$Field(25)},i18n.phonenumbers.PhoneMetadata.prototype.getEmergency=function(){return this.get$Value(27)},i18n.phonenumbers.PhoneMetadata.prototype.getEmergencyOrDefault=function(){return this.get$ValueOrDefault(27)},i18n.phonenumbers.PhoneMetadata.prototype.setEmergency=function(e){this.set$Value(27,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasEmergency=function(){return this.has$Value(27)},i18n.phonenumbers.PhoneMetadata.prototype.emergencyCount=function(){return this.count$Values(27)},i18n.phonenumbers.PhoneMetadata.prototype.clearEmergency=function(){this.clear$Field(27)},i18n.phonenumbers.PhoneMetadata.prototype.getVoicemail=function(){return this.get$Value(28)},i18n.phonenumbers.PhoneMetadata.prototype.getVoicemailOrDefault=function(){return this.get$ValueOrDefault(28)},i18n.phonenumbers.PhoneMetadata.prototype.setVoicemail=function(e){this.set$Value(28,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasVoicemail=function(){return this.has$Value(28)},i18n.phonenumbers.PhoneMetadata.prototype.voicemailCount=function(){return this.count$Values(28)},i18n.phonenumbers.PhoneMetadata.prototype.clearVoicemail=function(){this.clear$Field(28)},i18n.phonenumbers.PhoneMetadata.prototype.getShortCode=function(){return this.get$Value(29)},i18n.phonenumbers.PhoneMetadata.prototype.getShortCodeOrDefault=function(){return this.get$ValueOrDefault(29)},i18n.phonenumbers.PhoneMetadata.prototype.setShortCode=function(e){this.set$Value(29,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasShortCode=function(){return this.has$Value(29)},i18n.phonenumbers.PhoneMetadata.prototype.shortCodeCount=function(){return this.count$Values(29)},i18n.phonenumbers.PhoneMetadata.prototype.clearShortCode=function(){this.clear$Field(29)},i18n.phonenumbers.PhoneMetadata.prototype.getStandardRate=function(){return this.get$Value(30)},i18n.phonenumbers.PhoneMetadata.prototype.getStandardRateOrDefault=function(){return this.get$ValueOrDefault(30)},i18n.phonenumbers.PhoneMetadata.prototype.setStandardRate=function(e){this.set$Value(30,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasStandardRate=function(){return this.has$Value(30)},i18n.phonenumbers.PhoneMetadata.prototype.standardRateCount=function(){return this.count$Values(30)},i18n.phonenumbers.PhoneMetadata.prototype.clearStandardRate=function(){this.clear$Field(30)},i18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecific=function(){return this.get$Value(31)},i18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecificOrDefault=function(){return this.get$ValueOrDefault(31)},i18n.phonenumbers.PhoneMetadata.prototype.setCarrierSpecific=function(e){this.set$Value(31,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasCarrierSpecific=function(){return this.has$Value(31)},i18n.phonenumbers.PhoneMetadata.prototype.carrierSpecificCount=function(){return this.count$Values(31)},i18n.phonenumbers.PhoneMetadata.prototype.clearCarrierSpecific=function(){this.clear$Field(31)},i18n.phonenumbers.PhoneMetadata.prototype.getSmsServices=function(){return this.get$Value(33)},i18n.phonenumbers.PhoneMetadata.prototype.getSmsServicesOrDefault=function(){return this.get$ValueOrDefault(33)},i18n.phonenumbers.PhoneMetadata.prototype.setSmsServices=function(e){this.set$Value(33,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasSmsServices=function(){return this.has$Value(33)},i18n.phonenumbers.PhoneMetadata.prototype.smsServicesCount=function(){return this.count$Values(33)},i18n.phonenumbers.PhoneMetadata.prototype.clearSmsServices=function(){this.clear$Field(33)},i18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDialling=function(){return this.get$Value(24)},i18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDiallingOrDefault=function(){return this.get$ValueOrDefault(24)},i18n.phonenumbers.PhoneMetadata.prototype.setNoInternationalDialling=function(e){this.set$Value(24,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasNoInternationalDialling=function(){return this.has$Value(24)},i18n.phonenumbers.PhoneMetadata.prototype.noInternationalDiallingCount=function(){return this.count$Values(24)},i18n.phonenumbers.PhoneMetadata.prototype.clearNoInternationalDialling=function(){this.clear$Field(24)},i18n.phonenumbers.PhoneMetadata.prototype.getId=function(){return this.get$Value(9)},i18n.phonenumbers.PhoneMetadata.prototype.getIdOrDefault=function(){return this.get$ValueOrDefault(9)},i18n.phonenumbers.PhoneMetadata.prototype.setId=function(e){this.set$Value(9,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasId=function(){return this.has$Value(9)},i18n.phonenumbers.PhoneMetadata.prototype.idCount=function(){return this.count$Values(9)},i18n.phonenumbers.PhoneMetadata.prototype.clearId=function(){this.clear$Field(9)},i18n.phonenumbers.PhoneMetadata.prototype.getCountryCode=function(){return this.get$Value(10)},i18n.phonenumbers.PhoneMetadata.prototype.getCountryCodeOrDefault=function(){return this.get$ValueOrDefault(10)},i18n.phonenumbers.PhoneMetadata.prototype.setCountryCode=function(e){this.set$Value(10,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasCountryCode=function(){return this.has$Value(10)},i18n.phonenumbers.PhoneMetadata.prototype.countryCodeCount=function(){return this.count$Values(10)},i18n.phonenumbers.PhoneMetadata.prototype.clearCountryCode=function(){this.clear$Field(10)},i18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefix=function(){return this.get$Value(11)},i18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefixOrDefault=function(){return this.get$ValueOrDefault(11)},i18n.phonenumbers.PhoneMetadata.prototype.setInternationalPrefix=function(e){this.set$Value(11,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasInternationalPrefix=function(){return this.has$Value(11)},i18n.phonenumbers.PhoneMetadata.prototype.internationalPrefixCount=function(){return this.count$Values(11)},i18n.phonenumbers.PhoneMetadata.prototype.clearInternationalPrefix=function(){this.clear$Field(11)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefix=function(){return this.get$Value(17)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefixOrDefault=function(){return this.get$ValueOrDefault(17)},i18n.phonenumbers.PhoneMetadata.prototype.setPreferredInternationalPrefix=function(e){this.set$Value(17,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasPreferredInternationalPrefix=function(){return this.has$Value(17)},i18n.phonenumbers.PhoneMetadata.prototype.preferredInternationalPrefixCount=function(){return this.count$Values(17)},i18n.phonenumbers.PhoneMetadata.prototype.clearPreferredInternationalPrefix=function(){this.clear$Field(17)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefix=function(){return this.get$Value(12)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixOrDefault=function(){return this.get$ValueOrDefault(12)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefix=function(e){this.set$Value(12,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefix=function(){return this.has$Value(12)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixCount=function(){return this.count$Values(12)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefix=function(){this.clear$Field(12)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefix=function(){return this.get$Value(13)},i18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefixOrDefault=function(){return this.get$ValueOrDefault(13)},i18n.phonenumbers.PhoneMetadata.prototype.setPreferredExtnPrefix=function(e){this.set$Value(13,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasPreferredExtnPrefix=function(){return this.has$Value(13)},i18n.phonenumbers.PhoneMetadata.prototype.preferredExtnPrefixCount=function(){return this.count$Values(13)},i18n.phonenumbers.PhoneMetadata.prototype.clearPreferredExtnPrefix=function(){this.clear$Field(13)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsing=function(){return this.get$Value(15)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsingOrDefault=function(){return this.get$ValueOrDefault(15)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixForParsing=function(e){this.set$Value(15,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixForParsing=function(){return this.has$Value(15)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixForParsingCount=function(){return this.count$Values(15)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixForParsing=function(){this.clear$Field(15)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRule=function(){return this.get$Value(16)},i18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRuleOrDefault=function(){return this.get$ValueOrDefault(16)},i18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixTransformRule=function(e){this.set$Value(16,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixTransformRule=function(){return this.has$Value(16)},i18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixTransformRuleCount=function(){return this.count$Values(16)},i18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixTransformRule=function(){this.clear$Field(16)},i18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePattern=function(){return this.get$Value(18)},i18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePatternOrDefault=function(){return this.get$ValueOrDefault(18)},i18n.phonenumbers.PhoneMetadata.prototype.setSameMobileAndFixedLinePattern=function(e){this.set$Value(18,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasSameMobileAndFixedLinePattern=function(){return this.has$Value(18)},i18n.phonenumbers.PhoneMetadata.prototype.sameMobileAndFixedLinePatternCount=function(){return this.count$Values(18)},i18n.phonenumbers.PhoneMetadata.prototype.clearSameMobileAndFixedLinePattern=function(){this.clear$Field(18)},i18n.phonenumbers.PhoneMetadata.prototype.getNumberFormat=function(e){return this.get$Value(19,e)},i18n.phonenumbers.PhoneMetadata.prototype.getNumberFormatOrDefault=function(e){return this.get$ValueOrDefault(19,e)},i18n.phonenumbers.PhoneMetadata.prototype.addNumberFormat=function(e){this.add$Value(19,e)},i18n.phonenumbers.PhoneMetadata.prototype.numberFormatArray=function(){return this.array$Values(19)},i18n.phonenumbers.PhoneMetadata.prototype.hasNumberFormat=function(){return this.has$Value(19)},i18n.phonenumbers.PhoneMetadata.prototype.numberFormatCount=function(){return this.count$Values(19)},i18n.phonenumbers.PhoneMetadata.prototype.clearNumberFormat=function(){this.clear$Field(19)},i18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormat=function(e){return this.get$Value(20,e)},i18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormatOrDefault=function(e){return this.get$ValueOrDefault(20,e)},i18n.phonenumbers.PhoneMetadata.prototype.addIntlNumberFormat=function(e){this.add$Value(20,e)},i18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatArray=function(){return this.array$Values(20)},i18n.phonenumbers.PhoneMetadata.prototype.hasIntlNumberFormat=function(){return this.has$Value(20)},i18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatCount=function(){return this.count$Values(20)},i18n.phonenumbers.PhoneMetadata.prototype.clearIntlNumberFormat=function(){this.clear$Field(20)},i18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCode=function(){return this.get$Value(22)},i18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCodeOrDefault=function(){return this.get$ValueOrDefault(22)},i18n.phonenumbers.PhoneMetadata.prototype.setMainCountryForCode=function(e){this.set$Value(22,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasMainCountryForCode=function(){return this.has$Value(22)},i18n.phonenumbers.PhoneMetadata.prototype.mainCountryForCodeCount=function(){return this.count$Values(22)},i18n.phonenumbers.PhoneMetadata.prototype.clearMainCountryForCode=function(){this.clear$Field(22)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigits=function(){return this.get$Value(23)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigitsOrDefault=function(){return this.get$ValueOrDefault(23)},i18n.phonenumbers.PhoneMetadata.prototype.setLeadingDigits=function(e){this.set$Value(23,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasLeadingDigits=function(){return this.has$Value(23)},i18n.phonenumbers.PhoneMetadata.prototype.leadingDigitsCount=function(){return this.count$Values(23)},i18n.phonenumbers.PhoneMetadata.prototype.clearLeadingDigits=function(){this.clear$Field(23)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingZeroPossible=function(){return this.get$Value(26)},i18n.phonenumbers.PhoneMetadata.prototype.getLeadingZeroPossibleOrDefault=function(){return this.get$ValueOrDefault(26)},i18n.phonenumbers.PhoneMetadata.prototype.setLeadingZeroPossible=function(e){this.set$Value(26,e)},i18n.phonenumbers.PhoneMetadata.prototype.hasLeadingZeroPossible=function(){return this.has$Value(26)},i18n.phonenumbers.PhoneMetadata.prototype.leadingZeroPossibleCount=function(){return this.count$Values(26)},i18n.phonenumbers.PhoneMetadata.prototype.clearLeadingZeroPossible=function(){this.clear$Field(26)},i18n.phonenumbers.PhoneMetadataCollection=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneMetadataCollection,goog.proto2.Message),i18n.phonenumbers.PhoneMetadataCollection.descriptor_=null,i18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadata=function(e){return this.get$Value(1,e)},i18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadataOrDefault=function(e){return this.get$ValueOrDefault(1,e)},i18n.phonenumbers.PhoneMetadataCollection.prototype.addMetadata=function(e){this.add$Value(1,e)},i18n.phonenumbers.PhoneMetadataCollection.prototype.metadataArray=function(){return this.array$Values(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.hasMetadata=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.metadataCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneMetadataCollection.prototype.clearMetadata=function(){this.clear$Field(1)},i18n.phonenumbers.NumberFormat.prototype.getDescriptor=function(){var e=i18n.phonenumbers.NumberFormat.descriptor_;return e||(i18n.phonenumbers.NumberFormat.descriptor_=e=goog.proto2.Message.createDescriptor(i18n.phonenumbers.NumberFormat,{0:{name:"NumberFormat",fullName:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},2:{name:"format",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},3:{name:"leading_digits_pattern",repeated:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},4:{name:"national_prefix_formatting_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String},6:{name:"national_prefix_optional_when_formatting",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),e},i18n.phonenumbers.NumberFormat.getDescriptor=i18n.phonenumbers.NumberFormat.prototype.getDescriptor,i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor=function(){var e=i18n.phonenumbers.PhoneNumberDesc.descriptor_;return e||(i18n.phonenumbers.PhoneNumberDesc.descriptor_=e=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumberDesc,{0:{name:"PhoneNumberDesc",fullName:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",fieldType:goog.proto2.Message.FieldType.STRING,type:String},9:{name:"possible_length",repeated:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},10:{name:"possible_length_local_only",repeated:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},6:{name:"example_number",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),e},i18n.phonenumbers.PhoneNumberDesc.getDescriptor=i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor,i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor=function(){var e=i18n.phonenumbers.PhoneMetadata.descriptor_;return e||(i18n.phonenumbers.PhoneMetadata.descriptor_=e=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadata,{0:{name:"PhoneMetadata",fullName:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},2:{name:"fixed_line",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},3:{name:"mobile",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},4:{name:"toll_free",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},5:{name:"premium_rate",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},6:{name:"shared_cost",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},7:{name:"personal_number",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},8:{name:"voip",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},21:{name:"pager",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},25:{name:"uan",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},27:{name:"emergency",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},28:{name:"voicemail",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},29:{name:"short_code",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},30:{name:"standard_rate",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},31:{name:"carrier_specific",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},33:{name:"sms_services",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},24:{name:"no_international_dialling",fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneNumberDesc},9:{name:"id",required:!0,fieldType:goog.proto2.Message.FieldType.STRING,type:String},10:{name:"country_code",fieldType:goog.proto2.Message.FieldType.INT32,type:Number},11:{name:"international_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},17:{name:"preferred_international_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},12:{name:"national_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},13:{name:"preferred_extn_prefix",fieldType:goog.proto2.Message.FieldType.STRING,type:String},15:{name:"national_prefix_for_parsing",fieldType:goog.proto2.Message.FieldType.STRING,type:String},16:{name:"national_prefix_transform_rule",fieldType:goog.proto2.Message.FieldType.STRING,type:String},18:{name:"same_mobile_and_fixed_line_pattern",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},19:{name:"number_format",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.NumberFormat},20:{name:"intl_number_format",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.NumberFormat},22:{name:"main_country_for_code",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean},23:{name:"leading_digits",fieldType:goog.proto2.Message.FieldType.STRING,type:String},26:{name:"leading_zero_possible",fieldType:goog.proto2.Message.FieldType.BOOL,defaultValue:!1,type:Boolean}})),e},i18n.phonenumbers.PhoneMetadata.getDescriptor=i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor,i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor=function(){var e=i18n.phonenumbers.PhoneMetadataCollection.descriptor_;return e||(i18n.phonenumbers.PhoneMetadataCollection.descriptor_=e=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadataCollection,{0:{name:"PhoneMetadataCollection",fullName:"i18n.phonenumbers.PhoneMetadataCollection"},1:{name:"metadata",repeated:!0,fieldType:goog.proto2.Message.FieldType.MESSAGE,type:i18n.phonenumbers.PhoneMetadata}})),e},i18n.phonenumbers.PhoneMetadataCollection.getDescriptor=i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor,i18n.phonenumbers.PhoneNumber=function(){goog.proto2.Message.call(this)},goog.inherits(i18n.phonenumbers.PhoneNumber,goog.proto2.Message),i18n.phonenumbers.PhoneNumber.descriptor_=null,i18n.phonenumbers.PhoneNumber.prototype.getCountryCode=function(){return this.get$Value(1)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeOrDefault=function(){return this.get$ValueOrDefault(1)},i18n.phonenumbers.PhoneNumber.prototype.setCountryCode=function(e){this.set$Value(1,e)},i18n.phonenumbers.PhoneNumber.prototype.hasCountryCode=function(){return this.has$Value(1)},i18n.phonenumbers.PhoneNumber.prototype.countryCodeCount=function(){return this.count$Values(1)},i18n.phonenumbers.PhoneNumber.prototype.clearCountryCode=function(){this.clear$Field(1)},i18n.phonenumbers.PhoneNumber.prototype.getNationalNumber=function(){return this.get$Value(2)},i18n.phonenumbers.PhoneNumber.prototype.getNationalNumberOrDefault=function(){return this.get$ValueOrDefault(2)},i18n.phonenumbers.PhoneNumber.prototype.setNationalNumber=function(e){this.set$Value(2,e)},i18n.phonenumbers.PhoneNumber.prototype.hasNationalNumber=function(){return this.has$Value(2)},i18n.phonenumbers.PhoneNumber.prototype.nationalNumberCount=function(){return this.count$Values(2)},i18n.phonenumbers.PhoneNumber.prototype.clearNationalNumber=function(){this.clear$Field(2)},i18n.phonenumbers.PhoneNumber.prototype.getExtension=function(){return this.get$Value(3)},i18n.phonenumbers.PhoneNumber.prototype.getExtensionOrDefault=function(){return this.get$ValueOrDefault(3)},i18n.phonenumbers.PhoneNumber.prototype.setExtension=function(e){this.set$Value(3,e)},i18n.phonenumbers.PhoneNumber.prototype.hasExtension=function(){return this.has$Value(3)},i18n.phonenumbers.PhoneNumber.prototype.extensionCount=function(){return this.count$Values(3)},i18n.phonenumbers.PhoneNumber.prototype.clearExtension=function(){this.clear$Field(3)},i18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZero=function(){return this.get$Value(4)},i18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZeroOrDefault=function(){return this.get$ValueOrDefault(4)},i18n.phonenumbers.PhoneNumber.prototype.setItalianLeadingZero=function(e){this.set$Value(4,e)},i18n.phonenumbers.PhoneNumber.prototype.hasItalianLeadingZero=function(){return this.has$Value(4)},i18n.phonenumbers.PhoneNumber.prototype.italianLeadingZeroCount=function(){return this.count$Values(4)},i18n.phonenumbers.PhoneNumber.prototype.clearItalianLeadingZero=function(){this.clear$Field(4)},i18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZeros=function(){return this.get$Value(8)},i18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZerosOrDefault=function(){return this.get$ValueOrDefault(8)},i18n.phonenumbers.PhoneNumber.prototype.setNumberOfLeadingZeros=function(e){this.set$Value(8,e)},i18n.phonenumbers.PhoneNumber.prototype.hasNumberOfLeadingZeros=function(){return this.has$Value(8)},i18n.phonenumbers.PhoneNumber.prototype.numberOfLeadingZerosCount=function(){return this.count$Values(8)},i18n.phonenumbers.PhoneNumber.prototype.clearNumberOfLeadingZeros=function(){this.clear$Field(8)},i18n.phonenumbers.PhoneNumber.prototype.getRawInput=function(){return this.get$Value(5)},i18n.phonenumbers.PhoneNumber.prototype.getRawInputOrDefault=function(){return this.get$ValueOrDefault(5)},i18n.phonenumbers.PhoneNumber.prototype.setRawInput=function(e){this.set$Value(5,e)},i18n.phonenumbers.PhoneNumber.prototype.hasRawInput=function(){return this.has$Value(5)},i18n.phonenumbers.PhoneNumber.prototype.rawInputCount=function(){return this.count$Values(5)},i18n.phonenumbers.PhoneNumber.prototype.clearRawInput=function(){this.clear$Field(5)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSource=function(){return this.get$Value(6)},i18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSourceOrDefault=function(){return this.get$ValueOrDefault(6)},i18n.phonenumbers.PhoneNumber.prototype.setCountryCodeSource=function(e){this.set$Value(6,e)},i18n.phonenumbers.PhoneNumber.prototype.hasCountryCodeSource=function(){return this.has$Value(6)},i18n.phonenumbers.PhoneNumber.prototype.countryCodeSourceCount=function(){return this.count$Values(6)},i18n.phonenumbers.PhoneNumber.prototype.clearCountryCodeSource=function(){this.clear$Field(6)},i18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCode=function(){return this.get$Value(7)},i18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCodeOrDefault=function(){return this.get$ValueOrDefault(7)},i18n.phonenumbers.PhoneNumber.prototype.setPreferredDomesticCarrierCode=function(e){this.set$Value(7,e)},i18n.phonenumbers.PhoneNumber.prototype.hasPreferredDomesticCarrierCode=function(){return this.has$Value(7)},i18n.phonenumbers.PhoneNumber.prototype.preferredDomesticCarrierCodeCount=function(){return this.count$Values(7)},i18n.phonenumbers.PhoneNumber.prototype.clearPreferredDomesticCarrierCode=function(){this.clear$Field(7)},i18n.phonenumbers.PhoneNumber.CountryCodeSource={UNSPECIFIED:0,FROM_NUMBER_WITH_PLUS_SIGN:1,FROM_NUMBER_WITH_IDD:5,FROM_NUMBER_WITHOUT_PLUS_SIGN:10,FROM_DEFAULT_COUNTRY:20},i18n.phonenumbers.PhoneNumber.prototype.getDescriptor=function(){var e=i18n.phonenumbers.PhoneNumber.descriptor_;return e||(i18n.phonenumbers.PhoneNumber.descriptor_=e=goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumber,{0:{name:"PhoneNumber",fullName:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,fieldType:goog.proto2.Message.FieldType.INT32,type:Number},2:{name:"national_number",required:!0,fieldType:goog.proto2.Message.FieldType.UINT64,type:Number},3:{name:"extension",fieldType:goog.proto2.Message.FieldType.STRING,type:String},4:{name:"italian_leading_zero",fieldType:goog.proto2.Message.FieldType.BOOL,type:Boolean},8:{name:"number_of_leading_zeros",fieldType:goog.proto2.Message.FieldType.INT32,defaultValue:1,type:Number},5:{name:"raw_input",fieldType:goog.proto2.Message.FieldType.STRING,type:String},6:{name:"country_code_source",fieldType:goog.proto2.Message.FieldType.ENUM,defaultValue:i18n.phonenumbers.PhoneNumber.CountryCodeSource.UNSPECIFIED,type:i18n.phonenumbers.PhoneNumber.CountryCodeSource},7:{name:"preferred_domestic_carrier_code",fieldType:goog.proto2.Message.FieldType.STRING,type:String}})),e},i18n.phonenumbers.PhoneNumber.ctor=i18n.phonenumbers.PhoneNumber,i18n.phonenumbers.PhoneNumber.ctor.getDescriptor=i18n.phonenumbers.PhoneNumber.prototype.getDescriptor,i18n.phonenumbers.metadata={},i18n.phonenumbers.metadata.countryCodeToRegionCodeMap={1:"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI".split(" "),7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],800:["001"],808:["001"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],870:["001"],878:["001"],880:["BD"],881:["001"],882:["001"],883:["001"],886:["TW"],888:["001"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],979:["001"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},i18n.phonenumbers.metadata.countryToMetadata={AC:[,[,,"(?:[01589]\\d|[46])\\d{4}",,,,,,,[5,6]],[,,"6[2-467]\\d{3}",,,,"62889",,,[5]],[,,"4\\d{4}",,,,"40123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AC",247,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:0[1-9]|[1589]\\d)\\d{4}",,,,"542011",,,[6]],,,[,,,,,,,,,[-1]]],AD:[,[,,"(?:1|6\\d)\\d{7}|[135-9]\\d{5}",,,,,,,[6,8,9]],[,,"[78]\\d{5}",,,,"712345",,,[6]],[,,"690\\d{6}|[356]\\d{5}",,,,"312345",,,[6,9]],[,,"180[02]\\d{4}",,,,"18001234",,,[8]],[,,"[19]\\d{5}",,,,"912345",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AD",376,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],[,"(\\d{4})(\\d{4})","$1 $2",["1"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],,[,,,,,,,,,[-1]],,,[,,"1800\\d{4}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AE:[,[,,"(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"[2-4679][2-8]\\d{6}",,,,"22345678",,,[8],[7]],[,,"5[024-68]\\d{7}",,,,"501234567",,,[9]],[,,"400\\d{6}|800\\d{2,9}",,,,"800123456"],[,,"900[02]\\d{5}",,,,"900234567",,,[9]],[,,"700[05]\\d{5}",,,,"700012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AE",971,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],[,"(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"600[25]\\d{5}",,,,"600212345",,,[9]],,,[,,,,,,,,,[-1]]],AF:[,[,,"[2-7]\\d{8}",,,,,,,[9],[7]],[,,"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}",,,,"234567890",,,,[7]],[,,"7\\d{8}",,,,"701234567",,,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AF",93,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[1-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AG:[,[,,"(?:268|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}",,,,"2684601234",,,,[7]],[,,"268(?:464|7(?:1[3-9]|2\\d|3[246]|64|[78][0-689]))\\d{4}",,,,"2684641234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"26848[01]\\d{4}",,,,"2684801234",,,,[7]],"AG",1,"011","1",,,"1|([457]\\d{6})$","268$1",,,,,[,,"26840[69]\\d{4}",,,,"2684061234",,,,[7]],,"268",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AI:[,[,,"(?:264|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"2644(?:6[12]|9[78])\\d{4}",,,,"2644612345",,,,[7]],[,,"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}",,,,"2642351234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"AI",1,"011","1",,,"1|([2457]\\d{6})$","264$1",,,,,[,,,,,,,,,[-1]],,"264",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AL:[,[,,"(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",,,,,,,[6,7,8,9],[5]],[,,"(?:[2358](?:[16-9]\\d[2-9]|[2-5][2-9]\\d)|4(?:[2-57-9][2-9]|6\\d)\\d)\\d{4}",,,,"22345678",,,[8],[5,6,7]],[,,"6(?:[78][2-9]|9\\d)\\d{6}",,,,"672123456",,,[9]],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,"900[1-9]\\d\\d",,,,"900123",,,[6]],[,,"808[1-9]\\d\\d",,,,"808123",,,[6]],[,,"700[2-9]\\d{4}",,,,"70021234",,,[8]],[,,,,,,,,,[-1]],"AL",355,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AM:[,[,,"(?:[1-489]\\d|55|60|77)\\d{6}",,,,,,,[8],[5,6]],[,,"(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}",,,,"10123456",,,,[5,6]],[,,"(?:33|4[1349]|55|77|88|9[13-9])\\d{6}",,,,"77123456"],[,,"800\\d{5}",,,,"80012345"],[,,"90[016]\\d{5}",,,,"90012345"],[,,"80[1-4]\\d{5}",,,,"80112345"],[,,,,,,,,,[-1]],[,,"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|90)\\d{4}",,,,"60271234"],"AM",374,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],[,"(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AO:[,[,,"[29]\\d{8}",,,,,,,[9]],[,,"2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}",,,,"222123456"],[,,"9[1-49]\\d{7}",,,,"923123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AO",244,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AR:[,[,,"11\\d{8}|(?:[2368]|9\\d)\\d{9}",,,,,,,[10,11],[6,7,8]],[,,"(?:2954|3(?:777|865))[2-8]\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6])))\\d{6}|(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\d{5}|(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\d{6}|(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}",,,,"1123456789",,,[10],[6,7,8]],[,,"9(?:2954|3(?:777|865))[2-8]\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6]))))\\d{6}|9(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\d{5}|9(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\d{6}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}",,,,"91123456789",,,,[6,7,8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"60[04579]\\d{7}",,,,"6001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AR",54,"00","0",,,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",,,[[,"(\\d{3})","$1",["[09]|1(?:[02]|1[02-5])"]],[,"(\\d{2})(\\d{4})","$1-$2",["[2-8]"]],[,"(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],[,"(\\d{4})(\\d{4})","$1-$2",["2[0-8]|[3-8]"]],[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1],[,"(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1"],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1"]],[[,"(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",,1],[,"(\\d)(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"]],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3-$4",["91"]],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3-$4",["9"]]],[,,,,,,,,,[-1]],,,[,,"810\\d{7}",,,,,,,[10]],[,,"810\\d{7}",,,,"8101234567",,,[10]],,,[,,,,,,,,,[-1]]],AS:[,[,,"(?:[58]\\d\\d|684|900)\\d{7}",,,,,,,[10],[7]],[,,"6846(?:22|33|44|55|77|88|9[19])\\d{4}",,,,"6846221234",,,,[7]],[,,"684(?:2(?:5[2468]|72)|7(?:3[13]|70))\\d{4}",,,,"6847331234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"AS",1,"011","1",,,"1|([267]\\d{6})$","684$1",,,,,[,,,,,,,,,[-1]],,"684",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AT:[,[,,"1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",,,,,,,[4,5,6,7,8,9,10,11,12,13],[3]],[,,"1(?:11\\d|[2-9]\\d{3,11})|(?:316|463|(?:51|66|73)2)\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}",,,,"1234567890",,,,[3]],[,,"6(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d{4,10}",,,,"664123456",,,[7,8,9,10,11,12,13]],[,,"800\\d{6,10}",,,,"800123456",,,[9,10,11,12,13]],[,,"9(?:0[01]|3[019])\\d{6,10}",,,,"900123456",,,[9,10,11,12,13]],[,,"8(?:10|2[018])\\d{6,10}|828\\d{5}",,,,"810123456",,,[8,9,10,11,12,13]],[,,,,,,,,,[-1]],[,,"5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}",,,,"780123456",,,[5,6,7,8,9,10,11,12,13]],"AT",43,"00","0",,,"0",,,,[[,"(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],[,"(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],[,"(\\d{6})","$1",["1"]],[,"(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],[,"(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],[[,"(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],[,"(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],[,"(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],[,"(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AU:[,[,,"1(?:[0-79]\\d{7,8}|8[0-24-9]\\d{7})|(?:[2-478]\\d\\d|550)\\d{6}|1\\d{4,7}",,,,,,,[5,6,7,8,9,10]],[,,"(?:[237]\\d{5}|8(?:51(?:0(?:0[03-9]|[1247]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-6])|1(?:1[69]|[23]\\d|4[0-4]))|(?:[6-8]\\d{3}|9(?:[02-9]\\d\\d|1(?:[0-57-9]\\d|6[0135-9])))\\d))\\d{3}",,,,"212345678",,,[9],[8]],[,,"483[0-3]\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",,,,"1300123456",,,[6,8,10]],[,,,,,,,,,[-1]],[,,"(?:14(?:5(?:1[0458]|[23][458])|71\\d)|550\\d\\d)\\d{4}",,,,"550123456",,,[9]],"AU",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"0|(183[12])",,"0011",,[[,"(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["13"]],[,"(\\d{3})(\\d{3})","$1 $2",["19"]],[,"(\\d{3})(\\d{4})","$1 $2",["180","1802"]],[,"(\\d{4})(\\d{3,4})","$1 $2",["19"]],[,"(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|[45]"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)","$CC ($1)"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],[[,"(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|[45]"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)","$CC ($1)"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],[,,"16\\d{3,7}",,,,"1612345",,,[5,6,7,8,9]],1,,[,,"1[38]00\\d{6}|1(?:345[0-4]|802)\\d{3}|13\\d{4}",,,,,,,[6,7,8,10]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AW:[,[,,"(?:[25-79]\\d\\d|800)\\d{4}",,,,,,,[7]],[,,"5(?:2\\d|8[1-9])\\d{4}",,,,"5212345"],[,,"(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}",,,,"5601234"],[,,"800\\d{4}",,,,"8001234"],[,,"900\\d{4}",,,,"9001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:28\\d|501)\\d{4}",,,,"5011234"],"AW",297,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],AX:[,[,,"2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"18[1-8]\\d{3,6}",,,,"181234567",,,[6,7,8,9]],[,,"(?:4[0-8]|50)\\d{4,8}",,,,"412345678",,,[6,7,8,9,10]],[,,"800\\d{4,6}",,,,"800123456",,,[7,8,9]],[,,"[67]00\\d{5,6}",,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AX",358,"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","0",,,"0",,"00",,,,[,,,,,,,,,[-1]],,"18",[,,,,,,,,,[-1]],[,,"20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}",,,,"10112345"],,,[,,,,,,,,,[-1]]],AZ:[,[,,"365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",,,,,,,[9],[7]],[,,"365(?:[0-46-9]\\d|5[0-35-9])\\d{4}|(?:(?:1[28]|46)\\d|2(?:[045]2|1[24]|2[2-4]|33|6[23]))\\d{6}",,,,"123123456",,,,[7]],[,,"(?:36554|99[2-9]\\d\\d)\\d{4}|(?:[16]0|4[04]|5[015]|60|7[07])\\d{7}",,,,"401234567"],[,,"88\\d{7}",,,,"881234567"],[,,"900200\\d{3}",,,,"900200123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"AZ",994,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[1-9]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365|46","1[28]|2|365(?:[0-46-9]|5[0-35-9])|46"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365|46","1[28]|2|365(?:[0-46-9]|5[0-35-9])|46"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BA:[,[,,"6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",,,,,,,[8,9],[6]],[,,"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}",,,,"30212345",,,[8],[6]],[,,"6040[0-4]\\d{4}|6(?:03|[1-356]|44|7\\d)\\d{6}",,,,"61123456"],[,,"8[08]\\d{6}",,,,"80123456",,,[8]],[,,"9[0246]\\d{6}",,,,"90123456",,,[8]],[,,"8[12]\\d{6}",,,,"82123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BA",387,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})","$1-$2",["[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70(?:3[0146]|[56]0)\\d{4}",,,,"70341234",,,[8]],,,[,,,,,,,,,[-1]]],BB:[,[,,"(?:246|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}",,,,"2464123456",,,,[7]],[,,"246(?:2(?:[356]\\d|4[0-57-9]|8[0-79])|45\\d|69[5-7]|8(?:[2-5]\\d|83))\\d{4}",,,,"2462501234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"(?:246976|900[2-9]\\d\\d)\\d{4}",,,,"9002123456",,,,[7]],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"24631\\d{5}",,,,"2463101234",,,,[7]],"BB",1,"011","1",,,"1|([2-9]\\d{6})$","246$1",,,,,[,,,,,,,,,[-1]],,"246",[,,,,,,,,,[-1]],[,,"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|7(?:36|53))\\d{4}",,,,"2464301234",,,,[7]],,,[,,,,,,,,,[-1]]],BD:[,[,,"[13469]\\d{9}|8[0-79]\\d{7,8}|[2-7]\\d{8}|[2-9]\\d{7}|[3-689]\\d{6}|[57-9]\\d{5}",,,,,,,[6,7,8,9,10]],[,,"(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:4(?:31\\d\\d|[46]23)|5(?:222|32[37]))\\d{3}(?:\\d{2})?|(?:3(?:42[47]|529|823)|4(?:027|525|658)|(?:56|73)2|6257|9[35]1)\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[01367]|7[15]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|8(?:4[12]|[5-7]2)|9(?:[024]2|81))\\d{4}|(?:2[45]\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:25|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[569]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:0|217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}",,,,"27111234"],[,,"(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}",,,,"1812345678",,,[10]],[,,"80[03]\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\d{6}",,,,"9604123456",,,[10]],"BD",880,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4,6})","$1-$2",["31[5-7]|[459]1"],"0$1"],[,"(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],[,"(\\d{4})(\\d{3,6})","$1-$2",["[13-9]"],"0$1"],[,"(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BE:[,[,,"4\\d{8}|[1-9]\\d{7}",,,,,,,[8,9]],[,,"80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}",,,,"12345678",,,[8]],[,,"4[5-9]\\d{7}",,,,"470123456",,,[9]],[,,"800[1-9]\\d{4}",,,,"80012345",,,[8]],[,,"(?:70(?:2[0-57]|3[0457]|44|69|7[0579])|90(?:0[0-35-8]|1[36]|2[0-3568]|3[0135689]|4[2-68]|5[1-68]|6[0-378]|7[23568]|9[34679]))\\d{4}",,,,"90012345",,,[8]],[,,"7879\\d{4}",,,,"78791234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BE",32,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"78(?:0[57]|1[0458]|2[25]|3[15-8]|48|[56]0|7[078])\\d{4}",,,,"78102345",,,[8]],,,[,,,,,,,,,[-1]]],BF:[,[,,"[025-7]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}",,,,"20491234"],[,,"(?:0[127]|5[1-8]|[67]\\d)\\d{6}",,,,"70123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BF",226,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BG:[,[,,"[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",,,,,,,[6,7,8,9],[4,5]],[,,"2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}",,,,"2123456",,,[6,7,8],[4,5]],[,,"43[07-9]\\d{5}|(?:48|8[7-9]\\d|9(?:8\\d|9[69]))\\d{6}",,,,"48123456",,,[8,9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"90\\d{6}",,,,"90123456",,,[8]],[,,"700\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BG",359,"00","0",,,"0",,,,[[,"(\\d{6})","$1",["1"]],[,"(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],[[,"(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BH:[,[,,"[136-9]\\d{7}",,,,,,,[8]],[,,"(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\d\\d))\\d{4}",,,,"17001234"],[,,"(?:3(?:[1-79]\\d|8[0-47-9])\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\d|7[0-6])))\\d{4}",,,,"36001234"],[,,"80\\d{6}",,,,"80123456"],[,,"(?:87|9[014578])\\d{6}",,,,"90123456"],[,,"84\\d{6}",,,,"84123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BH",973,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[13679]|8[047]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BI:[,[,,"(?:[267]\\d|31)\\d{6}",,,,,,,[8]],[,,"22\\d{6}",,,,"22201234"],[,,"(?:29|31|6[1289]|7[125-9])\\d{6}",,,,"79561234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BI",257,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BJ:[,[,,"(?:[2689]\\d|51)\\d{6}",,,,,,,[8]],[,,"2(?:02|1[037]|2[45]|3[68])\\d{5}",,,,"20211234"],[,,"(?:51|6\\d|9[013-9])\\d{6}",,,,"90011234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"857[58]\\d{4}",,,,"85751234"],"BJ",229,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[25689]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"81\\d{6}",,,,"81123456"],,,[,,,,,,,,,[-1]]],BL:[,[,,"(?:590|69\\d|976)\\d{6}",,,,,,,[9]],[,,"590(?:2[7-9]|5[12]|87)\\d{4}",,,,"590271234"],[,,"69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"976[01]\\d{5}",,,,"976012345"],"BL",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BM:[,[,,"(?:441|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"441(?:2(?:02|23|[3479]\\d|61)|[46]\\d\\d|5(?:4\\d|60|89)|824)\\d{4}",,,,"4412345678",,,,[7]],[,,"441(?:[37]\\d|5[0-39])\\d{5}",,,,"4413701234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BM",1,"011","1",,,"1|([2-8]\\d{6})$","441$1",,,,,[,,,,,,,,,[-1]],,"441",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BN:[,[,,"[2-578]\\d{6}",,,,,,,[7]],[,,"22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}",,,,"2345678"],[,,"(?:22[89]|[78]\\d\\d)\\d{4}",,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[34]\\d{5}",,,,"5345678"],"BN",673,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BO:[,[,,"(?:[2-467]\\d\\d|8001)\\d{5}",,,,,,,[8,9],[7]],[,,"(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}",,,,"22123456",,,[8],[7]],[,,"[67]\\d{7}",,,,"71234567",,,[8]],[,,"8001[07]\\d{4}",,,,"800171234",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BO",591,"00(?:1\\d)?","0",,,"0(1\\d)?",,,,[[,"(\\d)(\\d{7})","$1 $2",["[23]|4[46]"],,"0$CC $1"],[,"(\\d{8})","$1",["[67]"],,"0$CC $1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"],,"0$CC $1"]],,[,,,,,,,,,[-1]],,,[,,"8001[07]\\d{4}",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BQ:[,[,,"(?:[34]1|7\\d)\\d{5}",,,,,,,[7]],[,,"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}",,,,"7151234"],[,,"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}",,,,"3181234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BQ",599,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"[347]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BR:[,[,,"(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-24679]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",,,,,,,[8,9,10,11]],[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}",,,,"1123456789",,,[10],[8]],[,,"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}",,,,"11961234567",,,[10,11],[8,9]],[,,"800\\d{6,7}",,,,"800123456",,,[9,10]],[,,"300\\d{6}|[59]00\\d{6,7}",,,,"300123456",,,[9,10]],[,,"300\\d{7}|[34]00\\d{5}|4(?:02|37)0\\d{4}",,,,"40041234",,,[8,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BR",55,"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","0",,,"0(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",,,[[,"(\\d{3,6})","$1",["1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610"]],[,"(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],[,"(\\d{4})(\\d{4})","$1-$2",["[2-57]","[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))"]],[,"(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],[,"(\\d{5})(\\d{4})","$1-$2",["9"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)","0 $CC ($1)"]],[[,"(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],[,"(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)","0 $CC ($1)"],[,"(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)","0 $CC ($1)"]],[,,,,,,,,,[-1]],,,[,,"4020\\d{4}|[34]00\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BS:[,[,,"(?:242|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}",,,,"2423456789",,,,[7]],[,,"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|[89]9))\\d{4}",,,,"2423591234",,,,[7]],[,,"242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456",,,,[7]],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"BS",1,"011","1",,,"1|([3-8]\\d{6})$","242$1",,,,,[,,,,,,,,,[-1]],,"242",[,,,,,,,,,[-1]],[,,"242225[0-46-9]\\d{3}",,,,"2422250123"],,,[,,,,,,,,,[-1]]],BT:[,[,,"[17]\\d{7}|[2-8]\\d{6}",,,,,,,[7,8],[6]],[,,"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}",,,,"2345678",,,[7],[6]],[,,"(?:1[67]|77)\\d{6}",,,,"17123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BT",975,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[2-7]"]],[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BW:[,[,,"90\\d{5}|(?:[2-6]|7\\d)\\d{6}",,,,,,,[7,8]],[,,"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\d{4}",,,,"2401234",,,[7]],[,,"77200\\d{3}|7(?:[1-6]\\d|7[014-9])\\d{5}",,,,"71123456",,,[8]],[,,,,,,,,,[-1]],[,,"90\\d{5}",,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"79(?:1(?:[01]\\d|20)|2[0-2]\\d)\\d{3}",,,,"79101234",,,[8]],"BW",267,"00",,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["90"]],[,"(\\d{3})(\\d{4})","$1 $2",["[2-6]"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BY:[,[,,"(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",,,,,,,[6,7,8,9,10,11],[5]],[,,"(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}",,,,"152450911",,,[9],[5,6,7]],[,,"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}",,,,"294911911",,,[9]],[,,"800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}",,,,"8011234567"],[,,"(?:810|902)\\d{7}",,,,"9021234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"249\\d{6}",,,,"249123456",,,[9]],"BY",375,"810","8",,,"0|80?",,"8~10",,[[,"(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],[,"(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],[,"(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],,[,,,,,,,,,[-1]],,,[,,"800\\d{3,7}|(?:8(?:0[13]|10|20\\d)|902)\\d{7}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],BZ:[,[,,"(?:0800\\d|[2-8])\\d{6}",,,,,,,[7,11]],[,,"(?:236|732)\\d{4}|[2-578][02]\\d{5}",,,,"2221234",,,[7]],[,,"6[0-35-7]\\d{5}",,,,"6221234",,,[7]],[,,"0800\\d{7}",,,,"08001234123",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"BZ",501,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],[,"(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CA:[,[,,"(?:[2-8]\\d|90)\\d{8}",,,,,,,[10],[7]],[,,"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}",,,,"5062345678",,,,[7]],[,,"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}",,,,"5062345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\d{6}",,,,"5002345678"],[,,"600[2-9]\\d{6}",,,,"6002012345"],"CA",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CC:[,[,,"1(?:[0-79]\\d|8[0-24-9])\\d{7}|(?:[148]\\d\\d|550)\\d{6}|1\\d{5,7}",,,,,,,[6,7,8,9,10]],[,,"8(?:51(?:0(?:02|31|60)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",,,,"891621234",,,[9],[8]],[,,"483[0-3]\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",,,,"1300123456",,,[6,8,10]],[,,,,,,,,,[-1]],[,,"(?:14(?:5(?:1[0458]|[23][458])|71\\d)|550\\d\\d)\\d{4}",,,,"550123456",,,[9]],"CC",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"0|([59]\\d{7})$","8$1","0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CD:[,[,,"[189]\\d{8}|[1-68]\\d{6}",,,,,,,[7,9]],[,,"12\\d{7}|[1-6]\\d{6}",,,,"1234567"],[,,"88\\d{5}|(?:8[0-2459]|9[017-9])\\d{7}",,,,"991234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CD",243,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CF:[,[,,"(?:[27]\\d{3}|8776)\\d{4}",,,,,,,[8]],[,,"2[12]\\d{6}",,,,"21612345"],[,,"7[0257]\\d{6}",,,,"70012345"],[,,,,,,,,,[-1]],[,,"8776\\d{4}",,,,"87761234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CF",236,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CG:[,[,,"222\\d{6}|(?:0\\d|80)\\d{7}",,,,,,,[9]],[,,"222[1-589]\\d{5}",,,,"222123456"],[,,"0[14-6]\\d{7}",,,,"061234567"],[,,,,,,,,,[-1]],[,,"80(?:0\\d\\d|11[0-4])\\d{4}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CG",242,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["801"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CH:[,[,,"8\\d{11}|[2-9]\\d{8}",,,,,,,[9,12]],[,,"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}",,,,"212345678",,,[9]],[,,"7[35-9]\\d{7}",,,,"781234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[016]\\d{6}",,,,"900123456",,,[9]],[,,"84[0248]\\d{6}",,,,"840123456",,,[9]],[,,"878\\d{6}",,,,"878123456",,,[9]],[,,,,,,,,,[-1]],"CH",41,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],,[,,"74[0248]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,"5[18]\\d{7}",,,,"581234567",,,[9]],,,[,,"860\\d{9}",,,,"860123456789",,,[12]]],CI:[,[,,"[02-9]\\d{7}",,,,,,,[8]],[,,"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\d{5}",,,,"21234567"],[,,"(?:2[0-3]80|97[0-3]\\d)\\d{4}|(?:0[1-9]|[457]\\d|6[014-9]|8[4-9]|95)\\d{6}",,,,"01234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CI",225,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[02-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CK:[,[,,"[2-578]\\d{4}",,,,,,,[5]],[,,"(?:2\\d|3[13-7]|4[1-5])\\d{3}",,,,"21234"],[,,"[578]\\d{4}",,,,"71234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CK",682,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CL:[,[,,"12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",,,,,,,[9,10,11]],[,,"(?:2(?:1962|3(?:2\\d\\d|3(?:00|23)))|80[1-9]\\d\\d)\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2-9])\\d{7}",,,,"221234567",,,[9]],[,,"(?:2(?:1962|3(?:2\\d\\d|3(?:00|23)))|80[1-9]\\d\\d)\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2-9])\\d{7}",,,,"221234567",,,[9]],[,,"(?:123|8)00\\d{6}",,,,"800123456",,,[9,11]],[,,,,,,,,,[-1]],[,,"600\\d{7,8}",,,,"6001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,"44\\d{7}",,,,"441234567",,,[9]],"CL",56,"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0",,,,,,,1,[[,"(\\d{4})","$1",["1(?:[03-589]|21)|[29]0|78"]],[,"(\\d{5})(\\d{4})","$1 $2",["21"],"($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[23]"],"($1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],[[,"(\\d{5})(\\d{4})","$1 $2",["21"],"($1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[23]"],"($1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],[,,,,,,,,,[-1]],,,[,,"600\\d{7,8}",,,,,,,[10,11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CM:[,[,,"(?:[26]\\d\\d|88)\\d{6}",,,,,,,[8,9]],[,,"2(?:22|33)\\d{6}",,,,"222123456",,,[9]],[,,"(?:24[23]|6[5-9]\\d)\\d{6}",,,,"671234567",,,[9]],[,,"88\\d{6}",,,,"88012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CM",237,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CN:[,[,,"1[1279]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-68]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",,,,,,,[7,8,9,10,11,12],[5,6]],[,,"(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|21(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))\\d{5}|(?:43[35]|754)\\d{7,8}|8(?:078\\d{7}|51\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\d\\d|95\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[1-9]\\d{6})|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[1-9]\\d{5})|9(?:[0-46-9]\\d{5}|5\\d{3,5}))",,,,"1012345678",,,[7,8,9,10,11],[5,6]],[,,"1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[189])\\d{8}",,,,"13123456789",,,[11]],[,,"(?:(?:10|21)8|8)00\\d{7}",,,,"8001234567",,,[10,12]],[,,"16[08]\\d{5}",,,,"16812345",,,[8]],[,,"400\\d{7}|950\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}",,,,"4001234567",,,[7,8,9,10,11],[5,6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CN",86,"00|1(?:[12]\\d|79|9[0235-7])\\d\\d00","0",,,"0|(1(?:[12]\\d|79|9[0235-7])\\d\\d)",,"00",,[[,"(\\d{5,6})","$1",["96"]],[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","(?:10|2[0-57-9])(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{4})","$1 $2",["[1-9]","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])"]],[,"(\\d{4})(\\d{4})","$1 $2",["16[08]"]],[,"(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{4})(\\d{4})","$1 $2",["[1-9]","1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])","26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])","26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{7,8})","$1 $2",["9"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"],,"$CC $1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",,1]],[[,"(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","(?:10|2[0-57-9])(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1","$CC $1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{7,8})","$1 $2",["9"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1","$CC $1",1],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"],,"$CC $1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",,1]],[,,,,,,,,,[-1]],,,[,,"(?:(?:10|21)8|[48])00\\d{7}|950\\d{7,8}",,,,,,,[10,11,12]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CO:[,[,,"(?:1\\d|3)\\d{9}|[124-8]\\d{7}",,,,,,,[8,10,11],[7]],[,,"[124-8][2-9]\\d{6}",,,,"12345678",,,[8],[7]],[,,"3333(?:0(?:0\\d|1[0-5])|[4-9]\\d\\d)\\d{3}|33(?:00|3[0-24-9])\\d{6}|3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}",,,,"3211234567",,,[10]],[,,"1800\\d{7}",,,,"18001234567",,,[11]],[,,"19(?:0[01]|4[78])\\d{7}",,,,"19001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CO",57,"00(?:4(?:[14]4|56)|[579])","0",,,"0([3579]|4(?:[14]4|56))?",,,,[[,"(\\d)(\\d{7})","$1 $2",["[14][2-9]|[25-8]"],"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],,"0$CC $1"],[,"(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1"]],[[,"(\\d)(\\d{7})","$1 $2",["[14][2-9]|[25-8]"],"($1)","0$CC $1"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],,"0$CC $1"],[,"(\\d)(\\d{3})(\\d{7})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CR:[,[,,"(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",,,,,,,[8,10]],[,,"210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}",,,,"22123456",,,[8]],[,,"(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}",,,,"83123456",,,[8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"90[059]\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:210[0-6]|4\\d{3}|5100)\\d{4}",,,,"40001234",,,[8]],"CR",506,"00",,,,"(19(?:0[0-2468]|1[09]|20|66|77|99))",,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CU:[,[,,"[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}",,,,,,,[6,7,8,10],[4,5]],[,,"(?:3[23]|48)\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}",,,,"71234567",,,,[4,5]],[,,"5\\d{7}",,,,"51234567",,,[8]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,,,,,,,,[-1]],[,,"807\\d{7}",,,,"8071234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CU",53,"119","0",,,"0",,,,[[,"(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],[,"(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],[,"(\\d)(\\d{7})","$1 $2",["5"],"0$1"],[,"(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CV:[,[,,"(?:[2-59]\\d\\d|800)\\d{4}",,,,,,,[7]],[,,"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}",,,,"2211234"],[,,"(?:[34][36]|5[1-389]|9\\d)\\d{5}",,,,"9911234"],[,,"800\\d{4}",,,,"8001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CV",238,"0",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CW:[,[,,"(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",,,,,,,[7,8]],[,,"9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}",,,,"94351234"],[,,"953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}",,,,"95181234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"60[0-2]\\d{4}",,,,"6001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"CW",599,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[3467]"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],,[,,"955\\d{5}",,,,"95581234",,,[8]],1,"[69]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CX:[,[,,"1(?:[0-79]\\d|8[0-24-9])\\d{7}|(?:[148]\\d\\d|550)\\d{6}|1\\d{5,7}",,,,,,,[6,7,8,9,10]],[,,"8(?:51(?:0(?:01|30|59)|117)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",,,,"891641234",,,[9],[8]],[,,"483[0-3]\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\d{6}",,,,"412345678",,,[9]],[,,"180(?:0\\d{3}|2)\\d{3}",,,,"1800123456",,,[7,10]],[,,"190[0-26]\\d{6}",,,,"1900123456",,,[10]],[,,"13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",,,,"1300123456",,,[6,8,10]],[,,,,,,,,,[-1]],[,,"(?:14(?:5(?:1[0458]|[23][458])|71\\d)|550\\d\\d)\\d{4}",,,,"550123456",,,[9]],"CX",61,"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","0",,,"0|([59]\\d{7})$","8$1","0011",,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],CY:[,[,,"(?:[279]\\d|[58]0)\\d{6}",,,,,,,[8]],[,,"2[2-6]\\d{6}",,,,"22345678"],[,,"9[4-79]\\d{6}",,,,"96123456"],[,,"800\\d{5}",,,,"80001234"],[,,"90[09]\\d{5}",,,,"90012345"],[,,"80[1-9]\\d{5}",,,,"80112345"],[,,"700\\d{5}",,,,"70012345"],[,,,,,,,,,[-1]],"CY",357,"00",,,,,,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:50|77)\\d{6}",,,,"77123456"],,,[,,,,,,,,,[-1]]],CZ:[,[,,"(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",,,,,,,[9,10,11,12]],[,,"(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}",,,,"212345678",,,[9]],[,,"(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}",,,,"601123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"9(?:0[05689]|76)\\d{6}",,,,"900123456",,,[9]],[,,"8[134]\\d{7}",,,,"811234567",,,[9]],[,,"70[01]\\d{6}",,,,"700123456",,,[9]],[,,"9[17]0\\d{6}",,,,"910123456",,,[9]],"CZ",420,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"9(?:5\\d|7[2-4])\\d{6}",,,,"972123456",,,[9]],,,[,,"9(?:3\\d{9}|6\\d{7,10})",,,,"93123456789"]],DE:[,[,,"[2579]\\d{5,14}|49(?:[05]\\d{10}|[46][1-8]\\d{4,9})|49(?:[0-25]\\d|3[1-689]|7[1-7])\\d{4,8}|49(?:[0-2579]\\d|[34][1-9]|6[0-8])\\d{3}|49\\d{3,4}|(?:1|[368]\\d|4[0-8])\\d{3,13}",,,,,,,[4,5,6,7,8,9,10,11,12,13,14,15],[2,3]],[,,"(?:32|49[4-6]\\d)\\d{9}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}",,,,"30123456",,,[5,6,7,8,9,10,11,12,13,14,15],[2,3,4]],[,,"15[0-25-9]\\d{8}|1(?:6[023]|7\\d)\\d{7,8}",,,,"15123456789",,,[10,11]],[,,"800\\d{7,12}",,,,"8001234567890",,,[10,11,12,13,14,15]],[,,"(?:137[7-9]|900(?:[135]|9\\d))\\d{6}",,,,"9001234567",,,[10,11]],[,,"180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}",,,,"18012345",,,[7,8,9,10,11,12,13,14]],[,,"700\\d{8}",,,,"70012345678",,,[11]],[,,,,,,,,,[-1]],"DE",49,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],[,"(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],[,"(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],[,"(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],[,"(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],[,"(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],[,"(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],[,"(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],[,"(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],[,"(\\d{5})(\\d{6})","$1 $2",["15[0568]"],"0$1"],[,"(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],[,"(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],[,"(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],,[,,"16(?:4\\d{1,10}|[89]\\d{1,11})",,,,"16412345",,,[4,5,6,7,8,9,10,11,12,13,14]],,,[,,,,,,,,,[-1]],[,,"18(?:1\\d{5,11}|[2-9]\\d{8})",,,,"18500123456",,,[8,9,10,11,12,13,14]],,,[,,"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}",,,,"177991234567",,,[12,13]]],DJ:[,[,,"(?:2\\d|77)\\d{6}",,,,,,,[8]],[,,"2(?:1[2-5]|7[45])\\d{5}",,,,"21360003"],[,,"77\\d{6}",,,,"77831001"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DJ",253,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DK:[,[,,"[2-9]\\d{7}",,,,,,,[8]],[,,"(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}",,,,"32123456"],[,,"(?:[2-7]\\d|8[126-9]|9[1-46-9])\\d{6}",,,,"32123456"],[,,"80\\d{6}",,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"DK",45,"00",,,,,,,1,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DM:[,[,,"(?:[58]\\d\\d|767|900)\\d{7}",,,,,,,[10],[7]],[,,"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\d{4}",,,,"7674201234",,,,[7]],[,,"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-7])\\d{4}",,,,"7672251234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DM",1,"011","1",,,"1|([2-7]\\d{6})$","767$1",,,,,[,,,,,,,,,[-1]],,"767",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DO:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}",,,,"8092345678",,,,[7]],[,,"8[024]9[2-9]\\d{6}",,,,"8092345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"DO",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"8[024]9",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],DZ:[,[,,"(?:[1-4]|[5-79]\\d|80)\\d{7}",,,,,,,[8,9]],[,,"9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[0135689])\\d{6}",,,,"12345678"],[,,"(?:5(?:4[0-29]|5\\d|6[01])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}",,,,"551234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"80[3-689]1\\d{5}",,,,"808123456",,,[9]],[,,"80[12]1\\d{5}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,"98[23]\\d{6}",,,,"983123456",,,[9]],"DZ",213,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EC:[,[,,"1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",,,,,,,[8,9,10,11],[7]],[,,"[2-7][2-7]\\d{6}",,,,"22123456",,,[8],[7]],[,,"964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}",,,,"991234567",,,[9]],[,,"1800\\d{7}|1[78]00\\d{6}",,,,"18001234567",,,[10,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"[2-7]890\\d{4}",,,,"28901234",,,[8]],"EC",593,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-7]"]],[,"(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],[[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-7]"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EE:[,[,,"8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",,,,,,,[7,8,10]],[,,"(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}",,,,"3212345",,,[7]],[,,"5(?:[0-35-9]\\d{6}|4(?:[0-57-9]\\d{5}|6(?:[0-24-9]\\d{4}|3(?:[0-35-9]\\d{3}|4000))))|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:23|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[24-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9]|8[2-4])\\d|7(?:[679]\\d|8[13-9]))\\d)|[349]\\d{4})\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}",,,,"51234567",,,[7,8]],[,,"800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}",,,,"80012345"],[,,"(?:40\\d\\d|900)\\d{4}",,,,"9001234",,,[7,8]],[,,,,,,,,,[-1]],[,,"70[0-2]\\d{5}",,,,"70012345",,,[8]],[,,,,,,,,,[-1]],"EE",372,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],[,"(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,"800[2-9]\\d{3}",,,,,,,[7]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EG:[,[,,"[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",,,,,,,[8,9,10],[6,7]],[,,"13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}",,,,"234567890",,,[8,9],[6,7]],[,,"1[0-25]\\d{8}",,,,"1001234567",,,[10]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"EG",20,"00","0",,,"0",,,,[[,"(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],[,"(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[189]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],EH:[,[,,"[5-8]\\d{8}",,,,,,,[9]],[,,"528[89]\\d{5}",,,,"528812345"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\d{6}",,,,"650123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"592(?:4[0-2]|93)\\d{4}",,,,"592401234"],"EH",212,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,"528[89]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ER:[,[,,"[178]\\d{6}",,,,,,,[7],[6]],[,,"(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}",,,,"8370362",,,,[6]],[,,"(?:17[1-3]|7\\d\\d)\\d{4}",,,,"7123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ER",291,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ES:[,[,,"(?:51|[6-9]\\d)\\d{7}",,,,,,,[9]],[,,"96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}",,,,"810123456"],[,,"9(?:6906(?:09|10)|7390\\d\\d)\\d\\d|(?:6\\d|7[1-48])\\d{7}",,,,"612345678"],[,,"[89]00\\d{6}",,,,"800123456"],[,,"80[367]\\d{6}",,,,"803123456"],[,,"90[12]\\d{6}",,,,"901123456"],[,,"70\\d{7}",,,,"701234567"],[,,,,,,,,,[-1]],"ES",34,"00",,,,,,,,[[,"(\\d{4})","$1",["905"]],[,"(\\d{6})","$1",["[79]9"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"51\\d{7}",,,,"511234567"],,,[,,,,,,,,,[-1]]],ET:[,[,,"(?:11|[2-59]\\d)\\d{7}",,,,,,,[9],[7]],[,,"116671\\d{3}|(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}",,,,"111112345",,,,[7]],[,,"9\\d{8}",,,,"911234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ET",251,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-59]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FI:[,[,,"[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",,,,,,,[5,6,7,8,9,10,11,12]],[,,"(?:1[3-79][1-8]|[235689][1-8]\\d)\\d{2,6}",,,,"131234567",,,[5,6,7,8,9]],[,,"(?:4[0-8]|50)\\d{4,8}",,,,"412345678",,,[6,7,8,9,10]],[,,"800\\d{4,6}",,,,"800123456",,,[7,8,9]],[,,"[67]00\\d{5,6}",,,,"600123456",,,[8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FI",358,"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","0",,,"0",,"00",,[[,"(\\d{5})","$1",["75[12]"],"0$1"],[,"(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],[,"(\\d{6})","$1",["11"]],[,"(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],[,"(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],[,"(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],[[,"(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],[,"(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],[,"(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],[,"(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],[,,,,,,,,,[-1]],1,"1[03-79]|[2-9]",[,,"20(?:2[023]|9[89])\\d{1,6}|(?:60[12]\\d|7099)\\d{4,5}|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:[1-3]00|7(?:0[1-5]\\d\\d|5[03-9]))\\d{3,7}"],[,,"20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}",,,,"10112345"],,,[,,,,,,,,,[-1]]],FJ:[,[,,"45\\d{5}|(?:0800\\d|[235-9])\\d{6}",,,,,,,[7,11]],[,,"603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}",,,,"3212345",,,[7]],[,,"(?:[279]\\d|45|5[01568]|8[034679])\\d{5}",,,,"7012345",,,[7]],[,,"0800\\d{7}",,,,"08001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FJ",679,"0(?:0|52)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FK:[,[,,"[2-7]\\d{4}",,,,,,,[5]],[,,"[2-47]\\d{4}",,,,"31234"],[,,"[56]\\d{4}",,,,"51234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FK",500,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FM:[,[,,"(?:[39]\\d\\d|820)\\d{4}",,,,,,,[7]],[,,"31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}",,,,"3201234"],[,,"31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}",,,,"3501234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"FM",691,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[389]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FO:[,[,,"(?:[2-8]\\d|90)\\d{4}",,,,,,,[6]],[,,"(?:20|[34]\\d|8[19])\\d{4}",,,,"201234"],[,,"(?:[27][1-9]|5\\d)\\d{4}",,,,"211234"],[,,"80[257-9]\\d{3}",,,,"802123"],[,,"90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d",,,,"901123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:6[0-36]|88)\\d{4}",,,,"601234"],"FO",298,"00",,,,"(10(?:01|[12]0|88))",,,,[[,"(\\d{6})","$1",["[2-9]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],FR:[,[,,"[1-9]\\d{8}",,,,,,,[9]],[,,"(?:[1-35]\\d|4[1-9])\\d{7}",,,,"123456789"],[,,"700\\d{6}|(?:6\\d|7[3-9])\\d{7}",,,,"612345678"],[,,"80[0-5]\\d{6}",,,,"801234567"],[,,"836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}",,,,"891123456"],[,,"8(?:1[01]|2[0156]|84)\\d{6}",,,,"884012345"],[,,,,,,,,,[-1]],[,,"9\\d{8}",,,,"912345678"],"FR",33,"00","0",,,"0",,,,[[,"(\\d{4})","$1",["10"]],[,"(\\d{3})(\\d{3})","$1 $2",["1"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"80[6-9]\\d{6}",,,,"806123456"],,,[,,,,,,,,,[-1]]],GA:[,[,,"(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",,,,,,,[7,8]],[,,"[01]1\\d{6}",,,,"01441234",,,[8]],[,,"(?:0[2-7]|6[256]|7[47])\\d{6}|[2-7]\\d{6}",,,,"06031234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GA",241,"00",,,,"0(11\\d{6}|6[256]\\d{6}|7[47]\\d{6})","$1",,,[[,"(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GB:[,[,,"[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",,,,,,,[7,9,10],[4,5,6,8]],[,,"(?:1(?:(?:1(?:3[0-58]|4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])|3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|80[04589])))|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",,,,"1212345678",,,[9,10],[4,5,6,7,8]],[,,"7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",,,,"7400123456",,,[10]],[,,"80[08]\\d{7}|800\\d{6}|8001111",,,,"8001234567"],[,,"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",,,,"9012345678",,,[7,10]],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",,,,"5612345678",,,[10]],"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],[,"(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],[,"(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],[,"(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],,[,,"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456",,,[10]],1,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,,,,,,,,,[-1]]],GD:[,[,,"(?:473|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}",,,,"4732691234",,,,[7]],[,,"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\d{4}",,,,"4734031234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GD",1,"011","1",,,"1|([2-9]\\d{6})$","473$1",,,,,[,,,,,,,,,[-1]],,"473",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GE:[,[,,"(?:[3-57]\\d\\d|800)\\d{6}",,,,,,,[9],[6,7]],[,,"(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}",,,,"322123456",,,,[6,7]],[,,"5(?:0555[5-9]|757(?:7[7-9]|8[01]))\\d{3}|5(?:000\\d|(?:52|75)00|8(?:58[89]|888))\\d{4}|5(?:0050|1111|2222|3333)[0-4]\\d{3}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\d{6}",,,,"555123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"706\\d{6}",,,,"706123456"],"GE",995,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"706\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GF:[,[,,"(?:[56]94|976)\\d{6}",,,,,,,[9]],[,,"594(?:[023]\\d|1[01]|4[03-9]|5[6-9]|6[0-3]|80|9[014])\\d{4}",,,,"594101234"],[,,"694(?:[0-249]\\d|3[0-48])\\d{4}",,,,"694201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"976\\d{6}",,,,"976012345"],"GF",594,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GG:[,[,,"(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",,,,,,,[7,9,10],[6]],[,,"1481[25-9]\\d{5}",,,,"1481256789",,,[10],[6]],[,,"7(?:(?:781|839)\\d|911[17])\\d{5}",,,,"7781123456",,,[10]],[,,"80[08]\\d{7}|800\\d{6}|8001111",,,,"8001234567"],[,,"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",,,,"9012345678",,,[7,10]],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678",,,[10]],[,,"56\\d{8}",,,,"5612345678",,,[10]],"GG",44,"00","0",,,"0|([25-9]\\d{5})$","1481$1",,,,,[,,"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456",,,[10]],,,[,,,,,,,,,[-1]],[,,"(?:3[0347]|55)\\d{8}",,,,"5512345678",,,[10]],,,[,,,,,,,,,[-1]]],GH:[,[,,"(?:[235]\\d{3}|800)\\d{5}",,,,,,,[8,9],[7]],[,,"3(?:[167]2[0-6]|22[0-5]|32[0-3]|4(?:2[013-9]|3[01])|52[0-7]|82[0-2])\\d{5}|3(?:[0-8]8|9[28])0\\d{5}|3(?:0[237]|[1-9]7)\\d{6}",,,,"302345678",,,[9],[7]],[,,"(?:2[0346-8]\\d|5(?:[0457]\\d|6[01]|9[1-6]))\\d{6}",,,,"231234567",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GH",233,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[237]|80"]],[,"(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],[[,"(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"800\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GI:[,[,,"[256]\\d{7}",,,,,,,[8]],[,,"21(?:6[24-7]\\d|90[0-2])\\d{3}|2(?:00|2[25])\\d{5}",,,,"20012345"],[,,"(?:5[146-8]\\d|6(?:06|29))\\d{5}",,,,"57123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GI",350,"00",,,,,,,,[[,"(\\d{3})(\\d{5})","$1 $2",["2"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GL:[,[,,"(?:19|[2-689]\\d)\\d{4}",,,,,,,[6]],[,,"(?:19|3[1-7]|6[14689]|8[14-79]|9\\d)\\d{4}",,,,"321000"],[,,"[245]\\d{5}",,,,"221234"],[,,"80\\d{4}",,,,"801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3[89]\\d{4}",,,,"381234"],"GL",299,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-689]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GM:[,[,,"[2-9]\\d{6}",,,,,,,[7]],[,,"(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8\\d{3})\\d{3}",,,,"5661234"],[,,"(?:[23679]\\d|5[0-389])\\d{5}",,,,"3012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GM",220,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GN:[,[,,"722\\d{6}|(?:3|6\\d)\\d{7}",,,,,,,[8,9]],[,,"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}",,,,"30241234",,,[8]],[,,"6[02356]\\d{7}",,,,"601123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"722\\d{6}",,,,"722123456",,,[9]],"GN",224,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GP:[,[,,"(?:590|69\\d|976)\\d{6}",,,,,,,[9]],[,,"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\d)\\d{4}",,,,"590201234"],[,,"69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"976[01]\\d{5}",,,,"976012345"],"GP",590,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GQ:[,[,,"222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",,,,,,,[9]],[,,"33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}",,,,"333091234"],[,,"(?:222|55[015])\\d{6}",,,,"222123456"],[,,"80\\d[1-9]\\d{5}",,,,"800123456"],[,,"90\\d[1-9]\\d{5}",,,,"900123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GQ",240,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],[,"(\\d{3})(\\d{6})","$1 $2",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GR:[,[,,"5005000\\d{3}|(?:[2689]\\d|70)\\d{8}",,,,,,,[10]],[,,"2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}",,,,"2123456789"],[,,"68[57-9]\\d{7}|(?:69|94)\\d{8}",,,,"6912345678"],[,,"800\\d{7}",,,,"8001234567"],[,,"90[19]\\d{7}",,,,"9091234567"],[,,"8(?:0[16]|12|25)\\d{7}",,,,"8011234567"],[,,"70\\d{8}",,,,"7012345678"],[,,,,,,,,,[-1]],"GR",30,"00",,,,,,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],[,"(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"5005000\\d{3}",,,,"5005000123"],,,[,,,,,,,,,[-1]]],GT:[,[,,"(?:1\\d{3}|[2-7])\\d{7}",,,,,,,[8,11]],[,,"[267][2-9]\\d{6}",,,,"22456789",,,[8]],[,,"[3-5]\\d{7}",,,,"51234567",,,[8]],[,,"18[01]\\d{8}",,,,"18001112222",,,[11]],[,,"19\\d{9}",,,,"19001112222",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GT",502,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GU:[,[,,"(?:[58]\\d\\d|671|900)\\d{7}",,,,,,,[10],[7]],[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}",,,,"6713001234",,,,[7]],[,,"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}",,,,"6713001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"GU",1,"011","1",,,"1|([3-9]\\d{6})$","671$1",,1,,,[,,,,,,,,,[-1]],,"671",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GW:[,[,,"[49]\\d{8}|4\\d{6}",,,,,,,[7,9]],[,,"443\\d{6}",,,,"443201234",,,[9]],[,,"9(?:5\\d|6[569]|77)\\d{6}",,,,"955012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"40\\d{5}",,,,"4012345",,,[7]],"GW",245,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["40"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],GY:[,[,,"(?:862\\d|9008)\\d{3}|(?:[2-46]\\d|77)\\d{5}",,,,,,,[7]],[,,"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-24-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|77[1-57])\\d{4}",,,,"2201234"],[,,"6\\d{6}",,,,"6091234"],[,,"(?:289|862)\\d{4}",,,,"2891234"],[,,"9008\\d{3}",,,,"9008123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"GY",592,"001",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-46-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HK:[,[,,"8[0-46-9]\\d{6,7}|9\\d{4}(?:\\d(?:\\d(?:\\d{4})?)?)?|(?:[235-79]\\d|46)\\d{6}",,,,,,,[5,6,7,8,9,11]],[,,"(?:384[0-24]|58(?:0[1-8]|1[2-9]))\\d{4}|(?:2(?:[13-8]\\d|2[013-9]|9[0-24-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89))\\d{5}",,,,"21234567",,,[8]],[,,"(?:46(?:0[0-6]|1[0-2]|4[0-57-9])|5730|(?:626|848)[01]|707[1-5]|929[03-9])\\d{4}|(?:5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",,,,"51234567",,,[8]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900(?:[0-24-9]\\d{7}|3\\d{1,4})",,,,"90012345678",,,[5,6,7,8,11]],[,,,,,,,,,[-1]],[,,"8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}",,,,"81123456",,,[8]],[,,,,,,,,,[-1]],"HK",852,"00(?:30|5[09]|[126-9]?)",,,,,,"00",,[[,"(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],,[,,"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}",,,,"71123456",,,[8]],,,[,,,,,,,,,[-1]],[,,"30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}",,,,"30161234",,,[8]],,,[,,,,,,,,,[-1]]],HN:[,[,,"8\\d{10}|[237-9]\\d{7}",,,,,,,[8,11]],[,,"2(?:2(?:0[019]|1[1-36]|[23]\\d|4[04-6]|5[57]|6[24]|7[0135689]|8[01346-9]|9[0-2])|4(?:07|2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:0[78]|16|4[03-5]|5\\d|6[014-6]|74|80)|6(?:[056]\\d|17|2[07]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}",,,,"22123456",,,[8]],[,,"[37-9]\\d{7}",,,,"91234567",,,[8]],[,,"8002\\d{7}",,,,"80021234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"HN",504,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1-$2",["[237-9]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["8"]]],[[,"(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]],[,,,,,,,,,[-1]],,,[,,"8002\\d{7}",,,,,,,[11]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HR:[,[,,"(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",,,,,,,[6,7,8,9]],[,,"1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"9(?:751\\d{5}|8\\d{6,7})|9(?:0[1-9]|[1259]\\d|7[0679])\\d{6}",,,,"921234567",,,[8,9]],[,,"80[01]\\d{4,6}",,,,"800123456",,,[7,8,9]],[,,"6[01459]\\d{6}|6[01]\\d{4,5}",,,,"611234",,,[6,7,8]],[,,,,,,,,,[-1]],[,,"7[45]\\d{6}",,,,"74123456",,,[8]],[,,,,,,,,,[-1]],"HR",385,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"62\\d{6,7}|72\\d{6}",,,,"62123456",,,[8,9]],,,[,,,,,,,,,[-1]]],HT:[,[,,"[2-489]\\d{7}",,,,,,,[8]],[,,"2(?:2\\d|5[1-5]|81|9[149])\\d{5}",,,,"22453300"],[,,"[34]\\d{7}",,,,"34101234"],[,,"8\\d{7}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}",,,,"98901234"],"HT",509,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-489]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],HU:[,[,,"[2357]\\d{8}|[1-9]\\d{7}",,,,,,,[8,9],[6,7]],[,,"(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}",,,,"12345678",,,[8],[6,7]],[,,"(?:[257]0|3[01])\\d{7}",,,,"201234567",,,[9]],[,,"[48]0\\d{6}",,,,"80123456",,,[8]],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"21\\d{7}",,,,"211234567",,,[9]],"HU",36,"00","06",,,"06",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-57-9]"],"06 $1"]],,[,,,,,,,,,[-1]],,,[,,"[48]0\\d{6}",,,,,,,[8]],[,,"38\\d{7}",,,,"381234567",,,[9]],,,[,,,,,,,,,[-1]]],ID:[,[,,"(?:(?:007803|8\\d{4})\\d|[1-36])\\d{6}|[1-9]\\d{8,10}|[2-9]\\d{7}",,,,,,,[7,8,9,10,11,12,13],[5,6]],[,,"2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}",,,,"218350123",,,[7,8,9,10,11],[5,6]],[,,"8[1-35-9]\\d{7,10}",,,,"812345678",,,[9,10,11,12]],[,,"007803\\d{7}|(?:177\\d|800)\\d{5,7}",,,,"8001234567",,,[8,9,10,11,13]],[,,"809\\d{7}",,,,"8091234567",,,[10]],[,,"804\\d{7}",,,,"8041234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ID",62,"00[189]","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],[,"(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],[,"(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],[,"(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],[,"(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],[,"(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],[,"(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],[,"(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],[,"(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],[,"(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],[,"(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],[,"(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"(?:007803\\d|8071)\\d{6}",,,,,,,[10,13]],[,,"(?:1500|8071\\d{3})\\d{3}",,,,"8071123456",,,[7,10]],,,[,,,,,,,,,[-1]]],IE:[,[,,"(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",,,,,,,[7,8,9,10],[5,6]],[,,"(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}",,,,"2212345",,,,[5,6]],[,,"8(?:22|[35-9]\\d)\\d{6}",,,,"850123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,"15(?:1[2-8]|[2-8]0|9[089])\\d{6}",,,,"1520123456",,,[10]],[,,"18[59]0\\d{6}",,,,"1850123456",,,[10]],[,,"700\\d{6}",,,,"700123456",,,[9]],[,,"76\\d{7}",,,,"761234567",,,[9]],"IE",353,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],[,"(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],[,"(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],[,"(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"18[59]0\\d{6}",,,,,,,[10]],[,,"818\\d{6}",,,,"818123456",,,[9]],,,[,,"88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}",,,,"8551234567",,,[10]]],IL:[,[,,"1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",,,,,,,[7,8,9,10,11,12]],[,,"153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}",,,,"21234567",,,[8,11,12],[7]],[,,"5(?:(?:[02368]\\d|[19][2-9]|4[1-9])\\d|5(?:01|1[79]|2[2-7]|3[23]|44|5[05689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}",,,,"502345678",,,[9]],[,,"1(?:255|80[019]\\d{3})\\d{3}",,,,"1800123456",,,[7,10]],[,,"1212\\d{4}|1(?:200|9(?:0[01]|19))\\d{6}",,,,"1919123456",,,[8,10]],[,,"1700\\d{6}",,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,"78(?:33|55|77|81)\\d{5}|7(?:18|2[23]|3[237]|47|6[58]|7\\d|82|9[235-9])\\d{6}",,,,"771234567",,,[9]],"IL",972,"0(?:0|1[2-9])","0",,,"0",,,,[[,"(\\d{4})(\\d{3})","$1-$2",["125"]],[,"(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],[,"(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],[,"(\\d{4})(\\d{6})","$1-$2",["159"]],[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],[,"(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],,[,,,,,,,,,[-1]],,,[,,"1700\\d{6}",,,,,,,[10]],[,,"1599\\d{6}",,,,"1599123456",,,[10]],,,[,,"151\\d{8,9}",,,,"15112340000",,,[11,12]]],IM:[,[,,"1624\\d{6}|(?:[3578]\\d|90)\\d{8}",,,,,,,[10],[6]],[,,"1624[5-8]\\d{5}",,,,"1624756789",,,,[6]],[,,"76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}",,,,"7924123456"],[,,"808162\\d{4}",,,,"8081624567"],[,,"8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}",,,,"9016247890"],[,,,,,,,,,[-1]],[,,"70\\d{8}",,,,"7012345678"],[,,"56\\d{8}",,,,"5612345678"],"IM",44,"00","0",,,"0|([5-8]\\d{5})$","1624$1",,,,,[,,,,,,,,,[-1]],,"74576|(?:16|7[56])24",[,,,,,,,,,[-1]],[,,"3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],IN:[,[,,"(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",,,,,,,[8,9,10,11,12,13],[6,7]],[,,"2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}",,,,"7410410123",,,[10],[6,7,8]],[,,"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}",,,,"8123456789",,,[10]],[,,"000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))",,,,"1800123456"],[,,"186[12]\\d{9}",,,,"1861123456789",,,[13]],[,,"1860\\d{7}",,,,"18603451234",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IN",91,"00","0",,,"0",,,,[[,"(\\d{7})","$1",["575"]],[,"(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],,,1],[,"(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],,,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",,1],[,"(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",,1],[,"(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],,,1],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]],[,"(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],,,1]],[[,"(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],,,1],[,"(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],,,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",,1],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",,1],[,"(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",,1],[,"(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],,,1],[,"(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],,,1]],[,,,,,,,,,[-1]],,,[,,"1(?:600\\d{6}|800\\d{4,9})|(?:000800|18(?:03\\d\\d|6(?:0|[12]\\d\\d)))\\d{7}"],[,,"140\\d{7}",,,,"1409305260",,,[10]],,,[,,,,,,,,,[-1]]],IO:[,[,,"3\\d{6}",,,,,,,[7]],[,,"37\\d{5}",,,,"3709100"],[,,"38\\d{5}",,,,"3801234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IO",246,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IQ:[,[,,"(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",,,,,,,[8,9,10],[6,7]],[,,"1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}",,,,"12345678",,,[8,9],[6,7]],[,,"7[3-9]\\d{8}",,,,"7912345678",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"IQ",964,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],IR:[,[,,"[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",,,,,,,[4,5,6,7,10],[8]],[,,"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\d)|30[0-2]\\d|4(?:111|40\\d))\\d{4}",,,,"2123456789",,,[6,7,10],[4,5,8]],[,,"9(?:(?:0(?:[1-35]\\d|44)|(?:[13]\\d|2[0-2])\\d)\\d|9(?:(?:[0-2]\\d|44)\\d|5[15]0|8(?:1\\d|88)|9(?:0[013]|1[0134]|21|77|9[6-9])))\\d{5}",,,,"9123456789",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"993\\d{7}",,,,"9932123456",,,[10]],"IR",98,"00","0",,,"0",,,,[[,"(\\d{4,5})","$1",["96"],"0$1"],[,"(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))",,,,,,,[4,5,10]],[,,"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])",,,,"9601",,,[4,5]],,,[,,,,,,,,,[-1]]],IS:[,[,,"(?:38\\d|[4-9])\\d{6}",,,,,,,[7,9]],[,,"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-245]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}",,,,"4101234",,,[7]],[,,"(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[28]))\\d{4}",,,,"6111234"],[,,"80[08]\\d{4}",,,,"8001234",,,[7]],[,,"90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}",,,,"9001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"49[0-24-79]\\d{4}",,,,"4921234",,,[7]],"IS",354,"00|1(?:0(?:01|[12]0)|100)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"809\\d{4}",,,,"8091234",,,[7]],,,[,,"(?:689|8(?:7[18]|80)|95[48])\\d{4}",,,,"6891234",,,[7]]],IT:[,[,,"0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",,,,,,,[6,7,8,9,10,11,12]],[,,"0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}",,,,"0212345678",,,[6,7,8,9,10,11]],[,,"3[1-9]\\d{8}|3[2-9]\\d{7}",,,,"3123456789",,,[9,10]],[,,"80(?:0\\d{3}|3)\\d{3}",,,,"800123456",,,[6,9]],[,,"(?:0878\\d\\d|89(?:2|4[5-9]\\d))\\d{3}|89[45][0-4]\\d\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\d{6}",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{3}|[17])\\d{3}",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"IT",39,"00",,,,,,,,[[,"(\\d{4,5})","$1",["1(?:0|9[246])","1(?:0|9(?:2[2-9]|[46]))"]],[,"(\\d{6})","$1",["1(?:1|92)"]],[,"(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]],[,"(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],[,"(\\d{4})(\\d{4})","$1 $2",["894"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1[4679]|[38]"]],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]],[,"(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],[[,"(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],[,"(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]],[,"(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],[,"(\\d{4})(\\d{4})","$1 $2",["894"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1[4679]|[38]"]],[,"(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]],[,"(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],[,,,,,,,,,[-1]],1,,[,,"848\\d{6}",,,,,,,[9]],[,,,,,,,,,[-1]],,,[,,"3[2-8]\\d{9,10}",,,,"33101234501",,,[11,12]]],JE:[,[,,"1534\\d{6}|(?:[3578]\\d|90)\\d{8}",,,,,,,[10],[6]],[,,"1534[0-24-8]\\d{5}",,,,"1534456789",,,,[6]],[,,"7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}",,,,"7797712345"],[,,"80(?:07(?:35|81)|8901)\\d{4}",,,,"8007354567"],[,,"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}",,,,"9018105678"],[,,,,,,,,,[-1]],[,,"701511\\d{4}",,,,"7015115678"],[,,"56\\d{8}",,,,"5612345678"],"JE",44,"00","0",,,"0|([0-24-8]\\d{5})$","1534$1",,,,,[,,"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\d{6}",,,,"7640123456"],,,[,,,,,,,,,[-1]],[,,"(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}",,,,"5512345678"],,,[,,,,,,,,,[-1]]],JM:[,[,,"(?:[58]\\d\\d|658|900)\\d{7}",,,,,,,[10],[7]],[,,"(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:5(?:02|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[0237-9]|[23]\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}",,,,"8765230123",,,,[7]],[,,"(?:658295|876(?:(?:2[14-9]|[348]\\d)\\d|5(?:0[13-9]|17|[2-57-9]\\d|6[0-24-9])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}",,,,"8762101234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"JM",1,"011","1",,,"1",,,,,,[,,,,,,,,,[-1]],,"658|876",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],JO:[,[,,"900\\d{5}|(?:(?:[268]|7\\d)\\d|32|53)\\d{6}",,,,,,,[8,9]],[,,"(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[57][023]|6[03])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:[029]0|7[08]))\\d{4}",,,,"62001234",,,[8]],[,,"7(?:55[0-49]|(?:7[025-9]|8[0-25-9]|9\\d)\\d)\\d{5}",,,,"790123456",,,[9]],[,,"80\\d{6}",,,,"80012345",,,[8]],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,"85\\d{6}",,,,"85012345",,,[8]],[,,"70\\d{7}",,,,"700123456",,,[9]],[,,,,,,,,,[-1]],"JO",962,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],[,"(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],,[,,"74(?:66|77)\\d{5}",,,,"746612345",,,[9]],,,[,,,,,,,,,[-1]],[,,"8(?:10|8\\d)\\d{5}",,,,"88101234",,,[8]],,,[,,,,,,,,,[-1]]],JP:[,[,,"00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",,,,,,,[8,9,10,11,12,13,14,15,16,17]],[,,"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}",,,,"312345678",,,[9]],[,,"[7-9]0[1-9]\\d{7}",,,,"9012345678",,,[10]],[,,"00(?:(?:37|66)\\d{6,13}|(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d)|(?:120|800\\d)\\d{6}",,,,"120123456"],[,,"990\\d{6}",,,,"990123456",,,[9]],[,,,,,,,,,[-1]],[,,"60\\d{7}",,,,"601234567",,,[9]],[,,"50[1-9]\\d{7}",,,,"5012345678",,,[10]],"JP",81,"010","0",,,"0",,,,[[,"(\\d{4})(\\d{4})","$1-$2",["007","0077","00777","00777[01]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[78]|96)|477|51[24]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[78]|96[2457-9])|477|51[24]|636[2-57-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[279]|49|6[0-24-689]|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|6(?:[0-24]|5[0-3589]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3[3-8]|5[2-9])","[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3(?:[3-6][2-9]|7|8[2-5])|5[2-9])"],"0$1"],[,"(\\d{4})(\\d{2})(\\d{3,4})","$1-$2-$3",["007"]],[,"(\\d{4})(\\d{2})(\\d{4})","$1-$2-$3",["008"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]|80"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3,4})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{4})(\\d{4,5})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{5})(\\d{5,6})","$1-$2-$3",["0"]],[,"(\\d{4})(\\d{6})(\\d{6,7})","$1-$2-$3",["0"]]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],[,"(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[78]|96)|477|51[24]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[78]|96[2457-9])|477|51[24]|636[2-57-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[279]|49|6[0-24-689]|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|6(?:[0-24]|5[0-3589]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3[3-8]|5[2-9])","[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3(?:[3-6][2-9]|7|8[2-5])|5[2-9])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[2579]|80"],"0$1"]],[,,"20\\d{8}",,,,"2012345678",,,[10]],,,[,,"00(?:777(?:[01]|(?:5|8\\d)\\d)|882[1245]\\d\\d)\\d\\d|00(?:37|66)\\d{6,13}"],[,,"570\\d{6}",,,,"570123456",,,[9]],,,[,,,,,,,,,[-1]]],KE:[,[,,"(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",,,,,,,[7,8,9,10]],[,,"(?:4[245]|5[2-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|51|66)\\d{6,7}",,,,"202012345",,,[7,8,9]],[,,"(?:1(?:0[0-2]|1[01])|7\\d\\d)\\d{6}",,,,"712123456",,,[9]],[,,"800[24-8]\\d{5,6}",,,,"800223456",,,[9,10]],[,,"900[02-9]\\d{5}",,,,"900223456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KE",254,"000","0",,,"0",,,,[[,"(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KG:[,[,,"8\\d{9}|(?:[235-8]\\d|99)\\d{7}",,,,,,,[9,10],[5,6]],[,,"312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}",,,,"312123456",,,[9],[5,6]],[,,"(?:312(?:58\\d|973)|8801\\d\\d)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|7(?:[07]\\d|55)|99[05-9])\\d{6}",,,,"700123456",,,[9]],[,,"800\\d{6,7}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KG",996,"00","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],[,"(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KH:[,[,,"1\\d{9}|[1-9]\\d{7,8}",,,,,,,[8,9,10],[6,7]],[,,"23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})",,,,"23756789",,,[8,9],[6,7]],[,,"(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}",,,,"91234567",,,[8,9]],[,,"1800(?:1\\d|2[019])\\d{4}",,,,"1800123456",,,[10]],[,,"1900(?:1\\d|2[09])\\d{4}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KH",855,"00[14-9]","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KI:[,[,,"(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",,,,,,,[5,8]],[,,"(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}",,,,"31234"],[,,"(?:63\\d{3}|73(?:0[0-5]\\d|140))\\d{3}|[67]200[01]\\d{3}",,,,"72001234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"30(?:0[01]\\d\\d|12(?:11|20))\\d\\d",,,,"30010000",,,[8]],"KI",686,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KM:[,[,,"[3478]\\d{6}",,,,,,,[7],[4]],[,,"7[4-7]\\d{5}",,,,"7712345",,,,[4]],[,,"[34]\\d{6}",,,,"3212345"],[,,,,,,,,,[-1]],[,,"8\\d{6}",,,,"8001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KM",269,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KN:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\d{4}",,,,"8692361234",,,,[7]],[,,"869(?:5(?:5[6-8]|6[5-7])|66\\d|76[02-7])\\d{4}",,,,"8697652917",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KN",1,"011","1",,,"1|([2-7]\\d{6})$","869$1",,,,,[,,,,,,,,,[-1]],,"869",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KP:[,[,,"85\\d{6}|(?:19\\d|2)\\d{7}",,,,,,,[8,10],[6,7]],[,,"(?:2\\d|85)\\d{6}",,,,"21234567",,,[8],[6,7]],[,,"19[1-3]\\d{7}",,,,"1921234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KP",850,"00|99","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"238[02-9]\\d{4}|2(?:[0-24-9]\\d|3[0-79])\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KR:[,[,,"00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",,,,,,,[5,6,8,9,10,11,12,13,14],[3,4,7]],[,,"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}",,,,"22123456",,,[5,6,8,9,10],[3,4,7]],[,,"1(?:05(?:[0-8]\\d|9[0-5])|22[13]\\d)\\d{4,5}|1(?:0[1-46-9]|[16-9]\\d|2[013-9])\\d{6,7}",,,,"1020000000",,,[9,10]],[,,"00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|80)\\d{7}",,,,"801234567",,,[9,11,12,13,14]],[,,"60[2-9]\\d{6}",,,,"602345678",,,[9]],[,,,,,,,,,[-1]],[,,"50\\d{8,9}",,,,"5012345678",,,[10,11]],[,,"70\\d{8}",,,,"7012345678",,,[10]],"KR",82,"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","0",,,"0(8(?:[1-46-8]|5\\d\\d))?",,,,[[,"(\\d{5})","$1",["1[016-9]1","1[016-9]11","1[016-9]114"],"0$1"],[,"(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})","$1-$2",["1"]],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1","0$CC-$1"],[,"(\\d{5})(\\d{3})(\\d{3})","$1 $2 $3",["003","0030"]],[,"(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1","0$CC-$1"],[,"(\\d{5})(\\d{3,4})(\\d{4})","$1 $2 $3",["0"]],[,"(\\d{5})(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["0"]]],[[,"(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1","0$CC-$1"],[,"(\\d{4})(\\d{4})","$1-$2",["1"]],[,"(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1","0$CC-$1"],[,"(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1","0$CC-$1"]],[,,"15\\d{7,8}",,,,"1523456789",,,[9,10]],,,[,,"00(?:3(?:08\\d{6,7}|68\\d{7})|798\\d{7,9})",,,,,,,[11,12,13,14]],[,,"1(?:5(?:22|44|66|77|88|99)|6(?:[07]0|44|6[16]|88)|8(?:00|33|55|77|99))\\d{4}",,,,"15441234",,,[8]],,,[,,,,,,,,,[-1]]],KW:[,[,,"(?:18|[2569]\\d\\d)\\d{5}",,,,,,,[7,8]],[,,"2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}",,,,"22345678",,,[8]],[,,"(?:5(?:2(?:22|5[25])|88[58])|6(?:222|444|70[013-9]|888|93[039])|9(?:11[01]|333|500))\\d{4}|(?:5(?:[05]\\d|1[0-7]|6[56])|6(?:0[034679]|5[015-9]|6\\d|7[67]|9[069])|9(?:0[09]|22|[4679]\\d|55|8[057-9]))\\d{5}",,,,"50012345",,,[8]],[,,"18\\d{5}",,,,"1801234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"KW",965,"00",,,,,,,,[[,"(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],[,"(\\d{3})(\\d{5})","$1 $2",["[25]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KY:[,[,,"(?:345|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\d{4}",,,,"3452221234",,,,[7]],[,,"345(?:32[1-9]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[67]|2[2-9]|3[689]))\\d{4}",,,,"3453231234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"(?:345976|900[2-9]\\d\\d)\\d{4}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"KY",1,"011","1",,,"1|([2-9]\\d{6})$","345$1",,,,,[,,"345849\\d{4}",,,,"3458491234"],,"345",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],KZ:[,[,,"33622\\d{5}|(?:7\\d|80)\\d{8}",,,,,,,[10],[5,6]],[,,"(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9])|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-246-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}",,,,"7123456789",,,,[5,6]],[,,"7(?:0[0-25-8]|47|6[02-4]|7[15-8]|85)\\d{7}",,,,"7710009998"],[,,"800\\d{7}",,,,"8001234567"],[,,"809\\d{7}",,,,"8091234567"],[,,,,,,,,,[-1]],[,,"808\\d{7}",,,,"8081234567"],[,,"751\\d{7}",,,,"7511234567"],"KZ",7,"810","8",,,"8",,"8~10",,,,[,,,,,,,,,[-1]],,"33|7",[,,"751\\d{7}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LA:[,[,,"(?:2\\d|3)\\d{8}|(?:[235-8]\\d|41)\\d{6}",,,,,,,[8,9,10],[6]],[,,"(?:2[13]|[35-7][14]|41|8[1468])\\d{6}",,,,"21212862",,,[8],[6]],[,,"20(?:[29]\\d|5[24-689]|7[6-8])\\d{6}",,,,"2023123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LA",856,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["3"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"30\\d{7}",,,,"301234567",,,[9]],,,[,,,,,,,,,[-1]]],LB:[,[,,"[7-9]\\d{7}|[13-9]\\d{6}",,,,,,,[7,8]],[,,"(?:(?:[14-69]\\d|8[02-9])\\d|7(?:[2-57]\\d|62|8[0-7]|9[04-9]))\\d{4}",,,,"1123456",,,[7]],[,,"793(?:[01]\\d|2[0-4])\\d{3}|(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[89]|9[12]))\\d{5}",,,,"71123456"],[,,,,,,,,,[-1]],[,,"9[01]\\d{6}",,,,"90123456",,,[8]],[,,"80\\d{6}",,,,"80123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LB",961,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LC:[,[,,"(?:[58]\\d\\d|758|900)\\d{7}",,,,,,,[10],[7]],[,,"758(?:4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|638)\\d{4}",,,,"7584305678",,,,[7]],[,,"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[01]))\\d{4}",,,,"7582845678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"LC",1,"011","1",,,"1|([2-7]\\d{6})$","758$1",,,,,[,,,,,,,,,[-1]],,"758",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LI:[,[,,"90\\d{5}|(?:[2378]|6\\d\\d)\\d{6}",,,,,,,[7,9]],[,,"(?:2(?:01|1[27]|22|3\\d|6[02-578]|96)|3(?:33|40|7[0135-7]|8[048]|9[0269]))\\d{4}",,,,"2345678",,,[7]],[,,"(?:6(?:4(?:89|9\\d)|5[0-3]\\d|6(?:0[0-7]|10|2[06-9]|39))\\d|7(?:[37-9]\\d|42|56))\\d{4}",,,,"660234567"],[,,"80(?:02[28]|9\\d\\d)\\d\\d",,,,"8002222",,,[7]],[,,"90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d",,,,"9002222",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LI",423,"00","0",,,"0|(1001)",,,,[[,"(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[237-9]"],,"$CC $1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"870(?:28|87)\\d\\d",,,,"8702812",,,[7]],,,[,,"697(?:42|56|[78]\\d)\\d{4}",,,,"697861234",,,[9]]],LK:[,[,,"[1-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}",,,,"112345678",,,,[7]],[,,"7[0-25-8]\\d{7}",,,,"712345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LK",94,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"1973\\d{5}",,,,"197312345"],,,[,,,,,,,,,[-1]]],LR:[,[,,"(?:2|33|5\\d|77|88)\\d{7}|[45]\\d{6}",,,,,,,[7,8,9]],[,,"(?:2\\d{3}|33333)\\d{4}",,,,"21234567",,,[8,9]],[,,"(?:(?:330|555|(?:77|88)\\d)\\d|4[67])\\d{5}|5\\d{6}",,,,"770123456",,,[7,9]],[,,,,,,,,,[-1]],[,,"332(?:02|[34]\\d)\\d{4}",,,,"332021234",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LR",231,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[45]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3578]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LS:[,[,,"(?:[256]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"2\\d{7}",,,,"22123456"],[,,"[56]\\d{7}",,,,"50123456"],[,,"800[256]\\d{4}",,,,"80021234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LS",266,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2568]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LT:[,[,,"(?:[3469]\\d|52|[78]0)\\d{6}",,,,,,,[8]],[,,"(?:3[1478]|4[124-6]|52)\\d{6}",,,,"31234567"],[,,"6\\d{7}",,,,"61234567"],[,,"80[02]\\d{5}",,,,"80012345"],[,,"9(?:0[0239]|10)\\d{5}",,,,"90012345"],[,,"808\\d{5}",,,,"80812345"],[,,"70[05]\\d{5}",,,,"70012345"],[,,"[89]01\\d{5}",,,,"80123456"],"LT",370,"00","8",,,"[08]",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(8-$1)",,1],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",,1],[,"(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(8-$1)",,1],[,"(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(8-$1)",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70[67]\\d{5}",,,,"70712345"],,,[,,,,,,,,,[-1]]],LU:[,[,,"35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",,,,,,,[4,5,6,7,8,9,10,11]],[,,"(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}",,,,"27123456"],[,,"6(?:[269][18]|5[158]|7[189]|81)\\d{6}",,,,"628123456",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"90[015]\\d{5}",,,,"90012345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,,,,,,,,[-1]],[,,"20(?:1\\d{5}|[2-689]\\d{1,7})",,,,"20201234",,,[4,5,6,7,8,9,10]],"LU",352,"00",,,,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",,,,[[,"(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"],,"$CC $1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"],,"$CC $1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"],,"$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LV:[,[,,"(?:[268]\\d|90)\\d{6}",,,,,,,[8]],[,,"6\\d{7}",,,,"63123456"],[,,"2\\d{7}",,,,"21234567"],[,,"80\\d{6}",,,,"80123456"],[,,"90\\d{6}",,,,"90123456"],[,,"81\\d{6}",,,,"81123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LV",371,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],LY:[,[,,"[2-9]\\d{8}",,,,,,,[9],[7]],[,,"(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}",,,,"212345678",,,,[7]],[,,"9[1-6]\\d{7}",,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"LY",218,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MA:[,[,,"[5-8]\\d{8}",,,,,,,[9]],[,,"5(?:29(?:[189]0|29)|38[89]0)\\d{4}|5(?:2(?:[015-7]\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}",,,,"520123456"],[,,"(?:6(?:[0-79]\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\d{6}",,,,"650123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89\\d{7}",,,,"891234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"592(?:4[0-2]|93)\\d{4}",,,,"592401234"],"MA",212,"00","0",,,"0",,,,[[,"(\\d{5})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29|38)[89]"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],[,"(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"0$1"],[,"(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],[,"(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],,[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MC:[,[,,"870\\d{5}|(?:[349]|6\\d)\\d{7}",,,,,,,[8,9]],[,,"(?:870|9[2-47-9]\\d)\\d{5}",,,,"99123456",,,[8]],[,,"4(?:4\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}",,,,"612345678"],[,,"90\\d{6}",,,,"90123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MC",377,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["8"]],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[39]"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[39]"]],[,"(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],[,,,,,,,,,[-1]],,,[,,"870\\d{5}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MD:[,[,,"(?:[235-7]\\d|[89]0)\\d{6}",,,,,,,[8]],[,,"(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}",,,,"22212345"],[,,"562\\d{5}|(?:6\\d|7[16-9])\\d{6}",,,,"62112345"],[,,"800\\d{5}",,,,"80012345"],[,,"90[056]\\d{5}",,,,"90012345"],[,,"808\\d{5}",,,,"80812345"],[,,,,,,,,,[-1]],[,,"3[08]\\d{6}",,,,"30123456"],"MD",373,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"803\\d{5}",,,,"80312345"],,,[,,,,,,,,,[-1]]],ME:[,[,,"(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",,,,,,,[8,9],[6]],[,,"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}",,,,"30234567",,,[8],[6]],[,,"6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}",,,,"67622901",,,[8]],[,,"80(?:[0-2578]|9\\d)\\d{5}",,,,"80080002"],[,,"9(?:4[1568]|5[178])\\d{5}",,,,"94515151",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"78[1-49]\\d{5}",,,,"78108780",,,[8]],"ME",382,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"77[1-9]\\d{5}",,,,"77273012",,,[8]],,,[,,,,,,,,,[-1]]],MF:[,[,,"(?:590|69\\d|976)\\d{6}",,,,,,,[9]],[,,"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}",,,,"590271234"],[,,"69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}",,,,"690001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"976[01]\\d{5}",,,,"976012345"],"MF",590,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MG:[,[,,"[23]\\d{8}",,,,,,,[9],[7]],[,,"2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\d{5}",,,,"202123456",,,,[7]],[,,"3[2-49]\\d{7}",,,,"321234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"22\\d{7}",,,,"221234567"],"MG",261,"00","0",,,"0|([24-9]\\d{6})$","20$1",,,[[,"(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MH:[,[,,"329\\d{4}|(?:[256]\\d|45)\\d{5}",,,,,,,[7]],[,,"(?:247|528|625)\\d{4}",,,,"2471234"],[,,"(?:(?:23|54)5|329|45[56])\\d{4}",,,,"2351234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"635\\d{4}",,,,"6351234"],"MH",692,"011","1",,,"1",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MK:[,[,,"[2-578]\\d{7}",,,,,,,[8],[6,7]],[,,"(?:2(?:[23]\\d|5[0-24578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}",,,,"22012345",,,,[6,7]],[,,"7(?:(?:[0-25-8]\\d|3[2-4]|9[23])\\d|4(?:21|60))\\d{4}",,,,"72345678"],[,,"800\\d{5}",,,,"80012345"],[,,"5[02-9]\\d{6}",,,,"50012345"],[,,"8(?:0[1-9]|[1-9]\\d)\\d{5}",,,,"80123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MK",389,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ML:[,[,,"[24-9]\\d{7}",,,,,,,[8]],[,,"2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\d{5}",,,,"20212345"],[,,"2(?:079|17\\d)\\d{4}|(?:5[01]|[679]\\d|8[239])\\d{6}",,,,"65012345"],[,,"80\\d{6}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ML",223,"00",,,,,,,,[[,"(\\d{4})","$1",["67[057-9]|74[045]","67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],[,,,,,,,,,[-1]],,,[,,"80\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MM:[,[,,"1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",,,,,,,[6,7,8,9,10],[5]],[,,"(?:1(?:(?:2\\d|3[56]|[89][0-6])\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|2[246]|39|46|62|7[0-3]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[0-3])|3(?:20\\d|4(?:70|83)|56)|420\\d|5470)|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|247[23]|3(?:20\\d|470)|4(?:2[04]\\d|47[23])|7(?:(?:3\\d|8[01459])\\d|4(?:39|60|7[013]))))\\d{4}|5(?:2(?:2\\d{5,6}|47[023]\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[0-2])|8(?:20\\d|47[02])|9(?:20\\d|47[01]))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:2\\d|4[1-9]|51)\\d|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}",,,,"1234567",,,[6,7,8,9],[5]],[,,"(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6[6-9]|8[89]|9[5-8])\\d|7(?:3|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}",,,,"92123456",,,[7,8,9,10]],[,,"80080(?:[01][1-9]|2\\d)\\d{3}",,,,"8008001234",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1333\\d{4}|[12]468\\d{4}",,,,"13331234",,,[8]],"MM",95,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],[,"(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],[,"(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MN:[,[,,"[12]\\d{7,9}|[57-9]\\d{7}",,,,,,,[8,9,10],[4,5,6]],[,,"[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}|(?:11(?:3\\d|4[568])|(?:(?:21|5[0568])\\d|70[0-5])\\d)\\d{4}|[12]2(?:[1-3]\\d{5,6}|7\\d{6})",,,,"50123456",,,,[4,5,6]],[,,"(?:8(?:[05689]\\d|3[01])|9(?:[014-9]\\d|20|3[0-4]))\\d{5}",,,,"88123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"7(?:100|5(?:0[0579]|1[015]|[389]5|[57][57])|(?:6[0167]|7\\d|8[01])\\d)\\d{4}",,,,"75153456",,,[8]],"MN",976,"001","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],[,"(\\d{4})(\\d{4})","$1 $2",["[57-9]"]],[,"(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],[,"(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],[,"(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MO:[,[,,"(?:28|[68]\\d)\\d{6}",,,,,,,[8]],[,,"(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}",,,,"28212345"],[,,"6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:[02][5-9]|[146-8]\\d|[35][0-4]))\\d{4}",,,,"66123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MO",853,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[268]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MP:[,[,,"[58]\\d{9}|(?:67|90)0\\d{7}",,,,,,,[10],[7]],[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"670(?:2(?:3[3-7]|56|8[5-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}",,,,"6702345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MP",1,"011","1",,,"1|([2-9]\\d{6})$","670$1",,1,,,[,,,,,,,,,[-1]],,"670",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MQ:[,[,,"69\\d{7}|(?:59|97)6\\d{6}",,,,,,,[9]],[,,"596(?:0[0-7]|10|2[7-9]|3[05-9]|4[0-46-8]|[5-7]\\d|8[09]|9[4-8])\\d{4}",,,,"596301234"],[,,"69(?:6(?:[0-47-9]\\d|5[0-6]|6[0-4])|727)\\d{4}",,,,"696201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"976(?:6[1-9]|7[0-367])\\d{4}",,,,"976612345"],"MQ",596,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MR:[,[,,"(?:[2-4]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"(?:25[08]|35\\d|45[1-7])\\d{5}",,,,"35123456"],[,,"[2-4][0-46-9]\\d{6}",,,,"22123456"],[,,"800\\d{5}",,,,"80012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MR",222,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MS:[,[,,"66449\\d{5}|(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"664491\\d{4}",,,,"6644912345",,,,[7]],[,,"66449[2-6]\\d{4}",,,,"6644923456",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"MS",1,"011","1",,,"1|(4\\d{6})$","664$1",,,,,[,,,,,,,,,[-1]],,"664",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MT:[,[,,"3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",,,,,,,[8]],[,,"2(?:0(?:[19]\\d|3[1-4]|6[059])|[1-357]\\d\\d)\\d{4}",,,,"21001234"],[,,"(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}",,,,"96961234"],[,,"800[3467]\\d{4}",,,,"80071234"],[,,"5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}",,,,"50037123"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3550\\d{4}",,,,"35501234"],"MT",356,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]],,[,,"7117\\d{4}",,,,"71171234"],,,[,,,,,,,,,[-1]],[,,"501\\d{5}",,,,"50112345"],,,[,,,,,,,,,[-1]]],MU:[,[,,"(?:[2-468]|5\\d)\\d{6}",,,,,,,[7,8]],[,,"(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-7])|54(?:[34]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}",,,,"54480123"],[,,"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|5(?:2[589]|4[3489]|7\\d|8[0-689]|9[0-8])\\d{5}",,,,"52512345",,,[8]],[,,"80[0-2]\\d{4}",,,,"8001234",,,[7]],[,,"30\\d{5}",,,,"3012345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"3(?:20|9\\d)\\d{4}",,,,"3201234",,,[7]],"MU",230,"0(?:0|[24-7]0|3[03])",,,,,,"020",,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],[,"(\\d{4})(\\d{4})","$1 $2",["5"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MV:[,[,,"(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",,,,,,,[7,10]],[,,"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\d{4}",,,,"6701234",,,[7]],[,,"46[46]\\d{4}|(?:7[2-9]|9[13-9])\\d{5}",,,,"7712345",,,[7]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MV",960,"0(?:0|19)",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1-$2",["[3467]|9[13-9]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"4[05]0\\d{4}",,,,"4001234",,,[7]],,,[,,,,,,,,,[-1]]],MW:[,[,,"1\\d{6}(?:\\d{2})?|(?:[23]1|77|88|99)\\d{7}",,,,,,,[7,9]],[,,"(?:1[2-9]|21\\d\\d)\\d{5}",,,,"1234567"],[,,"111\\d{6}|(?:31|77|88|99)\\d{7}",,,,"991234567",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MW",265,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MX:[,[,,"(?:1(?:[01467]\\d|[2359][1-9]|8[1-79])|[2-9]\\d)\\d{8}",,,,,,,[10,11],[7,8]],[,,"(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}",,,,"2001234567",,,[10],[7,8]],[,,"(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\d{7}",,,,"12221234567",,,,[7,8]],[,,"8(?:00|88)\\d{7}",,,,"8001234567",,,[10]],[,,"900\\d{7}",,,,"9001234567",,,[10]],[,,"300\\d{7}",,,,"3001234567",,,[10]],[,,"500\\d{7}",,,,"5001234567",,,[10]],[,,,,,,,,,[-1]],"MX",52,"0[09]","01",,,"0(?:[12]|4[45])|1",,"00",,[[,"(\\d{5})","$1",["53"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],,,1],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],,,1],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],,,1]],[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],,,1],[,"(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],,,1],[,"(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],,,1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MY:[,[,,"1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",,,,,,,[8,9,10],[6,7]],[,,"(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}",,,,"323856789",,,[8,9],[6,7]],[,,"1(?:4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:0[3-9]|1[01]))|(?:[2379][2-9]|4[235-9]|(?:59|6)\\d)\\d|8(?:1[23]|[236]\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\d{5}",,,,"123456789",,,[9,10]],[,,"1[378]00\\d{6}",,,,"1300123456",,,[10]],[,,"1600\\d{6}",,,,"1600123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"154(?:6(?:0\\d|1[0-3])|8(?:[25]1|4[0189]|7[0-4679]))\\d{4}",,,,"1546012345",,,[10]],"MY",60,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[37][2-9]|8[1-9])|8"],"0$1"],[,"(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],MZ:[,[,,"(?:2|8\\d)\\d{7}",,,,,,,[8,9]],[,,"2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}",,,,"21123456",,,[8]],[,,"8[2-7]\\d{7}",,,,"821234567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"MZ",258,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-7]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NA:[,[,,"[68]\\d{7,8}",,,,,,,[8,9]],[,,"6(?:1(?:[02-4]\\d\\d|17)|2(?:17|54\\d|69|70)|3(?:17|2[0237]\\d|34|6[289]|7[01]|81)|4(?:17|(?:27|41|5[25])\\d|69|7[01])|5(?:17|2[236-8]\\d|69|7[01])|6(?:17|26\\d|38|42|69|7[01])|7(?:17|(?:2[2-4]|30)\\d|6[89]|7[01]))\\d{4}|6(?:1(?:2[2-7]|3[01378]|4[0-4]|69|7[014])|25[0-46-8]|32\\d|4(?:2[0-27]|4[016]|5[0-357])|52[02-9]|62[56]|7(?:2[2-69]|3[013]))\\d{4}",,,,"61221234"],[,,"(?:60|8[1245])\\d{7}",,,,"811234567",,,[9]],[,,"80\\d{7}",,,,"800123456",,,[9]],[,,"8701\\d{5}",,,,"870123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8(?:3\\d\\d|86)\\d{5}",,,,"88612345"],"NA",264,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NC:[,[,,"[2-57-9]\\d{5}",,,,,,,[6]],[,,"(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}",,,,"201234"],[,,"(?:5[0-4]|[79]\\d|8[0-79])\\d{4}",,,,"751234"],[,,,,,,,,,[-1]],[,,"36\\d{4}",,,,"366711"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NC",687,"00",,,,,,,,[[,"(\\d{3})","$1",["5[6-8]"]],[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[2-57-9]"]]],[[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[2-57-9]"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NE:[,[,,"[0289]\\d{7}",,,,,,,[8]],[,,"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}",,,,"20201234"],[,,"(?:23|8[014589]|9\\d)\\d{6}",,,,"93123456"],[,,"08\\d{6}",,,,"08123456"],[,,"09\\d{6}",,,,"09123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NE",227,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NF:[,[,,"[13]\\d{5}",,,,,,,[6],[5]],[,,"(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}",,,,"106609",,,,[5]],[,,"(?:14|3[58])\\d{4}",,,,"381234",,,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NF",672,"00",,,,"([0-258]\\d{4})$","3$1",,,[[,"(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],[,"(\\d)(\\d{5})","$1 $2",["[13]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NG:[,[,,"(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}",,,,,,,[7,8,10,11,12,13,14],[5,6]],[,,"(?:(?:[1-356]\\d|4[02-8]|7[0-79]|8[2-9])\\d|9(?:0[3-9]|[1-9]\\d))\\d{5}|(?:[12]\\d|4[147]|5[14579]|6[1578]|7[0-3578])\\d{5}",,,,"18040123",,,[7,8],[5,6]],[,,"(?:707[0-3]|8(?:01|19)[01])\\d{6}|(?:70[1-689]|8(?:0[2-9]|1[0-8])|90[1-9])\\d{7}",,,,"8021234567",,,[10]],[,,"800\\d{7,11}",,,,"80017591759",,,[10,11,12,13,14]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NG",234,"009","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"],[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-7]|8[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],[,"(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],[,"(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"700\\d{7,11}",,,,"7001234567",,,[10,11,12,13,14]],,,[,,,,,,,,,[-1]]],NI:[,[,,"(?:1800|[25-8]\\d{3})\\d{4}",,,,,,,[8]],[,,"2\\d{7}",,,,"21234567"],[,,"(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}",,,,"81234567"],[,,"1800\\d{4}",,,,"18001234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NI",505,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NL:[,[,,"(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|[89]\\d{6,9}|1\\d{4,5}",,,,,,,[5,6,7,8,9,10]],[,,"(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}",,,,"101234567",,,[9]],[,,"6[1-58]\\d{7}",,,,"612345678",,,[9]],[,,"800\\d{4,7}",,,,"8001234",,,[7,8,9,10]],[,,"90[069]\\d{4,7}",,,,"9061234",,,[7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:85|91)\\d{7}",,,,"851234567",,,[9]],"NL",31,"00","0",,,"0",,,,[[,"(\\d{4})","$1",["1[238]|[34]"]],[,"(\\d{2})(\\d{3,4})","$1 $2",["14"]],[,"(\\d{6})","$1",["1"]],[,"(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],[,"(\\d)(\\d{8})","$1 $2",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-57-9]"],"0$1"]],[[,"(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],[,"(\\d)(\\d{8})","$1 $2",["6"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-57-9]"],"0$1"]],[,,"66\\d{7}",,,,"662345678",,,[9]],,,[,,"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\d",,,,,,,[5,6]],[,,"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d",,,,"14020",,,[5,6,9]],,,[,,,,,,,,,[-1]]],NO:[,[,,"(?:0|[2-9]\\d{3})\\d{4}",,,,,,,[5,8]],[,,"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}",,,,"21234567",,,[8]],[,,"(?:4[015-8]|5[89]|9\\d)\\d{6}",,,,"40612345",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"NO",47,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[489]|5[89]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-7]"]]],,[,,,,,,,,,[-1]],1,"[02-689]|7[0-8]",[,,,,,,,,,[-1]],[,,"(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}",,,,"02000"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],NP:[,[,,"9\\d{9}|[1-9]\\d{7}",,,,,,,[8,10],[6,7]],[,,"1[0-6]\\d{6}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-79])[2-6]\\d{5}",,,,"14567890",,,[8],[6,7]],[,,"9(?:6[0-3]|7[245]|8[0-24-68])\\d{7}",,,,"9841234567",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NP",977,"00","0",,,"0",,,,[[,"(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],[,"(\\d{2})(\\d{6})","$1-$2",["[1-8]|9(?:[1-579]|6[2-6])"],"0$1"],[,"(\\d{3})(\\d{7})","$1-$2",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NR:[,[,,"(?:444|(?:55|8\\d)\\d|666)\\d{4}",,,,,,,[7]],[,,"444\\d{4}",,,,"4441234"],[,,"(?:55[3-9]|666|8\\d\\d)\\d{4}",,,,"5551234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NR",674,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NU:[,[,,"(?:[47]|888\\d)\\d{3}",,,,,,,[4,7]],[,,"[47]\\d{3}",,,,"7012",,,[4]],[,,"888[4-9]\\d{3}",,,,"8884012",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"NU",683,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],NZ:[,[,,"2\\d{7,9}|(?:[34]\\d|6[0-35-9])\\d{6}|(?:508|[79]\\d)\\d{6,7}|8\\d{4,9}",,,,,,,[5,6,7,8,9,10]],[,,"24099\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}",,,,"32345678",,,[8],[7]],[,,"2[0-28]\\d{8}|2[0-27-9]\\d{7}|21\\d{6}",,,,"211234567",,,[8,9,10]],[,,"508\\d{6,7}|80\\d{6,8}",,,,"800123456",,,[8,9,10]],[,,"90\\d{6,7}",,,,"900123456",,,[8,9]],[,,,,,,,,,[-1]],[,,"70\\d{7}",,,,"701234567",,,[9]],[,,,,,,,,,[-1]],"NZ",64,"0(?:0|161)","0",,,"0",,"00",,[[,"(\\d{2})(\\d{3,8})","$1 $2",["83"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0$1"],[,"(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[59]|80"],"0$1"],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["2[028]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7|86"],"0$1"]],,[,,"[28]6\\d{6,7}",,,,"26123456",,,[8,9]],,,[,,,,,,,,,[-1]],[,,"83\\d{3,8}",,,,"83012378"],,,[,,,,,,,,,[-1]]],OM:[,[,,"(?:1505|[279]\\d{3}|500)\\d{4}|8007\\d{4,5}",,,,,,,[7,8,9]],[,,"2[2-6]\\d{6}",,,,"23123456",,,[8]],[,,"(?:1505|90[1-9]\\d)\\d{4}|(?:7[1289]|9[1-9])\\d{6}",,,,"92123456",,,[8]],[,,"500\\d{4}|8007\\d{4,5}",,,,"80071234"],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"OM",968,"00",,,,,,,,[[,"(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],[,"(\\d{2})(\\d{6})","$1 $2",["2"]],[,"(\\d{4})(\\d{4})","$1 $2",["[179]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PA:[,[,,"(?:[1-57-9]|6\\d)\\d{6}",,,,,,,[7,8]],[,,"(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[139])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[026-9])|3(?:[089]\\d|1[014-7]|2[0-5]|33|4[0-79]|55|6[068]|7[03-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[6-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}",,,,"2001234",,,[7]],[,,"(?:1[16]1|21[89]|6(?:[02-9]\\d|1[0-6])\\d|8(?:1[01]|7[23]))\\d{4}",,,,"61234567"],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}",,,,"8601234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PA",507,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],[,"(\\d{4})(\\d{4})","$1-$2",["6"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PE:[,[,,"(?:[14-8]|9\\d)\\d{7}",,,,,,,[8,9],[6,7]],[,,"19(?:[02-68]\\d|1[035-9]|7[0-689]|9[1-9])\\d{4}|(?:1[0-8]|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\d{6}",,,,"11234567",,,[8],[6,7]],[,,"9\\d{8}",,,,"912345678",,,[9]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"805\\d{5}",,,,"80512345",,,[8]],[,,"801\\d{5}",,,,"80112345",,,[8]],[,,"80[24]\\d{5}",,,,"80212345",,,[8]],[,,,,,,,,,[-1]],"PE",51,"19(?:1[124]|77|90)00","0"," Anexo ",,"0",,,,[[,"(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],[,"(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],[,"(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PF:[,[,,"[48]\\d{7}|4\\d{5}",,,,,,,[6,8]],[,,"4(?:0[4-689]|9[4-68])\\d{5}",,,,"40412345",,,[8]],[,,"8[7-9]\\d{6}",,,,"87123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"499\\d{5}",,,,"49901234",,,[8]],"PF",689,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[48]"]]],,[,,,,,,,,,[-1]],,,[,,"44\\d{4}",,,,,,,[6]],[,,"44\\d{4}",,,,"440123",,,[6]],,,[,,,,,,,,,[-1]]],PG:[,[,,"(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",,,,,,,[7,8]],[,,"(?:64[1-9]|7730|85[02-46-9])\\d{4}|(?:3[0-2]|4[257]|5[34]|77[0-24]|9[78])\\d{5}",,,,"3123456"],[,,"77(?:3[1-9]|[5-9]\\d)\\d{4}|(?:7[0-689]|81)\\d{6}",,,,"70123456",,,[8]],[,,"180\\d{4}",,,,"1801234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"2(?:0[0-47]|7[568])\\d{4}",,,,"2751234",,,[7]],"PG",675,"00|140[1-3]",,,,,,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],[,"(\\d{4})(\\d{4})","$1 $2",["[78]"]]],,[,,"27[01]\\d{4}",,,,"2700123",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PH:[,[,,"1800\\d{7,9}|(?:2|[89]\\d{4})\\d{5}|[2-8]\\d{8}|[28]\\d{7}",,,,,,,[6,8,9,10,11,12,13],[4,5,7]],[,,"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|2\\d{5}(?:\\d{2})?|8[2-8]\\d{7}",,,,"21234567",,,[6,8,9,10],[4,5,7]],[,,"(?:81[37]|9(?:0[5-9]|1[0-24-9]|2[0-35-9]|[35]\\d|4[235-9]|6[0-25-8]|7[1-9]|8[19]|9[4-9]))\\d{7}",,,,"9051234567",,,[10]],[,,"1800\\d{7,9}",,,,"180012345678",,,[11,12,13]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PH",63,"00","0",,,"0",,,,[[,"(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],[,"(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],[,"(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PK:[,[,,"122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",,,,,,,[8,9,10,11,12],[5,6,7]],[,,"(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}",,,,"2123456789",,,[9,10],[5,6,7,8]],[,,"3(?:[014]\\d|2[0-5]|3[0-7]|55|64)\\d{7}",,,,"3012345678",,,[10]],[,,"800\\d{5}",,,,"80012345",,,[8]],[,,"900\\d{5}",,,,"90012345",,,[8]],[,,,,,,,,,[-1]],[,,"122\\d{6}",,,,"122044444",,,[9]],[,,,,,,,,,[-1]],"PK",92,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["[89]0"],"0$1"],[,"(\\d{4})(\\d{5})","$1 $2",["1"]],[,"(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],[,"(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],[,"(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],[,"(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}",,,,"21111825888",,,[11,12]],,,[,,,,,,,,,[-1]]],PL:[,[,,"[1-57-9]\\d{6}(?:\\d{2})?|6\\d{5,8}",,,,,,,[6,7,8,9]],[,,"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))",,,,"123456789",,,[7,9]],[,,"(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",,,,"512345678",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"70[01346-8]\\d{6}",,,,"701234567",,,[9]],[,,"801\\d{6}",,,,"801234567",,,[9]],[,,,,,,,,,[-1]],[,,"39\\d{7}",,,,"391234567",,,[9]],"PL",48,"00",,,,,,,,[[,"(\\d{5})","$1",["19"]],[,"(\\d{3})(\\d{3})","$1 $2",["11|64"]],[,"(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],[,"(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|45|5[0137]|6[0469]|7[02389]|8[08]"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-8]|9[145]"]]],,[,,"64\\d{4,7}",,,,"641234567"],,,[,,,,,,,,,[-1]],[,,"804\\d{6}",,,,"804123456",,,[9]],,,[,,,,,,,,,[-1]]],PM:[,[,,"[45]\\d{5}",,,,,,,[6]],[,,"(?:4[1-3]|50)\\d{4}",,,,"430123"],[,,"(?:4[02-4]|5[05])\\d{4}",,,,"551234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PM",508,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PR:[,[,,"(?:[589]\\d\\d|787)\\d{7}",,,,,,,[10],[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"(?:787|939)[2-9]\\d{6}",,,,"7872345678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"PR",1,"011","1",,,"1",,,1,,,[,,,,,,,,,[-1]],,"787|939",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PS:[,[,,"[2489]2\\d{6}|(?:1\\d|5)\\d{8}",,,,,,,[8,9,10],[7]],[,,"(?:22[2-47-9]|42[45]|82[01458]|92[369])\\d{5}",,,,"22234567",,,[8],[7]],[,,"5[69]\\d{7}",,,,"599123456",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,,,,,,,,[-1]],[,,"1700\\d{6}",,,,"1700123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PS",970,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PT:[,[,,"(?:[26-9]\\d|30)\\d{7}",,,,,,,[9]],[,,"2(?:[12]\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\d{6}",,,,"212345678"],[,,"6[356]9230\\d{3}|(?:6[036]93|9(?:[1-36]\\d\\d|480))\\d{5}",,,,"912345678"],[,,"80[02]\\d{6}",,,,"800123456"],[,,"(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}",,,,"760123456"],[,,"80(?:8\\d|9[1579])\\d{5}",,,,"808123456"],[,,"884[0-4689]\\d{5}",,,,"884123456"],[,,"30\\d{7}",,,,"301234567"],"PT",351,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"70(?:7\\d|8[17])\\d{5}",,,,"707123456"],,,[,,"600\\d{6}",,,,"600110000"]],PW:[,[,,"(?:[24-8]\\d\\d|345|900)\\d{4}",,,,,,,[7]],[,,"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}",,,,"2771234"],[,,"(?:45[0-5]|6[2-4689]0|77\\d|88[0-4])\\d{4}",,,,"6201234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"PW",680,"01[12]",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],PY:[,[,,"59\\d{4,6}|(?:[2-46-9]\\d|5[0-8])\\d{4,7}",,,,,,,[6,7,8,9],[5]],[,,"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}",,,,"212345678",,,[7,8,9],[5,6]],[,,"9(?:51|6[129]|[78][1-6]|9[1-5])\\d{6}",,,,"961456789",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"8700[0-4]\\d{4}",,,,"870012345",,,[9]],"PY",595,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],[,"(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],[,"(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],[,"(\\d{3})(\\d{6})","$1 $2",["9"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"[2-9]0\\d{4,7}",,,,"201234567"],,,[,,,,,,,,,[-1]]],QA:[,[,,"[2-7]\\d{7}|(?:2\\d\\d|800)\\d{4}",,,,,,,[7,8]],[,,"4[04]\\d{6}",,,,"44123456",,,[8]],[,,"(?:28|[35-7]\\d)\\d{6}",,,,"33123456",,,[8]],[,,"800\\d{4}",,,,"8001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"QA",974,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["2[126]|8"]],[,"(\\d{4})(\\d{4})","$1 $2",["[2-7]"]]],,[,,"2(?:[12]\\d|61)\\d{4}",,,,"2123456",,,[7]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RE:[,[,,"9769\\d{5}|(?:26|[68]\\d)\\d{7}",,,,,,,[9]],[,,"26(?:2\\d\\d|30[01])\\d{4}",,,,"262161234"],[,,"(?:69(?:2\\d\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\d|5[05]|6[0-26]|7[0-27]|8[0-8]|9[0-479]))|9769\\d)\\d{4}",,,,"692123456"],[,,"80\\d{7}",,,,"801234567"],[,,"89[1-37-9]\\d{6}",,,,"891123456"],[,,"8(?:1[019]|2[0156]|84|90)\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RE",262,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2689]"],"0$1"]],,[,,,,,,,,,[-1]],1,"26[23]|69|[89]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RO:[,[,,"(?:[237]\\d|[89]0)\\d{7}|[23]\\d{5}",,,,,,,[6,9]],[,,"[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d",,,,"211234567"],[,,"7[01]20\\d{5}|7(?:0[013-9]|1[01]|[2-7]\\d|8[03-8]|9[09])\\d{6}",,,,"712034567",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"90[0136]\\d{6}",,,,"900123456",,,[9]],[,,"801\\d{6}",,,,"801123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RO",40,"00","0"," int ",,"0",,,,[[,"(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],[,"(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[237-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:37\\d|80[578])\\d{6}",,,,"372123456",,,[9]],,,[,,,,,,,,,[-1]]],RS:[,[,,"38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",,,,,,,[6,7,8,9,10,11,12],[4,5]],[,,"(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}",,,,"10234567",,,[7,8,9,10,11,12],[4,5,6]],[,,"6(?:[0-689]|7\\d)\\d{6,7}",,,,"601234567",,,[8,9,10]],[,,"800\\d{3,9}",,,,"80012345"],[,,"(?:78\\d|90[0169])\\d{3,7}",,,,"90012345",,,[6,7,8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RS",381,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],[,"(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7[06]\\d{4,10}",,,,"700123456"],,,[,,,,,,,,,[-1]]],RU:[,[,,"[347-9]\\d{9}",,,,,,,[10],[7]],[,,"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\d{7}",,,,"3011234567",,,,[7]],[,,"9\\d{9}",,,,"9123456789"],[,,"80[04]\\d{7}",,,,"8001234567"],[,,"80[39]\\d{7}",,,,"8091234567"],[,,,,,,,,,[-1]],[,,"808\\d{7}",,,,"8081234567"],[,,,,,,,,,[-1]],"RU",7,"810","8",,,"8",,"8~10",,[[,"(\\d{3})(\\d{2})(\\d{2})","$1-$2-$3",["[0-79]"]],[,"(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",,1],[,"(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[3489]"],"8 ($1)",,1]],[[,"(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",,1],[,"(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[3489]"],"8 ($1)",,1]],[,,,,,,,,,[-1]],1,"3[04-689]|[489]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],RW:[,[,,"(?:06|[27]\\d\\d|[89]00)\\d{6}",,,,,,,[8,9]],[,,"(?:06|2[23568]\\d)\\d{6}",,,,"250123456"],[,,"7[238]\\d{7}",,,,"720123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"900\\d{6}",,,,"900123456",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"RW",250,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SA:[,[,,"92\\d{7}|(?:[15]|8\\d)\\d{8}",,,,,,,[9,10],[7]],[,,"1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}",,,,"112345678",,,[9],[7]],[,,"5(?:[013-689]\\d|7[0-36-8])\\d{6}",,,,"512345678",,,[9]],[,,"800\\d{7}",,,,"8001234567",,,[10]],[,,"925\\d{6}",,,,"925012345",,,[9]],[,,"920\\d{6}",,,,"920012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SA",966,"00","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["9"]],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"811\\d{7}",,,,"8110123456",,,[10]],,,[,,,,,,,,,[-1]]],SB:[,[,,"(?:[1-6]|[7-9]\\d\\d)\\d{4}",,,,,,,[5,7]],[,,"(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}",,,,"40123",,,[5]],[,,"48\\d{3}|(?:(?:7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}",,,,"7421234"],[,,"1[38]\\d{3}",,,,"18123",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[12]\\d{3}",,,,"51123",,,[5]],"SB",677,"0[01]",,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["7|8[4-9]|9(?:[1-8]|9[0-8])"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SC:[,[,,"8000\\d{3}|(?:[249]\\d|64)\\d{5}",,,,,,,[7]],[,,"4[2-46]\\d{5}",,,,"4217123"],[,,"2[5-8]\\d{5}",,,,"2510123"],[,,"8000\\d{3}",,,,"8000000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"971\\d{4}|(?:64|95)\\d{5}",,,,"6412345"],"SC",248,"010|0[0-2]",,,,,,"00",,[[,"(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SD:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"1(?:5\\d|8[35-7])\\d{6}",,,,"153123456"],[,,"(?:1[0-2]|9[0-3569])\\d{7}",,,,"911231234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SD",249,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SE:[,[,,"(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",,,,,,,[6,7,8,9,10,12]],[,,"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}",,,,"8123456",,,[7,8,9]],[,,"7[02369]\\d{7}",,,,"701234567",,,[9]],[,,"20\\d{4,7}",,,,"20123456",,,[6,7,8,9]],[,,"649\\d{6}|9(?:00|39|44)[1-8]\\d{3,6}",,,,"9001234567",,,[7,8,9,10]],[,,"77[0-7]\\d{6}",,,,"771234567",,,[9]],[,,"75[1-8]\\d{6}",,,,"751234567",,,[9]],[,,,,,,,,,[-1]],"SE",46,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1"],[,"(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44)"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1"],[,"(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1"],[,"(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1"],[,"(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1"],[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1"],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1"]],[[,"(\\d{2})(\\d{2,3})(\\d{2})","$1 $2 $3",["20"]],[,"(\\d{3})(\\d{4})","$1 $2",["9(?:00|39|44)"]],[,"(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"]],[,"(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{3})(\\d{2,3})(\\d{2})","$1 $2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"]],[,"(\\d{3})(\\d{2,3})(\\d{3})","$1 $2 $3",["9(?:00|39|44)"]],[,"(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["10|7"]],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"]],[,"(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["9"]],[,"(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]]],[,,"74[02-9]\\d{6}",,,,"740123456",,,[9]],,,[,,,,,,,,,[-1]],[,,"10[1-8]\\d{6}",,,,"102345678",,,[9]],,,[,,"(?:25[245]|67[3-68])\\d{9}",,,,"254123456789",,,[12]]],SG:[,[,,"(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",,,,,,,[8,10,11]],[,,"662[0-24-9]\\d{4}|6(?:[1-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}",,,,"61234567",,,[8]],[,,"(?:8(?:[1-8]\\d\\d|9(?:[014]\\d|2[1-9]|3[0-489]))|9[0-8]\\d\\d)\\d{4}",,,,"81234567",,,[8]],[,,"(?:18|8)00\\d{7}",,,,"18001234567",,,[10,11]],[,,"1900\\d{7}",,,,"19001234567",,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:3[12]\\d\\d|666[46])\\d{4}",,,,"31234567",,,[8]],"SG",65,"0[0-3]\\d",,,,,,,,[[,"(\\d{4,5})","$1",["1[013-9]|77","1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]],[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8[1-9]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],[[,"(\\d{4})(\\d{4})","$1 $2",["[369]|8[1-9]"]],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],[,"(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],[,"(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"7000\\d{7}",,,,"70001234567",,,[11]],,,[,,,,,,,,,[-1]]],SH:[,[,,"(?:[256]\\d|8)\\d{3}",,,,,,,[4,5]],[,,"2(?:[0-57-9]\\d|6[4-9])\\d\\d",,,,"22158"],[,,"[56]\\d{4}",,,,"51234",,,[5]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"262\\d\\d",,,,"26212",,,[5]],"SH",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],1,"[256]",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SI:[,[,,"[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",,,,,,,[5,6,7,8]],[,,"(?:[1-357][2-8]|4[24-8])\\d{6}",,,,"12345678",,,[8],[7]],[,,"65(?:1\\d|55|[67]0)\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}",,,,"31234567",,,[8]],[,,"80\\d{4,6}",,,,"80123456",,,[6,7,8]],[,,"89[1-3]\\d{2,5}|90\\d{4,6}",,,,"90123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"(?:59\\d\\d|8(?:1(?:[67]\\d|8[01389])|2(?:0\\d|2[0378]|8[0-2489])|3[389]\\d))\\d{4}",,,,"59012345",,,[8]],"SI",386,"00|10(?:22|66|88|99)","0",,,"0",,"00",,[[,"(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],[,"(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],[,"(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SJ:[,[,,"0\\d{4}|(?:[4589]\\d|79)\\d{6}",,,,,,,[5,8]],[,,"79\\d{6}",,,,"79123456",,,[8]],[,,"(?:4[015-8]|5[89]|9\\d)\\d{6}",,,,"41234567",,,[8]],[,,"80[01]\\d{5}",,,,"80012345",,,[8]],[,,"82[09]\\d{5}",,,,"82012345",,,[8]],[,,"810(?:0[0-6]|[2-8]\\d)\\d{3}",,,,"81021234",,,[8]],[,,"880\\d{5}",,,,"88012345",,,[8]],[,,"85[0-5]\\d{5}",,,,"85012345",,,[8]],"SJ",47,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"79",[,,,,,,,,,[-1]],[,,"(?:0[2-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}",,,,"02000"],,,[,,"81[23]\\d{5}",,,,"81212345",,,[8]]],SK:[,[,,"[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",,,,,,,[6,7,9]],[,,"(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d",,,,"221234567"],[,,"909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}",,,,"912123456",,,[9]],[,,"800\\d{6}",,,,"800123456",,,[9]],[,,"9(?:00|[78]\\d)\\d{6}",,,,"900123456",,,[9]],[,,"8[5-9]\\d{7}",,,,"850123456",,,[9]],[,,,,,,,,,[-1]],[,,"6(?:02|5[0-4]|9[0-6])\\d{6}",,,,"690123456",,,[9]],"SK",421,"00","0",,,"0",,,,[[,"(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],[,"(\\d{4})(\\d{3})","$1 $2",["909","9090"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],[[,"(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],[,"(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],[,"(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],[,,"9090\\d{3}",,,,"9090123",,,[7]],,,[,,"9090\\d{3}|(?:602|8(?:00|[5-9]\\d)|9(?:00|[78]\\d))\\d{6}",,,,,,,[7,9]],[,,"96\\d{7}",,,,"961234567",,,[9]],,,[,,,,,,,,,[-1]]],SL:[,[,,"(?:[2378]\\d|66|99)\\d{6}",,,,,,,[8],[6]],[,,"22[2-4][2-9]\\d{4}",,,,"22221234",,,,[6]],[,,"(?:25|3[013-5]|66|7[5-9]|8[08]|99)\\d{6}",,,,"25123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SL",232,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SM:[,[,,"(?:0549|[5-7]\\d)\\d{6}",,,,,,,[8,10],[6]],[,,"0549(?:8[0157-9]|9\\d)\\d{4}",,,,"0549886377",,,[10],[6]],[,,"6[16]\\d{6}",,,,"66661212",,,[8]],[,,,,,,,,,[-1]],[,,"7[178]\\d{6}",,,,"71123456",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"5[158]\\d{6}",,,,"58001110",,,[8]],"SM",378,"00",,,,"([89]\\d{5})$","0549$1",,,[[,"(\\d{6})","$1",["[89]"]],[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(\\d{4})(\\d{6})","$1 $2",["0"]]],[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],[,"(\\d{4})(\\d{6})","$1 $2",["0"]]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SN:[,[,,"(?:[378]\\d{4}|93330)\\d{4}",,,,,,,[9]],[,,"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}",,,,"301012345"],[,,"7(?:[06-8]\\d|21|90)\\d{6}",,,,"701234567"],[,,"800\\d{6}",,,,"800123456"],[,,"88[4689]\\d{6}",,,,"884123456"],[,,"81[02468]\\d{6}",,,,"810123456"],[,,,,,,,,,[-1]],[,,"93330\\d{4}|3(?:392|9[01]\\d)\\d{5}",,,,"933301234"],"SN",221,"00",,,,,,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SO:[,[,,"[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",,,,,,,[6,7,8,9]],[,,"(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}",,,,"4012345",,,[6,7]],[,,"28\\d{5}|(?:6[1-9]|79)\\d{6,7}|(?:15|24|(?:3[59]|4[89]|8[08])\\d|60|7[1-8]|9(?:0\\d|[2-9]))\\d{6}",,,,"71123456",,,[7,8,9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SO",252,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{4})","$1 $2",["8[125]"]],[,"(\\d{6})","$1",["[134]"]],[,"(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],[,"(\\d)(\\d{7})","$1 $2",["24|[67]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3478]|64|90"]],[,"(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[1-35-9]|9[2-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SR:[,[,,"(?:[2-5]|68|[78]\\d)\\d{5}",,,,,,,[6,7]],[,,"(?:2[1-3]|3[0-7]|(?:4|68)\\d|5[2-58])\\d{4}",,,,"211234"],[,,"(?:7[124-7]|8[125-9])\\d{5}",,,,"7412345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"56\\d{4}",,,,"561234",,,[6]],"SR",597,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],[,"(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],[,"(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SS:[,[,,"[19]\\d{8}",,,,,,,[9]],[,,"18\\d{7}",,,,"181234567"],[,,"(?:12|9[1257])\\d{7}",,,,"977123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SS",211,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ST:[,[,,"(?:22|9\\d)\\d{5}",,,,,,,[7]],[,,"22\\d{5}",,,,"2221234"],[,,"900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}",,,,"9812345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"ST",239,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[29]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SV:[,[,,"[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?",,,,,,,[7,8,11]],[,,"2[1-6]\\d{6}",,,,"21234567",,,[8]],[,,"[67]\\d{7}",,,,"70123456",,,[8]],[,,"800\\d{4}(?:\\d{4})?",,,,"8001234",,,[7,11]],[,,"900\\d{4}(?:\\d{4})?",,,,"9001234",,,[7,11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SV",503,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[89]"]],[,"(\\d{4})(\\d{4})","$1 $2",["[267]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SX:[,[,,"7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"7215(?:4[2-8]|8[239]|9[056])\\d{4}",,,,"7215425678",,,,[7]],[,,"7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}",,,,"7215205678",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002123456"],[,,"900[2-9]\\d{6}",,,,"9002123456"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"SX",1,"011","1",,,"1|(5\\d{6})$","721$1",,,,,[,,,,,,,,,[-1]],,"721",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SY:[,[,,"[1-39]\\d{8}|[1-5]\\d{7}",,,,,,,[8,9],[6,7]],[,,"[12]1\\d{6,7}|(?:1(?:[2356]|4\\d)|2[235]|3(?:[13]\\d|4)|4[13]|5[1-3])\\d{6}",,,,"112345678",,,,[6,7]],[,,"9(?:22|[3-589]\\d|6[024-9])\\d{6}",,,,"944567890",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"SY",963,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],SZ:[,[,,"0800\\d{4}|(?:[237]\\d|900)\\d{6}",,,,,,,[8,9]],[,,"[23][2-5]\\d{6}",,,,"22171234",,,[8]],[,,"7[6-9]\\d{6}",,,,"76123456",,,[8]],[,,"0800\\d{4}",,,,"08001234",,,[8]],[,,"900\\d{6}",,,,"900012345",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"70\\d{6}",,,,"70012345",,,[8]],"SZ",268,"00",,,,,,,,[[,"(\\d{4})(\\d{4})","$1 $2",["[0237]"]],[,"(\\d{5})(\\d{4})","$1 $2",["9"]]],,[,,,,,,,,,[-1]],,,[,,"0800\\d{4}",,,,,,,[8]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TA:[,[,,"8\\d{3}",,,,,,,[4]],[,,"8\\d{3}",,,,"8999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TA",290,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"8",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TC:[,[,,"(?:[58]\\d\\d|649|900)\\d{7}",,,,,,,[10],[7]],[,,"649(?:712|9(?:4\\d|50))\\d{4}",,,,"6497121234",,,,[7]],[,,"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-8])|4[34][1-3])\\d{4}",,,,"6492311234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,"64971[01]\\d{4}",,,,"6497101234",,,,[7]],"TC",1,"011","1",,,"1|([2-479]\\d{6})$","649$1",,,,,[,,,,,,,,,[-1]],,"649",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TD:[,[,,"(?:22|[69]\\d|77)\\d{6}",,,,,,,[8]],[,,"22(?:[37-9]0|5[0-5]|6[89])\\d{4}",,,,"22501234"],[,,"(?:6[023568]|77|9\\d)\\d{6}",,,,"63012345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TD",235,"00|16",,,,,,"00",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2679]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TG:[,[,,"[279]\\d{7}",,,,,,,[8]],[,,"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}",,,,"22212345"],[,,"(?:7[09]|9[0-36-9])\\d{6}",,,,"90112345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TG",228,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TH:[,[,,"1\\d{8,9}|(?:[2-57]|[689]\\d)\\d{7}",,,,,,,[8,9,10]],[,,"(?:2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}",,,,"21234567",,,[8]],[,,"(?:14|6[1-6]|[89]\\d)\\d{7}",,,,"812345678",,,[9]],[,,"1800\\d{6}",,,,"1800123456",,,[10]],[,,"1900\\d{6}",,,,"1900123456",,,[10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"6[08]\\d{7}",,,,"601234567",,,[9]],"TH",66,"00[1-9]","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["14|[3-9]"],"0$1"],[,"(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TJ:[,[,,"(?:00|11|[3-579]\\d|88)\\d{7}",,,,,,,[9],[3,5,6,7]],[,,"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}",,,,"372123456",,,,[3,5,6,7]],[,,"41[18]\\d{6}|(?:00|11|5[05]|7[07]|88|9\\d)\\d{7}",,,,"917123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TJ",992,"810","8",,,"8",,"8~10",,[[,"(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"],,,1],[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"],,,1],[,"(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3"],,,1],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[0457-9]|11"],,,1]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TK:[,[,,"[2-47]\\d{3,6}",,,,,,,[4,5,6,7]],[,,"(?:2[2-4]|[34]\\d)\\d{2,5}",,,,"3101"],[,,"7[2-4]\\d{2,5}",,,,"7290"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TK",690,"00",,,,,,,,,,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TL:[,[,,"7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",,,,,,,[7,8]],[,,"(?:2[1-5]|3[1-9]|4[1-4])\\d{5}",,,,"2112345",,,[7]],[,,"7[2-8]\\d{6}",,,,"77212345",,,[8]],[,,"80\\d{5}",,,,"8012345",,,[7]],[,,"90\\d{5}",,,,"9012345",,,[7]],[,,,,,,,,,[-1]],[,,"70\\d{5}",,,,"7012345",,,[7]],[,,,,,,,,,[-1]],"TL",670,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],[,"(\\d{4})(\\d{4})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TM:[,[,,"[1-6]\\d{7}",,,,,,,[8]],[,,"(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}",,,,"12345678"],[,,"6\\d{7}",,,,"66123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TM",993,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],[,"(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],[,"(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TN:[,[,,"[2-57-9]\\d{7}",,,,,,,[8]],[,,"81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}",,,,"30010123"],[,,"3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-6])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}",,,,"20123456"],[,,"8010\\d{4}",,,,"80101234"],[,,"88\\d{6}",,,,"88123456"],[,,"8[12]10\\d{4}",,,,"81101234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TN",216,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TO:[,[,,"(?:0800|[5-8]\\d{3})\\d{3}|[2-8]\\d{4}",,,,,,,[5,7]],[,,"(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}",,,,"20123",,,[5]],[,,"6(?:3[02]|8[5-9])\\d{4}|(?:6[09]|7\\d|8[46-9])\\d{5}",,,,"7715123",,,[7]],[,,"0800\\d{3}",,,,"0800222",,,[7]],[,,"55[04]\\d{4}",,,,"5501234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TO",676,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],[,"(\\d{4})(\\d{3})","$1 $2",["0"]],[,"(\\d{3})(\\d{4})","$1 $2",["[5-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TR:[,[,,"(?:4|8\\d{5})\\d{6}|(?:[2-58]\\d\\d|900)\\d{7}",,,,,,,[7,10,12]],[,,"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}",,,,"2123456789",,,[10]],[,,"56161\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}",,,,"5012345678",,,[10]],[,,"800\\d{7}(?:\\d{2})?",,,,"8001234567",,,[10,12]],[,,"(?:8[89]8|900)\\d{7}",,,,"9001234567",,,[10]],[,,,,,,,,,[-1]],[,,"592(?:21[12]|461)\\d{4}",,,,"5922121234",,,[10]],[,,,,,,,,,[-1]],"TR",90,"00","0",,,"0",,,,[[,"(\\d{3})(\\d)(\\d{3})","$1 $2 $3",["444"],,,1],[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[0589]|90"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",,1],[,"(\\d{3})(\\d{3})(\\d{6})","$1 $2 $3",["80"],"0$1",,1]],[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[0589]|90"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",,1],[,"(\\d{3})(\\d{3})(\\d{6})","$1 $2 $3",["80"],"0$1",,1]],[,,"512\\d{7}",,,,"5123456789",,,[10]],,,[,,"444\\d{4}",,,,,,,[7]],[,,"(?:444|850\\d{3})\\d{4}",,,,"4441444",,,[7,10]],,,[,,,,,,,,,[-1]]],TT:[,[,,"(?:[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"868(?:2(?:01|1[89]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}",,,,"8682211234",,,,[7]],[,,"868(?:2(?:6[346-9]|[7-9]\\d)|[37](?:0[1-9]|1[02-9]|[2-9]\\d)|4[6-9]\\d|6(?:20|78|8\\d))\\d{4}",,,,"8682911234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"TT",1,"011","1",,,"1|([2-46-8]\\d{6})$","868$1",,,,,[,,,,,,,,,[-1]],,"868",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"868619\\d{4}",,,,"8686191234",,,,[7]]],TV:[,[,,"(?:2|7\\d\\d|90)\\d{4}",,,,,,,[5,6,7]],[,,"2[02-9]\\d{3}",,,,"20123",,,[5]],[,,"(?:7[01]\\d|90)\\d{4}",,,,"901234",,,[6,7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"TV",688,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1 $2",["2"]],[,"(\\d{2})(\\d{4})","$1 $2",["90"]],[,"(\\d{2})(\\d{5})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],TW:[,[,,"[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",,,,,,,[7,8,9,10,11]],[,,"(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}",,,,"221234567",,,[8,9]],[,,"(?:40001[0-2]|9[0-8]\\d{4})\\d{3}",,,,"912345678",,,[9]],[,,"80[0-79]\\d{6}|800\\d{5}",,,,"800123456",,,[8,9]],[,,"20(?:[013-9]\\d\\d|2)\\d{4}",,,,"203123456",,,[7,9]],[,,,,,,,,,[-1]],[,,"99\\d{7}",,,,"990123456",,,[9]],[,,"7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}",,,,"7012345678",,,[10,11]],"TW",886,"0(?:0[25-79]|19)","0","#",,"0",,,,[[,"(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],[,"(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],[,"(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"50[0-46-9]\\d{6}",,,,"500123456",,,[9]],,,[,,,,,,,,,[-1]]],TZ:[,[,,"(?:[26-8]\\d|41|90)\\d{7}",,,,,,,[9]],[,,"2[2-8]\\d{7}",,,,"222345678"],[,,"(?:6[2-9]|7[13-9])\\d{7}",,,,"621234567"],[,,"80[08]\\d{6}",,,,"800123456"],[,,"90\\d{7}",,,,"900123456"],[,,"8(?:40|6[01])\\d{6}",,,,"840123456"],[,,,,,,,,,[-1]],[,,"41\\d{7}",,,,"412345678"],"TZ",255,"00[056]","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,"(?:8(?:[04]0|6[01])|90\\d)\\d{6}"],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UA:[,[,,"[89]\\d{9}|[3-9]\\d{8}",,,,,,,[9,10],[5,6,7]],[,,"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}",,,,"311234567",,,[9],[5,6,7]],[,,"(?:50|6[36-8]|7[1-3]|9[1-9])\\d{7}",,,,"501234567",,,[9]],[,,"800[1-8]\\d{5,6}",,,,"800123456"],[,,"900[239]\\d{5,6}",,,,"900212345"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"89[1-579]\\d{6}",,,,"891234567",,,[9]],"UA",380,"00","0",,,"0",,"0~0",,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]","4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]"],"0$1"],[,"(\\d{4})(\\d{5})","$1 $2",["[3-6]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UG:[,[,,"800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",,,,,,,[9],[5,6,7]],[,,"20(?:(?:(?:24|81)0|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[0147]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}",,,,"312345678",,,,[5,6,7]],[,,"7260\\d{5}|7(?:[0157-9]\\d|20|36|4[0-4])\\d{6}",,,,"712345678"],[,,"800[1-3]\\d{5}",,,,"800123456"],[,,"90[1-3]\\d{6}",,,,"901123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UG",256,"00[057]","0",,,"0",,,,[[,"(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],[,"(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],US:[,[,,"[2-9]\\d{9}",,,,,,,[10],[7]],[,,"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}",,,,"2015550123",,,,[7]],[,,"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}",,,,"2015550123",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"US",1,"011","1",,,"1",,,1,[[,"(\\d{3})(\\d{4})","$1-$2",["[2-9]"]],[,"(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],,,1]],[[,"(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[2-9]"]]],[,,,,,,,,,[-1]],1,,[,,,,,,,,,[-1]],[,,"710[2-9]\\d{6}",,,,"7102123456"],,,[,,,,,,,,,[-1]]],UY:[,[,,"(?:[249]\\d\\d|80)\\d{5}|9\\d{6}",,,,,,,[7,8]],[,,"(?:2\\d|4[2-7])\\d{6}",,,,"21231234",,,[8],[7]],[,,"9[1-9]\\d{6}",,,,"94231234",,,[8]],[,,"80[05]\\d{4}",,,,"8001234",,,[7]],[,,"90[0-8]\\d{4}",,,,"9001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UY",598,"0(?:0|1[3-9]\\d)","0"," int. ",,"0",,"00",,[[,"(\\d{3})(\\d{4})","$1 $2",["8|90"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],[,"(\\d{4})(\\d{4})","$1 $2",["[24]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],UZ:[,[,,"[679]\\d{8}",,,,,,,[9]],[,,"78(?:1(?:13|2[02]|50)|2(?:10|2[139]|98)|77[01])\\d{4}|(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|1[12]\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}",,,,"669050123"],[,,"(?:6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:0\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07])))|9[0-57-9]\\d{3})\\d{4}",,,,"912345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"UZ",998,"810","8",,,"8",,"8~10",,[[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[679]"],"8 $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VA:[,[,,"0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",,,,,,,[6,7,8,9,10,11,12]],[,,"06698\\d{1,6}",,,,"0669812345",,,[6,7,8,9,10,11]],[,,"3[1-9]\\d{8}|3[2-9]\\d{7}",,,,"3123456789",,,[9,10]],[,,"80(?:0\\d{3}|3)\\d{3}",,,,"800123456",,,[6,9]],[,,"(?:0878\\d\\d|89(?:2|4[5-9]\\d))\\d{3}|89[45][0-4]\\d\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\d{6}",,,,"899123456",,,[6,8,9,10]],[,,"84(?:[08]\\d{3}|[17])\\d{3}",,,,"848123456",,,[6,9]],[,,"1(?:78\\d|99)\\d{6}",,,,"1781234567",,,[9,10]],[,,"55\\d{8}",,,,"5512345678",,,[10]],"VA",39,"00",,,,,,,,,,[,,,,,,,,,[-1]],,"06698",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"3[2-8]\\d{9,10}",,,,"33101234501",,,[11,12]]],VC:[,[,,"(?:[58]\\d\\d|784|900)\\d{7}",,,,,,,[10],[7]],[,,"784(?:266|3(?:6[6-9]|7\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}",,,,"7842661234",,,,[7]],[,,"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4]))\\d{4}",,,,"7844301234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VC",1,"011","1",,,"1|([2-7]\\d{6})$","784$1",,,,,[,,,,,,,,,[-1]],,"784",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VE:[,[,,"[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",,,,,,,[10],[7]],[,,"(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}",,,,"2121234567",,,,[7]],[,,"4(?:1[24-8]|2[46])\\d{7}",,,,"4121234567"],[,,"800\\d{7}",,,,"8001234567"],[,,"90[01]\\d{7}",,,,"9001234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"VE",58,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1","$CC $1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"501\\d{7}",,,,"5010123456",,,,[7]],,,[,,,,,,,,,[-1]]],VG:[,[,,"(?:284|[58]\\d\\d|900)\\d{7}",,,,,,,[10],[7]],[,,"284496[0-5]\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}",,,,"2842291234",,,,[7]],[,,"284496[6-9]\\d{3}|284(?:3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|54[0-57])\\d{4}",,,,"2843001234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VG",1,"011","1",,,"1|([2-578]\\d{6})$","284$1",,,,,[,,,,,,,,,[-1]],,"284",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VI:[,[,,"[58]\\d{9}|(?:34|90)0\\d{7}",,,,,,,[10],[7]],[,,"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:22|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|27|7\\d)|884|998)\\d{4}",,,,"3406421234",,,,[7]],[,,"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:22|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|27|7\\d)|884|998)\\d{4}",,,,"3406421234",,,,[7]],[,,"8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",,,,"8002345678"],[,,"900[2-9]\\d{6}",,,,"9002345678"],[,,,,,,,,,[-1]],[,,"5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}",,,,"5002345678"],[,,,,,,,,,[-1]],"VI",1,"011","1",,,"1|([2-9]\\d{6})$","340$1",,1,,,[,,,,,,,,,[-1]],,"340",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],VN:[,[,,"[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",,,,,,,[7,8,9,10]],[,,"2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\d{7}",,,,"2101234567",,,[10]],[,,"(?:52[238]|8(?:79|9[689])|99[013-9])\\d{6}|(?:3\\d|5[689]|7[06-9]|8[1-68]|9[0-8])\\d{7}",,,,"912345678",,,[9]],[,,"1800\\d{4,6}|12(?:03|28)\\d{4}",,,,"1800123456",,,[8,9,10]],[,,"1900\\d{4,6}",,,,"1900123456",,,[8,9,10]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"672\\d{6}",,,,"672012345",,,[9]],"VN",84,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[17]99"],"0$1",,1],[,"(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",,1],[,"(\\d{3})(\\d{4,5})","$1 $2",["69"],"0$1",,1],[,"(\\d{4})(\\d{4,6})","$1 $2",["1"],,,1],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",,1],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",,1]],[[,"(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",,1],[,"(\\d{4})(\\d{4,6})","$1 $2",["1"],,,1],[,"(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",,1],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",,1],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",,1],[,"(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",,1]],[,,,,,,,,,[-1]],,,[,,"[17]99\\d{4}|69\\d{5,6}",,,,,,,[7,8]],[,,"(?:[17]99|80\\d)\\d{4}|69\\d{5,6}",,,,"1992000",,,[7,8]],,,[,,,,,,,,,[-1]]],VU:[,[,,"(?:[23]\\d|[48]8)\\d{3}|(?:[57]\\d|90)\\d{5}",,,,,,,[5,7]],[,,"(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}",,,,"22123",,,[5]],[,,"(?:5\\d|7[013-7])\\d{5}",,,,"5912345",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"90[1-9]\\d{4}",,,,"9010123",,,[7]],"VU",678,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[579]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"(?:3[03]|900\\d)\\d{3}",,,,"30123"],,,[,,,,,,,,,[-1]]],WF:[,[,,"(?:[45]0|68|72|8\\d)\\d{4}",,,,,,,[6]],[,,"(?:50|68|72)\\d{4}",,,,"501234"],[,,"(?:50|68|72|8[23])\\d{4}",,,,"501234"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"WF",681,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[4-8]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"[48]0\\d{4}",,,,"401234"]],WS:[,[,,"(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",,,,,,,[5,6,7,10]],[,,"6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}",,,,"22123",,,[5,6]],[,,"(?:7[235-7]|8(?:[3-7]|9\\d{3}))\\d{5}",,,,"7212345",,,[7,10]],[,,"800\\d{3}",,,,"800123",,,[6]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"WS",685,"0",,,,,,,,[[,"(\\d{5})","$1",["[2-5]|6[1-9]"]],[,"(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],[,"(\\d{2})(\\d{5})","$1 $2",["7"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],XK:[,[,,"[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}",,,,,,,[8,9]],[,,"(?:2[89]|39)0\\d{6}|[23][89]\\d{6}",,,,"28012345"],[,,"4[3-9]\\d{6}",,,,"43201234",,,[8]],[,,"800\\d{5}",,,,"80001234",,,[8]],[,,"900\\d{5}",,,,"90001234",,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"XK",383,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YE:[,[,,"(?:1|7\\d)\\d{7}|[1-7]\\d{6}",,,,,,,[7,8,9],[6]],[,,"17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\d{5}",,,,"1234567",,,[7,8],[6]],[,,"7[0137]\\d{7}",,,,"712345678",,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"YE",967,"00","0",,,"0",,,,[[,"(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],YT:[,[,,"80\\d{7}|(?:26|63)9\\d{6}",,,,,,,[9]],[,,"269(?:0[67]|5[0-2]|6\\d|[78]0)\\d{4}",,,,"269601234"],[,,"639(?:0[0-79]|1[019]|[267]\\d|3[09]|[45]0|9[04-79])\\d{4}",,,,"639012345"],[,,"80\\d{7}",,,,"801234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"YT",262,"00","0",,,"0",,,,,,[,,,,,,,,,[-1]],,"269|63",[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZA:[,[,,"[1-9]\\d{8}|8\\d{4,7}",,,,,,,[5,6,7,8,9]],[,,"(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}",,,,"101234567",,,[9]],[,,"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:6\\d|7[0-46-9])\\d{3}|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",,,,"711234567"],[,,"80\\d{7}",,,,"801234567",,,[9]],[,,"(?:86[2-9]|9[0-2]\\d)\\d{6}",,,,"862345678",,,[9]],[,,"860\\d{6}",,,,"860123456",,,[9]],[,,,,,,,,,[-1]],[,,"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}",,,,"871234567",,,[9]],"ZA",27,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"861\\d{6}",,,,"861123456",,,[9]],,,[,,,,,,,,,[-1]]],ZM:[,[,,"(?:63|80)0\\d{6}|(?:21|[79]\\d)\\d{7}",,,,,,,[9],[6]],[,,"21[1-8]\\d{6}",,,,"211234567",,,,[6]],[,,"(?:7[679]|9[5-8])\\d{7}",,,,"955123456"],[,,"800\\d{6}",,,,"800123456"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"630\\d{6}",,,,"630012345"],"ZM",260,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3})","$1 $2",["[1-9]"]],[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],ZW:[,[,,"2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",,,,,,,[5,6,7,8,9,10],[3,4]],[,,"(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}",,,,"1312345",,,,[3,4]],[,,"7(?:[17]\\d|[38][1-9])\\d{6}",,,,"712345678",,,[9]],[,,"80(?:[01]\\d|20|8[0-8])\\d{3}",,,,"8001234",,,[7]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"86(?:1[12]|22|30|44|55|77|8[368])\\d{6}",,,,"8686123456",,,[10]],"ZW",263,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],[,"(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],[,"(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],[,"(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],[,"(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],[,"(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],[,"(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],[,"(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],[,"(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],800:[,[,,"\\d{8}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{8}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",800,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],808:[,[,,"\\d{8}",,,,,,,[8]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{8}",,,,"12345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",808,,,,,,,,1,[[,"(\\d{4})(\\d{4})","$1 $2"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],870:[,[,,"[35-7]\\d{8}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,"(?:[356]\\d|7[6-8])\\d{7}",,,,"301234567"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",870,,,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[35-7]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],878:[,[,,"10\\d{10}",,,,,,,[12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"10\\d{10}",,,,"101234567890"],"001",878,,,,,,,,1,[[,"(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],881:[,[,,"[67]\\d{8}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,"[67]\\d{8}",,,,"612345678"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",881,,,,,,,,,[[,"(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[67]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],882:[,[,,"1\\d{6,11}|3\\d{6}(?:\\d{2,5})?",,,,,,,[7,8,9,10,11,12]],[,,,,,,,,,[-1]],[,,"3(?:37\\d\\d|42)\\d{4}|3(?:2|47|7\\d{3})\\d{7}",,,,"3421234",,,[7,9,10,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|3(?:45|9\\d{3})\\d{7}",,,,"390123456789"],"001",882,,,,,,,,,[[,"(\\d{2})(\\d{5})","$1 $2",["16|342"]],[,"(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],[,"(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1"]],[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["34[57]"]],[,"(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],[,"(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[13]"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,"348[57]\\d{7}",,,,"34851234567",,,[11]]],883:[,[,,"51\\d{7}(?:\\d{3})?",,,,,,,[9,12]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"51[013]0\\d{8}|5100\\d{5}",,,,"510012345"],"001",883,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],[,"(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["510"]],[,"(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["5"]]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]],888:[,[,,"\\d{11}",,,,,,,[11]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",888,,,,,,,,1,[[,"(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,"\\d{11}",,,,"12345678901"],,,[,,,,,,,,,[-1]]],979:[,[,,"\\d{9}",,,,,,,[9]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,"\\d{9}",,,,"123456789"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],"001",979,,,,,,,,1,[[,"(\\d)(\\d{4})(\\d{4})","$1 $2 $3"]],,[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,[,,,,,,,,,[-1]]]},i18n.phonenumbers.PhoneNumberUtil=function(){this.regionToMetadataMap={}},goog.addSingletonGetter(i18n.phonenumbers.PhoneNumberUtil),i18n.phonenumbers.Error={INVALID_COUNTRY_CODE:"Invalid country calling code",NOT_A_NUMBER:"The string supplied did not seem to be a phone number",TOO_SHORT_AFTER_IDD:"Phone number too short after IDD",TOO_SHORT_NSN:"The string supplied is too short to be a phone number",TOO_LONG:"The string supplied is too long to be a phone number"},i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_=1,i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_=2,i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_=17,i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_=3,i18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_=250,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_="ZZ",i18n.phonenumbers.PhoneNumberUtil.COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_="3",i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_={54:"9"},i18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_=[52,54,55],i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN="+",i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_="*",i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_=";ext=",i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_="tel:",i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_=";phone-context=",i18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_=";isub=",i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"},i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","+":i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN,"*":"*","#":"#"},i18n.phonenumbers.PhoneNumberUtil.ALPHA_MAPPINGS_={A:"2",B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9",A:"2",B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},i18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"A",b:"B",c:"C",d:"D",e:"E",f:"F",g:"G",h:"H",i:"I",j:"J",k:"K",l:"L",m:"M",n:"N",o:"O",p:"P",q:"Q",r:"R",s:"S",t:"T",u:"U",v:"V",w:"W",x:"X",y:"Y",z:"Z","-":"-","-":"-","‐":"-","‑":"-","‒":"-","–":"-","—":"-","―":"-","−":"-","/":"/","/":"/"," ":" "," ":" ","⁠":" ",".":".",".":"."},i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_=/[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?/,i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION="-x‐-―−ー--/  ­​⁠ ()()[].\\[\\]/~⁓∼~",i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_="0-90-9٠-٩۰-۹",i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_="A-Za-z",i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_="++",i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN=new RegExp("["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]+"),i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN=new RegExp("^["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]+"),i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_="["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]+",i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN=new RegExp("(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"])"),i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_=new RegExp("["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]"),i18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_=/[\\\/] *x/,i18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_=new RegExp("[^"+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+"#]+$"),i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_=/(?:.*?[A-Za-z]){3}.*/,i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_="["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]{"+i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_+"}",i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_="["+i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_+"]*(?:["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_+"]*["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]){3,}["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_+i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]*",i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_=" ext. ",i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_="(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]{1,7})",i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_=i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_+i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_+"|[  \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|[;,xx##~~]|int|anexo|int)[:\\..]?[  \\t,-]*"+i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_+"#?|[- ]+(["+i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_+"]{1,5})#",i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_=new RegExp("(?:"+i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_+")$","i"),i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_=new RegExp("^"+i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_+"$|^"+i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_+"(?:"+i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_+")?$","i"),i18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_=/\D+/,i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_=/(\$\d)/,i18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_=/\$NP/,i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_=/\$FG/,i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_=/\$CC/,i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_=/^\(?\$1\)?$/,i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY="001",i18n.phonenumbers.PhoneNumberFormat={E164:0,INTERNATIONAL:1,NATIONAL:2,RFC3966:3},i18n.phonenumbers.PhoneNumberType={FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3,PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1},i18n.phonenumbers.PhoneNumberUtil.MatchType={NOT_A_NUMBER:0,NO_MATCH:1,SHORT_NSN_MATCH:2,NSN_MATCH:3,EXACT_MATCH:4},i18n.phonenumbers.PhoneNumberUtil.ValidationResult={IS_POSSIBLE:0,IS_POSSIBLE_LOCAL_ONLY:4,INVALID_COUNTRY_CODE:1,TOO_SHORT:2,INVALID_LENGTH:5,TOO_LONG:3},i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber=function(e){var t=e.search(i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_);return 0<=t?0<=(t=(e=(e=e.substring(t)).replace(i18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_,"")).search(i18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_))&&(e=e.substring(0,t)):e="",e},i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber=function(e){return!(e.length<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_,e)},i18n.phonenumbers.PhoneNumberUtil.normalize=function(e){return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_,e)?i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(e,i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_,!0):i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(e)},i18n.phonenumbers.PhoneNumberUtil.normalizeSB_=function(e){var t=i18n.phonenumbers.PhoneNumberUtil.normalize(e.toString());e.clear(),e.append(t)},i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly=function(e){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(e,i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS,!0)},i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly=function(e){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(e,i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_,!0)},i18n.phonenumbers.PhoneNumberUtil.convertAlphaCharactersInNumber=function(e){return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(e,i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_,!1)},i18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfGeographicalAreaCode=function(e){var t=this.getMetadataForRegion(this.getRegionCodeForNumber(e));return null!=t&&(t.hasNationalPrefix()||e.hasItalianLeadingZero())&&this.isNumberGeographical(e)?this.getLengthOfNationalDestinationCode(e):0},i18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfNationalDestinationCode=function(e){if(e.hasExtension()){var t=e.clone();t.clearExtension()}else t=e;return 0==(t=this.format(t,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(i18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_))[0].length&&t.shift(),2>=t.length?0:this.getNumberType(e)==i18n.phonenumbers.PhoneNumberType.MOBILE&&""!=(e=i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(e.getCountryCodeOrDefault()))?t[2].length+e.length:t[1].length},i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(e){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[e]||""},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return goog.array.filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),(function(e){return isNaN(e)}))},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){var e=goog.array.filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),(function(e){return!isNaN(e)}));return goog.array.map(e,(function(e){return parseInt(e,10)}))},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var e=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return goog.array.join(this.getSupportedGlobalNetworkCallingCodes(),goog.array.map(e,(function(e){return parseInt(e,10)})))},i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(e){return null!=e&&(1!=e.possibleLengthCount()||-1!=e.possibleLengthArray()[0])},i18n.phonenumbers.PhoneNumberUtil.descHasData_=function(e){return null!=e&&(e.hasExampleNumber()||i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(e)||e.hasNationalNumberPattern())},i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_=function(e){var t=[];return goog.object.forEach(i18n.phonenumbers.PhoneNumberType,(function(r){if(r!=i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE&&r!=i18n.phonenumbers.PhoneNumberType.UNKNOWN){var n=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(e,r);i18n.phonenumbers.PhoneNumberUtil.descHasData_(n)&&t.push(r)}})),t},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForRegion=function(e){return this.isValidRegionCode_(e)?i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(this.getMetadataForRegion(e)):[]},i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForNonGeoEntity=function(e){return null==(e=this.getMetadataForNonGeographicalRegion(e))?[]:i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(e)},i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_=function(e,t,r){for(var n,o,i=new goog.string.StringBuffer,a=e.length,s=0;s<a;++s)null!=(o=t[(n=e.charAt(s)).toUpperCase()])?i.append(o):r||i.append(n);return i.toString()},i18n.phonenumbers.PhoneNumberUtil.prototype.formattingRuleHasFirstGroupOnly=function(e){return 0==e.length||i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_.test(e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberGeographical=function(e){var t=this.getNumberType(e);return t==i18n.phonenumbers.PhoneNumberType.FIXED_LINE||t==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE||goog.array.contains(i18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_,e.getCountryCodeOrDefault())&&t==i18n.phonenumbers.PhoneNumberType.MOBILE},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_=function(e){return null!=e&&isNaN(e)&&e.toUpperCase()in i18n.phonenumbers.metadata.countryToMetadata},i18n.phonenumbers.PhoneNumberUtil.prototype.hasValidCountryCallingCode_=function(e){return e in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap},i18n.phonenumbers.PhoneNumberUtil.prototype.format=function(e,t){if(0==e.getNationalNumber()&&e.hasRawInput()){var r=e.getRawInputOrDefault();if(0<r.length)return r}r=e.getCountryCodeOrDefault();var n=this.getNationalSignificantNumber(e);if(t==i18n.phonenumbers.PhoneNumberFormat.E164)return this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.E164,n,"");if(!this.hasValidCountryCallingCode_(r))return n;var o=this.getRegionCodeForCountryCode(r),i=this.getMetadataForRegionOrCallingCode_(r,o);return o=this.maybeGetFormattedExtension_(e,i,t),n=this.formatNsn_(n,i,t),this.prefixNumberWithCountryCallingCode_(r,t,n,o)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern=function(e,t,r){var n=e.getCountryCodeOrDefault(),o=this.getNationalSignificantNumber(e);if(!this.hasValidCountryCallingCode_(n))return o;var i=this.getRegionCodeForCountryCode(n);i=this.getMetadataForRegionOrCallingCode_(n,i);var a=this.chooseFormattingPatternForNumber_(r,o);if(null!=a){if(r=a.clone(),0<(a=a.getNationalPrefixFormattingRuleOrDefault()).length){var s=i.getNationalPrefixOrDefault();0<s.length?(a=a.replace(i18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_,s).replace(i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_,"$1"),r.setNationalPrefixFormattingRule(a)):r.clearNationalPrefixFormattingRule()}o=this.formatNsnUsingPattern_(o,r,t)}return e=this.maybeGetFormattedExtension_(e,i,t),this.prefixNumberWithCountryCallingCode_(n,t,o,e)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithCarrierCode=function(e,t){var r=e.getCountryCodeOrDefault(),n=this.getNationalSignificantNumber(e);if(!this.hasValidCountryCallingCode_(r))return n;var o=this.getRegionCodeForCountryCode(r),i=this.getMetadataForRegionOrCallingCode_(r,o);return o=this.maybeGetFormattedExtension_(e,i,i18n.phonenumbers.PhoneNumberFormat.NATIONAL),n=this.formatNsn_(n,i,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,t),this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,n,o)},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegionOrCallingCode_=function(e,t){return i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==t?this.getMetadataForNonGeographicalRegion(e):this.getMetadataForRegion(t)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithPreferredCarrierCode=function(e,t){return this.formatNationalNumberWithCarrierCode(e,0<e.getPreferredDomesticCarrierCodeOrDefault().length?e.getPreferredDomesticCarrierCodeOrDefault():t)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing=function(e,t,r){var n=e.getCountryCodeOrDefault();if(!this.hasValidCountryCallingCode_(n))return e.hasRawInput()?e.getRawInputOrDefault():"";var o="";(e=e.clone()).clearExtension();var i=this.getRegionCodeForCountryCode(n),a=this.getNumberType(e),s=a!=i18n.phonenumbers.PhoneNumberType.UNKNOWN;if(t==i)o=a==i18n.phonenumbers.PhoneNumberType.FIXED_LINE||a==i18n.phonenumbers.PhoneNumberType.MOBILE||a==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE,"CO"==i&&a==i18n.phonenumbers.PhoneNumberType.FIXED_LINE?o=this.formatNationalNumberWithCarrierCode(e,i18n.phonenumbers.PhoneNumberUtil.COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_):"BR"==i&&o?o=0<e.getPreferredDomesticCarrierCodeOrDefault().length?this.formatNationalNumberWithPreferredCarrierCode(e,""):"":n==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_?(t=this.getMetadataForRegion(t),o=this.canBeInternationallyDialled(e)&&this.testNumberLength_(this.getNationalSignificantNumber(e),t)!=i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT?this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL)):o=(i==i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY||("MX"==i||"CL"==i||"UZ"==i)&&o)&&this.canBeInternationallyDialled(e)?this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);else if(s&&this.canBeInternationallyDialled(e))return r?this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL):this.format(e,i18n.phonenumbers.PhoneNumberFormat.E164);return r?o:i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(o)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber=function(e,t){if(!this.isValidRegionCode_(t))return this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);var r=e.getCountryCodeOrDefault(),n=this.getNationalSignificantNumber(e);if(!this.hasValidCountryCallingCode_(r))return n;if(r==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_){if(this.isNANPACountry(t))return r+" "+this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL)}else if(r==this.getCountryCodeForValidRegion_(t))return this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);var o=this.getMetadataForRegion(t),i=o.getInternationalPrefixOrDefault(),a="";return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_,i)?a=i:o.hasPreferredInternationalPrefix()&&(a=o.getPreferredInternationalPrefixOrDefault()),o=this.getRegionCodeForCountryCode(r),o=this.getMetadataForRegionOrCallingCode_(r,o),n=this.formatNsn_(n,o,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),o=this.maybeGetFormattedExtension_(e,o,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),0<a.length?a+" "+r+" "+n+o:this.prefixNumberWithCountryCallingCode_(r,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL,n,o)},i18n.phonenumbers.PhoneNumberUtil.prototype.formatInOriginalFormat=function(e,t){if(e.hasRawInput()&&!this.hasFormattingPatternForNumber_(e))return e.getRawInputOrDefault();if(!e.hasCountryCodeSource())return this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL);switch(e.getCountryCodeSource()){case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN:var r=this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);break;case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD:r=this.formatOutOfCountryCallingNumber(e,t);break;case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN:r=this.format(e,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).substring(1);break;default:var n=this.getRegionCodeForCountryCode(e.getCountryCodeOrDefault()),o=this.getNddPrefixForRegion(n,!0);if(r=this.format(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL),null!=o&&0!=o.length&&!this.rawInputContainsNationalPrefix_(e.getRawInputOrDefault(),o,n)&&(n=this.getMetadataForRegion(n),o=this.getNationalSignificantNumber(e),null!=(n=this.chooseFormattingPatternForNumber_(n.numberFormatArray(),o)))){var i=(o=n.getNationalPrefixFormattingRuleOrDefault()).indexOf("$1");0>=i||(o=o.substring(0,i),0!=(o=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(o)).length&&((r=n.clone()).clearNationalPrefixFormattingRule(),r=this.formatByPattern(e,i18n.phonenumbers.PhoneNumberFormat.NATIONAL,[r])))}}return n=e.getRawInputOrDefault(),null!=r&&0<n.length&&(o=i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(r))!=(i=i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(n))&&(r=n),r},i18n.phonenumbers.PhoneNumberUtil.prototype.rawInputContainsNationalPrefix_=function(e,t,r){if(e=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(e),goog.string.startsWith(e,t))try{return this.isValidNumber(this.parse(e.substring(t.length),r))}catch(e){}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.hasFormattingPatternForNumber_=function(e){var t=e.getCountryCodeOrDefault(),r=this.getRegionCodeForCountryCode(t);return null!=(t=this.getMetadataForRegionOrCallingCode_(t,r))&&(e=this.getNationalSignificantNumber(e),null!=this.chooseFormattingPatternForNumber_(t.numberFormatArray(),e))},i18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryKeepingAlphaChars=function(e,t){var r=e.getRawInputOrDefault();if(0==r.length)return this.formatOutOfCountryCallingNumber(e,t);var n=e.getCountryCodeOrDefault();if(!this.hasValidCountryCallingCode_(n))return r;r=i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(r,i18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_,!0);var o=this.getNationalSignificantNumber(e);if(3<o.length){var i=r.indexOf(o.substring(0,3));-1!=i&&(r=r.substring(i))}if(i=this.getMetadataForRegion(t),n==i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_){if(this.isNANPACountry(t))return n+" "+r}else if(null!=i&&n==this.getCountryCodeForValidRegion_(t))return null==(n=this.chooseFormattingPatternForNumber_(i.numberFormatArray(),o))?r:((n=n.clone()).setPattern("(\\d+)(.*)"),n.setFormat("$1$2"),this.formatNsnUsingPattern_(r,n,i18n.phonenumbers.PhoneNumberFormat.NATIONAL));return o="",null!=i&&(o=i.getInternationalPrefixOrDefault(),o=i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_,o)?o:i.getPreferredInternationalPrefixOrDefault()),i=this.getRegionCodeForCountryCode(n),i=this.getMetadataForRegionOrCallingCode_(n,i),i=this.maybeGetFormattedExtension_(e,i,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL),0<o.length?o+" "+n+" "+r+i:this.prefixNumberWithCountryCallingCode_(n,i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL,r,i)},i18n.phonenumbers.PhoneNumberUtil.prototype.getNationalSignificantNumber=function(e){if(!e.hasNationalNumber())return"";var t=""+e.getNationalNumber();return e.hasItalianLeadingZero()&&e.getItalianLeadingZero()&&0<e.getNumberOfLeadingZerosOrDefault()?Array(e.getNumberOfLeadingZerosOrDefault()+1).join("0")+t:t},i18n.phonenumbers.PhoneNumberUtil.prototype.prefixNumberWithCountryCallingCode_=function(e,t,r,n){switch(t){case i18n.phonenumbers.PhoneNumberFormat.E164:return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+e+r+n;case i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL:return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+e+" "+r+n;case i18n.phonenumbers.PhoneNumberFormat.RFC3966:return i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_+i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+e+"-"+r+n;default:return r+n}},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNsn_=function(e,t,r,n){return t=0==t.intlNumberFormatArray().length||r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL?t.numberFormatArray():t.intlNumberFormatArray(),null==(t=this.chooseFormattingPatternForNumber_(t,e))?e:this.formatNsnUsingPattern_(e,t,r,n)},i18n.phonenumbers.PhoneNumberUtil.prototype.chooseFormattingPatternForNumber_=function(e,t){for(var r,n=e.length,o=0;o<n;++o){var i=(r=e[o]).leadingDigitsPatternCount();if((0==i||0==t.search(r.getLeadingDigitsPattern(i-1)))&&(i=new RegExp(r.getPattern()),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i,t)))return r}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.formatNsnUsingPattern_=function(e,t,r,n){var o=t.getFormatOrDefault(),i=new RegExp(t.getPattern()),a=t.getDomesticCarrierCodeFormattingRuleOrDefault();return r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL&&null!=n&&0<n.length&&0<a.length?(t=a.replace(i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_,n),o=o.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_,t),e=e.replace(i,o)):(t=t.getNationalPrefixFormattingRuleOrDefault(),e=r==i18n.phonenumbers.PhoneNumberFormat.NATIONAL&&null!=t&&0<t.length?e.replace(i,o.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_,t)):e.replace(i,o)),r==i18n.phonenumbers.PhoneNumberFormat.RFC3966&&(e=(e=e.replace(new RegExp("^"+i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_),"")).replace(new RegExp(i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_,"g"),"-")),e},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumber=function(e){return this.getExampleNumberForType(e,i18n.phonenumbers.PhoneNumberType.FIXED_LINE)},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForType=function(e,t){if(!this.isValidRegionCode_(e))return null;var r=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(this.getMetadataForRegion(e),t);try{if(r.hasExampleNumber())return this.parse(r.getExampleNumber(),e)}catch(e){}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForNonGeoEntity=function(e){var t=this.getMetadataForNonGeographicalRegion(e);if(null!=t&&null!=(t=goog.array.find([t.getMobile(),t.getTollFree(),t.getSharedCost(),t.getVoip(),t.getVoicemail(),t.getUan(),t.getPremiumRate()],(function(e,t){return e.hasExampleNumber()}))))try{return this.parse("+"+e+t.getExampleNumber(),"ZZ")}catch(e){}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_=function(e,t,r){return e.hasExtension()&&0!=e.getExtension().length?r==i18n.phonenumbers.PhoneNumberFormat.RFC3966?i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_+e.getExtension():t.hasPreferredExtnPrefix()?t.getPreferredExtnPrefix()+e.getExtensionOrDefault():i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_+e.getExtensionOrDefault():""},i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_=function(e,t){switch(t){case i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE:return e.getPremiumRate();case i18n.phonenumbers.PhoneNumberType.TOLL_FREE:return e.getTollFree();case i18n.phonenumbers.PhoneNumberType.MOBILE:return e.getMobile();case i18n.phonenumbers.PhoneNumberType.FIXED_LINE:case i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE:return e.getFixedLine();case i18n.phonenumbers.PhoneNumberType.SHARED_COST:return e.getSharedCost();case i18n.phonenumbers.PhoneNumberType.VOIP:return e.getVoip();case i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER:return e.getPersonalNumber();case i18n.phonenumbers.PhoneNumberType.PAGER:return e.getPager();case i18n.phonenumbers.PhoneNumberType.UAN:return e.getUan();case i18n.phonenumbers.PhoneNumberType.VOICEMAIL:return e.getVoicemail();default:return e.getGeneralDesc()}},i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberType=function(e){var t=this.getRegionCodeForNumber(e);return null==(t=this.getMetadataForRegionOrCallingCode_(e.getCountryCodeOrDefault(),t))?i18n.phonenumbers.PhoneNumberType.UNKNOWN:(e=this.getNationalSignificantNumber(e),this.getNumberTypeHelper_(e,t))},i18n.phonenumbers.PhoneNumberUtil.prototype.getNumberTypeHelper_=function(e,t){return this.isNumberMatchingDesc_(e,t.getGeneralDesc())?this.isNumberMatchingDesc_(e,t.getPremiumRate())?i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE:this.isNumberMatchingDesc_(e,t.getTollFree())?i18n.phonenumbers.PhoneNumberType.TOLL_FREE:this.isNumberMatchingDesc_(e,t.getSharedCost())?i18n.phonenumbers.PhoneNumberType.SHARED_COST:this.isNumberMatchingDesc_(e,t.getVoip())?i18n.phonenumbers.PhoneNumberType.VOIP:this.isNumberMatchingDesc_(e,t.getPersonalNumber())?i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER:this.isNumberMatchingDesc_(e,t.getPager())?i18n.phonenumbers.PhoneNumberType.PAGER:this.isNumberMatchingDesc_(e,t.getUan())?i18n.phonenumbers.PhoneNumberType.UAN:this.isNumberMatchingDesc_(e,t.getVoicemail())?i18n.phonenumbers.PhoneNumberType.VOICEMAIL:this.isNumberMatchingDesc_(e,t.getFixedLine())?t.getSameMobileAndFixedLinePattern()||this.isNumberMatchingDesc_(e,t.getMobile())?i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE:i18n.phonenumbers.PhoneNumberType.FIXED_LINE:!t.getSameMobileAndFixedLinePattern()&&this.isNumberMatchingDesc_(e,t.getMobile())?i18n.phonenumbers.PhoneNumberType.MOBILE:i18n.phonenumbers.PhoneNumberType.UNKNOWN:i18n.phonenumbers.PhoneNumberType.UNKNOWN},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion=function(e){if(null==e)return null;e=e.toUpperCase();var t=this.regionToMetadataMap[e];if(null==t){t=new goog.proto2.PbLiteSerializer;var r=i18n.phonenumbers.metadata.countryToMetadata[e];if(null==r)return null;t=t.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(),r),this.regionToMetadataMap[e]=t}return t},i18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForNonGeographicalRegion=function(e){return this.getMetadataForRegion(""+e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_=function(e,t){var r=e.length;return!(0<t.possibleLengthCount()&&-1==goog.array.indexOf(t.possibleLengthArray(),r))&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(t.getNationalNumberPatternOrDefault(),e)},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber=function(e){var t=this.getRegionCodeForNumber(e);return this.isValidNumberForRegion(e,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumberForRegion=function(e,t){var r=e.getCountryCodeOrDefault(),n=this.getMetadataForRegionOrCallingCode_(r,t);return null!=n&&(i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==t||r==this.getCountryCodeForValidRegion_(t))&&(r=this.getNationalSignificantNumber(e),this.getNumberTypeHelper_(r,n)!=i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumber=function(e){if(null==e)return null;var t=e.getCountryCodeOrDefault();return null==(t=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[t])?null:1==t.length?t[0]:this.getRegionCodeForNumberFromRegionList_(e,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumberFromRegionList_=function(e,t){for(var r,n=this.getNationalSignificantNumber(e),o=t.length,i=0;i<o;i++){r=t[i];var a=this.getMetadataForRegion(r);if(a.hasLeadingDigits()){if(0==n.search(a.getLeadingDigits()))return r}else if(this.getNumberTypeHelper_(n,a)!=i18n.phonenumbers.PhoneNumberType.UNKNOWN)return r}return null},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForCountryCode=function(e){return null==(e=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[e])?i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_:e[0]},i18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodesForCountryCode=function(e){return null==(e=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[e])?[]:e},i18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForRegion=function(e){return this.isValidRegionCode_(e)?this.getCountryCodeForValidRegion_(e):0},i18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForValidRegion_=function(e){var t=this.getMetadataForRegion(e);if(null==t)throw Error("Invalid region code: "+e);return t.getCountryCodeOrDefault()},i18n.phonenumbers.PhoneNumberUtil.prototype.getNddPrefixForRegion=function(e,t){var r=this.getMetadataForRegion(e);return null==r||0==(r=r.getNationalPrefixOrDefault()).length?null:(t&&(r=r.replace("~","")),r)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNANPACountry=function(e){return null!=e&&goog.array.contains(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_],e.toUpperCase())},i18n.phonenumbers.PhoneNumberUtil.prototype.isAlphaNumber=function(e){return!!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(e)&&(e=new goog.string.StringBuffer(e),this.maybeStripExtension(e),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_,e.toString()))},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumber=function(e){return(e=this.isPossibleNumberWithReason(e))==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE||e==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForType=function(e,t){var r=this.isPossibleNumberForTypeWithReason(e,t);return r==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE||r==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY},i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLength_=function(e,t){return this.testNumberLengthForType_(e,t,i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLengthForType_=function(e,t,r){var n=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(t,r),o=0==n.possibleLengthCount()?t.getGeneralDesc().possibleLengthArray():n.possibleLengthArray();if(n=n.possibleLengthLocalOnlyArray(),r==i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE){if(!i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(t,i18n.phonenumbers.PhoneNumberType.FIXED_LINE)))return this.testNumberLengthForType_(e,t,i18n.phonenumbers.PhoneNumberType.MOBILE);r=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(t,i18n.phonenumbers.PhoneNumberType.MOBILE),i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(r)&&(o=o.concat(0==r.possibleLengthCount()?t.getGeneralDesc().possibleLengthArray():r.possibleLengthArray()),goog.array.sort(o),0==n.length?n=r.possibleLengthLocalOnlyArray():(n=n.concat(r.possibleLengthLocalOnlyArray()),goog.array.sort(n)))}return-1==o[0]?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH:(e=e.length,-1<goog.array.indexOf(n,e)?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY:(t=o[0])==e?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE:t>e?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:o[o.length-1]<e?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG:-1<goog.array.indexOf(o,e,1)?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE:i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason=function(e){return this.isPossibleNumberForTypeWithReason(e,i18n.phonenumbers.PhoneNumberType.UNKNOWN)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForTypeWithReason=function(e,t){var r=this.getNationalSignificantNumber(e),n=e.getCountryCodeOrDefault();if(!this.hasValidCountryCallingCode_(n))return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE;var o=this.getRegionCodeForCountryCode(n);return n=this.getMetadataForRegionOrCallingCode_(n,o),this.testNumberLengthForType_(r,n,t)},i18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberString=function(e,t){try{return this.isPossibleNumber(this.parse(e,t))}catch(e){return!1}},i18n.phonenumbers.PhoneNumberUtil.prototype.truncateTooLongNumber=function(e){if(this.isValidNumber(e))return!0;var t=e.clone(),r=e.getNationalNumberOrDefault();do{if(r=Math.floor(r/10),t.setNationalNumber(r),0==r||this.isPossibleNumberWithReason(t)==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT)return!1}while(!this.isValidNumber(t));return e.setNationalNumber(r),!0},i18n.phonenumbers.PhoneNumberUtil.prototype.extractCountryCode=function(e,t){var r=e.toString();if(0==r.length||"0"==r.charAt(0))return 0;for(var n,o=r.length,i=1;i<=i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_&&i<=o;++i)if((n=parseInt(r.substring(0,i),10))in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap)return t.append(r.substring(i)),n;return 0},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeExtractCountryCode=function(e,t,r,n,o){if(0==e.length)return 0;var i;if(e=new goog.string.StringBuffer(e),null!=t&&(i=t.getInternationalPrefix()),null==i&&(i="NonMatch"),i=this.maybeStripInternationalPrefixAndNormalize(e,i),n&&o.setCountryCodeSource(i),i!=i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY){if(e.getLength()<=i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD);if(0!=(t=this.extractCountryCode(e,r)))return o.setCountryCode(t),t;throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE)}if(null!=t){var a=""+(i=t.getCountryCodeOrDefault()),s=e.toString();if(goog.string.startsWith(s,a)&&(a=new goog.string.StringBuffer(s.substring(a.length)),s=t.getGeneralDesc(),s=new RegExp(s.getNationalNumberPatternOrDefault()),this.maybeStripNationalPrefixAndCarrierCode(a,t,null),a=a.toString(),!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(s,e.toString())&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(s,a)||this.testNumberLength_(e.toString(),t)==i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG))return r.append(a),n&&o.setCountryCodeSource(i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN),o.setCountryCode(i),i}return o.setCountryCode(0),0},i18n.phonenumbers.PhoneNumberUtil.prototype.parsePrefixAsIdd_=function(e,t){var r=t.toString();if(0==r.search(e)){var n=r.match(e)[0].length,o=r.substring(n).match(i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN);return!(o&&null!=o[1]&&0<o[1].length&&"0"==i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(o[1])||(t.clear(),t.append(r.substring(n)),0))}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripInternationalPrefixAndNormalize=function(e,t){var r=e.toString();return 0==r.length?i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY:i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(r)?(r=r.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN,""),e.clear(),e.append(i18n.phonenumbers.PhoneNumberUtil.normalize(r)),i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN):(r=new RegExp(t),i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(e),this.parsePrefixAsIdd_(r,e)?i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD:i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY)},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripNationalPrefixAndCarrierCode=function(e,t,r){var n=e.toString(),o=n.length,i=t.getNationalPrefixForParsing();if(0==o||null==i||0==i.length)return!1;var a=new RegExp("^(?:"+i+")");if(o=a.exec(n)){i=new RegExp(t.getGeneralDesc().getNationalNumberPatternOrDefault());var s=i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i,n),u=o.length-1;if(null==(t=t.getNationalPrefixTransformRule())||0==t.length||null==o[u]||0==o[u].length){if(s&&!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i,n.substring(o[0].length)))return!1;null!=r&&0<u&&null!=o[u]&&r.append(o[1]),e.set(n.substring(o[0].length))}else{if(n=n.replace(a,t),s&&!i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i,n))return!1;null!=r&&0<u&&r.append(o[1]),e.set(n)}return!0}return!1},i18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripExtension=function(e){var t=e.toString(),r=t.search(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_);if(0<=r&&i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(t.substring(0,r)))for(var n=t.match(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_),o=n.length,i=1;i<o;++i)if(null!=n[i]&&0<n[i].length)return e.clear(),e.append(t.substring(0,r)),n[i];return""},i18n.phonenumbers.PhoneNumberUtil.prototype.checkRegionForParsing_=function(e,t){return this.isValidRegionCode_(t)||null!=e&&0<e.length&&i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(e)},i18n.phonenumbers.PhoneNumberUtil.prototype.parse=function(e,t){return this.parseHelper_(e,t,!1,!0)},i18n.phonenumbers.PhoneNumberUtil.prototype.parseAndKeepRawInput=function(e,t){if(!this.isValidRegionCode_(t)&&0<e.length&&e.charAt(0)!=i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN)throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);return this.parseHelper_(e,t,!0,!0)},i18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_=function(e,t){if(1<e.length&&"0"==e.charAt(0)){t.setItalianLeadingZero(!0);for(var r=1;r<e.length-1&&"0"==e.charAt(r);)r++;1!=r&&t.setNumberOfLeadingZeros(r)}},i18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_=function(e,t,r,n){if(null==e)throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);if(e.length>i18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_)throw Error(i18n.phonenumbers.Error.TOO_LONG);var o=new goog.string.StringBuffer;if(this.buildNationalNumberForParsing_(e,o),!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(o.toString()))throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);if(n&&!this.checkRegionForParsing_(o.toString(),t))throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);n=new i18n.phonenumbers.PhoneNumber,r&&n.setRawInput(e),0<(e=this.maybeStripExtension(o)).length&&n.setExtension(e);var i=this.getMetadataForRegion(t);e=new goog.string.StringBuffer;var a=0,s=o.toString();try{a=this.maybeExtractCountryCode(s,i,e,r,n)}catch(t){if(t.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE||!i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(s))throw t;if(s=s.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN,""),0==(a=this.maybeExtractCountryCode(s,i,e,r,n)))throw t}if(0!=a?(o=this.getRegionCodeForCountryCode(a))!=t&&(i=this.getMetadataForRegionOrCallingCode_(a,o)):(i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(o),e.append(o.toString()),null!=t?(a=i.getCountryCodeOrDefault(),n.setCountryCode(a)):r&&n.clearCountryCodeSource()),e.getLength()<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);if(null!=i&&(t=new goog.string.StringBuffer,o=new goog.string.StringBuffer(e.toString()),this.maybeStripNationalPrefixAndCarrierCode(o,i,t),(i=this.testNumberLength_(o.toString(),i))!=(a=i18n.phonenumbers.PhoneNumberUtil.ValidationResult).TOO_SHORT&&i!=a.IS_POSSIBLE_LOCAL_ONLY&&i!=a.INVALID_LENGTH&&(e=o,r&&0<t.toString().length&&n.setPreferredDomesticCarrierCode(t.toString()))),r=e.toString(),(e=r.length)<i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);if(e>i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_)throw Error(i18n.phonenumbers.Error.TOO_LONG);return i18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_(r,n),n.setNationalNumber(parseInt(r,10)),n},i18n.phonenumbers.PhoneNumberUtil.prototype.buildNationalNumberForParsing_=function(e,t){var r=e.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_);if(0<=r){var n=r+i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_.length;if(e.charAt(n)==i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN){var o=e.indexOf(";",n);0<o?t.append(e.substring(n,o)):t.append(e.substring(n))}n=e.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_),t.append(e.substring(0<=n?n+i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_.length:0,r))}else t.append(i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(e));0<(n=(r=t.toString()).indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_))&&(t.clear(),t.append(r.substring(0,n)))},i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_=function(e){var t=new i18n.phonenumbers.PhoneNumber;return t.setCountryCode(e.getCountryCodeOrDefault()),t.setNationalNumber(e.getNationalNumberOrDefault()),0<e.getExtensionOrDefault().length&&t.setExtension(e.getExtensionOrDefault()),e.getItalianLeadingZero()&&(t.setItalianLeadingZero(!0),t.setNumberOfLeadingZeros(e.getNumberOfLeadingZerosOrDefault())),t},i18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatch=function(e,t){if("string"==typeof e)try{var r=this.parse(e,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_)}catch(o){if(o.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE)return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER;if("string"!=typeof t){var n=this.getRegionCodeForCountryCode(t.getCountryCodeOrDefault());if(n!=i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_){try{r=this.parse(e,n)}catch(e){return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER}return(r=this.isNumberMatch(r,t))==i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH?i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH:r}}try{r=this.parseHelper_(e,null,!1,!1)}catch(e){return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER}}else r=e.clone();if("string"==typeof t)try{var o=this.parse(t,i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_);return this.isNumberMatch(e,o)}catch(e){return e.message!=i18n.phonenumbers.Error.INVALID_COUNTRY_CODE?i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER:this.isNumberMatch(t,r)}else o=t.clone();if(r=i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(r),o=i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(o),r.hasExtension()&&o.hasExtension()&&r.getExtension()!=o.getExtension())return i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH;n=r.getCountryCodeOrDefault();var i=o.getCountryCodeOrDefault();return 0!=n&&0!=i?r.equals(o)?i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH:n==i&&this.isNationalNumberSuffixOfTheOther_(r,o)?i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH:i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH:(r.setCountryCode(0),o.setCountryCode(0),r.equals(o)?i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH:this.isNationalNumberSuffixOfTheOther_(r,o)?i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH:i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH)},i18n.phonenumbers.PhoneNumberUtil.prototype.isNationalNumberSuffixOfTheOther_=function(e,t){var r=""+e.getNationalNumber(),n=""+t.getNationalNumber();return goog.string.endsWith(r,n)||goog.string.endsWith(n,r)},i18n.phonenumbers.PhoneNumberUtil.prototype.canBeInternationallyDialled=function(e){var t=this.getMetadataForRegion(this.getRegionCodeForNumber(e));return null==t||(e=this.getNationalSignificantNumber(e),!this.isNumberMatchingDesc_(e,t.getNoInternationalDialling()))},i18n.phonenumbers.PhoneNumberUtil.matchesEntirely=function(e,t){var r="string"==typeof e?t.match("^(?:"+e+")$"):t.match(e);return!(!r||r[0].length!=t.length)},i18n.phonenumbers.PhoneNumberUtil.matchesPrefix=function(e,t){var r="string"==typeof e?t.match("^(?:"+e+")"):t.match(e);return!(!r||!goog.string.startsWith(t,r[0]))},i18n.phonenumbers.AsYouTypeFormatter=function(e){this.DIGIT_PLACEHOLDER_=" ",this.DIGIT_PATTERN_=new RegExp(this.DIGIT_PLACEHOLDER_),this.currentOutput_="",this.formattingTemplate_=new goog.string.StringBuffer,this.currentFormattingPattern_="",this.accruedInput_=new goog.string.StringBuffer,this.accruedInputWithoutFormatting_=new goog.string.StringBuffer,this.ableToFormat_=!0,this.isExpectingCountryCallingCode_=this.isCompleteNumber_=this.inputHasFormatting_=!1,this.phoneUtil_=i18n.phonenumbers.PhoneNumberUtil.getInstance(),this.positionToRemember_=this.originalPosition_=this.lastMatchPosition_=0,this.prefixBeforeNationalNumber_=new goog.string.StringBuffer,this.shouldAddSpaceAfterNationalPrefix_=!1,this.extractedNationalPrefix_="",this.nationalNumber_=new goog.string.StringBuffer,this.possibleFormats_=[],this.defaultCountry_=e,this.defaultMetadata_=this.currentMetadata_=this.getMetadataForRegion_(this.defaultCountry_)},i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_=" ",i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_=new i18n.phonenumbers.PhoneMetadata,i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_.setInternationalPrefix("NA"),i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_=new RegExp("^["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]*(\\$\\d["+i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION+"]*)+$"),i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_=/[- ]/,i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_=3,i18n.phonenumbers.AsYouTypeFormatter.prototype.getMetadataForRegion_=function(e){return e=this.phoneUtil_.getCountryCodeForRegion(e),e=this.phoneUtil_.getRegionCodeForCountryCode(e),null!=(e=this.phoneUtil_.getMetadataForRegion(e))?e:i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_},i18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_=function(){for(var e=this.possibleFormats_.length,t=0;t<e;++t){var r=this.possibleFormats_[t],n=r.getPatternOrDefault();if(this.currentFormattingPattern_==n)return!1;if(this.createFormattingTemplate_(r))return this.currentFormattingPattern_=n,this.shouldAddSpaceAfterNationalPrefix_=i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(r.getNationalPrefixFormattingRule()),this.lastMatchPosition_=0,!0}return this.ableToFormat_=!1},i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_=function(e){for(var t=this.isCompleteNumber_&&0==this.extractedNationalPrefix_.length&&0<this.currentMetadata_.intlNumberFormatCount()?this.currentMetadata_.intlNumberFormatArray():this.currentMetadata_.numberFormatArray(),r=t.length,n=0;n<r;++n){var o=t[n];0<this.extractedNationalPrefix_.length&&this.phoneUtil_.formattingRuleHasFirstGroupOnly(o.getNationalPrefixFormattingRuleOrDefault())&&!o.getNationalPrefixOptionalWhenFormatting()&&!o.hasDomesticCarrierCodeFormattingRule()||(0!=this.extractedNationalPrefix_.length||this.isCompleteNumber_||this.phoneUtil_.formattingRuleHasFirstGroupOnly(o.getNationalPrefixFormattingRuleOrDefault())||o.getNationalPrefixOptionalWhenFormatting())&&i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_.test(o.getFormatOrDefault())&&this.possibleFormats_.push(o)}this.narrowDownPossibleFormats_(e)},i18n.phonenumbers.AsYouTypeFormatter.prototype.narrowDownPossibleFormats_=function(e){for(var t=[],r=e.length-i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_,n=this.possibleFormats_.length,o=0;o<n;++o){var i=this.possibleFormats_[o];if(0==i.leadingDigitsPatternCount())t.push(this.possibleFormats_[o]);else{var a=Math.min(r,i.leadingDigitsPatternCount()-1);i=i.getLeadingDigitsPattern(a),0==e.search(i)&&t.push(this.possibleFormats_[o])}}this.possibleFormats_=t},i18n.phonenumbers.AsYouTypeFormatter.prototype.createFormattingTemplate_=function(e){var t=e.getPatternOrDefault();return this.formattingTemplate_.clear(),0<(e=this.getFormattingTemplate_(t,e.getFormatOrDefault())).length&&(this.formattingTemplate_.append(e),!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.getFormattingTemplate_=function(e,t){var r="999999999999999".match(e)[0];return r.length<this.nationalNumber_.getLength()?"":(r=r.replace(new RegExp(e,"g"),t)).replace(RegExp("9","g"),this.DIGIT_PLACEHOLDER_)},i18n.phonenumbers.AsYouTypeFormatter.prototype.clear=function(){this.currentOutput_="",this.accruedInput_.clear(),this.accruedInputWithoutFormatting_.clear(),this.formattingTemplate_.clear(),this.lastMatchPosition_=0,this.currentFormattingPattern_="",this.prefixBeforeNationalNumber_.clear(),this.extractedNationalPrefix_="",this.nationalNumber_.clear(),this.ableToFormat_=!0,this.inputHasFormatting_=!1,this.originalPosition_=this.positionToRemember_=0,this.isExpectingCountryCallingCode_=this.isCompleteNumber_=!1,this.possibleFormats_=[],this.shouldAddSpaceAfterNationalPrefix_=!1,this.currentMetadata_!=this.defaultMetadata_&&(this.currentMetadata_=this.getMetadataForRegion_(this.defaultCountry_))},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigit=function(e){return this.currentOutput_=this.inputDigitWithOptionToRememberPosition_(e,!1)},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitAndRememberPosition=function(e){return this.currentOutput_=this.inputDigitWithOptionToRememberPosition_(e,!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitWithOptionToRememberPosition_=function(e,t){if(this.accruedInput_.append(e),t&&(this.originalPosition_=this.accruedInput_.getLength()),this.isDigitOrLeadingPlusSign_(e)?e=this.normalizeAndAccrueDigitsAndPlusSign_(e,t):(this.ableToFormat_=!1,this.inputHasFormatting_=!0),!this.ableToFormat_){if(!this.inputHasFormatting_)if(this.attemptToExtractIdd_()){if(this.attemptToExtractCountryCallingCode_())return this.attemptToChoosePatternWithPrefixExtracted_()}else if(this.ableToExtractLongerNdd_())return this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.attemptToChoosePatternWithPrefixExtracted_();return this.accruedInput_.toString()}switch(this.accruedInputWithoutFormatting_.getLength()){case 0:case 1:case 2:return this.accruedInput_.toString();case 3:if(!this.attemptToExtractIdd_())return this.extractedNationalPrefix_=this.removeNationalPrefixFromNationalNumber_(),this.attemptToChooseFormattingPattern_();this.isExpectingCountryCallingCode_=!0;default:if(this.isExpectingCountryCallingCode_)return this.attemptToExtractCountryCallingCode_()&&(this.isExpectingCountryCallingCode_=!1),this.prefixBeforeNationalNumber_.toString()+this.nationalNumber_.toString();if(0<this.possibleFormats_.length){var r=this.inputDigitHelper_(e),n=this.attemptToFormatAccruedDigits_();return 0<n.length?n:(this.narrowDownPossibleFormats_(this.nationalNumber_.toString()),this.maybeCreateNewTemplate_()?this.inputAccruedNationalNumber_():this.ableToFormat_?this.appendNationalNumber_(r):this.accruedInput_.toString())}return this.attemptToChooseFormattingPattern_()}},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChoosePatternWithPrefixExtracted_=function(){return this.ableToFormat_=!0,this.isExpectingCountryCallingCode_=!1,this.possibleFormats_=[],this.lastMatchPosition_=0,this.formattingTemplate_.clear(),this.currentFormattingPattern_="",this.attemptToChooseFormattingPattern_()},i18n.phonenumbers.AsYouTypeFormatter.prototype.getExtractedNationalPrefix_=function(){return this.extractedNationalPrefix_},i18n.phonenumbers.AsYouTypeFormatter.prototype.ableToExtractLongerNdd_=function(){if(0<this.extractedNationalPrefix_.length){var e=this.nationalNumber_.toString();this.nationalNumber_.clear(),this.nationalNumber_.append(this.extractedNationalPrefix_),this.nationalNumber_.append(e);var t=(e=this.prefixBeforeNationalNumber_.toString()).lastIndexOf(this.extractedNationalPrefix_);this.prefixBeforeNationalNumber_.clear(),this.prefixBeforeNationalNumber_.append(e.substring(0,t))}return this.extractedNationalPrefix_!=this.removeNationalPrefixFromNationalNumber_()},i18n.phonenumbers.AsYouTypeFormatter.prototype.isDigitOrLeadingPlusSign_=function(e){return i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN.test(e)||1==this.accruedInput_.getLength()&&i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN.test(e)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToFormatAccruedDigits_=function(){for(var e=this.nationalNumber_.toString(),t=this.possibleFormats_.length,r=0;r<t;++r){var n=this.possibleFormats_[r],o=n.getPatternOrDefault();if(new RegExp("^(?:"+o+")$").test(e)&&(this.shouldAddSpaceAfterNationalPrefix_=i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(n.getNationalPrefixFormattingRule()),n=e.replace(new RegExp(o,"g"),n.getFormat()),n=this.appendNationalNumber_(n),i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(n)==this.accruedInputWithoutFormatting_))return n}return""},i18n.phonenumbers.AsYouTypeFormatter.prototype.appendNationalNumber_=function(e){var t=this.prefixBeforeNationalNumber_.getLength();return this.shouldAddSpaceAfterNationalPrefix_&&0<t&&this.prefixBeforeNationalNumber_.toString().charAt(t-1)!=i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_?this.prefixBeforeNationalNumber_+i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_+e:this.prefixBeforeNationalNumber_+e},i18n.phonenumbers.AsYouTypeFormatter.prototype.getRememberedPosition=function(){if(!this.ableToFormat_)return this.originalPosition_;for(var e=0,t=0,r=this.accruedInputWithoutFormatting_.toString(),n=this.currentOutput_.toString();e<this.positionToRemember_&&t<n.length;)r.charAt(e)==n.charAt(t)&&e++,t++;return t},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChooseFormattingPattern_=function(){var e=this.nationalNumber_.toString();return e.length>=i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_?(this.getAvailableFormats_(e),0<(e=this.attemptToFormatAccruedDigits_()).length?e:this.maybeCreateNewTemplate_()?this.inputAccruedNationalNumber_():this.accruedInput_.toString()):this.appendNationalNumber_(e)},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_=function(){var e=this.nationalNumber_.toString(),t=e.length;if(0<t){for(var r="",n=0;n<t;n++)r=this.inputDigitHelper_(e.charAt(n));return this.ableToFormat_?this.appendNationalNumber_(r):this.accruedInput_.toString()}return this.prefixBeforeNationalNumber_.toString()},i18n.phonenumbers.AsYouTypeFormatter.prototype.isNanpaNumberWithNationalPrefix_=function(){if(1!=this.currentMetadata_.getCountryCode())return!1;var e=this.nationalNumber_.toString();return"1"==e.charAt(0)&&"0"!=e.charAt(1)&&"1"!=e.charAt(1)},i18n.phonenumbers.AsYouTypeFormatter.prototype.removeNationalPrefixFromNationalNumber_=function(){var e=this.nationalNumber_.toString(),t=0;if(this.isNanpaNumberWithNationalPrefix_())t=1,this.prefixBeforeNationalNumber_.append("1").append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.isCompleteNumber_=!0;else if(this.currentMetadata_.hasNationalPrefixForParsing()){var r=new RegExp("^(?:"+this.currentMetadata_.getNationalPrefixForParsing()+")");null!=(r=e.match(r))&&null!=r[0]&&0<r[0].length&&(this.isCompleteNumber_=!0,t=r[0].length,this.prefixBeforeNationalNumber_.append(e.substring(0,t)))}return this.nationalNumber_.clear(),this.nationalNumber_.append(e.substring(t)),e.substring(0,t)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_=function(){var e=this.accruedInputWithoutFormatting_.toString(),t=new RegExp("^(?:\\"+i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN+"|"+this.currentMetadata_.getInternationalPrefix()+")");return null!=(t=e.match(t))&&null!=t[0]&&0<t[0].length&&(this.isCompleteNumber_=!0,t=t[0].length,this.nationalNumber_.clear(),this.nationalNumber_.append(e.substring(t)),this.prefixBeforeNationalNumber_.clear(),this.prefixBeforeNationalNumber_.append(e.substring(0,t)),e.charAt(0)!=i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN&&this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractCountryCallingCode_=function(){if(0==this.nationalNumber_.getLength())return!1;var e=new goog.string.StringBuffer,t=this.phoneUtil_.extractCountryCode(this.nationalNumber_,e);return 0!=t&&(this.nationalNumber_.clear(),this.nationalNumber_.append(e.toString()),e=this.phoneUtil_.getRegionCodeForCountryCode(t),i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY==e?this.currentMetadata_=this.phoneUtil_.getMetadataForNonGeographicalRegion(t):e!=this.defaultCountry_&&(this.currentMetadata_=this.getMetadataForRegion_(e)),this.prefixBeforeNationalNumber_.append(""+t).append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_),this.extractedNationalPrefix_="",!0)},i18n.phonenumbers.AsYouTypeFormatter.prototype.normalizeAndAccrueDigitsAndPlusSign_=function(e,t){if(e==i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN){var r=e;this.accruedInputWithoutFormatting_.append(e)}else r=i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS[e],this.accruedInputWithoutFormatting_.append(r),this.nationalNumber_.append(r);return t&&(this.positionToRemember_=this.accruedInputWithoutFormatting_.getLength()),r},i18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitHelper_=function(e){var t=this.formattingTemplate_.toString();if(0<=t.substring(this.lastMatchPosition_).search(this.DIGIT_PATTERN_)){var r=t.search(this.DIGIT_PATTERN_);return e=t.replace(this.DIGIT_PATTERN_,e),this.formattingTemplate_.clear(),this.formattingTemplate_.append(e),this.lastMatchPosition_=r,e.substring(0,this.lastMatchPosition_+1)}return 1==this.possibleFormats_.length&&(this.ableToFormat_=!1),this.currentFormattingPattern_="",this.accruedInput_.toString()},i18n.phonenumbers.shortnumbermetadata={},i18n.phonenumbers.shortnumbermetadata.countryCodeToRegionCodeMap={0:"AC AD AE AF AG AI AL AM AO AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GR GT GU GW GY HK HN HR HT HU ID IE IL IM IN IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TG TH TJ TL TM TN TO TR TT TV TW TZ UA UG US UY UZ VA VC VE VG VI VN VU WF WS XK YE YT ZA ZM ZW".split(" ")},i18n.phonenumbers.shortnumbermetadata.countryToMetadata={AC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"AC",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AD:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],,,,"AD",,,,,,,,,,,,,,,,,,[,,"11[0268]",,,,"110"],,[,,"11[0268]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AE:[,[,,"[149]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|99[7-9]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AE",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",,,,"112",,,[3]],,[,,"112|445[16]|99[7-9]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"445\\d",,,,"4450",,,[4]]],AF:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:0[02]|19)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"AF",,,,,,,,,,,,,,,,,,[,,"1(?:0[02]|19)",,,,"100",,,[3]],,[,,"1(?:0[02]|19)|40404",,,,"100"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AG:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"AG",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"176|9(?:11|99)",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AI:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"AI",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|911",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AL:[,[,,"[15]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6[01]\\d\\d)|2[7-9]|3[15]|41)",,,,"112",,,[3,6]],[,,"5\\d{4}",,,,"50000",,,[5]],,,,"AL",,,,,,,,,,,,,,,,,,[,,"1(?:12|2[7-9])",,,,"112",,,[3]],,[,,"1(?:1(?:6(?:000|1(?:06|11|23))|8\\d\\d)|65\\d|89[12])|5\\d{4}|1(?:[1349]\\d|2[2-9])",,,,"110"],[,,,,,,,,,[-1]],[,,"123",,,,"123",,,[3]],,[,,"131|5\\d{4}",,,,"131",,,[3,5]]],AM:[,[,,"[148]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10[1-3]",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"AM",,,,,,,,,,,,,,,,,,[,,"10[1-3]",,,,"101",,,[3]],,[,,"(?:1|8[1-7])\\d\\d|40404",,,,"100"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AO:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[235]",,,,"112"],[,,,,,,,,,[-1]],,,,"AO",,,,,,,,,,,,,,,,,,[,,"11[235]",,,,"112"],,[,,"11[235]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AR:[,[,,"[01389]\\d{1,4}",,,,,,,[2,3,4,5]],,,[,,"000|1(?:0[0-35-7]|1[0245]|2[15]|9)|911",,,,"19",,,[2,3]],[,,,,,,,,,[-1]],,,,"AR",,,,,,,,,,,,,,,,,,[,,"10[017]|911",,,,"100",,,[3]],,[,,"000|1(?:0[0-35-7]|1[02-5]|2[15]|9)|3372|89338|911",,,,"19"],[,,,,,,,,,[-1]],[,,"893\\d\\d",,,,"89300",,,[5]],,[,,"(?:337|893\\d)\\d",,,,"3370",,,[4,5]]],AS:[,[,,"[49]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"911",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"AS",,,,,,,,,,,,,,,,,,[,,"911",,,,"911",,,[3]],,[,,"40404|911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],AT:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"116\\d{3}|1(?:[12]2|33|44)",,,,"112"],[,,,,,,,,,[-1]],,,,"AT",,,,,,,,,,,,,,,,,,[,,"1(?:[12]2|33|44)",,,,"112",,,[3]],,[,,"116(?:00[06]|1(?:17|23))|1(?:[12]2|33|44)",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AU:[,[,,"[0-27]\\d{2,7}",,,,,,,[3,4,5,6,7,8]],,,[,,"000|1(?:06|12|258885|55\\d)|733",,,,"000",,,[3,4,7]],[,,"1(?:2(?:34|456)|9\\d{4,6})",,,,"1234",,,[4,5,6,7,8]],,,,"AU",,,,,,,,,,,,,,,,,,[,,"000|1(?:06|12)",,,,"000",,,[3]],,[,,"000|1(?:06|1(?:00|2|9[46])|2(?:[23]\\d|(?:4|5\\d)\\d{2,3}|8(?:[013-9]\\d|2))|555|9\\d{4,6})|225|7(?:33|67)",,,,"000"],[,,"1(?:1[09]\\d|24733)|225|767",,,,"225",,,[3,4,6]],[,,"1(?:258885|55\\d)",,,,"1550",,,[4,7]],,[,,"19\\d{4,6}",,,,"190000",,,[6,7,8]]],AW:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"100|911",,,,"100"],[,,,,,,,,,[-1]],,,,"AW",,,,,,,,,,,,,,,,,,[,,"100|911",,,,"100"],,[,,"1(?:00|18|76)|91[13]",,,,"100"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],AX:[,[,,"[17]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"AX",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"112|75[12]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],AZ:[,[,,"[148]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"AZ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-3]|12)|(?:404|880)0",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:404|880)\\d",,,,"4040",,,[4]],,[,,"(?:404|880)\\d",,,,"4040",,,[4]]],BA:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:16\\d{3}|2[2-4])",,,,"122",,,[3,6]],[,,,,,,,,,[-1]],,,,"BA",,,,,,,,,,,,,,,,,,[,,"12[2-4]",,,,"122",,,[3]],,[,,"1(?:16(?:00[06]|1(?:1[17]|23))|2(?:0[0-7]|[2-5]|6[0-26])|(?:[3-5]|7\\d)\\d\\d)|1(?:18|2[78])\\d\\d?",,,,"122"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BB:[,[,,"[2-689]\\d\\d",,,,,,,[3]],,,[,,"[2359]11",,,,"211"],[,,,,,,,,,[-1]],,,,"BB",,,,,,,,,,,,,,,,,,[,,"[2359]11",,,,"211"],,[,,"[2-689]11",,,,"211"],[,,,,,,,,,[-1]],[,,"[468]11",,,,"411"],,[,,,,,,,,,[-1]]],BD:[,[,,"[1579]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10[0-26]|[19]99",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"BD",,,,,,,,,,,,,,,,,,[,,"10[0-2]|[19]99",,,,"100",,,[3]],,[,,"1(?:0(?:[0-369]|5[1-4]|7[0-4]|8[0-29])|1[16-9]|2(?:[134]|2[0-5])|3(?:1\\d?|6[3-6])|5[2-9])|5012|786|9594|[19]99|1(?:0(?:50|6\\d)|33|4(?:0|1\\d))\\d",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:11|2[13])|(?:501|959)\\d|786",,,,"111",,,[3,4]],,[,,"959\\d",,,,"9590",,,[4]]],BE:[,[,,"[1-9]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:0[0-25-8]|1[02]|7(?:12|77)|813)|(?:116|8)\\d{3}",,,,"100"],[,,"1(?:2[03]|40)4|(?:1(?:[24]1|3[01])|[2-79]\\d\\d)\\d",,,,"1204",,,[4]],,,,"BE",,,,,,,,,,,,,,,,,,[,,"1(?:0[01]|12)",,,,"100",,,[3]],,[,,"1(?:0[0-8]|1(?:[027]|6117)|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\d{3}|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"[2-9]\\d{3}",,,,"2000",,,[4]]],BF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"BF",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BG:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"1(?:1(?:2|6\\d{3})|50|6[06])",,,,"112"],[,,,,,,,,,[-1]],,,,"BG",,,,,,,,,,,,,,,,,,[,,"1(?:12|50|6[06])",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111))|50|6[06])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BH:[,[,,"[0189]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"(?:0[167]|81)\\d{3}|[19]99",,,,"199"],[,,"9[148]\\d{3}",,,,"91000",,,[5]],,,,"BH",,,,,,,,,,,,,,,,,,[,,"[19]99",,,,"199",,,[3]],,[,,"1(?:[02]\\d|12|4[01]|51|8[18]|9[169])|99[02489]|(?:0[167]|8[158]|9[148])\\d{3}",,,,"100"],[,,,,,,,,,[-1]],[,,"0[67]\\d{3}|88000|98555",,,,"06000",,,[5]],,[,,"88000|98555",,,,"88000",,,[5]]],BI:[,[,,"[16-9]\\d{2,3}",,,,,,,[3,4]],,,[,,"11[237]|611",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"BI",,,,,,,,,,,,,,,,,,[,,"11[237]",,,,"112",,,[3]],,[,,"1(?:1\\d|5[2-9]|6[0-256])|611|7(?:10|77|979)|8[28]8|900",,,,"110"],[,,,,,,,,,[-1]],[,,"611|7(?:10|77)|888|900",,,,"611",,,[3]],,[,,"(?:71|90)0",,,,"710",,,[3]]],BJ:[,[,,"[17]\\d{2,3}",,,,,,,[3,4]],,,[,,"11[78]|7[3-5]\\d\\d",,,,"117"],[,,,,,,,,,[-1]],,,,"BJ",,,,,,,,,,,,,,,,,,[,,"11[78]",,,,"117",,,[3]],,[,,"1(?:1[78]|2[02-5]|60)|7[0-5]\\d\\d",,,,"117"],[,,,,,,,,,[-1]],[,,"12[02-5]",,,,"120",,,[3]],,[,,,,,,,,,[-1]]],BL:[,[,,"1\\d",,,,,,,[2]],,,[,,"18",,,,"18"],[,,,,,,,,,[-1]],,,,"BL",,,,,,,,,,,,,,,,,,[,,"18",,,,"18"],,[,,"18",,,,"18"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"BM",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|911",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],BN:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"99[135]",,,,"991"],[,,,,,,,,,[-1]],,,,"BN",,,,,,,,,,,,,,,,,,[,,"99[135]",,,,"991"],,[,,"99[135]",,,,"991"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BO:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[089]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"BO",,,,,,,,,,,,,,,,,,[,,"11[089]",,,,"110",,,[3]],,[,,"11[089]|40404",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],BQ:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"BQ",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"1(?:12|76)|911",,,,"112"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],BR:[,[,,"[1-69]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:00|12|28|8[015]|9[0-47-9])|4(?:57|82\\d)|911",,,,"100",,,[3,4]],[,,,,,,,,,[-1]],,,,"BR",,,,,,,,,,,,,,,,,,[,,"1(?:12|28|9[023])|911",,,,"112",,,[3]],,[,,"1(?:0(?:[02]|3(?:1[2-579]|2[13-9]|3[124-9]|4[1-3578]|5[1-468]|6[139]|8[149]|9[168])|5[0-35-9]|6(?:0|1[0-35-8]?|2[0145]|3[0137]?|4[37-9]?|5[0-35]|6[016]?|7[137]?|8[5-8]|9[1359]))|1[25-8]|2[357-9]|3[024-68]|4[12568]|5\\d|6[0-8]|8[015]|9[0-47-9])|2(?:7(?:330|878)|85959?)|(?:32|91)1|4(?:0404?|57|828)|55555|6(?:0\\d{4}|10000)|(?:133|411)[12]",,,,"100"],[,,"102|273\\d\\d|321",,,,"102",,,[3,5]],[,,"151|(?:278|555)\\d\\d|4(?:04\\d\\d?|11\\d|57)",,,,"151",,,[3,4,5]],,[,,"285\\d{2,3}|321|40404|(?:27[38]\\d|482)\\d|6(?:0\\d|10)\\d{3}",,,,"321"]],BS:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"91[19]",,,,"911"],[,,,,,,,,,[-1]],,,,"BS",,,,,,,,,,,,,,,,,,[,,"91[19]",,,,"911"],,[,,"91[19]",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BT:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[023]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"BT",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110",,,[3]],,[,,"11[0-6]|40404",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],BW:[,[,,"[19]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"99[7-9]",,,,"997",,,[3]],[,,,,,,,,,[-1]],,,,"BW",,,,,,,,,,,,,,,,,,[,,"99[7-9]",,,,"997",,,[3]],,[,,"13123|99[7-9]",,,,"997"],[,,,,,,,,,[-1]],[,,"131\\d\\d",,,,"13100",,,[5]],,[,,"131\\d\\d",,,,"13100",,,[5]]],BY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],,,,"BY",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101"],,[,,"1(?:0[1-79]|1[246]|35|5[1-35]|6[89]|7[5-7]|8[58]|9[1-7])",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],BZ:[,[,,"9\\d\\d?",,,,,,,[2,3]],,,[,,"9(?:0|11)",,,,"90"],[,,,,,,,,,[-1]],,,,"BZ",,,,,,,,,,,,,,,,,,[,,"9(?:0|11)",,,,"90"],,[,,"9(?:0|11)",,,,"90"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CA:[,[,,"[1-9]\\d\\d(?:\\d\\d(?:\\d(?:\\d{2})?)?)?",,,,,,,[3,5,6,8]],,,[,,"112|[29]11",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CA",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"112|30000\\d{3}|[1-35-9]\\d{4,5}|[2-9]11",,,,"112"],[,,,,,,,,,[-1]],[,,"[235-7]11",,,,"211",,,[3]],,[,,"300\\d{5}|[1-35-9]\\d{4,5}",,,,"10000",,,[5,6,8]]],CC:[,[,,"[01]\\d\\d",,,,,,,[3]],,,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],,,,"CC",,,,,,,,,,,,,,,,,,[,,"000|112",,,,"000"],,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CD:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:1[348]|77|88)",,,,"113",,,[3]],[,,,,,,,,,[-1]],,,,"CD",,,,,,,,,,,,,,,,,,[,,"1(?:1[348]|77|88)",,,,"113",,,[3]],,[,,"1(?:1[348]|23|77|88)|40404",,,,"113"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],CF:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[78]|22\\d)",,,,"117"],[,,,,,,,,,[-1]],,,,"CF",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|220)",,,,"117"],,[,,"1(?:1[478]|220)",,,,"114"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CG:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[178]",,,,"111"],[,,,,,,,,,[-1]],,,,"CG",,,,,,,,,,,,,,,,,,[,,"11[78]",,,,"117"],,[,,"11[126-8]",,,,"111"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CH:[,[,,"[1-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:[278]|6\\d{3})|4[47])|5200",,,,"112",,,[3,4,6]],[,,"1(?:14|8[01589])\\d|543|83111",,,,"543",,,[3,4,5]],,,,"CH",,,,,,,,,,,,,,,,,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],,[,,"1(?:0[78]\\d\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[45])|6(?:00|[1-46])|8(?:02|1[189]|50|7|8[08]|99))|[2-9]\\d{2,4}",,,,"112"],[,,"1(?:4[035]|6[1-46])|1(?:41|60)\\d",,,,"140",,,[3,4]],[,,"5(?:200|35)",,,,"535",,,[3,4]],,[,,"[2-9]\\d{2,4}",,,,"200",,,[3,4,5]]],CI:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[01]|[78]0)",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"CI",,,,,,,,,,,,,,,,,,[,,"1(?:1[01]|[78]0)",,,,"110",,,[3]],,[,,"1(?:1[01]|[78]0)|4443",,,,"110"],[,,,,,,,,,[-1]],[,,"444\\d",,,,"4440",,,[4]],,[,,"444\\d",,,,"4440",,,[4]]],CK:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"99[689]",,,,"996"],[,,,,,,,,,[-1]],,,,"CK",,,,,,,,,,,,,,,,,,[,,"99[689]",,,,"996"],,[,,"99[689]",,,,"996"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CL:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:213|3[1-3])|434\\d|911",,,,"131",,,[3,4]],[,,"1(?:211|3(?:13|[348]0|5[01]))|(?:1(?:[05]6|[48]1|9[18])|2(?:01\\d|[23]2|77|88)|3(?:0[59]|13|3[279]|66)|4(?:[12]4|36\\d|4[017]|55)|5(?:00|41\\d|5[67]|99)|6(?:07\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\d",,,,"1060",,,[4,5]],,,,"CL",,,,,,,,,,,,,,,,,,[,,"13[1-3]|911",,,,"131",,,[3]],,[,,"1(?:00|21[13]|3(?:13|[348]0|5[01])|4(?:0[02-6]|17|[379])|818|919)|2(?:0(?:01|122)|22[47]|323|777|882)|3(?:0(?:51|99)|132|3(?:29|[37]7)|665)|43656|5(?:(?:00|415)4|5(?:66|77)|995)|6(?:131|222|366|699)|7878|8(?:011|11[28]|482|889)|9(?:01|1)1|13\\d|4(?:[13]42|243|4(?:02|15|77)|554)|(?:1(?:[05]6|98)|339|6(?:07|[35])0|9(?:[12]0|33))0",,,,"100"],[,,"(?:200|333)\\d",,,,"2000",,,[4]],[,,,,,,,,,[-1]],,[,,"13(?:13|[348]0|5[01])|(?:1(?:[05]6|[28]1|4[01]|9[18])|2(?:0(?:0|1\\d)|[23]2|77|88)|3(?:0[59]|13|3[2379]|66)|436\\d|5(?:00|41\\d|5[67]|99)|6(?:07\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\d|4(?:[1-3]4|4[017]|55)\\d",,,,"1060",,,[4,5]]],CM:[,[,,"[18]\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:1[37]|[37])",,,,"13",,,[2,3]],[,,,,,,,,,[-1]],,,,"CM",,,,,,,,,,,,,,,,,,[,,"1(?:1[37]|[37])",,,,"13",,,[2,3]],,[,,"1(?:1[37]|[37])|8711",,,,"13"],[,,,,,,,,,[-1]],[,,"871\\d",,,,"8710",,,[4]],,[,,"871\\d",,,,"8710",,,[4]]],CN:[,[,,"[19]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"1(?:1[09]|20)",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"CN",,,,,,,,,,,,,,,,,,[,,"1(?:1[09]|20)",,,,"110",,,[3]],,[,,"1(?:00\\d\\d|1[029]|20)|95\\d{3,4}",,,,"110"],[,,"1(?:00\\d\\d|12)|95\\d{3,4}",,,,"112"],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CO:[,[,,"[148]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:1[29]|23|32|56)",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CO",,,,,,,,,,,,,,,,,,[,,"1(?:1[29]|23|32|56)",,,,"112",,,[3]],,[,,"1(?:06|1[2-9]|2[35-7]|3[27]|4[467]|5[36]|6[4-7]|95)|40404|85432",,,,"106"],[,,,,,,,,,[-1]],[,,"(?:40|85)4\\d\\d",,,,"40400",,,[5]],,[,,"(?:40|85)4\\d\\d",,,,"40400",,,[5]]],CR:[,[,,"[1359]\\d{2,3}",,,,,,,[3,4]],,,[,,"112|911",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"CR",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"1(?:0(?:00|15|2[2-4679])|1(?:1[0-35-9]|2|37|[46]6|7[57]|8[79]|9[0-379])|2(?:00|[12]2|34|55)|3(?:21|33)|4(?:0[06]|1[4-6])|5(?:15|5[15])|693|7(?:00|1[7-9]|2[02]|[67]7)|975)|3855|5(?:0(?:30|49)|510)|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"(?:385|5(?:0[34]|51))\\d",,,,"3850",,,[4]]],CU:[,[,,"[12]\\d\\d(?:\\d{3,4})?",,,,,,,[3,6,7]],,,[,,"10[4-7]|(?:116|204\\d)\\d{3}",,,,"104"],[,,,,,,,,,[-1]],,,,"CU",,,,,,,,,,,,,,,,,,[,,"10[4-6]",,,,"104",,,[3]],,[,,"1(?:0[4-7]|1(?:6111|8)|40)|2045252",,,,"104"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CV:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"13[0-2]",,,,"130"],[,,,,,,,,,[-1]],,,,"CV",,,,,,,,,,,,,,,,,,[,,"13[0-2]",,,,"130"],,[,,"13[0-2]",,,,"130"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CW:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"CW",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"1(?:12|76)|911",,,,"112"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],CX:[,[,,"[01]\\d\\d",,,,,,,[3]],,,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],,,,"CX",,,,,,,,,,,,,,,,,,[,,"000|112",,,,"000"],,[,,"000|112",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CY:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"1(?:1(?:2|6\\d{3})|99)",,,,"112"],[,,,,,,,,,[-1]],,,,"CY",,,,,,,,,,,,,,,,,,[,,"1(?:12|99)",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111))|99)",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],CZ:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5[0568])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"CZ",,,,,,,,,,,,,,,,,,[,,"1(?:12|5[0568])",,,,"112",,,[3]],,[,,"1(?:1(?:2|8\\d)|(?:2|3\\d)\\d{2,3}|5[0568]|99)|1(?:16|4)\\d{3}",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DE:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"11(?:[02]|6\\d{3})",,,,"110"],[,,,,,,,,,[-1]],,,,"DE",,,,,,,,,,,,,,,,,,[,,"11[02]",,,,"110",,,[3]],,[,,"11(?:[025]|6(?:00[06]|1(?:1[167]|23)))",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DJ:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"DJ",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DK:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11(?:[24]|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"DK",,,,,,,,,,,,,,,,,,[,,"11[24]",,,,"112",,,[3]],,[,,"1(?:1(?:[2-48]|6(?:00[06]|111))|8(?:[08]1|1[0238]|28|30|5[13]))",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DM:[,[,,"[39]\\d\\d",,,,,,,[3]],,,[,,"333|9(?:11|99)",,,,"333"],[,,,,,,,,,[-1]],,,,"DM",,,,,,,,,,,,,,,,,,[,,"333|9(?:11|99)",,,,"333"],,[,,"333|9(?:11|99)",,,,"333"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DO:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],,,,"DO",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112"],,[,,"112|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],DZ:[,[,,"[17]\\d\\d?",,,,,,,[2,3]],,,[,,"1[47]",,,,"14",,,[2]],[,,,,,,,,,[-1]],,,,"DZ",,,,,,,,,,,,,,,,,,[,,"1[47]",,,,"14",,,[2]],,[,,"1[47]|730",,,,"14"],[,,,,,,,,,[-1]],[,,"730",,,,"730",,,[3]],,[,,"730",,,,"730",,,[3]]],EC:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:0[12]|12)|911",,,,"101"],[,,,,,,,,,[-1]],,,,"EC",,,,,,,,,,,,,,,,,,[,,"1(?:0[12]|12)|911",,,,"101"],,[,,"1(?:0[12]|12)|911",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],EE:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:[02]|6\\d{3})|2(?:05|28)|3(?:014|3(?:21|5\\d?)|660)|492|5(?:1[03]|410|501)|6(?:112|333|644)|7(?:012|127|89)|8(?:10|8[57])|9(?:0[134]|14))",,,,"110"],[,,"1(?:18(?:00|[12458]\\d?)|2(?:0(?:[02-46-8]\\d?|1[0-36])|1(?:[0-4]\\d?|6[06])|2(?:[0-4]\\d?|5[25])|[367]|4(?:0[04]|[12]\\d?|4[24]|54)|55[12457])|3(?:0(?:[02]\\d?|1[13578]|3[356])|1[1347]|2[02-5]|3(?:[01347]\\d?|2[023]|88)|4(?:[35]\\d?|4[34])|5(?:3[134]|5[035])|666)|4(?:2(?:00|4\\d?)|4(?:0[01358]|1[024]|50|7\\d?)|900)|5(?:0[0-35]|1(?:[1267]\\d?|5[0-7]|82)|2(?:[014-6]\\d?|22)|330|4(?:[35]\\d?|44)|5(?:00|[1-69]\\d?)|9(?:[159]\\d?|[38]0|77))|6(?:1(?:00|1[19]|[35-9]\\d?)|2(?:2[26]|[68]\\d?)|3(?:22|36|6[36])|5|6(?:[0-359]\\d?|6[0-26])|7(?:00|55|7\\d?|8[89])|9(?:00|1\\d?|69))|7(?:0(?:[023]\\d?|1[0578])|1(?:00|2[034]|[4-9]\\d?)|2(?:[07]\\d?|20|44)|7(?:[0-57]\\d?|9[79])|8(?:0[08]|2\\d?|8[0178])|9(?:00|97))|8(?:1[127]|8[1268]|9[269])|9(?:0(?:[02]\\d?|69|9[0269])|1[1-3689]|21))",,,,"123",,,[3,4,5]],,,,"EE",,,,,,,,,,,,,,,,,,[,,"11[02]",,,,"110",,,[3]],,[,,"1(?:1(?:[02-579]|6(?:000|111)|8(?:[09]\\d|[1-8]))|2[36-9]|3[7-9]|4[05-7]|5[6-8]|6[05]|7[3-6]|8[02-7]|9[3-9])|1(?:2[0-245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[0-2])\\d\\d?",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"1(?:18[1258]|2(?:0(?:1[036]|[46]\\d?)|166|21|4(?:0[04]|1\\d?|5[47])|[67])|3(?:0(?:1[13-578]|2\\d?|3[56])|1[15]|2[045]|3(?:[13]\\d?|2[13])|43|5(?:00|3[34]|53))|44(?:0[0135]|14|50|7\\d?)|5(?:05|1(?:[12]\\d?|5[1246]|8[12])|2(?:[01]\\d?|22)|3(?:00|3[03])|4(?:15|5\\d?)|500|9(?:5\\d?|77|80))|6(?:1[35-8]|226|3(?:22|3[36]|66)|644|7(?:00|7\\d?|89)|9(?:00|69))|7(?:01[258]|1(?:00|[15]\\d?)|2(?:44|7\\d?)|8(?:00|87|9\\d?))|8(?:1[128]|8[56]|9(?:[26]\\d?|77))|90(?:2\\d?|69|92))",,,,"126",,,[3,4,5]]],EG:[,[,,"[13]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:2[23]|80)",,,,"122",,,[3]],[,,,,,,,,,[-1]],,,,"EG",,,,,,,,,,,,,,,,,,[,,"1(?:2[23]|80)",,,,"122",,,[3]],,[,,"1(?:2[23]|[69]\\d{3}|80)|34400",,,,"122"],[,,,,,,,,,[-1]],[,,"344\\d\\d",,,,"34400",,,[5]],,[,,"344\\d\\d",,,,"34400",,,[5]]],EH:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],,,,"EH",,,,,,,,,,,,,,,,,,[,,"1(?:[59]|77)",,,,"15"],,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ER:[,[,,"[12]\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"11[2-46]|(?:12[47]|20[12])\\d{3}",,,,"112"],[,,,,,,,,,[-1]],,,,"ER",,,,,,,,,,,,,,,,,,[,,"1(?:1[2-46]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99",,,,"112"],,[,,"1(?:1[2-6]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ES:[,[,,"[0-379]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"0(?:16|6[57]|8[58])|1(?:006|12|[3-7]\\d\\d)|(?:116|20\\d)\\d{3}",,,,"016",,,[3,4,6]],[,,"[12]2\\d{1,4}|90(?:5\\d|7)|(?:118|2(?:[357]\\d|80)|3[357]\\d)\\d\\d|[79]9[57]\\d{3}",,,,"120"],,,,"ES",,,,,,,,,,,,,,,,,,[,,"08[58]|112",,,,"085",,,[3]],,[,,"0(?:1[0-26]|6[0-257]|8[058]|9[12])|1(?:0[03-57]\\d{1,3}|1(?:2|6(?:000|111)|8\\d\\d)|2\\d{1,4}|[3-9]\\d\\d)|2(?:2\\d{1,4}|80\\d\\d)|90(?:5[124578]|7)|1(?:3[34]|77)|(?:2[01]\\d|[79]9[57])\\d{3}|[23][357]\\d{3}",,,,"010"],[,,"0(?:[16][0-2]|80|9[12])|21\\d{4}",,,,"010",,,[3,6]],[,,"1(?:3[34]|77)|[12]2\\d{1,4}",,,,"120"],,[,,"(?:2[0-2]\\d|3[357]|[79]9[57])\\d{3}|2(?:[2357]\\d|80)\\d\\d",,,,"22000",,,[5,6]]],ET:[,[,,"9\\d\\d?",,,,,,,[2,3]],,,[,,"9(?:07|11?|2|39?|9[17])",,,,"91"],[,,,,,,,,,[-1]],,,,"ET",,,,,,,,,,,,,,,,,,[,,"9(?:11?|2|39?|9[17])",,,,"91"],,[,,"9(?:07|11?|2|39?|45|9[17])",,,,"91"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FI:[,[,,"[17]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"11(?:2|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"FI",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"11(?:2|6111)|75[12]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FJ:[,[,,"[0-579]\\d(?:\\d(?:\\d{2})?)?",,,,,,,[2,3,5]],,,[,,"91[17]",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"FJ",,,,,,,,,,,,,,,,,,[,,"91[17]",,,,"911",,,[3]],,[,,"0(?:1[34]|8[1-4])|1(?:0[1-3]|[25]9)|2[289]|30|40404|91[137]|[45]4|75",,,,"22"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"404\\d\\d",,,,"40400",,,[5]]],FK:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"FK",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"1\\d\\d|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FM:[,[,,"[39]\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"320\\d{3}|911",,,,"911"],[,,,,,,,,,[-1]],,,,"FM",,,,,,,,,,,,,,,,,,[,,"(?:32022|91)1",,,,"911"],,[,,"(?:32022|91)1",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FO:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"11[24]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"FO",,,,,,,,,,,,,,,,,,[,,"11[24]",,,,"112",,,[3]],,[,,"11[248]|1(?:4[124]|71|8[7-9])\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],FR:[,[,,"[1-8]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:0(?:07|[13]3)|1[02459]|[578]|9[167])|224|(?:3370|74)0|(?:116\\d|3[01])\\d\\d",,,,"15"],[,,"(?:118|[4-8]\\d)\\d{3}|36665",,,,"36665",,,[5,6]],,,,"FR",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15",,,[2,3]],,[,,"1(?:0\\d\\d|1(?:[02459]|6(?:000|111)|8\\d{3})|[578]|9[167])|2(?:0(?:00|2)0|24)|[3-8]\\d{4}|3\\d{3}|6(?:1[14]|34)|7(?:0[06]|22|40)",,,,"15"],[,,"10(?:[134]4|2[23]|5\\d|99)|202\\d|3(?:646|9[07]0)|634|70[06]|(?:106|61)[14]",,,,"611",,,[3,4]],[,,"118777|224|6(?:1[14]|34)|7(?:0[06]|22|40)|20(?:0\\d|2)\\d",,,,"224",,,[3,4,5,6]],,[,,"114|[3-8]\\d{4}",,,,"114",,,[3,5]]],GA:[,[,,"1\\d(?:\\d{2})?",,,,,,,[2,4]],,,[,,"18|1(?:3\\d|73)\\d",,,,"18"],[,,,,,,,,,[-1]],,,,"GA",,,,,,,,,,,,,,,,,,[,,"1(?:3\\d\\d|730|8)",,,,"18"],,[,,"1(?:3\\d\\d|730|8)",,,,"18"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GB:[,[,,"[1-46-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:05|1(?:2|6\\d{3})|7[56]\\d|8000)|2(?:20\\d|48)|4444|999",,,,"105"],[,,,,,,,,,[-1]],,,,"GB",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[015]|1(?:[12]|6(?:000|1(?:11|23))|8\\d{3})|2(?:[1-3]|50)|33|4(?:1|7\\d)|571|7(?:0\\d|[56]0)|800\\d|9[15])|2(?:0202|1300|2(?:02|11)|3(?:02|336|45)|4(?:25|8))|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|(?:[68]\\d|7[089])\\d{3}|15\\d|2[02]2|650|789|9(?:01|99)",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:(?:25|7[56])\\d|571)|2(?:02(?:\\d{2})?|[13]3\\d\\d|48)|4444|901",,,,"202",,,[3,4,5]],,[,,"(?:125|2(?:020|13\\d)|(?:7[089]|8[01])\\d\\d)\\d",,,,"1250",,,[4,5]]],GD:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"GD",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"176|911",,,,"176"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],GE:[,[,,"[014]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"0(?:11|33)|11[1-3]|[01]22",,,,"011",,,[3]],[,,,,,,,,,[-1]],,,,"GE",,,,,,,,,,,,,,,,,,[,,"0(?:11|33)|11[1-3]|[01]22",,,,"011",,,[3]],,[,,"0(?:11|33)|11[1-3]|40404|[01]22",,,,"011"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"GF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GG:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"GG",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[01]|1[12]|23|41|55|9[05])|999|1(?:1[68]\\d\\d|47|800)\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GH:[,[,,"[14589]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"19[1-3]|999",,,,"191",,,[3]],[,,,,,,,,,[-1]],,,,"GH",,,,,,,,,,,,,,,,,,[,,"19[1-3]|999",,,,"191",,,[3]],,[,,"19[1-3]|40404|(?:54|83)00|999",,,,"191"],[,,,,,,,,,[-1]],[,,"404\\d\\d|(?:54|83)0\\d",,,,"5400",,,[4,5]],,[,,"404\\d\\d|(?:54|83)0\\d",,,,"5400",,,[4,5]]],GI:[,[,,"[158]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:00|1[25]|23|4(?:1|7\\d)|5[15]|9[02-49])|555|(?:116\\d|80)\\d\\d",,,,"100",,,[3,4,6]],[,,"8[1-69]\\d\\d",,,,"8100",,,[4]],,,,"GI",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[09])",,,,"112",,,[3]],,[,,"1(?:00|1(?:[25]|6(?:00[06]|1(?:1[17]|23))|8\\d\\d)|23|4(?:1|7[014])|5[015]|9[02-49])|555|8[0-79]\\d\\d|8(?:00|4[0-2]|8[0-589])",,,,"100"],[,,"150|87\\d\\d",,,,"150",,,[3,4]],[,,"1(?:00|1(?:5|8\\d\\d)|23|51|9[2-4])|555|8(?:00|4[0-2]|8[0-589])",,,,"100",,,[3,5]],,[,,,,,,,,,[-1]]],GL:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"GL",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"112",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GM:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:1[6-8]|[6-8])",,,,"16"],[,,,,,,,,,[-1]],,,,"GM",,,,,,,,,,,,,,,,,,[,,"1(?:1[6-8]|[6-8])",,,,"16"],,[,,"1(?:1[6-8]|[6-8])",,,,"16"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GN:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,,,"GN",,,,,,,,,,,,,,,,,,[,,,,,,,,,[-1]],,[,,"12\\d|40404",,,,"120"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GP:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"GP",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GR:[,[,,"1\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"1(?:0[089]|1(?:2|6\\d{3})|66|99)",,,,"100",,,[3,6]],[,,,,,,,,,[-1]],,,,"GR",,,,,,,,,,,,,,,,,,[,,"1(?:00|12|66|99)",,,,"100",,,[3]],,[,,"1(?:0[089]|1(?:2|320|6(?:000|1(?:1[17]|23)))|(?:389|9)9|66)",,,,"100"],[,,"113\\d\\d",,,,"11300",,,[5]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GT:[,[,,"[14]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:10|2[03])",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"GT",,,,,,,,,,,,,,,,,,[,,"1(?:10|2[03])",,,,"110",,,[3]],,[,,"110|40404|1(?:2|[57]\\d)\\d",,,,"110"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],GU:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"GU",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GW:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[378]",,,,"113"],[,,,,,,,,,[-1]],,,,"GW",,,,,,,,,,,,,,,,,,[,,"11[378]",,,,"113"],,[,,"11[378]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],GY:[,[,,"[019]\\d{2,3}",,,,,,,[3,4]],,,[,,"91[1-3]",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"GY",,,,,,,,,,,,,,,,,,[,,"91[1-3]",,,,"911",,,[3]],,[,,"0(?:02|(?:17|80)1|444|7(?:[67]7|9)|9(?:0[78]|[2-47]))|1(?:443|5[568])|91[1-3]",,,,"002"],[,,,,,,,,,[-1]],[,,"144\\d",,,,"1440",,,[4]],,[,,"144\\d",,,,"1440",,,[4]]],HK:[,[,,"[19]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"112|99[29]",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"HK",,,,,,,,,,,,,,,,,,[,,"112|99[29]",,,,"112",,,[3]],,[,,"1(?:0(?:(?:[0136]\\d|2[14])\\d{0,3}|8[138])|12|2(?:[0-3]\\d{0,4}|(?:58|8[13])\\d{0,3})|7(?:[135-9]\\d{0,4}|219\\d{0,2})|8(?:0(?:(?:[13]|60\\d)\\d|8)|1(?:0\\d|[2-8])|2(?:0[5-9]|(?:18|2)2|3|8[128])|(?:(?:3[0-689]\\d|7(?:2[1-389]|8[0235-9]|93))\\d|8)\\d|50[138]|6(?:1(?:11|86)|8)))|99[29]|10[0139]",,,,"100"],[,,,,,,,,,[-1]],[,,"109|1(?:08|85\\d)\\d",,,,"109",,,[3,4,5]],,[,,"992",,,,"992",,,[3]]],HN:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"HN",,,,,,,,,,,,,,,,,,[,,"199",,,,"199",,,[3]],,[,,"199|40404",,,,"199"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],HR:[,[,,"[19]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:12|9[2-4])|9[34]|1(?:16\\d|39)\\d\\d",,,,"93",,,[2,3,5,6]],[,,"118\\d\\d",,,,"11800",,,[5]],,,,"HR",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])|9[34]",,,,"93",,,[2,3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\d\\d)|3977|9(?:[2-5]|87))|9[34]",,,,"93"],[,,,,,,,,,[-1]],[,,"139\\d\\d",,,,"13900",,,[5]],,[,,"139\\d\\d",,,,"13900",,,[5]]],HT:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[48]",,,,"114",,,[3]],[,,,,,,,,,[-1]],,,,"HT",,,,,,,,,,,,,,,,,,[,,"11[48]",,,,"114",,,[3]],,[,,"11[48]|40404",,,,"114"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],HU:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"1(?:0[457]|1(?:2|6\\d{3}))",,,,"104"],[,,,,,,,,,[-1]],,,,"HU",,,,,,,,,,,,,,,,,,[,,"1(?:0[457]|12)",,,,"104",,,[3]],,[,,"1(?:0[457]|1(?:2|6(?:000|1(?:11|23))))",,,,"104"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ID:[,[,,"[178]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[02389]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"ID",,,,,,,,,,,,,,,,,,[,,"11[02389]",,,,"110",,,[3]],,[,,"1(?:1[02389]|40\\d\\d)|71400|89887",,,,"110"],[,,,,,,,,,[-1]],[,,"(?:714|898)\\d\\d",,,,"71400",,,[5]],,[,,"714\\d\\d",,,,"71400",,,[5]]],IE:[,[,,"[159]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})|999",,,,"112",,,[3,6]],[,,"5[37]\\d{3}",,,,"53000",,,[5]],,,,"IE",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"11(?:2|6(?:00[06]|1(?:1[17]|23)))|999|(?:1(?:18|9)|5[0137]\\d)\\d\\d",,,,"112"],[,,"51\\d{3}",,,,"51000",,,[5]],[,,"51210",,,,"51210",,,[5]],,[,,"51210|(?:118|5[037]\\d)\\d\\d",,,,"11800",,,[5]]],IL:[,[,,"[12]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[0-2]|12)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"IL",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-2]|12)",,,,"100",,,[3]],,[,,"1(?:0[0-2]|1(?:[013-9]\\d|2)|[2-9]\\d\\d)|2407|(?:104|27)00",,,,"100"],[,,,,,,,,,[-1]],[,,"104\\d\\d",,,,"10400",,,[5]],,[,,"104\\d\\d",,,,"10400",,,[5]]],IM:[,[,,"[189]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"999",,,,"999",,,[3]],[,,,,,,,,,[-1]],,,,"IM",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"1\\d\\d(?:\\d{3})?|8(?:6444|9887)|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"8(?:64|98)\\d\\d",,,,"86400",,,[5]]],IN:[,[,,"[12578]\\d{2,8}",,,,,,,[3,4,5,6,7,8,9]],,,[,,"1(?:0[0-248]|1[289]|21|[39][89]|4[01]|6(?:1|6\\d?)|8[12])|777|800|1[05]5\\d|1(?:07|51|94)\\d\\d?|(?:1(?:[05]5\\d|70)\\d|261)\\d|1(?:0[369]|10|29|3[126]|9[0-256])\\d",,,,"100",,,[3,4,5,6]],[,,"11[67]\\d{4}|56161561",,,,"1160000",,,[7,8]],,,,"IN",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-28]|12|298)|2611",,,,"100",,,[3,4]],,[,,"1(?:0(?:[0-248]|3[39]|5(?:010|6)|6[3468]|7(?:[01357]|[28]0?|4[01])|9[0135-9])|1(?:00|[289])|2(?:1|98)|3(?:11|2[0-2]|63|[89])|4[01]|5(?:1(?:0[0-36]|[127])|54)|6(?:1|6[01]?)|7000|8[12]|9(?:0[013-59]|12|25|4[4-9]\\d?|50|6[1347]|[89]))|2611|5(?:0(?:0(?:0\\d|1|20?)|325|5[2-79]\\d{3,5})|1(?:234|555|717|818|96[49])|2(?:0(?:0[01]|[14]0)|151|555|666|888|9(?:06|99\\d?))|3(?:0[01]0|131|553|(?:66|77)6)|(?:464|55[05])\\d{1,3}|6(?:070|3[68]|43)|717\\d)|777|800|5(?:05(?:0|1\\d)|221|3(?:03|3[23]))\\d{1,4}|5(?:(?:04|88)0|2(?:2[0267]|3[16])|4(?:1[04]|20|3[02])|5(?:3[16]|67)|6(?:06|[67]\\d)|787|9(?:64|90))\\d\\d?|(?:1(?:05[79]|(?:1[67][0-2]|802)\\d|55[23])\\d|5(?:(?:00(?:0\\d|1)|(?:304|616)\\d\\d)\\d|1(?:0[12]|4[2-4])|2(?:2[3589]|3(?:1\\d{3}|2)|4[04]|7[78])|4(?:[02]4|32\\d{4}|4[04]|99)|5(?:1[25]|[36]5|4[45]|93)|7(?:(?:17\\d|57)\\d\\d|[27]7|88)|8(?:3[4-69]|4[01]|5[58]|88(?:8\\d\\d|9)|99)|9(?:0(?:0|2\\d{3})|55|6[67]|77|88)))\\d",,,,"100"],[,,"5(?:14(?:2[5-9]|[34]\\d)|757555)",,,,"51425",,,[5,7]],[,,"1(?:(?:1[67]\\d\\d|70)\\d\\d|55330|909)|5(?:300\\d|6161(?:17[89]|561))|1(?:[19][89]|21|4[01])",,,,"118",,,[3,4,5,6,7,8]],,[,,"1(?:39|90[019])|5(?:14(?:2[5-9]|[34]\\d)|6161(?:17[89]|561)|757555)",,,,"139",,,[3,4,5,7,8]]],IQ:[,[,,"[1479]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[04]|15|22)",,,,"100",,,[3]],[,,,,,,,,,[-1]],,,,"IQ",,,,,,,,,,,,,,,,,,[,,"1(?:0[04]|15|22)",,,,"100",,,[3]],,[,,"1(?:0[04]|15|22)|4432|71117|9988",,,,"100"],[,,,,,,,,,[-1]],[,,"(?:443|711\\d|998)\\d",,,,"4430",,,[4,5]],,[,,"(?:443|711\\d|998)\\d",,,,"4430",,,[4,5]]],IR:[,[,,"[129]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1[0-68]|2[0-59]|9[0-579])|911",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"IR",,,,,,,,,,,,,,,,,,[,,"1(?:1[025]|25)|911",,,,"110",,,[3]],,[,,"1(?:1[0-68]|2[0-59]|3[346-8]|4(?:[0147]|[289]0)|5(?:0[14]|1[02479]|2[0-3]|39|[49]0|65)|6(?:[16]6|[27]|90)|8(?:03|1[18]|22|3[37]|4[28]|88|99)|9[0-579])|20(?:[09]0|1(?:[038]|1[079]|26|9[69])|2[01])|9(?:11|9(?:0009|90))",,,,"110"],[,,"1(?:5[0-469]|8[0-489])\\d",,,,"1500",,,[4]],[,,"(?:1(?:5[0-469]|8[0-489])|99(?:0\\d\\d|9))\\d",,,,"1500",,,[4,6]],,[,,"990\\d{3}",,,,"990000",,,[6]]],IS:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"1(?:12|71\\d)",,,,"112",,,[3,4]],[,,,,,,,,,[-1]],,,,"IS",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1(?:1(?:[28]|61(?:16|23))|4(?:00|1[145]|4[0146])|55|7(?:00|17|7[07-9])|8(?:[02]0|1[16-9]|88)|900)",,,,"112"],[,,,,,,,,,[-1]],[,,"14(?:0\\d|41)",,,,"1400",,,[4]],,[,,"1(?:415|90\\d)",,,,"1415",,,[4]]],IT:[,[,,"[14]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"1(?:1(?:[2358]|6\\d{3})|87)",,,,"112",,,[3,6]],[,,"(?:12|4(?:[478](?:[0-4]|[5-9]\\d\\d)|55))\\d\\d",,,,"1200",,,[4,5,7]],,,,"IT",,,,,,,,,,,,,,,,,,[,,"11[2358]",,,,"112",,,[3]],,[,,"1(?:0\\d{2,3}|1(?:[2-57-9]|6(?:000|111))|3[39]|4(?:82|9\\d{1,3})|5(?:00|1[58]|2[25]|3[03]|44|[59])|60|8[67]|9(?:[01]|2[2-9]|4\\d|696))|4(?:2323|5045)|(?:1(?:2|92[01])|4(?:3(?:[01]|[45]\\d\\d)|[478](?:[0-4]|[5-9]\\d\\d)|55))\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"4(?:3(?:[01]|[45]\\d\\d)|[478](?:[0-4]|[5-9]\\d\\d)|5[05])\\d\\d",,,,"43000",,,[5,7]]],JE:[,[,,"[129]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"JE",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:00|1(?:2|8\\d{3})|23|4(?:[14]|28|7\\d)|5\\d|7(?:0[12]|[128]|35?)|808|9[0135])|23[2-4]|999",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],JM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"11[029]|911",,,,"110"],[,,,,,,,,,[-1]],,,,"JM",,,,,,,,,,,,,,,,,,[,,"11[029]|911",,,,"110"],,[,,"1(?:1[029]|76)|911",,,,"110"],[,,,,,,,,,[-1]],[,,"176",,,,"176"],,[,,"176",,,,"176"]],JO:[,[,,"[19]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"1(?:12|9[127])|911",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"JO",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[127])|911",,,,"112",,,[3]],,[,,"1(?:09|1[0-2]|9[0-24-79])|9(?:0903|11|8788)",,,,"109"],[,,,,,,,,,[-1]],[,,"9(?:09|87)\\d\\d",,,,"90900",,,[5]],,[,,"9(?:09|87)\\d\\d",,,,"90900",,,[5]]],JP:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[09]",,,,"110"],[,,,,,,,,,[-1]],,,,"JP",,,,,,,,,,,,,,,,,,[,,"11[09]",,,,"110"],,[,,"11[09]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KE:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1(?:[246]|9\\d)|5(?:01|2[127]|6[26]\\d))|999",,,,"112"],[,,"909\\d\\d",,,,"90900",,,[5]],,,,"KE",,,,,,,,,,,,,,,,,,[,,"11[24]|999",,,,"112",,,[3]],,[,,"1(?:0(?:[07-9]|1[0-25]|400)|1(?:[024-6]|9[0-579])|2[1-3]|3[01]|4[14]|5(?:[01][01]|2[0-24-79]|33|4[05]|5[59]|6(?:00|29|6[67]))|(?:6[035]\\d|[78])\\d|9(?:[02-9]\\d\\d|19))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\d)\\d|5(?:[0-7]\\d|99))\\d\\d|9(?:09\\d\\d|99)|8988",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:(?:04|6[35])\\d\\d|3[01]|4[14]|5(?:1\\d|2[25]))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\d)\\d|5(?:[0-7]\\d|99)|909)\\d\\d|898\\d",,,,"130"],,[,,"1(?:(?:04|6[035])\\d\\d|4[14]|5(?:01|55|6[26]\\d))|40404|8988|909\\d\\d",,,,"141"]],KG:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"10[1-3]",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"KG",,,,,,,,,,,,,,,,,,[,,"10[1-3]",,,,"101",,,[3]],,[,,"10[1-3]|4040",,,,"101"],[,,,,,,,,,[-1]],[,,"404\\d",,,,"4040",,,[4]],,[,,"404\\d",,,,"4040",,,[4]]],KH:[,[,,"[146]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[7-9]|666",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"KH",,,,,,,,,,,,,,,,,,[,,"11[7-9]|666",,,,"117",,,[3]],,[,,"11[7-9]|40404|666",,,,"117"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],KI:[,[,,"[179]\\d{2,3}",,,,,,,[3,4]],,,[,,"19[2-5]|99[2-4]",,,,"192",,,[3]],[,,,,,,,,,[-1]],,,,"KI",,,,,,,,,,,,,,,,,,[,,"19[2-5]|99[2-4]",,,,"192",,,[3]],,[,,"1(?:05[0-259]|88|9[2-5])|777|99[2-4]|10[0-8]",,,,"100"],[,,"103",,,,"103",,,[3]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KM:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"KM",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KN:[,[,,"[39]\\d\\d",,,,,,,[3]],,,[,,"333|9(?:11|99)",,,,"333"],[,,,,,,,,,[-1]],,,,"KN",,,,,,,,,,,,,,,,,,[,,"333|9(?:11|99)",,,,"333"],,[,,"333|9(?:11|99)",,,,"333"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KP:[,[,,"[18]\\d\\d",,,,,,,[3]],,,[,,"11[29]|819",,,,"112"],[,,,,,,,,,[-1]],,,,"KP",,,,,,,,,,,,,,,,,,[,,"11[29]|819",,,,"112"],,[,,"11[29]|819",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KR:[,[,,"1\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1[27-9]|28|330|82)",,,,"112",,,[3,4]],[,,,,,,,,,[-1]],,,,"KR",,,,,,,,,,,,,,,,,,[,,"11[29]",,,,"112",,,[3]],,[,,"1(?:[016-9]114|3(?:0[01]|2|3[0-35-9]|45?|5[057]|6[569]|7[79]|8[2589]|9[0189]))|1(?:0[015]|1\\d|2[01357-9]|41|8[28])",,,,"100"],[,,,,,,,,,[-1]],[,,"1(?:0[01]|1[4-6]|41)|1(?:[06-9]1\\d|111)\\d",,,,"100",,,[3,5]],,[,,,,,,,,,[-1]]],KW:[,[,,"[18]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"KW",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1[0-7]\\d|89887",,,,"100"],[,,,,,,,,,[-1]],[,,"898\\d\\d",,,,"89800",,,[5]],,[,,,,,,,,,[-1]]],KY:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"KY",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],KZ:[,[,,"[134]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],[,,,,,,,,,[-1]],,,,"KZ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-4]|12)|(?:3040|404)0",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:304\\d|404)\\d",,,,"4040",,,[4,5]],,[,,"(?:304\\d|404)\\d",,,,"4040",,,[4,5]]],LA:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[015]",,,,"190"],[,,,,,,,,,[-1]],,,,"LA",,,,,,,,,,,,,,,,,,[,,"19[015]",,,,"190"],,[,,"19[015]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LB:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:12|40|75)|999",,,,"112"],[,,,,,,,,,[-1]],,,,"LB",,,,,,,,,,,,,,,,,,[,,"1(?:12|40|75)|999",,,,"112"],,[,,"1(?:12|40|75)|999",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"LC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LI:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"LI",,,,,,,,,,,,,,,,,,[,,"1(?:1[278]|44)",,,,"112",,,[3]],,[,,"1(?:1(?:[278]|45)|4[3-57]|50|75|81[18])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LK:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"11[02689]",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"LK",,,,,,,,,,,,,,,,,,[,,"11[02689]",,,,"110",,,[3]],,[,,"1(?:1[024-9]|3(?:00|1[2-49]|2[23]|3[1-3]|44|5[07]|[67]9|88|9[039])|9(?:0[0-2589]|1[0-357-9]|2[0-25689]|3[0389]|4[0489]|5[014-69]|6[0-2689]|7[03579]|8[02457-9]|9[0-2569]))",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LR:[,[,,"[3489]\\d{2,3}",,,,,,,[3,4]],,,[,,"355|911",,,,"355",,,[3]],[,,,,,,,,,[-1]],,,,"LR",,,,,,,,,,,,,,,,,,[,,"355|911",,,,"355",,,[3]],,[,,"355|4040|8(?:400|933)|911",,,,"355"],[,,,,,,,,,[-1]],[,,"(?:404|8(?:40|93))\\d",,,,"4040",,,[4]],,[,,"(?:404|8(?:40|93))\\d",,,,"4040",,,[4]]],LS:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[257]",,,,"112"],[,,,,,,,,,[-1]],,,,"LS",,,,,,,,,,,,,,,,,,[,,"11[257]",,,,"112"],,[,,"11[257]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LT:[,[,,"[01]\\d(?:\\d(?:\\d{3})?)?",,,,,,,[2,3,6]],,,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:2|6111))|116(?:0\\d|12)\\d",,,,"01"],[,,,,,,,,,[-1]],,,,"LT",,,,,,,,,,,,,,,,,,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|12)",,,,"01",,,[2,3]],,[,,"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:[27-9]|6(?:000|1(?:1[17]|23))))",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LU:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:[23]|6\\d{3})",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"LU",,,,,,,,,,,,,,,,,,[,,"11[23]",,,,"112",,,[3]],,[,,"11(?:[23]|6(?:000|111))|1(?:18|[25]\\d|3)\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],LV:[,[,,"[018]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"0[1-3]|11(?:[023]|6\\d{3})",,,,"01",,,[2,3,6]],[,,"1180|821\\d\\d",,,,"1180",,,[4,5]],,,,"LV",,,,,,,,,,,,,,,,,,[,,"0[1-3]|11[023]",,,,"01",,,[2,3]],,[,,"0[1-4]|1(?:1(?:[02-4]|6(?:000|111)|8[0189])|(?:5|65)5|77)|821[57]4",,,,"01"],[,,"1181",,,,"1181",,,[4]],[,,"165\\d",,,,"1650",,,[4]],,[,,,,,,,,,[-1]]],LY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[013]",,,,"190"],[,,,,,,,,,[-1]],,,,"LY",,,,,,,,,,,,,,,,,,[,,"19[013]",,,,"190"],,[,,"19[013]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MA:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],,,,"MA",,,,,,,,,,,,,,,,,,[,,"1(?:[59]|77)",,,,"15"],,[,,"1(?:[59]|77)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MC:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],,,,"MC",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15"],,[,,"1(?:12|41|[578])",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MD:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6(?:000|1(?:11|2\\d)))|90[1-3]",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"MD",,,,,,,,,,,,,,,,,,[,,"112|90[1-3]",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\d\\d?|99)|90[04-9])|90[1-3]|1(?:4\\d\\d|6[0-389]|9[1-4])\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ME:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:12|2[2-4])",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"ME",,,,,,,,,,,,,,,,,,[,,"1(?:12|2[2-4])",,,,"112",,,[3]],,[,,"1(?:1(?:(?:[013-57-9]|6\\d\\d)\\d|2)|[249]\\d{3}|5999|8(?:0[089]|1[0-8]|888))|1(?:[02-5]\\d\\d|60[06]|700)|12\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"MF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MG:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:1[78]|[78])",,,,"17"],[,,,,,,,,,[-1]],,,,"MG",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|[78])",,,,"17"],,[,,"1(?:1[78]|[78])",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MH:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"MH",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MK:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],,,,"MK",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])",,,,"112"],,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ML:[,[,,"[136-8]\\d{1,4}",,,,,,,[2,3,4,5]],,,[,,"1[578]|(?:352|67)00|7402|(?:677|744|8000)\\d",,,,"15",,,[2,4,5]],[,,"(?:12|800)2\\d|3(?:52(?:11|2[02]|3[04-6]|99)|7574)",,,,"1220",,,[4,5]],,,,"ML",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15",,,[2]],,[,,"1(?:1(?:[013-9]\\d|2)|2(?:1[02-469]|2[13])|[578])|350(?:35|57)|67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)|800[0-2][12]|3(?:52|[67]\\d)\\d\\d",,,,"15"],[,,"37(?:433|575)|7400|8001\\d",,,,"7400",,,[4,5]],[,,"3503\\d|(?:3[67]\\d|800)\\d\\d",,,,"35030",,,[5]],,[,,"374(?:0[24-9]|[1-9]\\d)|7400|3(?:6\\d|75)\\d\\d",,,,"7400",,,[4,5]]],MM:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"199",,,,"199"],[,,,,,,,,,[-1]],,,,"MM",,,,,,,,,,,,,,,,,,[,,"199",,,,"199"],,[,,"199",,,,"199"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"10[0-3]",,,,"100"],[,,,,,,,,,[-1]],,,,"MN",,,,,,,,,,,,,,,,,,[,,"10[0-3]",,,,"100"],,[,,"10[0-3]",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MO:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"MO",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MP:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"MP",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MQ:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],,,,"MQ",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15"],,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MR:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"MR",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MS:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"MS",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MT:[,[,,"1\\d\\d(?:\\d{3})?",,,,,,,[3,6]],,,[,,"11(?:2|6\\d{3})",,,,"112"],[,,,,,,,,,[-1]],,,,"MT",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"11(?:2|6(?:000|1(?:11|23)))",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MU:[,[,,"[189]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"11[45]|99[59]",,,,"114",,,[3]],[,,,,,,,,,[-1]],,,,"MU",,,,,,,,,,,,,,,,,,[,,"11[45]|99[59]",,,,"114",,,[3]],,[,,"1\\d{2,4}|(?:8\\d\\d|99)\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],MV:[,[,,"[14]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:02|1[89])",,,,"102",,,[3]],[,,,,,,,,,[-1]],,,,"MV",,,,,,,,,,,,,,,,,,[,,"1(?:02|1[89])",,,,"102",,,[3]],,[,,"1(?:[0-37-9]|[4-6]\\d)\\d|4040|1[45]1",,,,"100"],[,,,,,,,,,[-1]],[,,"1[45]1",,,,"141",,,[3]],,[,,,,,,,,,[-1]]],MW:[,[,,"[189]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199|99[7-9]",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"MW",,,,,,,,,,,,,,,,,,[,,"199|99[7-9]",,,,"199",,,[3]],,[,,"199|80400|99[7-9]",,,,"199"],[,,,,,,,,,[-1]],[,,"804\\d\\d",,,,"80400",,,[5]],,[,,"804\\d\\d",,,,"80400",,,[5]]],MX:[,[,,"[0579]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"0(?:6[0568]|80)|911",,,,"060",,,[3]],[,,"(?:530\\d|776)\\d",,,,"7760",,,[4,5]],,,,"MX",,,,,,,,,,,,,,,,,,[,,"0(?:6[0568]|80)|911",,,,"060",,,[3]],,[,,"0[1-9]\\d|53053|7766|911",,,,"010"],[,,,,,,,,,[-1]],[,,"0(?:[249]0|[35][01])",,,,"020",,,[3]],,[,,,,,,,,,[-1]]],MY:[,[,,"[1369]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"112|999",,,,"112",,,[3]],[,,,,,,,,,[-1]],,,,"MY",,,,,,,,,,,,,,,,,,[,,"112|999",,,,"112",,,[3]],,[,,"1(?:0[01348]|1(?:[02]|1[128]|311)|2(?:0[125]|[13-6]|2\\d{0,2})|(?:3[1-35-79]|7[45])\\d\\d?|5(?:454|5\\d\\d?|77|888|999?)|8(?:18?|2|8[18])|9(?:[124]\\d?|68|71|9[0679]))|66628|99[1-469]|13[5-7]|(?:1(?:0[569]|309|5[12]|7[136-9]|9[03])|3[23679]\\d\\d)\\d",,,,"100"],[,,"666\\d\\d",,,,"66600",,,[5]],[,,,,,,,,,[-1]],,[,,"(?:3[23679]\\d|666)\\d\\d",,,,"32000",,,[5]]],MZ:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[79]|9[78])",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"MZ",,,,,,,,,,,,,,,,,,[,,"1(?:1[79]|9[78])",,,,"117",,,[3]],,[,,"1(?:[02-5]\\d\\d|1[79]|9[78])",,,,"117"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NA:[,[,,"[19]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"10111",,,,"10111",,,[5]],[,,,,,,,,,[-1]],,,,"NA",,,,,,,,,,,,,,,,,,[,,"10111",,,,"10111",,,[5]],,[,,"(?:10|93)111|(?:1\\d|9)\\d\\d",,,,"900"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NC:[,[,,"[135]\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:0(?:00|1[23]|3[0-2]|8\\d)|[5-8])|363\\d|577",,,,"15"],[,,,,,,,,,[-1]],,,,"NC",,,,,,,,,,,,,,,,,,[,,"1[5-8]",,,,"15",,,[2]],,[,,"1(?:0(?:0[06]|1[02-46]|20|3[0-25]|42|5[058]|77|88)|[5-8])|3631|5[6-8]\\d",,,,"15"],[,,"5(?:67|88)",,,,"567",,,[3]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NE:[,[,,"[1-3578]\\d(?:\\d(?:\\d{3})?)?",,,,,,,[2,3,6]],,,[,,"1[578]|723\\d{3}",,,,"15",,,[2,6]],[,,,,,,,,,[-1]],,,,"NE",,,,,,,,,,,,,,,,,,[,,"1[578]|723141",,,,"15",,,[2,6]],,[,,"1(?:0[01]|1[12]|2[034]|3[013]|[46]0|55?|[78])|222|333|555|723141|888",,,,"15"],[,,,,,,,,,[-1]],[,,"1(?:0[01]|1[12]|2[034]|3[013]|[46]0|55)|222|333|555|888",,,,"100",,,[3]],,[,,,,,,,,,[-1]]],NF:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|55|77)",,,,"911"],[,,,,,,,,,[-1]],,,,"NF",,,,,,,,,,,,,,,,,,[,,"9(?:11|55|77)",,,,"911"],,[,,"9(?:11|55|77)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NG:[,[,,"[14]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"199",,,,"199",,,[3]],[,,,,,,,,,[-1]],,,,"NG",,,,,,,,,,,,,,,,,,[,,"199",,,,"199",,,[3]],,[,,"199|40700",,,,"199"],[,,,,,,,,,[-1]],[,,"407\\d\\d",,,,"40700",,,[5]],,[,,"407\\d\\d",,,,"40700",,,[5]]],NI:[,[,,"[12467]\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[58]|2[08])|737\\d",,,,"115"],[,,,,,,,,,[-1]],,,,"NI",,,,,,,,,,,,,,,,,,[,,"1(?:1[58]|2[08])",,,,"115",,,[3]],,[,,"1(?:1[58]|200)|4878|7(?:010|373)|12[0158]|(?:19|[267]1)00",,,,"115"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NL:[,[,,"[1349]\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11(?:2|6\\d{3})|911",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"NL",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|2(?:0[0-4]|3[34]|44)|3[03-9]\\d|400|8(?:[02-9]\\d|1[0-79]))|[34]000|911",,,,"112"],[,,,,,,,,,[-1]],[,,"120\\d",,,,"1200",,,[4]],,[,,"[34]00\\d",,,,"3000",,,[4]]],NO:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11(?:[023]|6\\d{3})",,,,"110",,,[3,6]],[,,,,,,,,,[-1]],,,,"NO",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110",,,[3]],,[,,"1(?:1(?:[0239]|61(?:1[17]|23))|2[048]|4(?:12|[59])|7[57]|8[5-9]\\d|90)",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NP:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[0-3]|12)",,,,"100"],[,,,,,,,,,[-1]],,,,"NP",,,,,,,,,,,,,,,,,,[,,"1(?:0[0-3]|12)",,,,"100"],,[,,"1(?:0[0-3]|12)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NR:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[0-2]",,,,"110"],[,,,,,,,,,[-1]],,,,"NR",,,,,,,,,,,,,,,,,,[,,"11[0-2]",,,,"110"],,[,,"1(?:1[0-2]|23|92)",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],NU:[,[,,"[019]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"NU",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"01[05]|101|999",,,,"010"],[,,,,,,,,,[-1]],[,,"010",,,,"010"],,[,,,,,,,,,[-1]]],NZ:[,[,,"\\d{3,4}",,,,,,,[3,4]],,,[,,"111",,,,"111",,,[3]],[,,"018",,,,"018",,,[3]],,,,"NZ",,,,,,,,,,,,,,,,,,[,,"111",,,,"111",,,[3]],,[,,"018|1(?:(?:1|37)1|(?:23|94)4|7[03]7)|[2-57-9]\\d{2,3}|6(?:161|26[0-3]|742)",,,,"018"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"018|(?:1(?:23|37|7[03]|94)|6(?:[12]6|74))\\d|[2-57-9]\\d{2,3}",,,,"018"]],OM:[,[,,"[19]\\d{3}",,,,,,,[4]],,,[,,"1444|999\\d",,,,"1444"],[,,,,,,,,,[-1]],,,,"OM",,,,,,,,,,,,,,,,,,[,,"1444|9999",,,,"1444"],,[,,"1(?:111|222|4(?:4[0-5]|50|66|7[7-9])|51[0-8])|9999|1(?:2[3-5]|3[0-2]|50)\\d",,,,"1111"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PA:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"PA",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"10[2-4]|911",,,,"102"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PE:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:05|1[67])",,,,"105"],[,,,,,,,,,[-1]],,,,"PE",,,,,,,,,,,,,,,,,,[,,"1(?:05|1[67])",,,,"105"],,[,,"1(?:05|1[67])",,,,"105"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"PF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PG:[,[,,"[01]\\d{2,6}",,,,,,,[3,4,5,6,7]],,,[,,"000|11[01]",,,,"000",,,[3]],[,,,,,,,,,[-1]],,,,"PG",,,,,,,,,,,,,,,,,,[,,"000|11[01]",,,,"000",,,[3]],,[,,"000|1(?:1[01]|5\\d\\d|6\\d{2,5})",,,,"000"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"16\\d{2,5}",,,,"1600",,,[4,5,6,7]]],PH:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"11[27]|911",,,,"112"],[,,,,,,,,,[-1]],,,,"PH",,,,,,,,,,,,,,,,,,[,,"11[27]|911",,,,"112"],,[,,"11[27]|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PK:[,[,,"1\\d{1,3}",,,,,,,[2,3,4]],,,[,,"1(?:1(?:2\\d?|5)|[56])",,,,"15"],[,,,,,,,,,[-1]],,,,"PK",,,,,,,,,,,,,,,,,,[,,"1(?:1(?:22?|5)|[56])",,,,"15"],,[,,"1(?:122|3[014]|[56])|11[2457-9]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PL:[,[,,"[19]\\d\\d(?:\\d{2,3})?",,,,,,,[3,5,6]],,,[,,"11(?:2|6\\d{3})|99[7-9]",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"PL",,,,,,,,,,,,,,,,,,[,,"112|99[7-9]",,,,"112",,,[3]],,[,,"1(?:1(?:2|61(?:11|23)|891[23])|9\\d{3})|9(?:8[4-7]|9[1-9])|11[68]000",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PM:[,[,,"[13]\\d(?:\\d{2})?",,,,,,,[2,4]],,,[,,"1[578]",,,,"15",,,[2]],[,,,,,,,,,[-1]],,,,"PM",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15",,,[2]],,[,,"1[578]|3103",,,,"15"],[,,,,,,,,,[-1]],[,,"310\\d",,,,"3100",,,[4]],,[,,,,,,,,,[-1]]],PR:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"PR",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PS:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[0-2]|66)",,,,"100"],[,,,,,,,,,[-1]],,,,"PS",,,,,,,,,,,,,,,,,,[,,"10[0-2]",,,,"100"],,[,,"1(?:0[0-2]|44|66|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PT:[,[,,"1\\d\\d(?:\\d(?:\\d{2})?)?",,,,,,,[3,4,6]],,,[,,"11[25]|1(?:16\\d\\d|5[1589]|8[279])\\d",,,,"112"],[,,,,,,,,,[-1]],,,,"PT",,,,,,,,,,,,,,,,,,[,,"11[25]",,,,"112",,,[3]],,[,,"1(?:0(?:45|5[01])|1(?:[2578]|600[06])|4(?:1[45]|4)|583|6(?:1[0236]|3[02]|9[169]))|1(?:1611|59)1|1[068]78|1[08]9[16]|1(?:0[1-38]|40|5[15]|6[258]|82)0",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PW:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"PW",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],PY:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"128|911",,,,"128"],[,,,,,,,,,[-1]],,,,"PY",,,,,,,,,,,,,,,,,,[,,"128|911",,,,"128"],,[,,"1[1-4]\\d|911",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],QA:[,[,,"[129]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"999",,,,"999",,,[3]],[,,,,,,,,,[-1]],,,,"QA",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"999|(?:1|20|9[27]\\d)\\d\\d",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RE:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],,,,"RE",,,,,,,,,,,,,,,,,,[,,"1(?:12|[578])",,,,"15"],,[,,"1(?:12|[578])",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RO:[,[,,"[18]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})",,,,"112",,,[3,6]],[,,"(?:1(?:18[39]|[24])|8[48])\\d\\d",,,,"1200",,,[4,6]],,,,"RO",,,,,,,,,,,,,,,,,,[,,"112",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|1(?:11|23))|8(?:(?:01|8[18])1|119|[23]00|932))|[24]\\d\\d|9(?:0(?:00|19)|1[19]|21|3[02]|5[178]))|8[48]\\d\\d",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"(?:1[24]|8[48])\\d\\d",,,,"1200",,,[4]]],RS:[,[,,"[19]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"112|9[2-4]",,,,"92",,,[2,3]],[,,,,,,,,,[-1]],,,,"RS",,,,,,,,,,,,,,,,,,[,,"112|9[2-4]",,,,"92",,,[2,3]],,[,,"1[189]\\d{1,4}|9[2-4]",,,,"92"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RU:[,[,,"[01]\\d\\d?",,,,,,,[2,3]],,,[,,"112|(?:0|10)[1-3]",,,,"01"],[,,,,,,,,,[-1]],,,,"RU",,,,,,,,,,,,,,,,,,[,,"112|(?:0|10)[1-3]",,,,"01"],,[,,"112|(?:0|10)[1-4]",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],RW:[,[,,"[14]\\d\\d",,,,,,,[3]],,,[,,"11[1245]",,,,"111"],[,,,,,,,,,[-1]],,,,"RW",,,,,,,,,,,,,,,,,,[,,"11[12]",,,,"111"],,[,,"1(?:0[0-2]|1[0-24-6]|2[13]|70|99)|456",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SA:[,[,,"[19]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:2|6\\d{3})|9(?:11|37|9[7-9])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"SA",,,,,,,,,,,,,,,,,,[,,"112|9(?:11|9[79])",,,,"112",,,[3]],,[,,"1(?:1(?:00|2|6111)|410|9(?:00|1[89]|9(?:099|22|91)))|9(?:0[24-79]|11|3[379]|40|66|8[5-9]|9[02-9])",,,,"112"],[,,"141\\d",,,,"1410",,,[4]],[,,"1(?:10|41)\\d|90[24679]",,,,"902",,,[3,4]],,[,,,,,,,,,[-1]]],SB:[,[,,"[127-9]\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SB",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"1(?:[02]\\d|1[12]|[35][01]|[49][1-9]|6[2-9]|7[7-9]|8[0-8])|269|777|835|9(?:[01]1|22|33|55|77|88|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SC:[,[,,"[19]\\d{2,3}",,,,,,,[3,4]],,,[,,"999",,,,"999",,,[3]],[,,,,,,,,,[-1]],,,,"SC",,,,,,,,,,,,,,,,,,[,,"999",,,,"999",,,[3]],,[,,"1(?:0\\d|1[027]|2[0-8]|3[13]|4[0-2]|[59][15]|6[1-9]|7[124-6]|8[158])|9(?:6\\d\\d|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SD:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SD",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SE:[,[,,"[1-37-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"112|(?:116\\d|900)\\d\\d",,,,"112",,,[3,5,6]],[,,"11811[89]|72\\d{3}",,,,"72000",,,[5,6]],,,,"SE",,,,,,,,,,,,,,,,,,[,,"112|90000",,,,"112",,,[3,5]],,[,,"11(?:[25]|313|6(?:00[06]|1(?:1[17]|23))|7[0-8])|2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|9(?:0(?:00|51)0|12)|(?:11(?:4|8[02-46-9])|7\\d\\d|90[2-4])\\d\\d|(?:118|90)1(?:[02-9]\\d|1[013-9])",,,,"112"],[,,,,,,,,,[-1]],[,,"2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|912",,,,"220",,,[3]],,[,,"7\\d{4}",,,,"70000",,,[5]]],SG:[,[,,"[179]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"99[359]",,,,"993",,,[3]],[,,,,,,,,,[-1]],,,,"SG",,,,,,,,,,,,,,,,,,[,,"99[359]",,,,"993",,,[3]],,[,,"1(?:(?:[01368]\\d|44)\\d|[57]\\d{2,3}|9(?:0[1-9]|[1-9]\\d))|77222|99[02-9]|100",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,"772\\d\\d",,,,"77200",,,[5]]],SH:[,[,,"[129]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"9(?:11|99)",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"SH",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911",,,[3]],,[,,"1\\d{2,3}|26[01]\\d\\d|9(?:11|99)",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SI:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"11(?:(?:0|6\\d)\\d\\d|[23]|8\\d\\d?)",,,,"112"],[,,,,,,,,,[-1]],,,,"SI",,,,,,,,,,,,,,,,,,[,,"11[23]",,,,"112",,,[3]],,[,,"1(?:1(?:00[146]|[23]|6(?:000|1(?:11|23))|8(?:[08]|99))|9(?:059|1(?:0[12]|16)|5|70|87|9(?:00|[149])))|19(?:08|81)[09]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SJ:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],,,,"SJ",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110"],,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SK:[,[,,"1\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:1(?:2|6\\d{3})|5[058])",,,,"112",,,[3,6]],[,,,,,,,,,[-1]],,,,"SK",,,,,,,,,,,,,,,,,,[,,"1(?:12|5[058])",,,,"112",,,[3]],,[,,"1(?:1(?:2|6(?:000|111)|8[0-8])|[248]\\d{3}|5[0589])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SL:[,[,,"[069]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"(?:01|99)9",,,,"019",,,[3]],[,,,,,,,,,[-1]],,,,"SL",,,,,,,,,,,,,,,,,,[,,"(?:01|99)9",,,,"019",,,[3]],,[,,"(?:01|99)9|60400",,,,"019"],[,,,,,,,,,[-1]],[,,"604\\d\\d",,,,"60400",,,[5]],,[,,"604\\d\\d",,,,"60400",,,[5]]],SM:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[358]",,,,"113"],[,,,,,,,,,[-1]],,,,"SM",,,,,,,,,,,,,,,,,,[,,"11[358]",,,,"113"],,[,,"11[358]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SN:[,[,,"[12]\\d{1,5}",,,,,,,[2,3,4,5,6]],,,[,,"1(?:515|[78])|2(?:00|1)\\d{3}",,,,"17",,,[2,4,5,6]],[,,"2(?:0[246]|[468])\\d{3}",,,,"24000",,,[5,6]],,,,"SN",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17",,,[2]],,[,,"1(?:1[69]|(?:[246]\\d|51)\\d)|2(?:0[0-246]|[12468])\\d{3}|1[278]",,,,"12"],[,,"2(?:01|2)\\d{3}",,,,"22000",,,[5,6]],[,,"1[46]\\d\\d",,,,"1400",,,[4]],,[,,"2[468]\\d{3}",,,,"24000",,,[5]]],SO:[,[,,"[57-9]\\d\\d",,,,,,,[3]],,,[,,"555|888|999",,,,"555"],[,,,,,,,,,[-1]],,,,"SO",,,,,,,,,,,,,,,,,,[,,"555|888|999",,,,"555"],,[,,"555|777|888|999",,,,"555"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SR:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"115",,,,"115",,,[3]],[,,,,,,,,,[-1]],,,,"SR",,,,,,,,,,,,,,,,,,[,,"115",,,,"115",,,[3]],,[,,"1\\d{2,3}",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ST:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"ST",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"112",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SV:[,[,,"[49]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"911",,,,"911",,,[3]],[,,,,,,,,,[-1]],,,,"SV",,,,,,,,,,,,,,,,,,[,,"911",,,,"911",,,[3]],,[,,"40404|911",,,,"911"],[,,,,,,,,,[-1]],[,,"404\\d\\d",,,,"40400",,,[5]],,[,,"404\\d\\d",,,,"40400",,,[5]]],SX:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"919",,,,"919"],[,,,,,,,,,[-1]],,,,"SX",,,,,,,,,,,,,,,,,,[,,"919",,,,"919"],,[,,"919",,,,"919"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SY:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],,,,"SY",,,,,,,,,,,,,,,,,,[,,"11[023]",,,,"110"],,[,,"11[023]",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],SZ:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"SZ",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"TC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TD:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],,,,"TD",,,,,,,,,,,,,,,,,,[,,"1[78]",,,,"17"],,[,,"1[78]",,,,"17"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TG:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1[78]|7[127])",,,,"117",,,[3]],[,,,,,,,,,[-1]],,,,"TG",,,,,,,,,,,,,,,,,,[,,"1(?:1[78]|7[127])",,,,"117",,,[3]],,[,,"1(?:011|1[078]|7[127])",,,,"110"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TH:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"1(?:1(?:00|2[03]|3[3479]|7[67]|9[0246])|578|6(?:44|6[79]|88|9[16])|88\\d|9[19])|1[15]55",,,,"191"],[,,"1(?:113|2[23]\\d|5(?:09|56))",,,,"1113",,,[4]],,,,"TH",,,,,,,,,,,,,,,,,,[,,"1(?:669|9[19])",,,,"191"],,[,,"1(?:0[0-2]|1(?:0[03]|1[1-35]|2[0358]|3[03-79]|4[02-489]|5[04-9]|6[04-79]|7[03-9]|8[027-9]|9[02-79])|2(?:22|3[89]|66)|3(?:18|2[23]|3[013]|5[56]|6[45]|73)|477|5(?:0\\d|4[0-37-9]|5[1-8]|6[01679]|7[12568]|8[0-24589]|9[013589])|6(?:0[0-29]|2[03]|4[3-6]|6[1-9]|7[0257-9]|8[0158]|9[014-9])|7(?:[14]9|7[27]|90)|888|9[19])",,,,"100"],[,,"1(?:1(?:03|1[15]|2[58]|3[056]|4[02-49]|5[046-9]|7[03-589]|9[579])|5(?:0[0-8]|4[0-378]|5[1-478]|7[156])|6(?:20|4[356]|6[1-68]|7[057-9]|8[015]|9[0457-9]))|1(?:1[68]|26|3[1-35]|5[689]|60|7[17])\\d",,,,"1103",,,[4]],[,,"114[89]",,,,"1148",,,[4]],,[,,,,,,,,,[-1]]],TJ:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],,,,"TJ",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101"],,[,,"1(?:0[1-3]|12)",,,,"101"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TL:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[25]",,,,"112"],[,,,,,,,,,[-1]],,,,"TL",,,,,,,,,,,,,,,,,,[,,"11[25]",,,,"112"],,[,,"1(?:0[02]|1[25]|2[0138]|72|9[07])",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TM:[,[,,"0\\d",,,,,,,[2]],,,[,,"0[1-49]",,,,"01"],[,,,,,,,,,[-1]],,,,"TM",,,,,,,,,,,,,,,,,,[,,"0[1-3]",,,,"01"],,[,,"0[1-49]",,,,"01"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[078]",,,,"190"],[,,,,,,,,,[-1]],,,,"TN",,,,,,,,,,,,,,,,,,[,,"19[078]",,,,"190"],,[,,"19[078]",,,,"190"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TO:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|22|33|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"TO",,,,,,,,,,,,,,,,,,[,,"9(?:11|22|33|99)",,,,"911"],,[,,"9(?:11|22|33|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TR:[,[,,"[1-9]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:1[02]|22|3[126]|4[04]|5[15-9]|6[18]|77|83)",,,,"110",,,[3]],[,,,,,,,,,[-1]],,,,"TR",,,,,,,,,,,,,,,,,,[,,"1(?:1[02]|55)",,,,"110",,,[3]],,[,,"1(?:1(?:[02-79]|8(?:1[018]|2[0245]|3[2-4]|42|5[058]|6[06]|7[07]|8[01389]|9[089]))|3(?:37|[58]6|65)|471|5(?:07|78)|6(?:[02]6|99)|8(?:63|95))|2(?:077|268|4(?:17|23)|5(?:7[26]|82)|6[14]4|8\\d\\d|9(?:30|89))|3(?:0(?:05|72)|353|4(?:06|30|64)|502|674|747|851|9(?:1[29]|60))|4(?:0(?:25|3[12]|[47]2)|3(?:3[13]|[89]1)|439|5(?:43|55)|717|832)|5(?:145|290|[4-6]\\d\\d|772|833|9(?:[06]1|92))|6(?:236|6(?:12|39|8[59])|769)|7890|8(?:688|7(?:28|65)|85[06])|9(?:159|290)|1[2-9]\\d",,,,"110"],[,,"(?:285|542)0",,,,"2850",,,[4]],[,,,,,,,,,[-1]],,[,,"1(?:3(?:37|[58]6|65)|4(?:4|71)|5(?:07|78)|6(?:[02]6|99)|8(?:3|63|95))|(?:2(?:07|26|4[12]|5[78]|6[14]|8\\d|9[38])|3(?:0[07]|[38]5|4[036]|50|67|74|9[16])|4(?:0[2-47]|3[389]|[48]3|5[45]|71)|5(?:14|29|[4-6]\\d|77|83|9[069])|6(?:23|6[138]|76)|789|8(?:68|7[26]|85)|9(?:15|29))\\d",,,,"144",,,[3,4]]],TT:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"99[09]",,,,"990"],[,,,,,,,,,[-1]],,,,"TT",,,,,,,,,,,,,,,,,,[,,"99[09]",,,,"990"],,[,,"99[09]",,,,"990"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TV:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"TV",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"1\\d\\d|911",,,,"100"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TW:[,[,,"1\\d{2,3}",,,,,,,[3,4]],,,[,,"11[0289]|1(?:81|92)\\d",,,,"110"],[,,"10[56]",,,,"105",,,[3]],,,,"TW",,,,,,,,,,,,,,,,,,[,,"11[029]",,,,"110",,,[3]],,[,,"1(?:0[04-6]|1[0237-9]|3[389]|6[05-8]|7[07]|8(?:0|11)|9(?:19|22|5[057]|68|8[05]|9[15689]))",,,,"100"],[,,"1(?:65|9(?:1\\d|50|85|98))",,,,"165"],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],TZ:[,[,,"[149]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"11[12]|999",,,,"111",,,[3]],[,,,,,,,,,[-1]],,,,"TZ",,,,,,,,,,,,,,,,,,[,,"11[12]|999",,,,"111",,,[3]],,[,,"11[12]|46400|999",,,,"111"],[,,,,,,,,,[-1]],[,,"464\\d\\d",,,,"46400",,,[5]],,[,,"464\\d\\d",,,,"46400",,,[5]]],UA:[,[,,"[189]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"1(?:0[1-3]|1(?:2|6\\d{3}))",,,,"101",,,[3,6]],[,,,,,,,,,[-1]],,,,"UA",,,,,,,,,,,,,,,,,,[,,"1(?:0[1-3]|12)",,,,"101",,,[3]],,[,,"1(?:0[1-49]|1(?:2|6(?:000|1(?:11|23))|8\\d\\d?)|(?:[278]|5\\d)\\d)|[89]00\\d\\d?|151|1(?:06|4\\d|6)\\d\\d",,,,"101"],[,,,,,,,,,[-1]],[,,"(?:118|[89]00)\\d\\d?",,,,"1180",,,[4,5]],,[,,,,,,,,,[-1]]],UG:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"999",,,,"999"],[,,,,,,,,,[-1]],,,,"UG",,,,,,,,,,,,,,,,,,[,,"999",,,,"999"],,[,,"999",,,,"999"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],US:[,[,,"[1-9]\\d{2,5}",,,,,,,[3,4,5,6]],,,[,,"112|[69]11",,,,"112",,,[3]],[,,"24280|(?:381|968)35|4(?:3355|7553|8221)|5(?:(?:489|934)2|5928)|72078|(?:323|960)40|(?:276|414)63|(?:2(?:520|744)|7390|9968)9|(?:693|732|976)88|(?:3(?:556|825)|5294|8623|9729)4|(?:3378|4136|7642|8961|9979)6|(?:4(?:6(?:15|32)|827)|(?:591|720)8|9529)7",,,,"24280",,,[5]],,,,"US",,,,,,,,,,,,,,,,,,[,,"112|911",,,,"112",,,[3]],,[,,"11(?:2|5[1-47]|[68]\\d|7[0-57]|98)|[2-9]\\d{3,5}|[2-9]11",,,,"112"],[,,"2(?:3333|(?:4224|7562|900)2|56447|6688)|3(?:1010|2665|7404)|40404|560560|6(?:0060|22639|5246|7622)|7(?:0701|3822|4666)|8(?:(?:3825|7226)5|4816)|99099",,,,"23333",,,[5,6]],[,,"336\\d\\d|[2-9]\\d{3}|[2356]11",,,,"211",,,[3,4,5]],,[,,"[2-9]\\d{4,5}",,,,"20000",,,[5,6]]],UY:[,[,,"[19]\\d{2,3}",,,,,,,[3,4]],,,[,,"128|911",,,,"128",,,[3]],[,,,,,,,,,[-1]],,,,"UY",,,,,,,,,,,,,,,,,,[,,"128|911",,,,"128",,,[3]],,[,,"1(?:0[4-9]|1[2368]|2[0-3568]|787)|911",,,,"104"],[,,"178\\d",,,,"1780",,,[4]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],UZ:[,[,,"[04]\\d(?:\\d(?:\\d{2})?)?",,,,,,,[2,3,5]],,,[,,"0(?:0[1-3]|[1-3]|50)",,,,"01",,,[2,3]],[,,,,,,,,,[-1]],,,,"UZ",,,,,,,,,,,,,,,,,,[,,"0(?:0[1-3]|[1-3]|50)",,,,"01",,,[2,3]],,[,,"0(?:0[1-3]|[1-3]|50)|45400",,,,"01"],[,,,,,,,,,[-1]],[,,"454\\d\\d",,,,"45400",,,[5]],,[,,"454\\d\\d",,,,"45400",,,[5]]],VA:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[2358]",,,,"112"],[,,,,,,,,,[-1]],,,,"VA",,,,,,,,,,,,,,,,,,[,,"11[2358]",,,,"112"],,[,,"11[2358]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VC:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"VC",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VE:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"1(?:12|71)|911",,,,"112"],[,,,,,,,,,[-1]],,,,"VE",,,,,,,,,,,,,,,,,,[,,"1(?:12|71)|911",,,,"112"],,[,,"1(?:12|71)|911",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VG:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],,,,"VG",,,,,,,,,,,,,,,,,,[,,"9(?:11|99)",,,,"911"],,[,,"9(?:11|99)",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VI:[,[,,"9\\d\\d",,,,,,,[3]],,,[,,"911",,,,"911"],[,,,,,,,,,[-1]],,,,"VI",,,,,,,,,,,,,,,,,,[,,"911",,,,"911"],,[,,"911",,,,"911"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VN:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"11[3-5]",,,,"113"],[,,,,,,,,,[-1]],,,,"VN",,,,,,,,,,,,,,,,,,[,,"11[3-5]",,,,"113"],,[,,"11[3-5]",,,,"113"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],VU:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"112",,,,"112"],[,,,,,,,,,[-1]],,,,"VU",,,,,,,,,,,,,,,,,,[,,"112",,,,"112"],,[,,"112",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],WF:[,[,,"1\\d",,,,,,,[2]],,,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],,,,"WF",,,,,,,,,,,,,,,,,,[,,"1[578]",,,,"15"],,[,,"1[578]",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],WS:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"9(?:11|9[4-69])",,,,"911"],[,,,,,,,,,[-1]],,,,"WS",,,,,,,,,,,,,,,,,,[,,"9(?:11|9[4-69])",,,,"911"],,[,,"1(?:1[12]|2[0-6]|[39]0)|9(?:11|9[4-79])",,,,"111"],[,,,,,,,,,[-1]],[,,"12[0-6]",,,,"120"],,[,,,,,,,,,[-1]]],XK:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],,,,"XK",,,,,,,,,,,,,,,,,,[,,"1(?:12|9[2-4])",,,,"112"],,[,,"1(?:12|9[2-4])",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],YE:[,[,,"1\\d\\d",,,,,,,[3]],,,[,,"19[1459]",,,,"191"],[,,,,,,,,,[-1]],,,,"YE",,,,,,,,,,,,,,,,,,[,,"19[1459]",,,,"191"],,[,,"19[1459]",,,,"191"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],YT:[,[,,"1\\d\\d?",,,,,,,[2,3]],,,[,,"1(?:12|5)",,,,"15"],[,,,,,,,,,[-1]],,,,"YT",,,,,,,,,,,,,,,,,,[,,"1(?:12|5)",,,,"15"],,[,,"1(?:12|5)",,,,"15"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ZA:[,[,,"[134]\\d{2,4}",,,,,,,[3,4,5]],,,[,,"1(?:01\\d\\d|12)",,,,"112",,,[3,5]],[,,"41(?:348|851)",,,,"41348",,,[5]],,,,"ZA",,,,,,,,,,,,,,,,,,[,,"1(?:01(?:11|77)|12)",,,,"112",,,[3,5]],,[,,"1(?:0(?:1(?:11|77)|20|7)|1[12]|77(?:3[237]|[45]7|6[279]|9[26]))|[34]\\d{4}",,,,"107"],[,,"3(?:078[23]|7(?:064|567)|8126)|4(?:394[16]|7751|8837)|4[23]699",,,,"30782",,,[5]],[,,"111",,,,"111",,,[3]],,[,,"[34]\\d{4}",,,,"30000",,,[5]]],ZM:[,[,,"[19]\\d\\d",,,,,,,[3]],,,[,,"112|99[139]",,,,"112"],[,,,,,,,,,[-1]],,,,"ZM",,,,,,,,,,,,,,,,,,[,,"112|99[139]",,,,"112"],,[,,"112|99[139]",,,,"112"],[,,,,,,,,,[-1]],[,,,,,,,,,[-1]],,[,,,,,,,,,[-1]]],ZW:[,[,,"[139]\\d\\d(?:\\d{2})?",,,,,,,[3,5]],,,[,,"112|9(?:5[023]|61|9[3-59])",,,,"112",,,[3]],[,,"3[013-57-9]\\d{3}",,,,"30000",,,[5]],,,,"ZW",,,,,,,,,,,,,,,,,,[,,"112|99[3-59]",,,,"112",,,[3]],,[,,"11[2469]|3[013-57-9]\\d{3}|9(?:5[023]|6[0-25]|9[3-59])",,,,"112"],[,,,,,,,,,[-1]],[,,"114|9(?:5[023]|6[0-25])",,,,"114",,,[3]],,[,,,,,,,,,[-1]]]},i18n.phonenumbers.ShortNumberInfo=function(){this.regionToMetadataMap={}},goog.addSingletonGetter(i18n.phonenumbers.ShortNumberInfo),i18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_=["BR","CL","NI"],i18n.phonenumbers.ShortNumberInfo.ShortNumberCost={TOLL_FREE:0,STANDARD_RATE:1,PREMIUM_RATE:2,UNKNOWN_COST:3},i18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodesForCountryCode_=function(e){return(e=i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[e])?e:[]},i18n.phonenumbers.ShortNumberInfo.prototype.regionDialingFromMatchesNumber_=function(e,t){var r=this.getRegionCodesForCountryCode_(e.getCountryCodeOrDefault());return goog.array.contains(r,t)},i18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumberForRegion=function(e,t){if(!this.regionDialingFromMatchesNumber_(e,t))return!1;var r=this.getMetadataForRegion_(t);if(!r)return!1;var n=this.getNationalSignificantNumber_(e).length;return goog.array.contains(r.getGeneralDesc().possibleLengthArray(),n)},i18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumber=function(e){var t=this.getRegionCodesForCountryCode_(e.getCountryCodeOrDefault());e=this.getNationalSignificantNumber_(e).length;for(var r=0;r<t.length;r++){var n=this.getMetadataForRegion_(t[r]);if(n&&(n=n.getGeneralDesc().possibleLengthArray(),goog.array.contains(n,e)))return!0}return!1},i18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumberForRegion=function(e,t){if(!this.regionDialingFromMatchesNumber_(e,t))return!1;var r=this.getMetadataForRegion_(t);if(!r)return!1;var n=this.getNationalSignificantNumber_(e),o=r.getGeneralDesc();return!!this.matchesPossibleNumberAndNationalNumber_(n,o)&&(r=r.getShortCode(),this.matchesPossibleNumberAndNationalNumber_(n,r))},i18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumber=function(e){var t=this.getRegionCodesForCountryCode_(e.getCountryCodeOrDefault()),r=this.getRegionCodeForShortNumberFromRegionList_(e,t);return 1<t.length&&null!=r||this.isValidShortNumberForRegion(e,r)},i18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCostForRegion=function(e,t){var r=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost;if(!this.regionDialingFromMatchesNumber_(e,t))return r.UNKNOWN_COST;var n=this.getMetadataForRegion_(t);if(!n)return r.UNKNOWN_COST;var o=this.getNationalSignificantNumber_(e);return goog.array.contains(n.getGeneralDesc().possibleLengthArray(),o.length)?this.matchesPossibleNumberAndNationalNumber_(o,n.getPremiumRate())?r.PREMIUM_RATE:this.matchesPossibleNumberAndNationalNumber_(o,n.getStandardRate())?r.STANDARD_RATE:this.matchesPossibleNumberAndNationalNumber_(o,n.getTollFree())||this.isEmergencyNumber(o,t)?r.TOLL_FREE:r.UNKNOWN_COST:r.UNKNOWN_COST},i18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCost=function(e){var t=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost,r=this.getRegionCodesForCountryCode_(e.getCountryCodeOrDefault());if(0===r.length)return t.UNKNOWN_COST;if(1===r.length)return this.getExpectedCostForRegion(e,r[0]);for(var n=t.TOLL_FREE,o=0;o<r.length;o++){var i=this.getExpectedCostForRegion(e,r[o]);switch(i){case t.PREMIUM_RATE:return t.PREMIUM_RATE;case t.UNKNOWN_COST:n=t.UNKNOWN_COST;break;case t.STANDARD_RATE:n!==t.UNKNOWN_COST&&(n=t.STANDARD_RATE);break;case t.TOLL_FREE:break;default:throw Error("Unrecognized cost for region: "+i)}}return n},i18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodeForShortNumberFromRegionList_=function(e,t){if(0===t.length)return null;if(1===t.length)return t[0];for(var r=this.getNationalSignificantNumber_(e),n=0;n<t.length;n++){var o=t[n],i=this.getMetadataForRegion_(o);if(i&&this.matchesPossibleNumberAndNationalNumber_(r,i.getShortCode()))return o}return null},i18n.phonenumbers.ShortNumberInfo.prototype.getSupportedRegions=function(){return goog.array.filter(Object.keys(i18n.phonenumbers.shortnumbermetadata.countryToMetadata),(function(e){return isNaN(e)}))},i18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumber=function(e){return(e=this.getMetadataForRegion_(e))&&(e=e.getShortCode()).hasExampleNumber()&&e.getExampleNumber()||""},i18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumberForCost=function(e,t){var r=this.getMetadataForRegion_(e);if(!r)return"";var n=i18n.phonenumbers.ShortNumberInfo.ShortNumberCost,o=null;switch(t){case n.TOLL_FREE:o=r.getTollFree();break;case n.STANDARD_RATE:o=r.getStandardRate();break;case n.PREMIUM_RATE:o=r.getPremiumRate()}return o&&o.hasExampleNumber()&&o.getExampleNumber()||""},i18n.phonenumbers.ShortNumberInfo.prototype.connectsToEmergencyNumber=function(e,t){return this.matchesEmergencyNumberHelper_(e,t,!0)},i18n.phonenumbers.ShortNumberInfo.prototype.isEmergencyNumber=function(e,t){return this.matchesEmergencyNumberHelper_(e,t,!1)},i18n.phonenumbers.ShortNumberInfo.prototype.getMetadataForRegion_=function(e){if(!e)return null;e=e.toUpperCase();var t=this.regionToMetadataMap[e];if(null==t){t=new goog.proto2.PbLiteSerializer;var r=i18n.phonenumbers.shortnumbermetadata.countryToMetadata[e];if(null==r)return null;t=t.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(),r),this.regionToMetadataMap[e]=t}return t},i18n.phonenumbers.ShortNumberInfo.prototype.matchesEmergencyNumberHelper_=function(e,t,r){var n=i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(e);return!i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(n)&&!(null==(e=this.getMetadataForRegion_(t))||!e.hasEmergency())&&(n=i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(n),t=r&&!goog.array.contains(i18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_,t),r=e.getEmergency().getNationalNumberPatternOrDefault(),i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(r,n)||t&&i18n.phonenumbers.PhoneNumberUtil.matchesPrefix(r,n))},i18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecific=function(e){var t=this.getRegionCodesForCountryCode_(e.getCountryCodeOrDefault());return t=this.getRegionCodeForShortNumberFromRegionList_(e,t),e=this.getNationalSignificantNumber_(e),!!(t=this.getMetadataForRegion_(t))&&this.matchesPossibleNumberAndNationalNumber_(e,t.getCarrierSpecific())},i18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecificForRegion=function(e,t){if(!this.regionDialingFromMatchesNumber_(e,t))return!1;var r=this.getNationalSignificantNumber_(e),n=this.getMetadataForRegion_(t);return!!n&&this.matchesPossibleNumberAndNationalNumber_(r,n.getCarrierSpecific())},i18n.phonenumbers.ShortNumberInfo.prototype.isSmsServiceForRegion=function(e,t){if(!this.regionDialingFromMatchesNumber_(e,t))return!1;var r=this.getMetadataForRegion_(t),n=this.getNationalSignificantNumber_(e);return!!r&&this.matchesPossibleNumberAndNationalNumber_(n,r.getSmsServices())},i18n.phonenumbers.ShortNumberInfo.prototype.getNationalSignificantNumber_=function(e){if(!e.hasNationalNumber())return"";var t=""+e.getNationalNumber();return e.hasItalianLeadingZero()&&e.getItalianLeadingZero()&&0<e.getNumberOfLeadingZerosOrDefault()?Array(e.getNumberOfLeadingZerosOrDefault()+1).join("0")+t:t},i18n.phonenumbers.ShortNumberInfo.prototype.matchesPossibleNumberAndNationalNumber_=function(e,t){return!(0<t.possibleLengthArray().length&&!goog.array.contains(t.possibleLengthArray(),e.length))&&i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(t.getNationalNumberPatternOrDefault(),e.toString())},Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=i18n.phonenumbers,module.exports=exports.default},{}]},{},[1])(1)},module.exports=f()},1405:(e,t,r)=>{"use strict";var n=r.g.Symbol,o=r(5419);e.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},5419:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},7642:(e,t,r)=>{"use strict";var n=r(8612);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},5717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},9934:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(6867);function i(e,t,r,o,i){var a={},s="number"==typeof i,u=void 0!==i&&s?i.toString():r;if(s&&void 0!==r)throw new Error(n.INVALID_DECORATOR_OPERATION);Reflect.hasOwnMetadata(e,t)&&(a=Reflect.getMetadata(e,t));var l=a[u];if(Array.isArray(l))for(var c=0,d=l;c<d.length;c++){var p=d[c];if(p.key===o.key)throw new Error(n.DUPLICATED_METADATA+" "+p.key.toString())}else l=[];l.push(o),a[u]=l,Reflect.defineMetadata(e,a,t)}function a(e,t){Reflect.decorate(e,t)}function s(e,t){return function(r,n){t(r,n,e)}}t.tagParameter=function(e,t,r,n){i(o.TAGGED,e,t,n,r)},t.tagProperty=function(e,t,r){i(o.TAGGED_PROP,e.constructor,t,r)},t.decorate=function(e,t,r){"number"==typeof r?a([s(r,e)],t):"string"==typeof r?Reflect.decorate([e],t,r):a([e],t)}},5744:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(6867),i=r(7738),a=r(9934),s=function(){function e(e){this._cb=e}return e.prototype.unwrap=function(){return this._cb()},e}();t.LazyServiceIdentifer=s,t.inject=function(e){return function(t,r,s){if(void 0===e)throw new Error(n.UNDEFINED_INJECT_ANNOTATION(t.name));var u=new i.Metadata(o.INJECT_TAG,e);"number"==typeof s?a.tagParameter(t,r,s,u):a.tagProperty(t,r,u)}}},4315:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(6867);t.injectable=function(){return function(e){if(Reflect.hasOwnMetadata(o.PARAM_TYPES,e))throw new Error(n.DUPLICATED_INJECTABLE_DECORATOR);var t=Reflect.getMetadata(o.DESIGN_PARAM_TYPES,e)||[];return Reflect.defineMetadata(o.PARAM_TYPES,t,e),e}}},1693:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=r(9934);t.multiInject=function(e){return function(t,r,a){var s=new o.Metadata(n.MULTI_INJECT_TAG,e);"number"==typeof a?i.tagParameter(t,r,a,s):i.tagProperty(t,r,s)}}},8085:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=r(9934);t.named=function(e){return function(t,r,a){var s=new o.Metadata(n.NAMED_TAG,e);"number"==typeof a?i.tagParameter(t,r,a,s):i.tagProperty(t,r,s)}}},6515:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=r(9934);t.optional=function(){return function(e,t,r){var a=new o.Metadata(n.OPTIONAL_TAG,!0);"number"==typeof r?i.tagParameter(e,t,r,a):i.tagProperty(e,t,a)}}},7014:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(6867),i=r(7738);t.postConstruct=function(){return function(e,t,r){var a=new i.Metadata(o.POST_CONSTRUCT,t);if(Reflect.hasOwnMetadata(o.POST_CONSTRUCT,e.constructor))throw new Error(n.MULTIPLE_POST_CONSTRUCT_METHODS);Reflect.defineMetadata(o.POST_CONSTRUCT,a,e.constructor)}}},2052:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(7738),o=r(9934);t.tagged=function(e,t){return function(r,i,a){var s=new n.Metadata(e,t);"number"==typeof a?o.tagParameter(r,i,a,s):o.tagProperty(r,i,s)}}},5638:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=r(9934);t.targetName=function(e){return function(t,r,a){var s=new o.Metadata(n.NAME_TAG,e);i.tagParameter(t,r,a,s)}}},6757:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=r(9934);t.unmanaged=function(){return function(e,t,r){var a=new o.Metadata(n.UNMANAGED_TAG,!0);i.tagParameter(e,t,r,a)}}},4290:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8421),o=r(7791),i=function(){function e(e,t){this.id=o.id(),this.activated=!1,this.serviceIdentifier=e,this.scope=t,this.type=n.BindingTypeEnum.Invalid,this.constraint=function(e){return!0},this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null,this.dynamicValue=null}return e.prototype.clone=function(){var t=new e(this.serviceIdentifier,this.scope);return t.activated=!1,t.implementationType=this.implementationType,t.dynamicValue=this.dynamicValue,t.scope=this.scope,t.type=this.type,t.factory=this.factory,t.provider=this.provider,t.constraint=this.constraint,t.onActivation=this.onActivation,t.cache=this.cache,t},e}();t.Binding=i},3184:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingCount={MultipleBindingsAvailable:2,NoBindingsAvailable:0,OnlyOneBindingAvailable:1}},6674:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",t.DUPLICATED_METADATA="Metadata key was used more than once in a parameter:",t.NULL_ARGUMENT="NULL argument",t.KEY_NOT_FOUND="Key Not Found",t.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",t.CANNOT_UNBIND="Could not unbind serviceIdentifier:",t.NOT_REGISTERED="No matching bindings found for serviceIdentifier:",t.MISSING_INJECTABLE_ANNOTATION="Missing required @injectable annotation in:",t.MISSING_INJECT_ANNOTATION="Missing required @inject or @multiInject annotation in:",t.UNDEFINED_INJECT_ANNOTATION=function(e){return"@inject called with undefined this could mean that the class "+e+" has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation."},t.CIRCULAR_DEPENDENCY="Circular dependency found:",t.NOT_IMPLEMENTED="Sorry, this feature is not fully implemented yet.",t.INVALID_BINDING_TYPE="Invalid binding type:",t.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",t.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Middleware must return!",t.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!",t.INVALID_TO_SELF_VALUE="The toSelf function can only be applied when a constructor is used as service identifier",t.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",t.ARGUMENTS_LENGTH_MISMATCH=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return"The number of constructor arguments in the derived class "+e[0]+" must be >= than the number of constructor arguments of its base class."},t.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT="Invalid Container constructor argument. Container options must be an object.",t.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE="Invalid Container option. Default scope must be a string ('singleton' or 'transient').",t.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE="Invalid Container option. Auto bind injectable must be a boolean",t.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK="Invalid Container option. Skip base check must be a boolean",t.MULTIPLE_POST_CONSTRUCT_METHODS="Cannot apply @postConstruct decorator multiple times in the same class",t.POST_CONSTRUCT_ERROR=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return"@postConstruct error in class "+e[0]+": "+e[1]},t.CIRCULAR_DEPENDENCY_IN_FACTORY=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return"It looks like there is a circular dependency in one of the '"+e[0]+"' bindings. Please investigate bindings withservice identifier '"+e[1]+"'."},t.STACK_OVERFLOW="Maximum call stack size exceeded"},8421:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingScopeEnum={Request:"Request",Singleton:"Singleton",Transient:"Transient"},t.BindingTypeEnum={ConstantValue:"ConstantValue",Constructor:"Constructor",DynamicValue:"DynamicValue",Factory:"Factory",Function:"Function",Instance:"Instance",Invalid:"Invalid",Provider:"Provider"},t.TargetTypeEnum={ClassProperty:"ClassProperty",ConstructorArgument:"ConstructorArgument",Variable:"Variable"}},6867:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NAMED_TAG="named",t.NAME_TAG="name",t.UNMANAGED_TAG="unmanaged",t.OPTIONAL_TAG="optional",t.INJECT_TAG="inject",t.MULTI_INJECT_TAG="multi_inject",t.TAGGED="inversify:tagged",t.TAGGED_PROP="inversify:tagged_props",t.PARAM_TYPES="inversify:paramtypes",t.DESIGN_PARAM_TYPES="design:paramtypes",t.POST_CONSTRUCT="post_construct"},1389:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){e.done?o(e.value):new r((function(t){t(e.value)})).then(a,s)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=n[2&i[0]?"return":i[0]?"throw":"next"])&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[0,o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(4290),a=r(6674),s=r(8421),u=r(6867),l=r(1377),c=r(6311),d=r(1927),p=r(1860),g=r(7791),f=r(5800),h=r(5700),m=r(175),y=function(){function e(e){var t=e||{};if("object"!=typeof t)throw new Error(""+a.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);if(void 0===t.defaultScope)t.defaultScope=s.BindingScopeEnum.Transient;else if(t.defaultScope!==s.BindingScopeEnum.Singleton&&t.defaultScope!==s.BindingScopeEnum.Transient&&t.defaultScope!==s.BindingScopeEnum.Request)throw new Error(""+a.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);if(void 0===t.autoBindInjectable)t.autoBindInjectable=!1;else if("boolean"!=typeof t.autoBindInjectable)throw new Error(""+a.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);if(void 0===t.skipBaseClassChecks)t.skipBaseClassChecks=!1;else if("boolean"!=typeof t.skipBaseClassChecks)throw new Error(""+a.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);this.options={autoBindInjectable:t.autoBindInjectable,defaultScope:t.defaultScope,skipBaseClassChecks:t.skipBaseClassChecks},this.id=g.id(),this._bindingDictionary=new m.Lookup,this._snapshots=[],this._middleware=null,this.parent=null,this._metadataReader=new l.MetadataReader}return e.merge=function(t,r){var n=new e,o=c.getBindingDictionary(n),i=c.getBindingDictionary(t),a=c.getBindingDictionary(r);function s(e,t){e.traverse((function(e,r){r.forEach((function(e){t.add(e.serviceIdentifier,e.clone())}))}))}return s(i,o),s(a,o),n},e.prototype.load=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=this._getContainerModuleHelpersFactory(),n=0,o=e;n<o.length;n++){var i=o[n],a=r(i.id);i.registry(a.bindFunction,a.unbindFunction,a.isboundFunction,a.rebindFunction)}},e.prototype.loadAsync=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(this,void 0,void 0,(function(){var t,r,n,i,a;return o(this,(function(o){switch(o.label){case 0:t=this._getContainerModuleHelpersFactory(),r=0,n=e,o.label=1;case 1:return r<n.length?(i=n[r],a=t(i.id),[4,i.registry(a.bindFunction,a.unbindFunction,a.isboundFunction,a.rebindFunction)]):[3,4];case 2:o.sent(),o.label=3;case 3:return r++,[3,1];case 4:return[2]}}))}))},e.prototype.unload=function(){for(var e=this,t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=function(e){return function(t){return t.moduleId===e}};t.forEach((function(t){var r=n(t.id);e._bindingDictionary.removeByCondition(r)}))},e.prototype.bind=function(e){var t=this.options.defaultScope||s.BindingScopeEnum.Transient,r=new i.Binding(e,t);return this._bindingDictionary.add(e,r),new p.BindingToSyntax(r)},e.prototype.rebind=function(e){return this.unbind(e),this.bind(e)},e.prototype.unbind=function(e){try{this._bindingDictionary.remove(e)}catch(t){throw new Error(a.CANNOT_UNBIND+" "+f.getServiceIdentifierAsString(e))}},e.prototype.unbindAll=function(){this._bindingDictionary=new m.Lookup},e.prototype.isBound=function(e){var t=this._bindingDictionary.hasKey(e);return!t&&this.parent&&(t=this.parent.isBound(e)),t},e.prototype.isBoundNamed=function(e,t){return this.isBoundTagged(e,u.NAMED_TAG,t)},e.prototype.isBoundTagged=function(e,t,r){var n=!1;if(this._bindingDictionary.hasKey(e)){var o=this._bindingDictionary.get(e),i=c.createMockRequest(this,e,t,r);n=o.some((function(e){return e.constraint(i)}))}return!n&&this.parent&&(n=this.parent.isBoundTagged(e,t,r)),n},e.prototype.snapshot=function(){this._snapshots.push(h.ContainerSnapshot.of(this._bindingDictionary.clone(),this._middleware))},e.prototype.restore=function(){var e=this._snapshots.pop();if(void 0===e)throw new Error(a.NO_MORE_SNAPSHOTS_AVAILABLE);this._bindingDictionary=e.bindings,this._middleware=e.middleware},e.prototype.createChild=function(t){var r=new e(t||this.options);return r.parent=this,r},e.prototype.applyMiddleware=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=this._middleware?this._middleware:this._planAndResolve();this._middleware=e.reduce((function(e,t){return t(e)}),r)},e.prototype.applyCustomMetadataReader=function(e){this._metadataReader=e},e.prototype.get=function(e){return this._get(!1,!1,s.TargetTypeEnum.Variable,e)},e.prototype.getTagged=function(e,t,r){return this._get(!1,!1,s.TargetTypeEnum.Variable,e,t,r)},e.prototype.getNamed=function(e,t){return this.getTagged(e,u.NAMED_TAG,t)},e.prototype.getAll=function(e){return this._get(!0,!0,s.TargetTypeEnum.Variable,e)},e.prototype.getAllTagged=function(e,t,r){return this._get(!1,!0,s.TargetTypeEnum.Variable,e,t,r)},e.prototype.getAllNamed=function(e,t){return this.getAllTagged(e,u.NAMED_TAG,t)},e.prototype.resolve=function(e){var t=this.createChild();return t.bind(e).toSelf(),t.get(e)},e.prototype._getContainerModuleHelpersFactory=function(){var e=this,t=function(e,t){e._binding.moduleId=t},r=function(r){return function(n){var o=e.rebind.bind(e)(n);return t(o,r),o}};return function(n){return{bindFunction:(o=n,function(r){var n=e.bind.bind(e)(r);return t(n,o),n}),isboundFunction:function(t){return e.isBound.bind(e)(t)},rebindFunction:r(n),unbindFunction:function(t){e.unbind.bind(e)(t)}};var o}},e.prototype._get=function(e,t,r,n,o,i){var s=null,u={avoidConstraints:e,contextInterceptor:function(e){return e},isMultiInject:t,key:o,serviceIdentifier:n,targetType:r,value:i};if(this._middleware){if(null==(s=this._middleware(u)))throw new Error(a.INVALID_MIDDLEWARE_RETURN)}else s=this._planAndResolve()(u);return s},e.prototype._planAndResolve=function(){var e=this;return function(t){var r=c.plan(e._metadataReader,e,t.isMultiInject,t.targetType,t.serviceIdentifier,t.key,t.value,t.avoidConstraints);return r=t.contextInterceptor(r),d.resolve(r)}},e}();t.Container=y},3244:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(7791);t.ContainerModule=function(e){this.id=n.id(),this.registry=e};t.AsyncContainerModule=function(e){this.id=n.id(),this.registry=e}},5700:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.of=function(t,r){var n=new e;return n.bindings=t,n.middleware=r,n},e}();t.ContainerSnapshot=r},175:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=function(){function e(){this._map=new Map}return e.prototype.getMap=function(){return this._map},e.prototype.add=function(e,t){if(null==e)throw new Error(n.NULL_ARGUMENT);if(null==t)throw new Error(n.NULL_ARGUMENT);var r=this._map.get(e);void 0!==r?(r.push(t),this._map.set(e,r)):this._map.set(e,[t])},e.prototype.get=function(e){if(null==e)throw new Error(n.NULL_ARGUMENT);var t=this._map.get(e);if(void 0!==t)return t;throw new Error(n.KEY_NOT_FOUND)},e.prototype.remove=function(e){if(null==e)throw new Error(n.NULL_ARGUMENT);if(!this._map.delete(e))throw new Error(n.KEY_NOT_FOUND)},e.prototype.removeByCondition=function(e){var t=this;this._map.forEach((function(r,n){var o=r.filter((function(t){return!e(t)}));o.length>0?t._map.set(n,o):t._map.delete(n)}))},e.prototype.hasKey=function(e){if(null==e)throw new Error(n.NULL_ARGUMENT);return this._map.has(e)},e.prototype.clone=function(){var t=new e;return this._map.forEach((function(e,r){e.forEach((function(e){return t.add(r,e.clone())}))})),t},e.prototype.traverse=function(e){this._map.forEach((function(t,r){e(r,t)}))},e}();t.Lookup=o},6700:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867);t.METADATA_KEY=n;var o=r(1389);t.Container=o.Container;var i=r(8421);t.BindingScopeEnum=i.BindingScopeEnum,t.BindingTypeEnum=i.BindingTypeEnum,t.TargetTypeEnum=i.TargetTypeEnum;var a=r(3244);t.AsyncContainerModule=a.AsyncContainerModule,t.ContainerModule=a.ContainerModule;var s=r(4315);t.injectable=s.injectable;var u=r(2052);t.tagged=u.tagged;var l=r(8085);t.named=l.named;var c=r(5744);t.inject=c.inject,t.LazyServiceIdentifer=c.LazyServiceIdentifer;var d=r(6515);t.optional=d.optional;var p=r(6757);t.unmanaged=p.unmanaged;var g=r(1693);t.multiInject=g.multiInject;var f=r(5638);t.targetName=f.targetName;var h=r(7014);t.postConstruct=h.postConstruct;var m=r(1377);t.MetadataReader=m.MetadataReader;var y=r(7791);t.id=y.id;var b=r(9934);t.decorate=b.decorate;var S=r(758);t.traverseAncerstors=S.traverseAncerstors,t.taggedConstraint=S.taggedConstraint,t.namedConstraint=S.namedConstraint,t.typeConstraint=S.typeConstraint;var _=r(5800);t.getServiceIdentifierAsString=_.getServiceIdentifierAsString;var C=r(600);t.multiBindToService=C.multiBindToService},5228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(7791),o=function(){function e(e){this.id=n.id(),this.container=e}return e.prototype.addPlan=function(e){this.plan=e},e.prototype.setCurrentRequest=function(e){this.currentRequest=e},e}();t.Context=o},7738:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.toString=function(){return this.key===n.NAMED_TAG?"named: "+this.value.toString()+" ":"tagged: { key:"+this.key.toString()+", value: "+this.value+" }"},e}();t.Metadata=o},1377:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=function(){function e(){}return e.prototype.getConstructorMetadata=function(e){return{compilerGeneratedMetadata:Reflect.getMetadata(n.PARAM_TYPES,e),userGeneratedMetadata:Reflect.getMetadata(n.TAGGED,e)||{}}},e.prototype.getPropertiesMetadata=function(e){return Reflect.getMetadata(n.TAGGED_PROP,e)||[]},e}();t.MetadataReader=o},5314:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Plan=function(e,t){this.parentContext=e,this.rootRequest=t}},6311:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3184),o=r(6674),i=r(8421),a=r(6867),s=r(5265),u=r(5800),l=r(5228),c=r(7738),d=r(5314),p=r(6e3),g=r(6748),f=r(8924);function h(e){return e._bindingDictionary}function m(e,t,r,i,a){var s,l=b(r.container,a.serviceIdentifier);return l.length===n.BindingCount.NoBindingsAvailable&&r.container.options.autoBindInjectable&&"function"==typeof a.serviceIdentifier&&e.getConstructorMetadata(a.serviceIdentifier).compilerGeneratedMetadata&&(r.container.bind(a.serviceIdentifier).toSelf(),l=b(r.container,a.serviceIdentifier)),s=t?l:l.filter((function(e){var t=new g.Request(e.serviceIdentifier,r,i,e,a);return e.constraint(t)})),function(e,t,r,i){switch(t.length){case n.BindingCount.NoBindingsAvailable:if(r.isOptional())return t;var a=u.getServiceIdentifierAsString(e),s=o.NOT_REGISTERED;throw s+=u.listMetadataForTarget(a,r),s+=u.listRegisteredBindingsForServiceIdentifier(i,a,b),new Error(s);case n.BindingCount.OnlyOneBindingAvailable:if(!r.isArray())return t;case n.BindingCount.MultipleBindingsAvailable:default:if(r.isArray())return t;throw a=u.getServiceIdentifierAsString(e),s=o.AMBIGUOUS_MATCH+" "+a,s+=u.listRegisteredBindingsForServiceIdentifier(i,a,b),new Error(s)}}(a.serviceIdentifier,s,a,r.container),s}function y(e,t,r,n,a,s){var u,l;if(null===a){u=m(e,t,n,null,s),l=new g.Request(r,n,null,u,s);var c=new d.Plan(n,l);n.addPlan(c)}else u=m(e,t,n,a,s),l=a.addChildRequest(s.serviceIdentifier,u,s);u.forEach((function(t){var r=null;if(s.isArray())r=l.addChildRequest(t.serviceIdentifier,t,s);else{if(t.cache)return;r=l}if(t.type===i.BindingTypeEnum.Instance&&null!==t.implementationType){var a=p.getDependencies(e,t.implementationType);if(!n.container.options.skipBaseClassChecks){var u=p.getBaseClassDependencyCount(e,t.implementationType);if(a.length<u){var c=o.ARGUMENTS_LENGTH_MISMATCH(p.getFunctionName(t.implementationType));throw new Error(c)}}a.forEach((function(t){y(e,!1,t.serviceIdentifier,n,r,t)}))}}))}function b(e,t){var r=[],n=h(e);return n.hasKey(t)?r=n.get(t):null!==e.parent&&(r=b(e.parent,t)),r}t.getBindingDictionary=h,t.plan=function(e,t,r,n,o,i,d,p){void 0===p&&(p=!1);var g=new l.Context(t),h=function(e,t,r,n,o,i){var s=e?a.MULTI_INJECT_TAG:a.INJECT_TAG,u=new c.Metadata(s,r),l=new f.Target(t,"",r,u);if(void 0!==o){var d=new c.Metadata(o,i);l.metadata.push(d)}return l}(r,n,o,0,i,d);try{return y(e,p,o,g,null,h),g}catch(e){throw s.isStackOverflowExeption(e)&&g.plan&&u.circularDependencyToException(g.plan.rootRequest),e}},t.createMockRequest=function(e,t,r,n){var o=new f.Target(i.TargetTypeEnum.Variable,"",t,new c.Metadata(r,n)),a=new l.Context(e);return new g.Request(t,a,null,[],o)}},8460:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.str=e}return e.prototype.startsWith=function(e){return 0===this.str.indexOf(e)},e.prototype.endsWith=function(e){var t,r=e.split("").reverse().join("");return t=this.str.split("").reverse().join(""),this.startsWith.call({str:t},r)},e.prototype.contains=function(e){return-1!==this.str.indexOf(e)},e.prototype.equals=function(e){return this.str===e},e.prototype.value=function(){return this.str},e}();t.QueryableString=r},6e3:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5744),o=r(6674),i=r(8421),a=r(6867),s=r(5800);t.getFunctionName=s.getFunctionName;var u=r(8924);function l(e,t,r,n){var i=e.getConstructorMetadata(r),a=i.compilerGeneratedMetadata;if(void 0===a){var s=o.MISSING_INJECTABLE_ANNOTATION+" "+t+".";throw new Error(s)}var u=i.userGeneratedMetadata,l=Object.keys(u),p=function(e,t,r,n,o){for(var i=[],a=0;a<o;a++){var s=c(a,e,t,r,n);null!==s&&i.push(s)}return i}(n,t,a,u,0===r.length&&l.length>0?l.length:r.length),g=d(e,r);return p.concat(g)}function c(e,t,r,a,s){var l=s[e.toString()]||[],c=p(l),d=!0!==c.unmanaged,g=a[e];if((g=c.inject||c.multiInject||g)instanceof n.LazyServiceIdentifer&&(g=g.unwrap()),d){if(!t&&(g===Object||g===Function||void 0===g)){var f=o.MISSING_INJECT_ANNOTATION+" argument "+e+" in class "+r+".";throw new Error(f)}var h=new u.Target(i.TargetTypeEnum.ConstructorArgument,c.targetName,g);return h.metadata=l,h}return null}function d(e,t){for(var r=e.getPropertiesMetadata(t),n=[],o=0,a=Object.keys(r);o<a.length;o++){var s=a[o],l=r[s],c=p(r[s]),g=c.targetName||s,f=c.inject||c.multiInject,h=new u.Target(i.TargetTypeEnum.ClassProperty,g,f);h.metadata=l,n.push(h)}var m=Object.getPrototypeOf(t.prototype).constructor;if(m!==Object){var y=d(e,m);n=n.concat(y)}return n}function p(e){var t={};return e.forEach((function(e){t[e.key.toString()]=e.value})),{inject:t[a.INJECT_TAG],multiInject:t[a.MULTI_INJECT_TAG],targetName:t[a.NAME_TAG],unmanaged:t[a.UNMANAGED_TAG]}}t.getDependencies=function(e,t){return l(e,s.getFunctionName(t),t,!1)},t.getBaseClassDependencyCount=function e(t,r){var n=Object.getPrototypeOf(r.prototype).constructor;if(n!==Object){var o=l(t,s.getFunctionName(n),n,!0),i=o.map((function(e){return e.metadata.filter((function(e){return e.key===a.UNMANAGED_TAG}))})),u=[].concat.apply([],i).length,c=o.length-u;return c>0?c:e(t,n)}return 0}},6748:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(7791),o=function(){function e(e,t,r,o,i){this.id=n.id(),this.serviceIdentifier=e,this.parentContext=t,this.parentRequest=r,this.target=i,this.childRequests=[],this.bindings=Array.isArray(o)?o:[o],this.requestScope=null===r?new Map:null}return e.prototype.addChildRequest=function(t,r,n){var o=new e(t,this.parentContext,this,r,n);return this.childRequests.push(o),o},e}();t.Request=o},8924:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7791),i=r(7738),a=r(8460),s=function(){function e(e,t,r,s){this.id=o.id(),this.type=e,this.serviceIdentifier=r,this.name=new a.QueryableString(t||""),this.metadata=new Array;var u=null;"string"==typeof s?u=new i.Metadata(n.NAMED_TAG,s):s instanceof i.Metadata&&(u=s),null!==u&&this.metadata.push(u)}return e.prototype.hasTag=function(e){for(var t=0,r=this.metadata;t<r.length;t++)if(r[t].key===e)return!0;return!1},e.prototype.isArray=function(){return this.hasTag(n.MULTI_INJECT_TAG)},e.prototype.matchesArray=function(e){return this.matchesTag(n.MULTI_INJECT_TAG)(e)},e.prototype.isNamed=function(){return this.hasTag(n.NAMED_TAG)},e.prototype.isTagged=function(){return this.metadata.some((function(e){return e.key!==n.INJECT_TAG&&e.key!==n.MULTI_INJECT_TAG&&e.key!==n.NAME_TAG&&e.key!==n.UNMANAGED_TAG&&e.key!==n.NAMED_TAG}))},e.prototype.isOptional=function(){return this.matchesTag(n.OPTIONAL_TAG)(!0)},e.prototype.getNamedTag=function(){return this.isNamed()?this.metadata.filter((function(e){return e.key===n.NAMED_TAG}))[0]:null},e.prototype.getCustomTags=function(){return this.isTagged()?this.metadata.filter((function(e){return e.key!==n.INJECT_TAG&&e.key!==n.MULTI_INJECT_TAG&&e.key!==n.NAME_TAG&&e.key!==n.UNMANAGED_TAG&&e.key!==n.NAMED_TAG})):null},e.prototype.matchesNamedTag=function(e){return this.matchesTag(n.NAMED_TAG)(e)},e.prototype.matchesTag=function(e){var t=this;return function(r){for(var n=0,o=t.metadata;n<o.length;n++){var i=o[n];if(i.key===e&&i.value===r)return!0}return!1}},e}();t.Target=s},2279:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(8421),i=r(6867);t.resolveInstance=function(e,t,r){var a,s,u=null;t.length>0?(s=t.filter((function(e){return null!==e.target&&e.target.type===o.TargetTypeEnum.ConstructorArgument})).map(r),u=function(e,t,r){var n=t.filter((function(e){return null!==e.target&&e.target.type===o.TargetTypeEnum.ClassProperty})),i=n.map(r);return n.forEach((function(t,r){var n;n=t.target.name.value();var o=i[r];e[n]=o})),e}(u=new((a=e).bind.apply(a,[void 0].concat(s))),t,r)):u=new e;return function(e,t){if(Reflect.hasMetadata(i.POST_CONSTRUCT,e)){var r=Reflect.getMetadata(i.POST_CONSTRUCT,e);try{t[r.value]()}catch(t){throw new Error(n.POST_CONSTRUCT_ERROR(e.name,t.message))}}}(e,u),u}},1927:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(8421),i=r(5265),a=r(5800),s=r(2279),u=function(e,t,r){try{return r()}catch(r){throw i.isStackOverflowExeption(r)?new Error(n.CIRCULAR_DEPENDENCY_IN_FACTORY(e,t.toString())):r}},l=function(e){return function(t){t.parentContext.setCurrentRequest(t);var r=t.bindings,i=t.childRequests,c=t.target&&t.target.isArray(),d=!(t.parentRequest&&t.parentRequest.target&&t.target&&t.parentRequest.target.matchesArray(t.target.serviceIdentifier));if(c&&d)return i.map((function(t){return l(e)(t)}));var p=null;if(!t.target.isOptional()||0!==r.length){var g=r[0],f=g.scope===o.BindingScopeEnum.Singleton,h=g.scope===o.BindingScopeEnum.Request;if(f&&g.activated)return g.cache;if(h&&null!==e&&e.has(g.id))return e.get(g.id);if(g.type===o.BindingTypeEnum.ConstantValue)p=g.cache;else if(g.type===o.BindingTypeEnum.Function)p=g.cache;else if(g.type===o.BindingTypeEnum.Constructor)p=g.implementationType;else if(g.type===o.BindingTypeEnum.DynamicValue&&null!==g.dynamicValue)p=u("toDynamicValue",g.serviceIdentifier,(function(){return g.dynamicValue(t.parentContext)}));else if(g.type===o.BindingTypeEnum.Factory&&null!==g.factory)p=u("toFactory",g.serviceIdentifier,(function(){return g.factory(t.parentContext)}));else if(g.type===o.BindingTypeEnum.Provider&&null!==g.provider)p=u("toProvider",g.serviceIdentifier,(function(){return g.provider(t.parentContext)}));else{if(g.type!==o.BindingTypeEnum.Instance||null===g.implementationType){var m=a.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(n.INVALID_BINDING_TYPE+" "+m)}p=s.resolveInstance(g.implementationType,i,l(e))}return"function"==typeof g.onActivation&&(p=g.onActivation(t.parentContext,p)),f&&(g.cache=p,g.activated=!0),h&&null!==e&&!e.has(g.id)&&e.set(g.id,p),p}}};t.resolve=function(e){return l(e.plan.rootRequest.requestScope)(e.plan.rootRequest)}},3366:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8421),o=r(1325),i=function(){function e(e){this._binding=e}return e.prototype.inRequestScope=function(){return this._binding.scope=n.BindingScopeEnum.Request,new o.BindingWhenOnSyntax(this._binding)},e.prototype.inSingletonScope=function(){return this._binding.scope=n.BindingScopeEnum.Singleton,new o.BindingWhenOnSyntax(this._binding)},e.prototype.inTransientScope=function(){return this._binding.scope=n.BindingScopeEnum.Transient,new o.BindingWhenOnSyntax(this._binding)},e}();t.BindingInSyntax=i},9812:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(3366),o=r(1811),i=r(8370),a=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new i.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new o.BindingOnSyntax(this._binding),this._bindingInSyntax=new n.BindingInSyntax(e)}return e.prototype.inRequestScope=function(){return this._bindingInSyntax.inRequestScope()},e.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},e.prototype.inTransientScope=function(){return this._bindingInSyntax.inTransientScope()},e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e}();t.BindingInWhenOnSyntax=a},1811:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(8370),o=function(){function e(e){this._binding=e}return e.prototype.onActivation=function(e){return this._binding.onActivation=e,new n.BindingWhenSyntax(this._binding)},e}();t.BindingOnSyntax=o},1860:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674),o=r(8421),i=r(9812),a=r(1325),s=function(){function e(e){this._binding=e}return e.prototype.to=function(e){return this._binding.type=o.BindingTypeEnum.Instance,this._binding.implementationType=e,new i.BindingInWhenOnSyntax(this._binding)},e.prototype.toSelf=function(){if("function"!=typeof this._binding.serviceIdentifier)throw new Error(""+n.INVALID_TO_SELF_VALUE);var e=this._binding.serviceIdentifier;return this.to(e)},e.prototype.toConstantValue=function(e){return this._binding.type=o.BindingTypeEnum.ConstantValue,this._binding.cache=e,this._binding.dynamicValue=null,this._binding.implementationType=null,new a.BindingWhenOnSyntax(this._binding)},e.prototype.toDynamicValue=function(e){return this._binding.type=o.BindingTypeEnum.DynamicValue,this._binding.cache=null,this._binding.dynamicValue=e,this._binding.implementationType=null,new i.BindingInWhenOnSyntax(this._binding)},e.prototype.toConstructor=function(e){return this._binding.type=o.BindingTypeEnum.Constructor,this._binding.implementationType=e,new a.BindingWhenOnSyntax(this._binding)},e.prototype.toFactory=function(e){return this._binding.type=o.BindingTypeEnum.Factory,this._binding.factory=e,new a.BindingWhenOnSyntax(this._binding)},e.prototype.toFunction=function(e){if("function"!=typeof e)throw new Error(n.INVALID_FUNCTION_BINDING);var t=this.toConstantValue(e);return this._binding.type=o.BindingTypeEnum.Function,t},e.prototype.toAutoFactory=function(e){return this._binding.type=o.BindingTypeEnum.Factory,this._binding.factory=function(t){return function(){return t.container.get(e)}},new a.BindingWhenOnSyntax(this._binding)},e.prototype.toProvider=function(e){return this._binding.type=o.BindingTypeEnum.Provider,this._binding.provider=e,new a.BindingWhenOnSyntax(this._binding)},e.prototype.toService=function(e){this.toDynamicValue((function(t){return t.container.get(e)}))},e}();t.BindingToSyntax=s},1325:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1811),o=r(8370),i=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new o.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new n.BindingOnSyntax(this._binding)}return e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e}();t.BindingWhenOnSyntax=i},8370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1811),o=r(758),i=function(){function e(e){this._binding=e}return e.prototype.when=function(e){return this._binding.constraint=e,new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetNamed=function(e){return this._binding.constraint=o.namedConstraint(e),new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetIsDefault=function(){return this._binding.constraint=function(e){return null!==e.target&&!e.target.isNamed()&&!e.target.isTagged()},new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetTagged=function(e,t){return this._binding.constraint=o.taggedConstraint(e)(t),new n.BindingOnSyntax(this._binding)},e.prototype.whenInjectedInto=function(e){return this._binding.constraint=function(t){return o.typeConstraint(e)(t.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenParentNamed=function(e){return this._binding.constraint=function(t){return o.namedConstraint(e)(t.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenParentTagged=function(e,t){return this._binding.constraint=function(r){return o.taggedConstraint(e)(t)(r.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorIs=function(e){return this._binding.constraint=function(t){return o.traverseAncerstors(t,o.typeConstraint(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorIs=function(e){return this._binding.constraint=function(t){return!o.traverseAncerstors(t,o.typeConstraint(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorNamed=function(e){return this._binding.constraint=function(t){return o.traverseAncerstors(t,o.namedConstraint(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorNamed=function(e){return this._binding.constraint=function(t){return!o.traverseAncerstors(t,o.namedConstraint(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._binding.constraint=function(r){return o.traverseAncerstors(r,o.taggedConstraint(e)(t))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorTagged=function(e,t){return this._binding.constraint=function(r){return!o.traverseAncerstors(r,o.taggedConstraint(e)(t))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorMatches=function(e){return this._binding.constraint=function(t){return o.traverseAncerstors(t,e)},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorMatches=function(e){return this._binding.constraint=function(t){return!o.traverseAncerstors(t,e)},new n.BindingOnSyntax(this._binding)},e}();t.BindingWhenSyntax=i},758:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6867),o=r(7738),i=function(e,t){var r=e.parentRequest;return null!==r&&(!!t(r)||i(r,t))};t.traverseAncerstors=i;var a=function(e){return function(t){var r=function(r){return null!==r&&null!==r.target&&r.target.matchesTag(e)(t)};return r.metaData=new o.Metadata(e,t),r}};t.taggedConstraint=a;var s=a(n.NAMED_TAG);t.namedConstraint=s,t.typeConstraint=function(e){return function(t){var r=null;if(null!==t){if(r=t.bindings[0],"string"==typeof e)return r.serviceIdentifier===e;var n=t.bindings[0].implementationType;return e===n}return!1}}},600:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.multiBindToService=function(e){return function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return r.forEach((function(r){return e.bind(r).toService(t)}))}}}},5265:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674);t.isStackOverflowExeption=function(e){return e instanceof RangeError||e.message===n.STACK_OVERFLOW}},7791:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=0;t.id=function(){return r++}},5800:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(6674);function o(e){return"function"==typeof e?e.name:"symbol"==typeof e?e.toString():e}function i(e,t){return null!==e.parentRequest&&(e.parentRequest.serviceIdentifier===t||i(e.parentRequest,t))}function a(e){if(e.name)return e.name;var t=e.toString(),r=t.match(/^function\s*([^\s(]+)/);return r?r[1]:"Anonymous function: "+t}t.getServiceIdentifierAsString=o,t.listRegisteredBindingsForServiceIdentifier=function(e,t,r){var n="",o=r(e,t);return 0!==o.length&&(n="\nRegistered bindings:",o.forEach((function(e){var t="Object";null!==e.implementationType&&(t=a(e.implementationType)),n=n+"\n "+t,e.constraint.metaData&&(n=n+" - "+e.constraint.metaData)}))),n},t.circularDependencyToException=function e(t){t.childRequests.forEach((function(t){if(i(t,t.serviceIdentifier)){var r=function(e){return function e(t,r){void 0===r&&(r=[]);var n=o(t.serviceIdentifier);return r.push(n),null!==t.parentRequest?e(t.parentRequest,r):r}(e).reverse().join(" --\x3e ")}(t);throw new Error(n.CIRCULAR_DEPENDENCY+" "+r)}e(t)}))},t.listMetadataForTarget=function(e,t){if(t.isTagged()||t.isNamed()){var r="",n=t.getNamedTag(),o=t.getCustomTags();return null!==n&&(r+=n.toString()+"\n"),null!==o&&o.forEach((function(e){r+=e.toString()+"\n"}))," "+e+"\n "+e+" - "+r}return" "+e},t.getFunctionName=a},2584:e=>{"use strict";var t="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,r=Object.prototype.toString,n=function(e){return!(t&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===r.call(e)},o=function(e){return!!n(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==r.call(e)&&"[object Function]"===r.call(e.callee)},i=function(){return n(arguments)}();n.isLegacyArguments=o,e.exports=i?n:o},8738:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},8662:e=>{"use strict";var t=Object.prototype.toString,r=Function.prototype.toString,n=/^\s*(?:function)?\*/,o="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,i=Object.getPrototypeOf,a=function(){if(!o)return!1;try{return Function("return function*() {}")()}catch(e){}}(),s=a?i(a):{};e.exports=function(e){return"function"==typeof e&&(!!n.test(r.call(e))||(o?i(e)===s:"[object GeneratorFunction]"===t.call(e)))}},8611:e=>{"use strict";e.exports=function(e){return e!=e}},360:(e,t,r)=>{"use strict";var n=r(4289),o=r(8611),i=r(9415),a=r(3194),s=i();n(s,{getPolyfill:i,implementation:o,shim:a}),e.exports=s},9415:(e,t,r)=>{"use strict";var n=r(8611);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},3194:(e,t,r)=>{"use strict";var n=r(4289),o=r(9415);e.exports=function(){var e=o();return n(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},5692:(e,t,r)=>{"use strict";var n=r(9804),o=r(6314),i=r(2345),a=i("Object.prototype.toString"),s=r(1405)()&&"symbol"==typeof Symbol.toStringTag,u=o(),l=i("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r<e.length;r+=1)if(e[r]===t)return r;return-1},c=i("String.prototype.slice"),d={},p=r(9949),g=Object.getPrototypeOf;s&&p&&g&&n(u,(function(e){var t=new r.g[e];if(!(Symbol.toStringTag in t))throw new EvalError("this engine has support for Symbol.toStringTag, but "+e+" does not have the property! Please report this.");var n=g(t),o=p(n,Symbol.toStringTag);if(!o){var i=g(n);o=p(i,Symbol.toStringTag)}d[e]=o.get})),e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!s){var t=c(a(e),8,-1);return l(u,t)>-1}return!!p&&function(e){var t=!1;return n(d,(function(r,n){if(!t)try{t=r.call(e)===n}catch(e){}})),t}(e)}},3022:(e,t,r)=>{"use strict";var n,o=TypeError,i=Object.getOwnPropertyDescriptor;if(i)try{i({},"")}catch(e){i=null}var a=function(){throw new o},s=i?function(){try{return a}catch(e){try{return i(arguments,"callee").get}catch(e){return a}}}():a,u=r(1405)(),l=Object.getPrototypeOf||function(e){return e.__proto__},c=n,d="undefined"==typeof Uint8Array?n:l(Uint8Array),p={"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":u?l([][Symbol.iterator]()):n,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":undefined,"%AsyncFunctionPrototype%":n,"%AsyncGenerator%":n,"%AsyncGeneratorFunction%":undefined,"%AsyncGeneratorPrototype%":n,"%AsyncIteratorPrototype%":c&&u&&Symbol.asyncIterator?c[Symbol.asyncIterator]():n,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":"undefined"==typeof DataView?n:DataView,"%DataViewPrototype%":"undefined"==typeof DataView?n:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float32ArrayPrototype%":"undefined"==typeof Float32Array?n:Float32Array.prototype,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%Float64ArrayPrototype%":"undefined"==typeof Float64Array?n:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":n,"%GeneratorFunction%":undefined,"%GeneratorPrototype%":n,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int8ArrayPrototype%":"undefined"==typeof Int8Array?n:Int8Array.prototype,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int16ArrayPrototype%":"undefined"==typeof Int16Array?n:Int8Array.prototype,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%Int32ArrayPrototype%":"undefined"==typeof Int32Array?n:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":u?l(l([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%JSONParse%":"object"==typeof JSON?JSON.parse:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&u?l((new Map)[Symbol.iterator]()):n,"%MapPrototype%":"undefined"==typeof Map?n:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":Number.prototype,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%PromisePrototype%":"undefined"==typeof Promise?n:Promise.prototype,"%PromiseProto_then%":"undefined"==typeof Promise?n:Promise.prototype.then,"%Promise_all%":"undefined"==typeof Promise?n:Promise.all,"%Promise_reject%":"undefined"==typeof Promise?n:Promise.reject,"%Promise_resolve%":"undefined"==typeof Promise?n:Promise.resolve,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&u?l((new Set)[Symbol.iterator]()):n,"%SetPrototype%":"undefined"==typeof Set?n:Set.prototype,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":u?l(""[Symbol.iterator]()):n,"%StringPrototype%":String.prototype,"%Symbol%":u?Symbol:n,"%SymbolPrototype%":u?Symbol.prototype:n,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":s,"%TypedArray%":d,"%TypedArrayPrototype%":d?d.prototype:n,"%TypeError%":o,"%TypeErrorPrototype%":o.prototype,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?n:Uint8Array.prototype,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray.prototype,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?n:Uint16Array.prototype,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?n:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakMapPrototype%":"undefined"==typeof WeakMap?n:WeakMap.prototype,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%WeakSetPrototype%":"undefined"==typeof WeakSet?n:WeakSet.prototype},g=r(8612).call(Function.call,String.prototype.replace),f=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,h=/\\(\\)?/g,m=function(e){var t=[];return g(e,f,(function(e,r,n,o){t[t.length]=n?g(o,h,"$1"):r||e})),t},y=function(e,t){if(!(e in p))throw new SyntaxError("intrinsic "+e+" does not exist!");if(void 0===p[e]&&!t)throw new o("intrinsic "+e+" exists, but is not available. Please file an issue!");return p[e]};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new TypeError('"allowMissing" argument must be a boolean');for(var r=m(e),n=y("%"+(r.length>0?r[0]:"")+"%",t),a=1;a<r.length;a+=1)if(null!=n)if(i&&a+1>=r.length){var s=i(n,r[a]);if(!t&&!(r[a]in n))throw new o("base intrinsic for "+e+" exists, but the property is not available.");n=s?s.get||s.value:n[r[a]]}else n=n[r[a]];return n}},8154:(e,t,r)=>{"use strict";var n=r(8612),o=r(3022)("%Function%"),i=o.apply,a=o.call;e.exports=function(){return n.apply(a,arguments)},e.exports.apply=function(){return n.apply(i,arguments)}},2345:(e,t,r)=>{"use strict";var n=r(3022),o=r(8154),i=o(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&i(e,".prototype.")?o(r):r}},9949:(e,t,r)=>{"use strict";var n=r(3022)("%Object.getOwnPropertyDescriptor%");if(n)try{n([],"length")}catch(e){n=null}e.exports=n},1153:e=>{e.exports=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,(function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}}))}},2568:(e,t,r)=>{var n,o,i,a,s;n=r(1012),o=r(487).utf8,i=r(8738),a=r(487).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?a.stringToBytes(e):o.stringToBytes(e):i(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var r=n.bytesToWords(e),u=8*e.length,l=1732584193,c=-271733879,d=-1732584194,p=271733878,g=0;g<r.length;g++)r[g]=16711935&(r[g]<<8|r[g]>>>24)|4278255360&(r[g]<<24|r[g]>>>8);r[u>>>5]|=128<<u%32,r[14+(u+64>>>9<<4)]=u;var f=s._ff,h=s._gg,m=s._hh,y=s._ii;for(g=0;g<r.length;g+=16){var b=l,S=c,_=d,C=p;l=f(l,c,d,p,r[g+0],7,-680876936),p=f(p,l,c,d,r[g+1],12,-389564586),d=f(d,p,l,c,r[g+2],17,606105819),c=f(c,d,p,l,r[g+3],22,-1044525330),l=f(l,c,d,p,r[g+4],7,-176418897),p=f(p,l,c,d,r[g+5],12,1200080426),d=f(d,p,l,c,r[g+6],17,-1473231341),c=f(c,d,p,l,r[g+7],22,-45705983),l=f(l,c,d,p,r[g+8],7,1770035416),p=f(p,l,c,d,r[g+9],12,-1958414417),d=f(d,p,l,c,r[g+10],17,-42063),c=f(c,d,p,l,r[g+11],22,-1990404162),l=f(l,c,d,p,r[g+12],7,1804603682),p=f(p,l,c,d,r[g+13],12,-40341101),d=f(d,p,l,c,r[g+14],17,-1502002290),l=h(l,c=f(c,d,p,l,r[g+15],22,1236535329),d,p,r[g+1],5,-165796510),p=h(p,l,c,d,r[g+6],9,-1069501632),d=h(d,p,l,c,r[g+11],14,643717713),c=h(c,d,p,l,r[g+0],20,-373897302),l=h(l,c,d,p,r[g+5],5,-701558691),p=h(p,l,c,d,r[g+10],9,38016083),d=h(d,p,l,c,r[g+15],14,-660478335),c=h(c,d,p,l,r[g+4],20,-405537848),l=h(l,c,d,p,r[g+9],5,568446438),p=h(p,l,c,d,r[g+14],9,-1019803690),d=h(d,p,l,c,r[g+3],14,-187363961),c=h(c,d,p,l,r[g+8],20,1163531501),l=h(l,c,d,p,r[g+13],5,-1444681467),p=h(p,l,c,d,r[g+2],9,-51403784),d=h(d,p,l,c,r[g+7],14,1735328473),l=m(l,c=h(c,d,p,l,r[g+12],20,-1926607734),d,p,r[g+5],4,-378558),p=m(p,l,c,d,r[g+8],11,-2022574463),d=m(d,p,l,c,r[g+11],16,1839030562),c=m(c,d,p,l,r[g+14],23,-35309556),l=m(l,c,d,p,r[g+1],4,-1530992060),p=m(p,l,c,d,r[g+4],11,1272893353),d=m(d,p,l,c,r[g+7],16,-155497632),c=m(c,d,p,l,r[g+10],23,-1094730640),l=m(l,c,d,p,r[g+13],4,681279174),p=m(p,l,c,d,r[g+0],11,-358537222),d=m(d,p,l,c,r[g+3],16,-722521979),c=m(c,d,p,l,r[g+6],23,76029189),l=m(l,c,d,p,r[g+9],4,-640364487),p=m(p,l,c,d,r[g+12],11,-421815835),d=m(d,p,l,c,r[g+15],16,530742520),l=y(l,c=m(c,d,p,l,r[g+2],23,-995338651),d,p,r[g+0],6,-198630844),p=y(p,l,c,d,r[g+7],10,1126891415),d=y(d,p,l,c,r[g+14],15,-1416354905),c=y(c,d,p,l,r[g+5],21,-57434055),l=y(l,c,d,p,r[g+12],6,1700485571),p=y(p,l,c,d,r[g+3],10,-1894986606),d=y(d,p,l,c,r[g+10],15,-1051523),c=y(c,d,p,l,r[g+1],21,-2054922799),l=y(l,c,d,p,r[g+8],6,1873313359),p=y(p,l,c,d,r[g+15],10,-30611744),d=y(d,p,l,c,r[g+6],15,-1560198380),c=y(c,d,p,l,r[g+13],21,1309151649),l=y(l,c,d,p,r[g+4],6,-145523070),p=y(p,l,c,d,r[g+11],10,-1120210379),d=y(d,p,l,c,r[g+2],15,718787259),c=y(c,d,p,l,r[g+9],21,-343485551),l=l+b>>>0,c=c+S>>>0,d=d+_>>>0,p=p+C>>>0}return n.endian([l,c,d,p])})._ff=function(e,t,r,n,o,i,a){var s=e+(t&r|~t&n)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},s._gg=function(e,t,r,n,o,i,a){var s=e+(t&n|r&~n)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},s._hh=function(e,t,r,n,o,i,a){var s=e+(t^r^n)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},s._ii=function(e,t,r,n,o,i,a){var s=e+(r^(t|~n))+(o>>>0)+a;return(s<<i|s>>>32-i)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var r=n.wordsToBytes(s(e,t));return t&&t.asBytes?r:t&&t.asString?a.bytesToString(r):n.bytesToHex(r)}},4244:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,r){return 0===e&&0===r?1/e==1/r:e===r||!(!t(e)||!t(r))}},609:(e,t,r)=>{"use strict";var n=r(4289),o=r(850),i=r(4244),a=r(5624),s=r(2281),u=o(a(),Object);n(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},1607:(e,t,r)=>{"use strict";var n,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return Function('"use strict"; return ('+e+").constructor;")()}catch(e){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(e){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(e){return l}}}():l,d=r(1405)(),p=Object.getPrototypeOf||function(e){return e.__proto__},g=s("async function* () {}"),f=g?g.prototype:n,h=f?f.prototype:n,m="undefined"==typeof Uint8Array?n:p(Uint8Array),y={"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":d?p([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":s("async function () {}"),"%AsyncGenerator%":f,"%AsyncGeneratorFunction%":g,"%AsyncIteratorPrototype%":h?p(h):n,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":s("function* () {}"),"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":d?p(p([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&d?p((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&d?p((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":d?p(""[Symbol.iterator]()):n,"%Symbol%":d?Symbol:n,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":m,"%TypeError%":a,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},S=r(8612),_=r(7642),C=S.call(Function.call,Array.prototype.concat),E=S.call(Function.apply,Array.prototype.splice),A=S.call(Function.call,String.prototype.replace),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,v=/\\(\\)?/g,T=function(e){var t=[];return A(e,N,(function(e,r,n,o){t[t.length]=n?A(o,v,"$1"):r||e})),t},I=function(e,t){var r,n=e;if(_(b,n)&&(n="%"+(r=b[n])[0]+"%"),_(y,n)){var i=y[n];if(void 0===i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new a('"allowMissing" argument must be a boolean');var r=T(e),n=r.length>0?r[0]:"",o=I("%"+n+"%",t),i=o.name,s=o.value,l=!1,c=o.alias;c&&(n=c[0],E(r,C([0,1],c)));for(var d=1,p=!0;d<r.length;d+=1){var g=r[d];if("constructor"!==g&&p||(l=!0),_(y,i="%"+(n+="."+g)+"%"))s=y[i];else if(null!=s){if(u&&d+1>=r.length){var f=u(s,g);if(p=!!f,!t&&!(g in s))throw new a("base intrinsic for "+e+" exists, but the property is not available.");s=p&&"get"in f&&!("originalValue"in f.get)?f.get:s[g]}else p=_(s,g),s=s[g];p&&!l&&(y[i]=s)}}return s}},850:(e,t,r)=>{"use strict";var n=r(8612),o=r(1607),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||n.call(a,i),u=o("%Object.defineProperty%",!0);if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(){return s(n,a,arguments)};var l=function(){return s(n,i,arguments)};u?u(e.exports,"apply",{value:l}):e.exports.apply=l},5624:(e,t,r)=>{"use strict";var n=r(4244);e.exports=function(){return"function"==typeof Object.is?Object.is:n}},2281:(e,t,r)=>{"use strict";var n=r(5624),o=r(4289);e.exports=function(){var e=n();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8987:(e,t,r)=>{"use strict";var n;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=r(1414),s=Object.prototype.propertyIsEnumerable,u=!s.call({toString:null},"toString"),l=s.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=function(e){var t=e.constructor;return t&&t.prototype===e},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},g=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!p["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{d(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();n=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===i.call(e),n=a(e),s=t&&"[object String]"===i.call(e),p=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var f=l&&r;if(s&&e.length>0&&!o.call(e,0))for(var h=0;h<e.length;++h)p.push(String(h));if(n&&e.length>0)for(var m=0;m<e.length;++m)p.push(String(m));else for(var y in e)f&&"prototype"===y||!o.call(e,y)||p.push(String(y));if(u)for(var b=function(e){if("undefined"==typeof window||!g)return d(e);try{return d(e)}catch(e){return!1}}(e),S=0;S<c.length;++S)b&&"constructor"===c[S]||!o.call(e,c[S])||p.push(c[S]);return p}}e.exports=n},2215:(e,t,r)=>{"use strict";var n=Array.prototype.slice,o=r(1414),i=Object.keys,a=i?function(e){return i(e)}:r(8987),s=Object.keys;a.shim=function(){return Object.keys?function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2)||(Object.keys=function(e){return o(e)?s(n.call(e)):s(e)}):Object.keys=a,Object.keys||a},e.exports=a},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),n}},4155:e=>{var t,r,n=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var s,u=[],l=!1,c=-1;function d(){l&&s&&(l=!1,s.length?u=s.concat(u):c=-1,u.length&&p())}function p(){if(!l){var e=a(d);l=!0;for(var t=u.length;t;){for(s=u,u=[];++c<t;)s&&s[c].run();c=-1,t=u.length}s=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function f(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new g(e,t)),1!==u.length||l||a(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=f,n.addListener=f,n.once=f,n.off=f,n.removeListener=f,n.removeAllListeners=f,n.emit=f,n.prependListener=f,n.prependOnceListener=f,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},8660:(e,t,r)=>{var n,o=r(4155);!function(e){!function(t){var n="object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:Function("return this;")(),i=a(e);function a(e,t){return function(r,n){"function"!=typeof e[r]&&Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0===n.Reflect?n.Reflect=e:i=a(n.Reflect,i),function(e){var t=Object.prototype.hasOwnProperty,r="function"==typeof Symbol,n=r&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",i=r&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",a="function"==typeof Object.create,s={__proto__:[]}instanceof Array,u=!a&&!s,l={create:a?function(){return w(Object.create(null))}:s?function(){return w({__proto__:null})}:function(){return w({})},has:u?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:u?function(e,r){return t.call(e,r)?e[r]:void 0}:function(e,t){return e[t]}},c=Object.getPrototypeOf(Function),d="object"==typeof o&&o.env&&"true"===o.env.REFLECT_METADATA_USE_MAP_POLYFILL,p=d||"function"!=typeof Map||"function"!=typeof Map.prototype.entries?function(){var e={},t=[],r=function(){function e(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return e.prototype["@@iterator"]=function(){return this},e.prototype[i]=function(){return this},e.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,o=r+1;o<n;o++)this._keys[o-1]=this._keys[o],this._values[o-1]=this._values[o];return this._keys.length--,this._values.length--,t===this._cacheKey&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},t.prototype.keys=function(){return new r(this._keys,this._values,n)},t.prototype.values=function(){return new r(this._keys,this._values,o)},t.prototype.entries=function(){return new r(this._keys,this._values,a)},t.prototype["@@iterator"]=function(){return this.entries()},t.prototype[i]=function(){return this.entries()},t.prototype._find=function(e,t){return this._cacheKey!==e&&(this._cacheIndex=this._keys.indexOf(this._cacheKey=e)),this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},t}();function n(e,t){return e}function o(e,t){return t}function a(e,t){return[e,t]}}():Map,g=d||"function"!=typeof Set||"function"!=typeof Set.prototype.entries?function(){function e(){this._map=new p}return Object.defineProperty(e.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),e.prototype.has=function(e){return this._map.has(e)},e.prototype.add=function(e){return this._map.set(e,e),this},e.prototype.delete=function(e){return this._map.delete(e)},e.prototype.clear=function(){this._map.clear()},e.prototype.keys=function(){return this._map.keys()},e.prototype.values=function(){return this._map.values()},e.prototype.entries=function(){return this._map.entries()},e.prototype["@@iterator"]=function(){return this.keys()},e.prototype[i]=function(){return this.keys()},e}():Set,f=new(d||"function"!=typeof WeakMap?function(){var e=l.create(),r=n();return function(){function e(){this._key=n()}return e.prototype.has=function(e){var t=o(e,!1);return void 0!==t&&l.has(t,this._key)},e.prototype.get=function(e){var t=o(e,!1);return void 0!==t?l.get(t,this._key):void 0},e.prototype.set=function(e,t){return o(e,!0)[this._key]=t,this},e.prototype.delete=function(e){var t=o(e,!1);return void 0!==t&&delete t[this._key]},e.prototype.clear=function(){this._key=n()},e}();function n(){var t;do{t="@@WeakMap@@"+a()}while(l.has(e,t));return e[t]=!0,t}function o(e,n){if(!t.call(e,r)){if(!n)return;Object.defineProperty(e,r,{value:l.create()})}return e[r]}function i(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function a(){var e,t=(e=16,"function"==typeof Uint8Array?"undefined"!=typeof crypto?crypto.getRandomValues(new Uint8Array(e)):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(new Uint8Array(e)):i(new Uint8Array(e),e):i(new Array(e),e));t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var r="",n=0;n<16;++n){var o=t[n];4!==n&&6!==n&&8!==n||(r+="-"),o<16&&(r+="0"),r+=o.toString(16).toLowerCase()}return r}}():WeakMap);function h(e,t,r){var n=f.get(e);if(N(n)){if(!r)return;n=new p,f.set(e,n)}var o=n.get(t);if(N(o)){if(!r)return;o=new p,n.set(t,o)}return o}function m(e,t,r){if(y(e,t,r))return!0;var n=L(t);return!v(n)&&m(e,n,r)}function y(e,t,r){var n=h(t,r,!1);return!N(n)&&!!n.has(e)}function b(e,t,r){if(y(e,t,r))return S(e,t,r);var n=L(t);return v(n)?void 0:b(e,n,r)}function S(e,t,r){var n=h(t,r,!1);if(!N(n))return n.get(e)}function _(e,t,r,n){h(r,n,!0).set(e,t)}function C(e,t){var r=E(e,t),n=L(e);if(null===n)return r;var o=C(n,t);if(o.length<=0)return r;if(r.length<=0)return o;for(var i=new g,a=[],s=0,u=r;s<u.length;s++){var l=u[s];i.has(l)||(i.add(l),a.push(l))}for(var c=0,d=o;c<d.length;c++)l=d[c],i.has(l)||(i.add(l),a.push(l));return a}function E(e,t){var r=[],n=h(e,t,!1);if(N(n))return r;for(var o=function(e){var t=M(e,i);if(!R(t))throw new TypeError;var r=t.call(e);if(!T(r))throw new TypeError;return r}(n.keys()),a=0;;){var s=F(o);if(!s)return r.length=a,r;var u=s.value;try{r[a]=u}catch(e){try{x(o)}finally{throw e}}a++}}function A(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function N(e){return void 0===e}function v(e){return null===e}function T(e){return"object"==typeof e?null!==e:"function"==typeof e}function I(e,t){switch(A(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",o=M(e,n);if(void 0!==o){var i=o.call(e,r);if(T(i))throw new TypeError;return i}return function(e,t){if("string"===t){var r=e.toString;if(R(r)&&!T(o=r.call(e)))return o;if(R(n=e.valueOf)&&!T(o=n.call(e)))return o}else{var n;if(R(n=e.valueOf)&&!T(o=n.call(e)))return o;var o,i=e.toString;if(R(i)&&!T(o=i.call(e)))return o}throw new TypeError}(e,"default"===r?"number":r)}function O(e){var t=I(e,3);return"symbol"==typeof t?t:function(e){return""+e}(t)}function D(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function R(e){return"function"==typeof e}function P(e){return"function"==typeof e}function M(e,t){var r=e[t];if(null!=r){if(!R(r))throw new TypeError;return r}}function F(e){var t=e.next();return!t.done&&t}function x(e){var t=e.return;t&&t.call(e)}function L(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===c)return t;if(t!==c)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var o=n.constructor;return"function"!=typeof o||o===e?t:o}function w(e){return e.__=void 0,delete e.__,e}e("decorate",(function(e,t,r,n){if(N(r)){if(!D(e))throw new TypeError;if(!P(t))throw new TypeError;return function(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!N(n)&&!v(n)){if(!P(n))throw new TypeError;t=n}}return t}(e,t)}if(!D(e))throw new TypeError;if(!T(t))throw new TypeError;if(!T(n)&&!N(n)&&!v(n))throw new TypeError;return v(n)&&(n=void 0),function(e,t,r,n){for(var o=e.length-1;o>=0;--o){var i=(0,e[o])(t,r,n);if(!N(i)&&!v(i)){if(!T(i))throw new TypeError;n=i}}return n}(e,t,r=O(r),n)})),e("metadata",(function(e,t){return function(r,n){if(!T(r))throw new TypeError;if(!N(n)&&!function(e){switch(A(e)){case 3:case 4:return!0;default:return!1}}(n))throw new TypeError;_(e,t,r,n)}})),e("defineMetadata",(function(e,t,r,n){if(!T(r))throw new TypeError;return N(n)||(n=O(n)),_(e,t,r,n)})),e("hasMetadata",(function(e,t,r){if(!T(t))throw new TypeError;return N(r)||(r=O(r)),m(e,t,r)})),e("hasOwnMetadata",(function(e,t,r){if(!T(t))throw new TypeError;return N(r)||(r=O(r)),y(e,t,r)})),e("getMetadata",(function(e,t,r){if(!T(t))throw new TypeError;return N(r)||(r=O(r)),b(e,t,r)})),e("getOwnMetadata",(function(e,t,r){if(!T(t))throw new TypeError;return N(r)||(r=O(r)),S(e,t,r)})),e("getMetadataKeys",(function(e,t){if(!T(e))throw new TypeError;return N(t)||(t=O(t)),C(e,t)})),e("getOwnMetadataKeys",(function(e,t){if(!T(e))throw new TypeError;return N(t)||(t=O(t)),E(e,t)})),e("deleteMetadata",(function(e,t,r){if(!T(t))throw new TypeError;N(r)||(r=O(r));var n=h(t,r,!1);if(N(n))return!1;if(!n.delete(e))return!1;if(n.size>0)return!0;var o=f.get(t);return o.delete(r),o.size>0||f.delete(t),!0}))}(i)}()}(n||(n={}))},8213:(e,t,r)=>{var n=r(2728),o=Object.prototype.hasOwnProperty,i="undefined"!=typeof Map;function a(){this._array=[],this._set=i?new Map:Object.create(null)}a.fromArray=function(e,t){for(var r=new a,n=0,o=e.length;n<o;n++)r.add(e[n],t);return r},a.prototype.size=function(){return i?this._set.size:Object.getOwnPropertyNames(this._set).length},a.prototype.add=function(e,t){var r=i?e:n.toSetString(e),a=i?this.has(e):o.call(this._set,r),s=this._array.length;a&&!t||this._array.push(e),a||(i?this._set.set(e,s):this._set[r]=s)},a.prototype.has=function(e){if(i)return this._set.has(e);var t=n.toSetString(e);return o.call(this._set,t)},a.prototype.indexOf=function(e){if(i){var t=this._set.get(e);if(t>=0)return t}else{var r=n.toSetString(e);if(o.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},a.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},a.prototype.toArray=function(){return this._array.slice()},t.I=a},6400:(e,t,r)=>{var n=r(7923);t.encode=function(e){var t,r="",o=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&o,(o>>>=5)>0&&(t|=32),r+=n.encode(t)}while(o>0);return r},t.decode=function(e,t,r){var o,i,a,s,u=e.length,l=0,c=0;do{if(t>=u)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));o=!!(32&i),l+=(i&=31)<<c,c+=5}while(o);r.value=(s=(a=l)>>1,1==(1&a)?-s:s),r.rest=t}},7923:(e,t)=>{var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},9216:(e,t)=>{function r(e,n,o,i,a,s){var u=Math.floor((n-e)/2)+e,l=a(o,i[u],!0);return 0===l?u:l>0?n-u>1?r(u,n,o,i,a,s):s==t.LEAST_UPPER_BOUND?n<i.length?n:-1:u:u-e>1?r(e,u,o,i,a,s):s==t.LEAST_UPPER_BOUND?u:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,o,i){if(0===n.length)return-1;var a=r(-1,n.length,e,n,o,i||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===o(n[a],n[a-1],!0);)--a;return a}},1188:(e,t,r)=>{var n=r(2728);function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}o.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},o.prototype.add=function(e){var t,r,o,i,a,s;r=e,o=(t=this._last).generatedLine,i=r.generatedLine,a=t.generatedColumn,s=r.generatedColumn,i>o||i==o&&s>=a||n.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(n.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.H=o},2826:(e,t)=>{function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t,o,i){if(o<i){var a=o-1;r(e,(c=o,d=i,Math.round(c+Math.random()*(d-c))),i);for(var s=e[i],u=o;u<i;u++)t(e[u],s)<=0&&r(e,a+=1,u);r(e,a+1,u);var l=a+1;n(e,t,o,l-1),n(e,t,l+1,i)}var c,d}t.U=function(e,t){n(e,t,0,e.length-1)}},6771:(e,t,r)=>{var n=r(2728),o=r(9216),i=r(8213).I,a=r(6400),s=r(2826).U;function u(e,t){var r=e;return"string"==typeof e&&(r=n.parseSourceMapInput(e)),null!=r.sections?new d(r,t):new l(r,t)}function l(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),a=n.getArg(r,"sources"),s=n.getArg(r,"names",[]),u=n.getArg(r,"sourceRoot",null),l=n.getArg(r,"sourcesContent",null),c=n.getArg(r,"mappings"),d=n.getArg(r,"file",null);if(o!=this._version)throw new Error("Unsupported version: "+o);u&&(u=n.normalize(u)),a=a.map(String).map(n.normalize).map((function(e){return u&&n.isAbsolute(u)&&n.isAbsolute(e)?n.relative(u,e):e})),this._names=i.fromArray(s.map(String),!0),this._sources=i.fromArray(a,!0),this._absoluteSources=this._sources.toArray().map((function(e){return n.computeSourceURL(u,e,t)})),this.sourceRoot=u,this.sourcesContent=l,this._mappings=c,this._sourceMapURL=t,this.file=d}function c(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),a=n.getArg(r,"sections");if(o!=this._version)throw new Error("Unsupported version: "+o);this._sources=new i,this._names=new i;var s={line:-1,column:0};this._sections=a.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=n.getArg(e,"offset"),o=n.getArg(r,"line"),i=n.getArg(r,"column");if(o<s.line||o===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=r,{generatedOffset:{generatedLine:o+1,generatedColumn:i+1},consumer:new u(n.getArg(e,"map"),t)}}))}u.fromSourceMap=function(e,t){return l.fromSourceMap(e,t)},u.prototype._version=3,u.prototype.__generatedMappings=null,Object.defineProperty(u.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),u.prototype.__originalMappings=null,Object.defineProperty(u.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),u.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},u.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},u.GENERATED_ORDER=1,u.ORIGINAL_ORDER=2,u.GREATEST_LOWER_BOUND=1,u.LEAST_UPPER_BOUND=2,u.prototype.eachMapping=function(e,t,r){var o,i=t||null;switch(r||u.GENERATED_ORDER){case u.GENERATED_ORDER:o=this._generatedMappings;break;case u.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;o.map((function(e){var t=null===e.source?null:this._sources.at(e.source);return{source:t=n.computeSourceURL(a,t,this._sourceMapURL),generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}}),this).forEach(e,i)},u.prototype.allGeneratedPositionsFor=function(e){var t=n.getArg(e,"line"),r={source:n.getArg(e,"source"),originalLine:t,originalColumn:n.getArg(e,"column",0)};if(r.source=this._findSourceIndex(r.source),r.source<0)return[];var i=[],a=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,o.LEAST_UPPER_BOUND);if(a>=0){var s=this._originalMappings[a];if(void 0===e.column)for(var u=s.originalLine;s&&s.originalLine===u;)i.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)i.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return i},l.prototype=Object.create(u.prototype),l.prototype.consumer=u,l.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=n.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t<this._absoluteSources.length;++t)if(this._absoluteSources[t]==e)return t;return-1},l.fromSourceMap=function(e,t){var r=Object.create(l.prototype),o=r._names=i.fromArray(e._names.toArray(),!0),a=r._sources=i.fromArray(e._sources.toArray(),!0);r.sourceRoot=e._sourceRoot,r.sourcesContent=e._generateSourcesContent(r._sources.toArray(),r.sourceRoot),r.file=e._file,r._sourceMapURL=t,r._absoluteSources=r._sources.toArray().map((function(e){return n.computeSourceURL(r.sourceRoot,e,t)}));for(var u=e._mappings.toArray().slice(),d=r.__generatedMappings=[],p=r.__originalMappings=[],g=0,f=u.length;g<f;g++){var h=u[g],m=new c;m.generatedLine=h.generatedLine,m.generatedColumn=h.generatedColumn,h.source&&(m.source=a.indexOf(h.source),m.originalLine=h.originalLine,m.originalColumn=h.originalColumn,h.name&&(m.name=o.indexOf(h.name)),p.push(m)),d.push(m)}return s(r.__originalMappings,n.compareByOriginalPositions),r},l.prototype._version=3,Object.defineProperty(l.prototype,"sources",{get:function(){return this._absoluteSources.slice()}}),l.prototype._parseMappings=function(e,t){for(var r,o,i,u,l,d=1,p=0,g=0,f=0,h=0,m=0,y=e.length,b=0,S={},_={},C=[],E=[];b<y;)if(";"===e.charAt(b))d++,b++,p=0;else if(","===e.charAt(b))b++;else{for((r=new c).generatedLine=d,u=b;u<y&&!this._charIsMappingSeparator(e,u);u++);if(i=S[o=e.slice(b,u)])b+=o.length;else{for(i=[];b<u;)a.decode(e,b,_),l=_.value,b=_.rest,i.push(l);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");S[o]=i}r.generatedColumn=p+i[0],p=r.generatedColumn,i.length>1&&(r.source=h+i[1],h+=i[1],r.originalLine=g+i[2],g=r.originalLine,r.originalLine+=1,r.originalColumn=f+i[3],f=r.originalColumn,i.length>4&&(r.name=m+i[4],m+=i[4])),E.push(r),"number"==typeof r.originalLine&&C.push(r)}s(E,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,s(C,n.compareByOriginalPositions),this.__originalMappings=C},l.prototype._findMapping=function(e,t,r,n,i,a){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return o.search(e,t,i,a)},l.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},l.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",n.compareByGeneratedPositionsDeflated,n.getArg(e,"bias",u.GREATEST_LOWER_BOUND));if(r>=0){var o=this._generatedMappings[r];if(o.generatedLine===t.generatedLine){var i=n.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),i=n.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var a=n.getArg(o,"name",null);return null!==a&&(a=this._names.at(a)),{source:i,line:n.getArg(o,"originalLine",null),column:n.getArg(o,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},l.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},l.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var o,i=e;if(null!=this.sourceRoot&&(i=n.relative(this.sourceRoot,i)),null!=this.sourceRoot&&(o=n.urlParse(this.sourceRoot))){var a=i.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];if((!o.path||"/"==o.path)&&this._sources.has("/"+i))return this.sourcesContent[this._sources.indexOf("/"+i)]}if(t)return null;throw new Error('"'+i+'" is not in the SourceMap.')},l.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",u.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:n.getArg(i,"generatedLine",null),column:n.getArg(i,"generatedColumn",null),lastColumn:n.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},d.prototype=Object.create(u.prototype),d.prototype.constructor=u,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),d.prototype.originalPositionFor=function(e){var t={generatedLine:n.getArg(e,"line"),generatedColumn:n.getArg(e,"column")},r=o.search(t,this._sections,(function(e,t){return e.generatedLine-t.generatedOffset.generatedLine||e.generatedColumn-t.generatedOffset.generatedColumn})),i=this._sections[r];return i?i.consumer.originalPositionFor({line:t.generatedLine-(i.generatedOffset.generatedLine-1),column:t.generatedColumn-(i.generatedOffset.generatedLine===t.generatedLine?i.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},d.prototype.hasContentsOfAllSources=function(){return this._sections.every((function(e){return e.consumer.hasContentsOfAllSources()}))},d.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},d.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer._findSourceIndex(n.getArg(e,"source"))){var o=r.consumer.generatedPositionFor(e);if(o)return{line:o.line+(r.generatedOffset.generatedLine-1),column:o.column+(r.generatedOffset.generatedLine===o.line?r.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},d.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var o=this._sections[r],i=o.consumer._generatedMappings,a=0;a<i.length;a++){var u=i[a],l=o.consumer._sources.at(u.source);l=n.computeSourceURL(o.consumer.sourceRoot,l,this._sourceMapURL),this._sources.add(l),l=this._sources.indexOf(l);var c=null;u.name&&(c=o.consumer._names.at(u.name),this._names.add(c),c=this._names.indexOf(c));var d={source:l,generatedLine:u.generatedLine+(o.generatedOffset.generatedLine-1),generatedColumn:u.generatedColumn+(o.generatedOffset.generatedLine===u.generatedLine?o.generatedOffset.generatedColumn-1:0),originalLine:u.originalLine,originalColumn:u.originalColumn,name:c};this.__generatedMappings.push(d),"number"==typeof d.originalLine&&this.__originalMappings.push(d)}s(this.__generatedMappings,n.compareByGeneratedPositionsDeflated),s(this.__originalMappings,n.compareByOriginalPositions)}},4433:(e,t,r)=>{var n=r(6400),o=r(2728),i=r(8213).I,a=r(1188).H;function s(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._skipValidation=o.getArg(e,"skipValidation",!1),this._sources=new i,this._names=new i,this._mappings=new a,this._sourcesContents=null}s.prototype._version=3,s.fromSourceMap=function(e){var t=e.sourceRoot,r=new s({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=o.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var i=n;null!==t&&(i=o.relative(t,n)),r._sources.has(i)||r._sources.add(i);var a=e.sourceContentFor(n);null!=a&&r.setSourceContent(n,a)})),r},s.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),r=o.getArg(e,"original",null),n=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},s.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=o.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[o.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},s.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var a=this._sourceRoot;null!=a&&(n=o.relative(a,n));var s=new i,u=new i;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var i=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=i.source&&(t.source=i.source,null!=r&&(t.source=o.join(r,t.source)),null!=a&&(t.source=o.relative(a,t.source)),t.originalLine=i.line,t.originalColumn=i.column,null!=i.name&&(t.name=i.name))}var l=t.source;null==l||s.has(l)||s.add(l);var c=t.name;null==c||u.has(c)||u.add(c)}),this),this._sources=s,this._names=u,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=o.join(r,t)),null!=a&&(t=o.relative(a,t)),this.setSourceContent(t,n))}),this)},s.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},s.prototype._serializeMappings=function(){for(var e,t,r,i,a=0,s=1,u=0,l=0,c=0,d=0,p="",g=this._mappings.toArray(),f=0,h=g.length;f<h;f++){if(e="",(t=g[f]).generatedLine!==s)for(a=0;t.generatedLine!==s;)e+=";",s++;else if(f>0){if(!o.compareByGeneratedPositionsInflated(t,g[f-1]))continue;e+=","}e+=n.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(i=this._sources.indexOf(t.source),e+=n.encode(i-d),d=i,e+=n.encode(t.originalLine-1-l),l=t.originalLine-1,e+=n.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=n.encode(r-c),c=r)),p+=e}return p},s.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var r=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},s.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},s.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.h=s},1841:(e,t,r)=>{var n=r(4433).h,o=r(2728),i=/(\r?\n)/,a="$$$isSourceNode$$$";function s(e,t,r,n,o){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==o?null:o,this[a]=!0,null!=n&&this.add(n)}s.fromStringWithSourceMap=function(e,t,r){var n=new s,a=e.split(i),u=0,l=function(){return e()+(e()||"");function e(){return u<a.length?a[u++]:void 0}},c=1,d=0,p=null;return t.eachMapping((function(e){if(null!==p){if(!(c<e.generatedLine)){var t=(r=a[u]||"").substr(0,e.generatedColumn-d);return a[u]=r.substr(e.generatedColumn-d),d=e.generatedColumn,g(p,t),void(p=e)}g(p,l()),c++,d=0}for(;c<e.generatedLine;)n.add(l()),c++;if(d<e.generatedColumn){var r=a[u]||"";n.add(r.substr(0,e.generatedColumn)),a[u]=r.substr(e.generatedColumn),d=e.generatedColumn}p=e}),this),u<a.length&&(p&&g(p,l()),n.add(a.splice(u).join(""))),t.sources.forEach((function(e){var i=t.sourceContentFor(e);null!=i&&(null!=r&&(e=o.join(r,e)),n.setSourceContent(e,i))})),n;function g(e,t){if(null===e||void 0===e.source)n.add(t);else{var i=r?o.join(r,e.source):e.source;n.add(new s(e.originalLine,e.originalColumn,i,t,e.name))}}},s.prototype.add=function(e){if(Array.isArray(e))e.forEach((function(e){this.add(e)}),this);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},s.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},s.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)(t=this.children[r])[a]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},s.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},s.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[a]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},s.prototype.setSourceContent=function(e,t){this.sourceContents[o.toSetString(e)]=t},s.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][a]&&this.children[t].walkSourceContents(e);var n=Object.keys(this.sourceContents);for(t=0,r=n.length;t<r;t++)e(o.fromSetString(n[t]),this.sourceContents[n[t]])},s.prototype.toString=function(){var e="";return this.walk((function(t){e+=t})),e},s.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new n(e),o=!1,i=null,a=null,s=null,u=null;return this.walk((function(e,n){t.code+=e,null!==n.source&&null!==n.line&&null!==n.column?(i===n.source&&a===n.line&&s===n.column&&u===n.name||r.addMapping({source:n.source,original:{line:n.line,column:n.column},generated:{line:t.line,column:t.column},name:n.name}),i=n.source,a=n.line,s=n.column,u=n.name,o=!0):o&&(r.addMapping({generated:{line:t.line,column:t.column}}),i=null,o=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(i=null,o=!1):o&&r.addMapping({source:n.source,original:{line:n.line,column:n.column},generated:{line:t.line,column:t.column},name:n.name})):t.column++})),this.walkSourceContents((function(e,t){r.setSourceContent(e,t)})),{code:t.code,map:r}},t.SourceNode=s},2728:(e,t)=>{t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function o(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var r=e,n=o(e);if(n){if(!n.path)return e;r=n.path}for(var a,s=t.isAbsolute(r),u=r.split(/\/+/),l=0,c=u.length-1;c>=0;c--)"."===(a=u[c])?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return""===(r=u.join("/"))&&(r=s?"/":"."),n?(n.path=r,i(n)):r}function s(e,t){""===e&&(e="."),""===t&&(t=".");var r=o(t),s=o(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),i(r);if(r||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,i(s);var u="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=u,i(s)):u}t.urlParse=o,t.urlGenerate=i,t.normalize=a,t.join=s,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var u=!("__proto__"in Object.create(null));function l(e){return e}function c(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function d(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=u?l:function(e){return c(e)?"$"+e:e},t.fromSetString=u?l:function(e){return c(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=d(e.source,t.source);return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||r||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:d(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=d(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:d(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!=(r=e.generatedColumn-t.generatedColumn)||0!==(r=d(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:d(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=o(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var u=n.path.lastIndexOf("/");u>=0&&(n.path=n.path.substring(0,u+1))}t=s(i(n),t)}return a(t)}},9125:(e,t,r)=>{r(4433).h,r(6771),t.SourceNode=r(1841).SourceNode},6573:e=>{var t=/\{([0-9a-zA-Z_]+)\}/g;e.exports=function(e){var r;if(2===arguments.length&&"object"==typeof arguments[1])r=arguments[1];else{r=new Array(arguments.length-1);for(var n=1;n<arguments.length;++n)r[n-1]=arguments[n]}return r&&r.hasOwnProperty||(r={}),e.replace(t,(function(t,n,o){var i;return"{"===e[o-1]&&"}"===e[o+t.length]?n:null==(i=r.hasOwnProperty(n)?r[n]:null)?"":i}))}},641:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=n(r(6880));function i(e){if("string"!=typeof e)throw new Error("A string is expected as input");return e.match(o.default())||[]}function a(e){if("string"!=typeof e)throw new Error("Input must be a string");var t=e.match(o.default());return null===t?0:t.length}function s(e,t,r){if(void 0===t&&(t=0),"string"!=typeof e)throw new Error("Input must be a string");("number"!=typeof t||t<0)&&(t=0),"number"==typeof r&&r<0&&(r=0);var n=e.match(o.default());return n?n.slice(t,r).join(""):""}t.toArray=i,t.length=a,t.substring=s,t.substr=function(e,t,r){if(void 0===t&&(t=0),"string"!=typeof e)throw new Error("Input must be a string");var n,i=a(e);if("number"!=typeof t&&(t=parseInt(t,10)),t>=i)return"";t<0&&(t+=i),void 0===r?n=i:("number"!=typeof r&&(r=parseInt(r,10)),n=r>=0?r+t:t);var s=e.match(o.default());return s?s.slice(t,n).join(""):""},t.limit=function(e,t,r,n){if(void 0===t&&(t=16),void 0===r&&(r="#"),void 0===n&&(n="right"),"string"!=typeof e||"number"!=typeof t)throw new Error("Invalid arguments specified");if(-1===["left","right"].indexOf(n))throw new Error("Pad position should be either left or right");"string"!=typeof r&&(r=String(r));var o=a(e);if(o>t)return s(e,0,t);if(o<t){var i=r.repeat(t-o);return"left"===n?i+e:e+i}return e},t.indexOf=function(e,t,r){if(void 0===r&&(r=0),"string"!=typeof e)throw new Error("Input must be a string");if(""===e)return""===t?0:-1;r=Number(r),r=isNaN(r)?0:r,t=String(t);var n=i(e);if(r>=n.length)return""===t?n.length:-1;if(""===t)return r;var o,a=i(t),s=!1;for(o=r;o<n.length;o+=1){for(var u=0;u<a.length&&a[u]===n[o+u];)u+=1;if(u===a.length&&a[u-1]===n[o+u-1]){s=!0;break}}return s?o:-1}},8555:e=>{"use strict";e.exports={stdout:!1,stderr:!1}},8492:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5248);e.exports=n.JavaScriptObfuscator},3191:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ASTParserFacade=void 0;const s=i(r(1234)),u=a(r(4061));class l{static parse(e,t){const r=l.sourceTypes.length;for(let n=0;n<r;n++)try{return l.parseType(e,t,l.sourceTypes[n])}catch(t){if(n<r-1)continue;throw new Error(l.processParsingError(e,t.message,t.loc))}throw new Error("Acorn parsing error")}static parseType(e,t,r){const n=[],o=Object.assign(Object.assign({},t),{onComment:n,sourceType:r}),i=s.parse(e,o);return n.length&&(i.comments=n),i}static processParsingError(e,t,r){if(!r||!r.line||!r.column)throw new Error(t);const n=e.split(/\r?\n/)[r.line-1];if(!n)throw new Error(t);const o=Math.max(0,r.column-l.nearestSymbolsCount),i=Math.min(n.length,r.column+l.nearestSymbolsCount),a=l.colorError(">"),s=`...${n.slice(o,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=l,l.colorError=u.default.red,l.nearestSymbolsCount=15,l.sourceTypes=["script","module"]},157:function(e,t,r){"use strict";var n,o=r(4155),i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0;const d=r(6700),p=r(2553),g=u(r(3913)),f=r(9292),h=r(6045),m=r(7943),y=r(6188),b=r(780),S=r(5371),_=r(3191),C=r(8983),E=r(1700);let A=n=class{constructor(e,t,r,n,o,i){this.codeTransformersRunner=e,this.nodeTransformersRunner=t,this.randomGenerator=r,this.obfuscatedCodeFactory=n,this.logger=o,this.options=i}obfuscate(e){"string"!=typeof e&&(e="");const t=Date.now();this.logger.info(m.LoggingMessage.Version,E.Utils.buildVersionMessage("2.9.4",o.env.BUILD_TIMESTAMP)),this.logger.info(m.LoggingMessage.ObfuscationStarted),this.logger.info(m.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,h.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),n=this.transformAstTree(r),i=this.generateCode(e,n);i.code=this.runCodeTransformationStage(i.code,h.CodeTransformationStage.FinalizingTransformers);const a=(Date.now()-t)/1e3;return this.logger.success(m.LoggingMessage.ObfuscationCompleted,a),this.getObfuscatedCode(i)}parseCode(e){return _.ASTParserFacade.parse(e,n.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,b.NodeTransformationStage.Initializing),!C.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,b.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,b.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,b.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,b.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,b.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,b.NodeTransformationStage.RenameIdentifiers),e=this.runNodeTransformationStage(e,b.NodeTransformationStage.StringArray),this.options.simplify&&(e=this.runNodeTransformationStage(e,b.NodeTransformationStage.Simplifying)),e=this.runNodeTransformationStage(e,b.NodeTransformationStage.Finalizing)):(this.logger.warn(m.LoggingMessage.EmptySourceCode),e)}generateCode(e,t){const r=Object.assign({},n.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);const o=g.generate(t,Object.assign(Object.assign({},r),{format:{compact:this.options.compact}}));return o.map=o.map?o.map.toString():"",o}getObfuscatedCode(e){return this.obfuscatedCodeFactory(e.code,e.map)}runCodeTransformationStage(e,t){return this.logger.info(m.LoggingMessage.CodeTransformationStage,t),this.codeTransformersRunner.transform(e,n.codeTransformersList,t)}runNodeTransformationStage(e,t){return this.logger.info(m.LoggingMessage.NodeTransformationStage,t),this.nodeTransformersRunner.transform(e,n.nodeTransformersList,t)}};A.parseOptions={ecmaVersion:S.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},A.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},A.codeTransformersList=[f.CodeTransformer.HashbangOperatorTransformer],A.nodeTransformersList=[y.NodeTransformer.BooleanLiteralTransformer,y.NodeTransformer.BlockStatementControlFlowTransformer,y.NodeTransformer.BlockStatementSimplifyTransformer,y.NodeTransformer.CommentsTransformer,y.NodeTransformer.CustomCodeHelpersTransformer,y.NodeTransformer.DeadCodeInjectionTransformer,y.NodeTransformer.EscapeSequenceTransformer,y.NodeTransformer.EvalCallExpressionTransformer,y.NodeTransformer.ExportSpecifierTransformer,y.NodeTransformer.ExpressionStatementsMergeTransformer,y.NodeTransformer.FunctionControlFlowTransformer,y.NodeTransformer.IfStatementSimplifyTransformer,y.NodeTransformer.LabeledStatementTransformer,y.NodeTransformer.RenamePropertiesTransformer,y.NodeTransformer.MemberExpressionTransformer,y.NodeTransformer.MetadataTransformer,y.NodeTransformer.MethodDefinitionTransformer,y.NodeTransformer.NumberLiteralTransformer,y.NodeTransformer.NumberToNumericalExpressionTransformer,y.NodeTransformer.ObfuscatingGuardsTransformer,y.NodeTransformer.ObjectExpressionKeysTransformer,y.NodeTransformer.ObjectExpressionTransformer,y.NodeTransformer.ObjectPatternPropertiesTransformer,y.NodeTransformer.ParentificationTransformer,y.NodeTransformer.ScopeIdentifiersTransformer,y.NodeTransformer.SplitStringTransformer,y.NodeTransformer.StringArrayScopeCallsWrapperTransformer,y.NodeTransformer.StringArrayTransformer,y.NodeTransformer.TemplateLiteralTransformer,y.NodeTransformer.VariableDeclarationsMergeTransformer,y.NodeTransformer.VariablePreserveTransformer],A=n=s([d.injectable(),c(0,d.inject(p.ServiceIdentifiers.ICodeTransformersRunner)),c(1,d.inject(p.ServiceIdentifiers.INodeTransformersRunner)),c(2,d.inject(p.ServiceIdentifiers.IRandomGenerator)),c(3,d.inject(p.ServiceIdentifiers.Factory__IObfuscatedCode)),c(4,d.inject(p.ServiceIdentifiers.ILogger)),c(5,d.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",[Object,Object,Object,Function,Object,Object])],A),t.JavaScriptObfuscator=A},5248:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(8660);const n=r(2553),o=r(9723),i=r(4081),a=r(1700);class s{static obfuscate(e,t={}){const r=new o.InversifyContainerFacade;r.load(e,"",t);const i=r.get(n.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),i}static obfuscateMultiple(e,t={}){if("object"!=typeof e)throw new Error("Source codes object should be a plain object");return Object.keys(e).reduce(((r,n,o)=>{const i=a.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,o),u=e[n],l=Object.assign(Object.assign({},t),{identifiersPrefix:i});return Object.assign(Object.assign({},r),{[n]:s.obfuscate(u,l)})}),{})}static getOptionsByPreset(e){return i.Options.getOptionsByPreset(e)}}t.JavaScriptObfuscator=s,s.version=null!=="2.9.4"?"2.9.4":"unknown"},9385:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsGraphAnalyzer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(9072),f=r(8983),h=r(3790);let m=n=class{constructor(e){this.calleeDataExtractorFactory=e}static getLimitIndex(e){const t=e-1,r=n.limitThresholdActivationLength-1;let o=t;return t>r&&(o=Math.round(r+t*n.limitThreshold),o>t&&(o=t)),o}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=n.getLimitIndex(e.length),r=[],o=e.length;for(let n=0;n<o&&!(n>t);n++){const t=e[n];p.traverse(t,{enter:n=>{if(f.NodeGuards.isCallExpressionNode(n))return t.parentNode!==h.NodeStatementUtils.getParentNodeWithStatements(n)?p.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,n)}})}return r}analyzeCallExpressionNode(e,t,r){n.calleeDataExtractorsList.forEach((n=>{const o=this.calleeDataExtractorFactory(n).extract(t,r.callee);o&&e.push(Object.assign(Object.assign({},o),{callsGraph:this.analyzeRecursive(o.callee.body)}))}))}};m.calleeDataExtractorsList=[g.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,g.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,g.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],m.limitThresholdActivationLength=25,m.limitThreshold=.002,m=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.Factory__ICalleeDataExtractor)),u("design:paramtypes",[Function])],m),t.CallsGraphAnalyzer=m},4205:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;const o=r(6700);let i=class{};i=n([o.injectable()],i),t.AbstractCalleeDataExtractor=i},6829:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionDeclarationCalleeDataExtractor=void 0;const s=r(6700),u=a(r(7085)),l=r(4205),c=r(8983),d=r(3790);let p=class extends l.AbstractCalleeDataExtractor{extract(e,t){if(!c.NodeGuards.isIdentifierNode(t))return null;const r=this.getCalleeBlockStatement(d.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name);return r?{callee:r,name:t.name}:null}getCalleeBlockStatement(e,t){let r=null;return u.traverse(e,{enter:e=>{if(c.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,u.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionDeclarationCalleeDataExtractor=p},1699:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionExpressionCalleeDataExtractor=void 0;const s=r(6700),u=a(r(7085)),l=r(4205),c=r(8983),d=r(3790);let p=class extends l.AbstractCalleeDataExtractor{extract(e,t){let r=null,n=null;return c.NodeGuards.isIdentifierNode(t)?(r=t.name,n=this.getCalleeBlockStatement(d.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):c.NodeGuards.isFunctionExpressionNode(t)&&(r=null,n=t.body),n?{callee:n,name:r}:null}getCalleeBlockStatement(e,t){let r=null;return u.traverse(e,{enter:(e,n)=>{if(c.NodeGuards.isFunctionExpressionNode(e)&&n&&c.NodeGuards.isVariableDeclaratorNode(n)&&c.NodeGuards.isIdentifierNode(n.id)&&n.id.name===t)return r=e.body,u.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionExpressionCalleeDataExtractor=p},8448:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionCalleeDataExtractor=void 0;const u=r(6700),l=s(r(7085)),c=r(4205),d=r(8983),p=r(3790);let g=n=class extends c.AbstractCalleeDataExtractor{static isValidTargetPropertyNode(e,t){if(!e.key)return!1;const r=d.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,n=d.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||n}extract(e,t){if(!d.NodeGuards.isMemberExpressionNode(t))return null;const r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;const n=r[r.length-1],o=this.getCalleeBlockStatement(p.NodeStatementUtils.getParentNodeWithStatements(e[0]),r);return o?{callee:o,name:n}:null}createObjectMembersCallsChain(e,t){if(d.NodeGuards.isIdentifierNode(t.property)&&!t.computed)e.unshift(t.property.name);else{if(!d.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return d.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(d.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}getCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;let n=null;return l.traverse(e,{enter:e=>{if(d.NodeGuards.isVariableDeclaratorNode(e)&&d.NodeGuards.isIdentifierNode(e.id)&&e.init&&d.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return n=this.findCalleeBlockStatement(e.init.properties,t),l.VisitorOption.Break}}),n}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const o of e)if(d.NodeGuards.isPropertyNode(o)&&n.isValidTargetPropertyNode(o,r)){if(d.NodeGuards.isObjectExpressionNode(o.value))return this.findCalleeBlockStatement(o.value.properties,t);if(d.NodeGuards.isFunctionExpressionNode(o.value))return o.value.body}return null}};g=n=a([u.injectable()],g),t.ObjectExpressionCalleeDataExtractor=g},9504:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNumericalExpressionAnalyzer=void 0;const s=r(6700),u=r(2553),l=r(2303);let c=n=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e){if(isNaN(e))throw new Error("Given value is NaN");return l.NumberUtils.isUnsafeNumber(e)?[e]:this.generateAdditionParts(e).map((e=>this.mixWithMultiplyParts(e)))}generateAdditionParts(e){const t=[],r=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),o=Math.min(-1e4,-r),i=Math.max(1e4,r);let a=0;for(let r=0;r<n.additionalParts;r++)if(r<n.additionalParts-1){let e=this.randomGenerator.getRandomInteger(o,i);l.NumberUtils.isUnsafeNumber(a+e)&&(e=-e),t.push(e),a+=e}else{const r=e-a;l.NumberUtils.isUnsafeNumber(r)?(t.push(0-a),t.push(e)):t.push(r)}return t}mixWithMultiplyParts(e){var t;if(!(this.randomGenerator.getMathRandom()>.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=l.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const n=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[n,e/n]}};c.additionalParts=3,c=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",[Object])],c),t.NumberNumericalExpressionAnalyzer=c},6849:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrevailingKindOfVariablesAnalyzer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(8983);let f=n=class{constructor(e){this.prevailingKindOfVariables=n.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];p.traverse(e,{enter:e=>{g.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:n.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};f.defaultKindOfVariables="var",f=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.IArrayUtils)),u("design:paramtypes",[Object])],f),t.PrevailingKindOfVariablesAnalyzer=f},1519:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeAnalyzer=void 0;const u=r(6700),l=s(r(5048)),c=s(r(7085)),d=r(5371),p=r(8983);let g=n=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){c.replace(e,{enter:(e,t)=>{var r,o,i,a;return e.range||(e.range=[null!==(o=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==o?o:n.emptyRangeValue,null!==(a=null===(i=null==t?void 0:t.range)||void 0===i?void 0:i[1])&&void 0!==a?a:n.emptyRangeValue]),e}})}static isRootNode(e){return p.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=n.sourceTypes.length;n.attachMissingRanges(e);for(let r=0;r<t;r++)try{return void(this.scopeManager=l.analyze(e,Object.assign(Object.assign({},n.eslintScopeOptions),{sourceType:n.sourceTypes[r]})))}catch(e){if(r<t-1)continue;throw new Error(e)}throw new Error("Scope analyzing error")}acquireScope(e){if(!this.scopeManager)throw new Error("Scope manager is not defined");const t=this.scopeManager.acquire(e,n.isRootNode(e));if(!t)throw new Error("Cannot acquire scope for node");return this.sanitizeScopes(t),t}sanitizeScopes(e){e.childScopes.forEach((e=>{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find((e=>t.defs.some((e=>"ClassName"===e.type))&&e.name===t.name));null==r||r.references.push(...e.variables[0].references)}}));for(const t of e.childScopes)this.sanitizeScopes(t)}};g.eslintScopeOptions={ecmaVersion:d.ecmaVersion,optimistic:!0},g.sourceTypes=["script","module"],g.emptyRangeValue=0,g=n=a([u.injectable()],g),t.ScopeAnalyzer=g},3480:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorageAnalyzer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(8983),f=r(7586),h=r(5301);let m=n=class{constructor(e,t,r){this.stringArrayStorageData=new Map,this.stringArrayStorage=e,this.randomGenerator=t,this.options=r}analyze(e){this.options.stringArray&&p.traverse(e,{enter:(e,t)=>{if(t)return h.NodeMetadata.isIgnoredNode(e)?p.VisitorOption.Skip:void(g.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}analyzeLiteralNode(e,t){f.NodeLiteralUtils.isStringLiteralNode(e)&&(f.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return!!h.NodeMetadata.isForceTransformNode(e)||e.value.length>=n.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};m.minimumLengthForStringArray=3,m=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.IStringArrayStorage)),l(1,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(2,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Object,Object,Object])],m),t.StringArrayStorageAnalyzer=m},5485:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t){this.randomGenerator=e,this.options=t}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],u),t.AbstractCodeTransformer=u},2768:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const o=r(6700),i=r(576);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=n([o.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},8206:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const n=this.buildNormalizedCodeTransformers(t,r),o=this.codeTransformerNamesGroupsBuilder.build(n);for(const t of o)for(const o of t)e=n[o].transformCode(e,r);return e}buildNormalizedCodeTransformers(e,t){return e.reduce(((e,t)=>{const r=this.codeTransformerFactory(t);return Object.assign(Object.assign({},e),{[t]:r})}),{})}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__ICodeTransformer)),i(1,a.inject(s.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),o("design:paramtypes",[Function,Object])],u),t.CodeTransformersRunner=u},6917:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const a=r(6700),s=r(2553),u=r(6045),l=r(5485);let c=class extends l.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case u.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case u.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,(e=>(e&&(this.hashbangOperatorLine=e),""))).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};c=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],c),t.HashbangOperatorTransformer=c},3477:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},4287:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const n=r(3477);t.alphabetStringUppercase=n.alphabetString.toUpperCase()},1047:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const n=r(4287),o=r(3477),i=r(6544);t.base64alphabet=`${n.alphabetStringUppercase}${o.alphabetString}${i.numbersString}+/=`},99:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const n=r(4287),o=r(3477),i=r(6544);t.base64alphabetSwapped=`${o.alphabetString}${n.alphabetStringUppercase}${i.numbersString}+/=`},5371:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=12},6544:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},9723:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const n=r(6700),o=r(2553),i=r(3299),a=r(6273),s=r(6274),u=r(6624),l=r(5768),c=r(2366),d=r(8130),p=r(1092),g=r(1212),f=r(3713),h=r(5293),m=r(8638),y=r(2755),b=r(6458),S=r(4561),_=r(8682),C=r(4008),E=r(4948),A=r(4697),N=r(5332),v=r(8206),T=r(157),I=r(7702),O=r(3107),D=r(2178),R=r(658),P=r(7865);t.InversifyContainerFacade=class{constructor(){this.container=new n.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return n=>{if(r.has(n))return r.get(n);const o=t.container.getNamed(e,n);return r.set(n,o),o}}}static getConstructorFactory(e,...t){return r=>{const n=new Map,o=[];return i=>{if(t.forEach(((e,t)=>{o[t]||(o[t]=r.container.get(e))})),n.has(i))return new(n.get(i))(...o);const a=r.container.getNamed(e,i);return n.set(i,a),new a(...o)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(o.ServiceIdentifiers.ISourceCode).toDynamicValue((()=>new P.SourceCode(e,t))).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.TInputOptions).toDynamicValue((()=>r)).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.ILogger).to(I.Logger).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.IJavaScriptObfuscator).to(T.JavaScriptObfuscator).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.ICodeTransformersRunner).to(v.CodeTransformersRunner).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.INodeTransformersRunner).to(O.NodeTransformersRunner).inSingletonScope(),this.container.bind(o.ServiceIdentifiers.IObfuscatedCode).to(R.ObfuscatedCode),this.container.bind(o.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory((e=>(t,r)=>{const n=e.container.get(o.ServiceIdentifiers.IObfuscatedCode);return n.initialize(t,r),n})),this.container.bind(o.ServiceIdentifiers.IObfuscationEventEmitter).to(D.ObfuscationEventEmitter).inSingletonScope(),this.container.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(u.convertingTransformersModule),this.container.load(l.customCodeHelpersModule),this.container.load(c.customNodesModule),this.container.load(d.deadCodeInjectionTransformersModule),this.container.load(p.finalizingTransformersModule),this.container.load(g.generatorsModule),this.container.load(f.initializingTransformersModule),this.container.load(h.nodeModule),this.container.load(m.nodeTransformersModule),this.container.load(y.optionsModule),this.container.load(b.preparingTransformersModule),this.container.load(S.renameIdentifiersTransformersModule),this.container.load(_.renamePropertiesTransformersModule),this.container.load(C.simplifyingTransformersModule),this.container.load(E.storagesModule),this.container.load(A.stringArrayTransformersModule),this.container.load(N.utilsModule)}unload(){this.container.unbindAll()}}},2553:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,(r=t.ServiceIdentifiers||(t.ServiceIdentifiers={})).Factory__ICalleeDataExtractor="Factory<ICalleeDataExtractor>",r.Factory__ICodeTransformer="Factory<ICodeTransformer[]>",r.Factory__IControlFlowCustomNode="Factory<IControlFlowCustomNode>",r.Factory__IControlFlowReplacer="Factory<IControlFlowReplacer>",r.Factory__ICustomCodeHelper="Factory<ICustomCodeHelper>",r.Factory__ICustomCodeHelperGroup="Factory<ICustomCodeHelperGroup>",r.Factory__IDeadCodeInjectionCustomNode="Factory<IDeadCodeInjectionCustomNode>",r.Factory__IIdentifierNamesGenerator="Factory<IIdentifierNamesGenerator>",r.Factory__INodeGuard="Factory<INodeGuard>",r.Factory__INodeTransformer="Factory<INodeTransformer[]>",r.Factory__IObfuscatedCode="Factory<IObfuscatedCode>",r.Factory__IObjectExpressionKeysTransformerCustomNode="Factory<IObjectExpressionKeysTransformerCustomNode>",r.Factory__IObjectExpressionExtractor="Factory<IObjectExpressionExtractor>",r.Factory__IStringArrayCustomNode="Factory<IStringArrayCustomNode>",r.Factory__IStringArrayIndexNode="Factory<IStringArrayIndexNode>",r.Factory__TControlFlowStorage="Factory<TControlFlowStorage>",r.IArrayUtils="IArrayUtils",r.ICalleeDataExtractor="ICalleeDataExtractor",r.ICallsGraphAnalyzer="ICallsGraphAnalyzer",r.ICodeTransformer="ICodeTransformer",r.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",r.ICodeTransformersRunner="ICodeTransformersRunner",r.ICryptUtils="ICryptUtils",r.ICryptUtilsSwappedAlphabet="ICryptUtilsSwappedAlphabet",r.ICustomCodeHelper="ICustomCodeHelper",r.ICustomCodeHelperGroup="ICustomCodeHelperGroup",r.IControlFlowReplacer="IControlFlowReplacer",r.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",r.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",r.IEscapeSequenceEncoder="IEscapeSequenceEncoder",r.IIdentifierNamesGenerator="IIdentifierNamesGenerator",r.IIdentifierReplacer="IIdentifierReplacer",r.IJavaScriptObfuscator="IJavaScriptObfuscator",r.ILevelledTopologicalSorter="ILevelledTopologicalSorter",r.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",r.ILogger="ILogger",r.INodeGuard="INodeGuard",r.INodeTransformer="INodeTransformer",r.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",r.INodeTransformersRunner="INodeTransformersRunner",r.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",r.IObfuscationEventEmitter="IObfuscationEventEmitter",r.IObfuscatedCode="IObfuscatedCode",r.IOptions="IOptions",r.IOptionsNormalizer="IOptionsNormalizer",r.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",r.IObjectExpressionExtractor="IObjectExpressionExtractor",r.IRandomGenerator="IRandomGenerator",r.IRenamePropertiesReplacer="IRenamePropertiesReplacer",r.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",r.ISourceCode="ISourceCode",r.IScopeAnalyzer="IScopeAnalyzer",r.IStringArrayIndexNode="IStringArrayIndexNode",r.IStringArrayScopeCallsWrapperLexicalScopeDataStorage="IStringArrayScopeCallsWrapperLexicalScopeDataStorage",r.IStringArrayScopeCallsWrapperNamesDataStorage="IStringArrayScopeCallsWrapperNamesDataStorage",r.IStringArrayStorage="IStringArrayStorage",r.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",r.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",r.Newable__ICustomNode="Newable<ICustomNode>",r.Newable__TControlFlowStorage="Newable<TControlFlowStorage>",r.TCustomNodeGroupStorage="TCustomNodeGroupStorage",r.TInputOptions="TInputOptions"},3299:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(9072),s=r(9385),u=r(6829),l=r(1699),c=r(9504),d=r(8448),p=r(6849),g=r(1519),f=r(3480);t.analyzersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(c.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(p.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(g.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(f.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(u.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(l.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))}))},6273:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(9292),s=r(2768),u=r(6917);t.codeTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICodeTransformer)),e(i.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(i.ServiceIdentifiers.ICodeTransformer).to(u.HashbangOperatorTransformer).whenTargetNamed(a.CodeTransformer.HashbangOperatorTransformer)}))},5768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(8547),s=r(7705),u=r(2657),l=r(3257),c=r(6853),d=r(5273),p=r(4229),g=r(6580),f=r(7276),h=r(7855),m=r(9),y=r(9648),b=r(4513),S=r(9029),_=r(7911),C=r(1536),E=r(2881),A=r(5350),N=r(6375),v=r(7025),T=r(8409);t.customCodeHelpersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(g.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(m.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionInterval),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.DebugProtectionFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DomainLockCodeHelper).whenTargetNamed(a.CustomCodeHelper.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelper).to(_.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(C.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(A.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperBase64),e(i.ServiceIdentifiers.ICustomCodeHelper).to(N.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperRc4),e(i.ServiceIdentifiers.ICustomCodeHelper).to(v.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(T.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(p.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(i.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(n.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelper)),e(i.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(n.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelperGroup)),e(i.ServiceIdentifiers.ICustomCodeHelperFormatter).to(f.CustomCodeHelperFormatter).inSingletonScope(),e(i.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(h.CustomCodeHelperObfuscator).inSingletonScope()}))},2366:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(6517),s=r(6782),u=r(2982),l=r(3627),c=r(5761),d=r(8773),p=r(5188),g=r(5993),f=r(2854),h=r(5808),m=r(9843),y=r(7587),b=r(6204),S=r(5707),_=r(9358),C=r(8904),E=r(2855),A=r(1135),N=r(8405),v=r(2603),T=r(3097);t.customNodesModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(c.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(d.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.CallExpressionControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.CallExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.ControlFlowStorageNode).whenTargetNamed(a.ControlFlowCustomNode.ControlFlowStorageNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(T.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(b.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(u.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.StringArrayCallNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(A.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(E.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(C.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(E.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),e(i.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.Factory__IStringArrayIndexNode,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IStringArrayStorage,i.ServiceIdentifiers.IArrayUtils,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IStringArrayIndexNode))}))},1212:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const n=r(6700),o=r(2553),i=r(3552),a=r(1515),s=r(2162),u=r(9212),l=r(5102);t.generatorsModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(a.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(u.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(l.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),e(o.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let n;switch(r.identifierNamesGenerator){case i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:n=t.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:n=t.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:n=t.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:n=t.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=n,n}}())}))},6274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(5739),s=r(6188),u=r(6800),l=r(9045),c=r(1766),d=r(8769),p=r(1788),g=r(2775);t.controlFlowTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(u.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(g.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))}))},6624:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const n=r(6700),o=r(9723),i=r(2553),a=r(6188),s=r(547),u=r(7412),l=r(4425),c=r(9947),d=r(1160),p=r(2526),g=r(8962),f=r(3827),h=r(3710),m=r(618),y=r(7506),b=r(3412),S=r(9662),_=r(8985);t.convertingTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BooleanLiteralTransformer).whenTargetNamed(a.NodeTransformer.BooleanLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(c.ExportSpecifierTransformer).whenTargetNamed(a.NodeTransformer.ExportSpecifierTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.NumberLiteralTransformer).whenTargetNamed(a.NodeTransformer.NumberLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.NumberToNumericalExpressionTransformer).whenTargetNamed(a.NodeTransformer.NumberToNumericalExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(y.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(b.ObjectPatternPropertiesTransformer).whenTargetNamed(a.NodeTransformer.ObjectPatternPropertiesTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(S.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(_.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(m.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(u.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))}))},8130:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(1718);t.deadCodeInjectionTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(a.DeadCodeInjectionTransformer).whenTargetNamed(i.NodeTransformer.DeadCodeInjectionTransformer)}))},1092:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(4187);t.finalizingTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(a.EscapeSequenceTransformer).whenTargetNamed(i.NodeTransformer.EscapeSequenceTransformer)}))},3713:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(3836);t.initializingTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)}))},8638:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(8521);t.nodeTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__INodeTransformer).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeTransformer)),e(i.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(a.NodeTransformerNamesGroupsBuilder).inSingletonScope()}))},6458:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const n=r(9723),o=r(6700),i=r(2553),a=r(6188),s=r(4930),u=r(4150),l=r(2240),c=r(9763),d=r(4188),p=r(1595),g=r(1641),f=r(2722),h=r(1478),m=r(6815),y=r(7189),b=r(515);t.preparingTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(c.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(b.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.INodeGuard).to(u.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(l.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(p.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(g.IgnoredRequireImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(y.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))}))},4561:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(57),s=r(6652),u=r(1048),l=r(502);t.renameIdentifiersTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(s.LabeledStatementTransformer).whenTargetNamed(i.NodeTransformer.LabeledStatementTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(u.ScopeIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeIdentifiersTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(l.ScopeThroughIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeThroughIdentifiersTransformer),e(o.ServiceIdentifiers.IIdentifierReplacer).to(a.IdentifierReplacer).inSingletonScope()}))},8682:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(9320),s=r(7015);t.renamePropertiesTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(o.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)}))},4008:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(7596),s=r(7615),u=r(942),l=r(5805);t.simplifyingTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(a.BlockStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.BlockStatementSimplifyTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(i.NodeTransformer.ExpressionStatementsMergeTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(u.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(l.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)}))},4697:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const n=r(6700),o=r(2553),i=r(6188),a=r(9720),s=r(8033);t.stringArrayTransformersModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.INodeTransformer).to(a.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(i.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(o.ServiceIdentifiers.INodeTransformer).to(s.StringArrayTransformer).whenTargetNamed(i.NodeTransformer.StringArrayTransformer)}))},5293:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const n=r(6700),o=r(2553),i=r(6186);t.nodeModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()}))},2755:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const n=r(6700),o=r(2553),i=r(4081),a=r(6181);t.optionsModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(o.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()}))},4948:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const n=r(6700),o=r(2553),i=r(2835),a=r(7359),s=r(5159),u=r(6930),l=r(19),c=r(5046),d=r(3621);t.storagesModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(o.ServiceIdentifiers.ILiteralNodesCacheStorage).to(s.LiteralNodesCacheStorage).inSingletonScope(),e(o.ServiceIdentifiers.IStringArrayStorage).to(c.StringArrayStorage).inSingletonScope(),e(o.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage).to(u.StringArrayScopeCallsWrapperLexicalScopeDataStorage).inSingletonScope(),e(o.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage).to(l.StringArrayScopeCallsWrapperNamesDataStorage).inSingletonScope(),e(o.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(d.VisitedLexicalScopeNodesStackStorage).inSingletonScope(),e(o.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(i.ControlFlowStorage),e(o.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory((e=>()=>{const t=new(e.container.get(o.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(o.ServiceIdentifiers.IRandomGenerator),e.container.get(o.ServiceIdentifiers.IOptions));return t.initialize(),t}))}))},5332:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const n=r(6700),o=r(2553),i=r(6959),a=r(5678),s=r(8300),u=r(3062),l=r(5579),c=r(4291);t.utilsModule=new n.ContainerModule((e=>{e(o.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(o.ServiceIdentifiers.IRandomGenerator).to(c.RandomGenerator).inSingletonScope(),e(o.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(o.ServiceIdentifiers.ICryptUtilsSwappedAlphabet).to(s.CryptUtilsSwappedAlphabet).inSingletonScope(),e(o.ServiceIdentifiers.IEscapeSequenceEncoder).to(u.EscapeSequenceEncoder).inSingletonScope(),e(o.ServiceIdentifiers.ILevelledTopologicalSorter).to(l.LevelledTopologicalSorter)}))},9235:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const s=r(6700),u=r(2553),l=r(9315),c=r(5369);let d=n=class{constructor(e,t,r,n,o){this.cachedNode=null,this.identifierNamesGenerator=e(o),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=n,this.options=o}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){return this.randomGenerator.getRandomGenerator().pickone(n.globalVariableTemplateFunctions)}getCodeHelperTemplate(){return""}};d.globalVariableTemplateFunctions=[l.GlobalVariableTemplate1(),c.GlobalVariableTemplate2()],d=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,s.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,s.inject(u.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(4,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],d),t.AbstractCustomCodeHelper=d},6245:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getAppendEvent(){return this.appendEvent}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(2,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object])],u),t.AbstractCustomCodeHelperGroup=u},7276:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperFormatter=void 0;const c=r(6700),d=r(2553),p=a(r(7085)),g=l(r(6573)),f=r(8983);let h=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return g.default(e,t)}formatStructure(e){for(const t of e)p.replace(t,{enter:e=>{if(f.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};h=i([c.injectable(),u(0,c.inject(d.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),s("design:paramtypes",[Object])],h),t.CustomCodeHelperFormatter=h},7855:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const a=r(6700),s=r(2553),u=r(9237),l=r(5248);let c=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return l.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},u.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};c=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],c),t.CustomCodeHelperObfuscator=c},7911:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(3163),l=r(626),c=r(1225),d=r(9235),p=r(2815);let g=class extends d.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}getNodeStructure(e){return p.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.appendEvent===u.ObfuscationEvent.AfterObfuscation?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(c.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(c.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};n([l.initializable(),o("design:type",String)],g.prototype,"callsControllerFunctionName",void 0),n([l.initializable(),o("design:type",String)],g.prototype,"appendEvent",void 0),g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],g),t.CallsControllerFunctionCodeHelper=g},2644:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=void 0,t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},9315:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=void 0,t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},5369:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=void 0,t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},1225:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=void 0,t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},6580:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(7081),l=r(9106),c=r(2644),d=r(626),p=r(9235),g=r(2815);let f=class extends p.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return g.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==u.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():c.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(l.ConsoleOutputDisableTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};n([d.initializable(),o("design:type",String)],f.prototype,"callsControllerFunctionName",void 0),n([d.initializable(),o("design:type",String)],f.prototype,"consoleOutputDisableFunctionName",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],f),t.ConsoleOutputDisableCodeHelper=f},2657:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(8547),c=r(3163),d=r(6245),p=r(8434),g=r(8520);let f=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.appendEvent=c.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.disableConsoleOutput)return;const n=this.getRandomCallsGraphIndex(t.length),o=t.length?p.NodeAppender.getOptimalBlockScope(t,n):e,i=t.length?p.NodeAppender.getOptimalBlockScope(t,n,1):e,a=null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),u=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(l.CustomCodeHelper.ConsoleOutputDisable,(e=>{e.initialize(u,s),p.NodeAppender.prepend(o,e.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,u),p.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(l.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(l.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(l.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(l.CustomCodeHelper.CallsControllerFunction,t)}};n([u.initializable(),o("design:type",Map)],f.prototype,"customCodeHelpers",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),i(1,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object])],f),t.ConsoleOutputCodeHelperGroup=f},9106:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=void 0,t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},9:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(2880),c=r(9235),d=r(2815);let p=class extends c.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(l.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};n([u.initializable(),o("design:type",String)],p.prototype,"callsControllerFunctionName",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"debugProtectionFunctionName",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],p),t.DebugProtectionFunctionCallCodeHelper=p},4513:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(7081),l=r(626),c=r(8402),d=r(9828),p=r(9245),g=r(9235),f=r(2815);let h=class extends g.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return f.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==u.ObfuscationTarget.BrowserNoEval?c.DebuggerTemplate():d.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(p.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};n([l.initializable(),o("design:type",String)],h.prototype,"debugProtectionFunctionName",void 0),h=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],h),t.DebugProtectionFunctionCodeHelper=h},9648:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(7935),c=r(9235),d=r(2815);let p=class extends c.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(l.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};n([u.initializable(),o("design:type",String)],p.prototype,"debugProtectionFunctionName",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],p),t.DebugProtectionFunctionIntervalCodeHelper=p},3257:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(8547),c=r(3163),d=r(6245),p=r(8434),g=r(8983),f=r(8520);let h=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.appendEvent=c.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.debugProtection)return;const n=this.getRandomCallsGraphIndex(t.length),o=t.length?p.NodeAppender.getOptimalBlockScope(t,n):e,i=t.length?p.NodeAppender.getOptimalBlockScope(t,n,1):e,a=null!==(r=f.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),u=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(l.CustomCodeHelper.DebugProtectionFunctionCall,(e=>{e.initialize(s,u),p.NodeAppender.prepend(o,e.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,u),p.NodeAppender.prepend(i,e.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.DebugProtectionFunction,(t=>{t.initialize(s),p.NodeAppender.append(e,t.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.DebugProtectionFunctionInterval,(t=>{const r=g.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,n=this.randomGenerator.getRandomInteger(0,r);t.initialize(s),p.NodeAppender.insertAtIndex(e,t.getNode(),n)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(l.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(l.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(l.CustomCodeHelper.DebugProtectionFunctionInterval),n=this.customCodeHelperFactory(l.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(l.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(l.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(l.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(l.CustomCodeHelper.CallsControllerFunction,n)}};n([u.initializable(),o("design:type",Map)],h.prototype,"customCodeHelpers",void 0),h=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),i(1,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object])],h),t.DebugProtectionCodeHelperGroup=h},2880:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=void 0,t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},7935:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},9245:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=void 0,t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},8402:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=void 0,t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},9828:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=void 0,t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},9029:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(7081),l=r(626),c=r(1017),d=r(2644),p=r(9235),g=r(2815);let f=class extends p.AbstractCustomCodeHelper{constructor(e,t,r,n,o,i){super(e,t,r,n,o),this.cryptUtils=i}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return g.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),n=this.options.target!==u.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():d.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(c.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:n})}};n([l.initializable(),o("design:type",String)],f.prototype,"callsControllerFunctionName",void 0),n([l.initializable(),o("design:type",String)],f.prototype,"domainLockFunctionName",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),i(5,a.inject(s.ServiceIdentifiers.ICryptUtils)),o("design:paramtypes",[Function,Object,Object,Object,Object,Object])],f),t.DomainLockCodeHelper=f},6853:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(8547),c=r(3163),d=r(6245),p=r(8434),g=r(8520);let f=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.appendEvent=c.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.domainLock.length)return;const n=this.getRandomCallsGraphIndex(t.length),o=t.length?p.NodeAppender.getOptimalBlockScope(t,n):e,i=t.length?p.NodeAppender.getOptimalBlockScope(t,n,1):e,a=null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),u=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(l.CustomCodeHelper.DomainLock,(e=>{e.initialize(u,s),p.NodeAppender.prepend(o,e.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,u),p.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(l.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(l.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(l.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(l.CustomCodeHelper.CallsControllerFunction,t)}};n([u.initializable(),o("design:type",Map)],f.prototype,"customCodeHelpers",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),i(1,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object])],f),t.DomainLockCustomCodeHelperGroup=f},1017:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=void 0,t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp("[{diff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},1536:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingUnicodeCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(7081),l=r(626),c=r(5185),d=r(6090),p=r(9235),g=r(2815),f=r(2644);let h=class extends p.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return g.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==u.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():f.GlobalVariableNoEvalTemplate(),t=this.options.target!==u.ObfuscationTarget.BrowserNoEval?c.SelfDefendingTemplate():d.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};n([l.initializable(),o("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),n([l.initializable(),o("design:type",String)],h.prototype,"selfDefendingFunctionName",void 0),h=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],h),t.SelfDefendingUnicodeCodeHelper=h},5273:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(8547),c=r(3163),d=r(6245),p=r(8434),g=r(8520);let f=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.appendEvent=c.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.selfDefending)return;const n=this.getRandomCallsGraphIndex(t.length),o=t.length?p.NodeAppender.getOptimalBlockScope(t,n):e,i=t.length?p.NodeAppender.getOptimalBlockScope(t,n,1):e,a=null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),u=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(l.CustomCodeHelper.SelfDefendingUnicode,(e=>{e.initialize(u,s),p.NodeAppender.prepend(o,e.getNode())})),this.appendCustomNodeIfExist(l.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,u),p.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(l.CustomCodeHelper.SelfDefendingUnicode),t=this.customCodeHelperFactory(l.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(l.CustomCodeHelper.SelfDefendingUnicode,e),this.customCodeHelpers.set(l.CustomCodeHelper.CallsControllerFunction,t)}};n([u.initializable(),o("design:type",Map)],f.prototype,"customCodeHelpers",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),i(1,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object])],f),t.SelfDefendingCodeHelperGroup=f},6090:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingNoEvalTemplate=void 0,t.SelfDefendingNoEvalTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},5185:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},5350:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperBase64CodeHelper=void 0;const o=r(6700),i=r(2437),a=r(7486),s=r(2881);let u=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(a.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};u=n([o.injectable()],u),t.StringArrayCallsWrapperBase64CodeHelper=u},2881:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(1108),c=r(7851),d=r(9235),p=r(2815);let g=class extends d.AbstractCustomCodeHelper{constructor(e,t,r,n,o,i){super(e,t,r,n,o),this.escapeSequenceEncoder=i}initialize(e,t,r){this.stringArrayName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r}getNodeStructure(e){return p.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(c.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(l.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}):""}};n([u.initializable(),o("design:type",Number)],g.prototype,"indexShiftAmount",void 0),n([u.initializable(),o("design:type",String)],g.prototype,"stringArrayName",void 0),n([u.initializable(),o("design:type",String)],g.prototype,"stringArrayCallsWrapperName",void 0),g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),i(5,a.inject(s.ServiceIdentifiers.IEscapeSequenceEncoder)),o("design:paramtypes",[Function,Object,Object,Object,Object,Object])],g),t.StringArrayCallsWrapperCodeHelper=g},6375:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperRc4CodeHelper=void 0;const o=r(6700),i=r(2437),a=r(5316),s=r(9013),u=r(2881);let l=class extends u.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.customCodeHelperFormatter.formatTemplate(a.Rc4Template(),{atobFunctionName:e}),n=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(s.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:r,selfDefendingCode:n,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};l=n([o.injectable()],l),t.StringArrayCallsWrapperRc4CodeHelper=l},7025:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(3331),c=r(9235),d=r(2815),p=r(6493);let g=class extends c.AbstractCustomCodeHelper{constructor(e,t,r,n,o){super(e,t,r,n,o)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(l.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map((e=>`'${p.StringUtils.escapeJsString(e.encodedValue)}'`)).toString()}};n([u.initializable(),o("design:type",Object)],g.prototype,"stringArrayStorage",void 0),n([u.initializable(),o("design:type",String)],g.prototype,"stringArrayName",void 0),g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object,Object])],g),t.StringArrayCodeHelper=g},8409:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4156),c=r(720),d=r(9235),p=r(2815),g=r(2303);let f=class extends d.AbstractCustomCodeHelper{constructor(e,t,r,n,o,i){super(e,t,r,n,o),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayRotationAmount=t}getNodeStructure(e){return p.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext(),t=this.identifierNamesGenerator.generateNext(),r=[`^${this.stringArrayName}$`];let n="";return n=this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(l.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):`${t}(++${e})`,this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(c.StringArrayRotateFunctionTemplate(),{code:n,timesName:e,whileFunctionName:t,stringArrayName:this.stringArrayName,stringArrayRotationAmount:g.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};n([u.initializable(),o("design:type",String)],f.prototype,"stringArrayName",void 0),n([u.initializable(),o("design:type",Number)],f.prototype,"stringArrayRotationAmount",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),i(3,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(4,a.inject(s.ServiceIdentifiers.IOptions)),i(5,a.inject(s.ServiceIdentifiers.IEscapeSequenceEncoder)),o("design:paramtypes",[Function,Object,Object,Object,Object,Object])],f),t.StringArrayRotateFunctionCodeHelper=f},4229:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const s=r(6700),u=r(2553),l=r(626),c=r(8547),d=r(3163),p=r(1296),g=r(6245),f=r(8434);let h=n=class extends g.AbstractCustomCodeHelperGroup{constructor(e,t,r,n,o){super(r,n,o),this.appendEvent=d.ObfuscationEvent.AfterObfuscation,this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendNodes(e,t){if(!this.stringArrayStorage.getLength())return;this.appendCustomNodeIfExist(c.CustomCodeHelper.StringArray,(t=>{f.NodeAppender.prepend(e,t.getNode())}));const r=this.options.stringArrayEncoding.length;for(let t=0;t<r;t++){const r=this.options.stringArrayEncoding[t],n=this.getStringArrayCallsWrapperCodeHelperName(r);this.appendCustomNodeIfExist(n,(r=>{f.NodeAppender.insertAtIndex(e,r.getNode(),t+1)}))}this.appendCustomNodeIfExist(c.CustomCodeHelper.StringArrayRotateFunction,(t=>{f.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(c.CustomCodeHelper.StringArray),t=this.stringArrayStorage.getStorageName();e.initialize(this.stringArrayStorage,t),this.customCodeHelpers.set(c.CustomCodeHelper.StringArray,e);for(const e of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(e),n=this.customCodeHelperFactory(r),o=this.stringArrayStorage.getStorageCallsWrapperName(e);n.initialize(t,o,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,n)}const r=this.customCodeHelperFactory(c.CustomCodeHelper.StringArrayRotateFunction);r.initialize(t,this.stringArrayStorage.getRotationAmount()),this.options.rotateStringArray&&this.customCodeHelpers.set(c.CustomCodeHelper.StringArrayRotateFunction,r)}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=n.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:c.CustomCodeHelper.StringArrayCallsWrapper}};h.stringArrayCallsWrapperCodeHelperMap=new Map([[p.StringArrayEncoding.None,c.CustomCodeHelper.StringArrayCallsWrapper],[p.StringArrayEncoding.Base64,c.CustomCodeHelper.StringArrayCallsWrapperBase64],[p.StringArrayEncoding.Rc4,c.CustomCodeHelper.StringArrayCallsWrapperRc4]]),o([l.initializable(),i("design:type",Map)],h.prototype,"customCodeHelpers",void 0),h=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelper)),a(1,s.inject(u.ServiceIdentifiers.IStringArrayStorage)),a(2,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(3,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(4,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Function,Object,Object])],h),t.StringArrayCodeHelperGroup=h},2437:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const n=r(99);t.AtobTemplate=function(){return`\n var {atobFunctionName} = function (input) {\n const chars = '${n.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `}},5316:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=void 0,t.Rc4Template=function(){return"\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},1108:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),s=e.getRandomString(6),u=e.getRandomString(6),l=e.getRandomString(6),c=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${n} = [1, 0, 0];\n this.${o} = function(){return 'newState';};\n this.${i} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${a} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${i} + this.${a});\n const expression = regExp.test(this.${o}.toString())\n ? --this.${n}[1]\n : --this.${n}[0];\n \n return this.${u}(expression);\n };\n \n StatesClass.prototype.${u} = function (${c}) {\n if (!Boolean(~${c})) {\n return ${c};\n }\n \n return this.${l}(this.${r});\n };\n\n StatesClass.prototype.${l} = function (${r}) {\n for (let i = 0, len = this.${n}.length; i < len; i++) {\n this.${n}.push(Math.round(Math.random()));\n len = this.${n}.length;\n }\n \n return ${r}(this.${n}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},7486:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=void 0,t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${r} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${n} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${n}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${n}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},7851:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},9013:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=void 0,t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = rc4;\n \n {stringArrayCallsWrapperName}.${n} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${n}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${o} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${o} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${n}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},4156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e){return`\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + "=" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += "; " + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += "=" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n "(?:^|; )" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + "=([^;]*)"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `}},720:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=void 0,t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n "}},3331:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArrayStorageItems}];\n "}},4985:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t,r,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=n}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],u),t.AbstractCustomNode=u},5761:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const a=r(6700),s=r(2553),u=r(4985),l=r(9181),c=r(2815);let d=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.operator=e}getNodeStructure(){const e=l.NodeFactory.expressionStatementNode(l.NodeFactory.functionExpressionNode([l.NodeFactory.identifierNode("x"),l.NodeFactory.identifierNode("y")],l.NodeFactory.blockStatementNode([l.NodeFactory.returnStatementNode(l.NodeFactory.binaryExpressionNode(this.operator,l.NodeFactory.identifierNode("x"),l.NodeFactory.identifierNode("y")))])));return c.NodeUtils.parentizeAst(e),[e]}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],d),t.BinaryExpressionFunctionNode=d},8773:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const a=r(6700),s=r(2553),u=r(4413),l=r(626),c=r(4985),d=r(9181),p=r(8983),g=r(2815);let f=class extends c.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=d.NodeFactory.blockStatementNode([d.NodeFactory.variableDeclarationNode([d.NodeFactory.variableDeclaratorNode(d.NodeFactory.identifierNode(e),d.NodeFactory.callExpressionNode(d.NodeFactory.memberExpressionNode(d.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(u.StringSeparator.VerticalLine)),d.NodeFactory.identifierNode("split")),[d.NodeFactory.literalNode(u.StringSeparator.VerticalLine)]))],"const"),d.NodeFactory.variableDeclarationNode([d.NodeFactory.variableDeclaratorNode(d.NodeFactory.identifierNode(t),d.NodeFactory.literalNode(0))],"let"),d.NodeFactory.whileStatementNode(d.NodeFactory.literalNode(!0),d.NodeFactory.blockStatementNode([d.NodeFactory.switchStatementNode(d.NodeFactory.memberExpressionNode(d.NodeFactory.identifierNode(e),d.NodeFactory.updateExpressionNode("++",d.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map(((e,t)=>{const r=this.blockStatementBody[e],n=[r];return p.NodeGuards.isReturnStatementNode(r)||n.push(d.NodeFactory.continueStatement()),d.NodeFactory.switchCaseNode(d.NodeFactory.literalNode(String(t)),n)}))),d.NodeFactory.breakStatement()]))]);return g.NodeUtils.parentizeAst(r),[r]}};n([l.initializable(),o("design:type",Array)],f.prototype,"blockStatementBody",void 0),n([l.initializable(),o("design:type",Array)],f.prototype,"originalKeysIndexesInShuffledArray",void 0),n([l.initializable(),o("design:type",Array)],f.prototype,"shuffledKeys",void 0),f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],f),t.BlockStatementControlFlowFlatteningNode=f},2854:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181),d=r(2815);let p=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.expressionArguments=e}getNodeStructure(){const e=c.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length;for(let e=0;e<r;e++)t.push(c.NodeFactory.identifierNode("param"+(e+1)));const n=c.NodeFactory.expressionStatementNode(c.NodeFactory.functionExpressionNode([e,...t],c.NodeFactory.blockStatementNode([c.NodeFactory.returnStatementNode(c.NodeFactory.callExpressionNode(e,t))])));return d.NodeUtils.parentizeAst(n),[n]}};n([u.initializable(),o("design:type",Array)],p.prototype,"expressionArguments",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],p),t.CallExpressionFunctionNode=p},7587:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const a=r(6700),s=r(2553),u=r(4985),l=r(9181),c=r(2815);let d=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.operator=e}getNodeStructure(){const e=l.NodeFactory.expressionStatementNode(l.NodeFactory.functionExpressionNode([l.NodeFactory.identifierNode("x"),l.NodeFactory.identifierNode("y")],l.NodeFactory.blockStatementNode([l.NodeFactory.returnStatementNode(l.NodeFactory.logicalExpressionNode(this.operator,l.NodeFactory.identifierNode("x"),l.NodeFactory.identifierNode("y")))])));return c.NodeUtils.parentizeAst(e),[e]}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],d),t.LogicalExpressionFunctionNode=d},3097:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181);let d=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.literalValue=e}getNodeStructure(){return[c.NodeFactory.expressionStatementNode(c.NodeFactory.literalNode(this.literalValue))]}};n([u.initializable(),o("design:type",String)],d.prototype,"literalValue",void 0),d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],d),t.StringLiteralNode=d},5993:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181),d=r(2815);let p=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=n}getNodeStructure(){const e=c.NodeFactory.expressionStatementNode(c.NodeFactory.callExpressionNode(c.NodeFactory.memberExpressionNode(c.NodeFactory.identifierNode(this.controlFlowStorageName),c.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return d.NodeUtils.parentizeAst(e),[e]}};n([u.initializable(),o("design:type",Object)],p.prototype,"callee",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageKey",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageName",void 0),n([u.initializable(),o("design:type",Array)],p.prototype,"expressionArguments",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],p),t.CallExpressionControlFlowStorageCallNode=p},5808:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181),d=r(8983),p=r(2815);let g=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=Array.from(this.controlFlowStorage.getStorage()).map((([e,t])=>{const r=t.getNode()[0];if(!d.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return c.NodeFactory.propertyNode(c.NodeFactory.identifierNode(e),r.expression)}));let t=c.NodeFactory.variableDeclarationNode([c.NodeFactory.variableDeclaratorNode(c.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),c.NodeFactory.objectExpressionNode(e))],"const");return t=p.NodeUtils.parentizeAst(t),[t]}};n([u.initializable(),o("design:type",Object)],g.prototype,"controlFlowStorage",void 0),g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],g),t.ControlFlowStorageNode=g},9843:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181),d=r(2815);let p=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=n}getNodeStructure(){const e=c.NodeFactory.expressionStatementNode(c.NodeFactory.callExpressionNode(c.NodeFactory.memberExpressionNode(c.NodeFactory.identifierNode(this.controlFlowStorageName),c.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return d.NodeUtils.parentizeAst(e),[e]}};n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageKey",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageName",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],p),t.ExpressionWithOperatorControlFlowStorageCallNode=p},2603:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(4985),c=r(9181),d=r(2815);let p=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=c.NodeFactory.expressionStatementNode(c.NodeFactory.memberExpressionNode(c.NodeFactory.identifierNode(this.controlFlowStorageName),c.NodeFactory.identifierNode(this.controlFlowStorageKey)));return d.NodeUtils.parentizeAst(e),[e]}};n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageKey",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"controlFlowStorageName",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],p),t.StringLiteralControlFlowStorageCallNode=p},5188:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const a=r(6700),s=r(2553),u=r(4985),l=r(9181),c=r(2815);let d=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",n=this.randomGenerator.getRandomString(5),o=t?n:this.randomGenerator.getRandomString(5),[i,a]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=l.NodeFactory.blockStatementNode([l.NodeFactory.ifStatementNode(l.NodeFactory.binaryExpressionNode(r,l.NodeFactory.literalNode(n),l.NodeFactory.literalNode(o)),i,a)]);return c.NodeUtils.parentizeAst(s),[s]}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],d),t.BlockStatementDeadCodeInjectionNode=d},6204:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const a=r(6700),s=r(2553),u=r(4985),l=r(9181),c=r(8983);let d=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=c.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[l.NodeFactory.variableDeclarationNode([l.NodeFactory.variableDeclaratorNode(l.NodeFactory.identifierNode(e),l.NodeFactory.objectExpressionNode(this.properties))],"const")]}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(2,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(3,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object,Object])],d),t.ObjectExpressionVariableDeclarationHostNode=d},7177:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayCallNode=void 0;const s=r(6700),u=r(2553),l=r(5114),c=r(2855),d=r(4985),p=r(9181),g=r(5301),f=r(2815);let h=n=class extends d.AbstractCustomNode{constructor(e,t,r,n,o,i,a){super(e,r,i,a),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=n,this.arrayUtils=o}getStringArrayIndexNode(e){var t;const r=e>=0,o=Math.abs(e),i=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),a=null!==(t=n.stringArrayIndexNodesMap.get(i))&&void 0!==t?t:null;if(!a)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(a).getNode(o);g.NodeMetadata.set(s,{replacedLiteral:!0});const u=r?s:p.NodeFactory.unaryExpressionNode("-",s);return f.NodeUtils.parentizeAst(u),u}getRc4KeyLiteralNode(e){const t=p.NodeFactory.literalNode(e);return g.NodeMetadata.set(t,{replacedLiteral:!0}),t}};h.stringArrayRootCallsWrapperParametersCount=2,h.stringArrayIndexNodesMap=new Map([[l.StringArrayIndexesType.HexadecimalNumber,c.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[l.StringArrayIndexesType.HexadecimalNumericString,c.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),h=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,s.inject(u.ServiceIdentifiers.Factory__IStringArrayIndexNode)),a(2,s.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(3,s.inject(u.ServiceIdentifiers.IStringArrayStorage)),a(4,s.inject(u.ServiceIdentifiers.IArrayUtils)),a(5,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(6,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],h),t.AbstractStringArrayCallNode=h},5707:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(7177),c=r(9181),d=r(2815);let p=class extends l.AbstractStringArrayCallNode{constructor(e,t,r,n,o,i,a){super(e,t,r,n,o,i,a)}initialize(e,t,r,n,o){this.stringArrayCallsWrapperName=e,this.stringArrayCallsWrapperParameterIndexesData=t,this.index=r,this.indexShiftAmount=n,this.decodeKey=o}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.index,n=this.getStringArrayIndexNode(r),o=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,i=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:l.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeStringArrayIndexNode(r)));i.splice(null!==(t=null===(e=this.stringArrayCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,n),this.stringArrayCallsWrapperParameterIndexesData?i.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,1,null!=o?o:this.getFakeStringArrayIndexNode(r)):o?i.splice(1,1,o):i.splice(1,1);const a=c.NodeFactory.expressionStatementNode(c.NodeFactory.callExpressionNode(c.NodeFactory.identifierNode(this.stringArrayCallsWrapperName),i));return d.NodeUtils.parentizeAst(a),[a]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,n=e+t;return this.randomGenerator.getRandomInteger(r,n)}};n([u.initializable(),o("design:type",Object)],p.prototype,"decodeKey",void 0),n([u.initializable(),o("design:type",Number)],p.prototype,"index",void 0),n([u.initializable(),o("design:type",Number)],p.prototype,"indexShiftAmount",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"stringArrayCallsWrapperName",void 0),n([u.initializable(),o("design:type",Object)],p.prototype,"stringArrayCallsWrapperParameterIndexesData",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(3,a.inject(s.ServiceIdentifiers.IStringArrayStorage)),i(4,a.inject(s.ServiceIdentifiers.IArrayUtils)),i(5,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(6,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],p),t.StringArrayCallNode=p},1135:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperFunctionNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(7177),c=r(9181),d=r(2815);let p=class extends l.AbstractStringArrayCallNode{constructor(e,t,r,n,o,i,a){super(e,t,r,n,o,i,a)}initialize(e,t,r,n,o){this.stringArrayScopeCallsWrapperName=e,this.stringArrayScopeCallsWrapperParameterIndexesData=t,this.upperStringArrayCallsWrapperName=r,this.upperStringArrayCallsWrapperParameterIndexesData=n,this.shiftedIndex=o}getNodeStructure(){var e,t,r,n,o,i,a,s;const u=c.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),p=c.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),g=this.getUpperStringArrayCallNode(u,this.getStringArrayIndexNode(this.shiftedIndex)),f=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:l.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeParameterNode()));f.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,u),f.splice(null!==(n=null===(r=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==n?n:1,1,p);const h=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:l.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(e=>this.getUpperStringArrayCallNode(f[e],this.getFakeUpperStringArrayIndexNode())));h.splice(null!==(i=null===(o=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===o?void 0:o.valueIndexParameterIndex)&&void 0!==i?i:0,1,g),h.splice(null!==(s=null===(a=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===a?void 0:a.decodeKeyParameterIndex)&&void 0!==s?s:1,1,p);const m=c.NodeFactory.functionExpressionNode(f,c.NodeFactory.blockStatementNode([c.NodeFactory.returnStatementNode(c.NodeFactory.callExpressionNode(c.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),h))])),y=c.NodeFactory.variableDeclarationNode([c.NodeFactory.variableDeclaratorNode(c.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),m)],"const");d.NodeUtils.parentizeAst(y);for(const e of f)e.name=this.identifierNamesGenerator.generateForLexicalScope(m);return[y]}getUpperStringArrayCallNode(e,t){return c.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return c.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};n([u.initializable(),o("design:type",Number)],p.prototype,"shiftedIndex",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"upperStringArrayCallsWrapperName",void 0),n([u.initializable(),o("design:type",Object)],p.prototype,"upperStringArrayCallsWrapperParameterIndexesData",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"stringArrayScopeCallsWrapperName",void 0),n([u.initializable(),o("design:type",Object)],p.prototype,"stringArrayScopeCallsWrapperParameterIndexesData",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(3,a.inject(s.ServiceIdentifiers.IStringArrayStorage)),i(4,a.inject(s.ServiceIdentifiers.IArrayUtils)),i(5,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(6,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],p),t.StringArrayScopeCallsWrapperFunctionNode=p},8405:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperVariableNode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(7177),c=r(9181),d=r(2815);let p=class extends l.AbstractStringArrayCallNode{constructor(e,t,r,n,o,i,a){super(e,t,r,n,o,i,a)}initialize(e,t){this.stringArrayScopeCallsWrapperName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(){const e=c.NodeFactory.variableDeclarationNode([c.NodeFactory.variableDeclaratorNode(c.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),c.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))],"const");return d.NodeUtils.parentizeAst(e),[e]}};n([u.initializable(),o("design:type",String)],p.prototype,"stringArrayCallsWrapperName",void 0),n([u.initializable(),o("design:type",String)],p.prototype,"stringArrayScopeCallsWrapperName",void 0),p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),i(2,a.inject(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),i(3,a.inject(s.ServiceIdentifiers.IStringArrayStorage)),i(4,a.inject(s.ServiceIdentifiers.IArrayUtils)),i(5,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(6,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],p),t.StringArrayScopeCallsWrapperVariableNode=p},3858:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayIndexNode=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t){this.randomGenerator=e,this.options=t}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],u),t.AbstractStringArrayIndexNode=u},9358:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumberIndexNode=void 0;const a=r(6700),s=r(2553),u=r(3858),l=r(9181),c=r(2303);let d=class extends u.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=c.NumberUtils.toHex(e);return l.NodeFactory.literalNode(e,t)}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],d),t.StringArrayHexadecimalNumberIndexNode=d},8904:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumericStringIndexNode=void 0;const a=r(6700),s=r(2553),u=r(3858),l=r(9181),c=r(2303);let d=class extends u.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=c.NumberUtils.toHex(e);return l.NodeFactory.literalNode(t)}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],d),t.StringArrayHexadecimalNumericStringIndexNode=d},626:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const r={configurable:!0,enumerable:!0},n="_initialized",o="_initializablePropertiesSet",i="_wrappedMethodsSet";function a(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(s,u)=>{const l=s[e];if(!l||"function"!=typeof l)throw new Error(`\`${e}\` method with initialization logic not found. \`@${t}\` decorator requires \`${e}\` method`);return a(n,!1,s),a(o,new Set,s),a(i,new Set,s),function(e,t){const a=Object.getOwnPropertyNames(e),s=new Set([t,"constructor"]);a.forEach((a=>{var u;const l=Reflect.getMetadata(o,e),c=Reflect.getMetadata(i,e);if(s.has(a)||l.has(a)||c.has(a))return;if("function"!=typeof e[a])return;const d=null!==(u=Object.getOwnPropertyDescriptor(e,a))&&void 0!==u?u:r,p=d.value;Object.defineProperty(e,a,Object.assign(Object.assign({},d),{value(){if(!Reflect.getMetadata(n,this))throw new Error(`Class should be initialized with \`${t}()\` method`);return p.apply(this,arguments)}})),c.add(a)}))}(s,e),function(e,t,o){var i;const a=null!==(i=Object.getOwnPropertyDescriptor(e,t))&&void 0!==i?i:r,s=a.value;Object.defineProperty(e,t,Object.assign(Object.assign({},a),{value:function(){Reflect.defineMetadata(n,!0,this);const e=s.apply(this,arguments);return this[o],e}}))}(s,e,u),function(e,t){var n;Reflect.getMetadata(o,e).add(t);const i="_"+t.toString(),a=null!==(n=Object.getOwnPropertyDescriptor(e,i))&&void 0!==n?n:r;return Object.defineProperty(e,t,Object.assign(Object.assign({},a),{get:function(){if(void 0===this[i])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[i]},set:function(e){this[i]=e}})),a}(s,u)}}},7081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const n=r(1700);t.ObfuscationTarget=n.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},4413:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,(r=t.StringSeparator||(t.StringSeparator={})).Comma=",",r.Dot=".",r.VerticalLine="|"},9072:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,(r=t.CalleeDataExtractor||(t.CalleeDataExtractor={})).FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",r.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",r.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"},6045:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,(r=t.CodeTransformationStage||(t.CodeTransformationStage={})).PreparingTransformers="PreparingTransformers",r.FinalizingTransformers="FinalizingTransformers"},9292:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,(t.CodeTransformer||(t.CodeTransformer={})).HashbangOperatorTransformer="HashbangOperatorTransformer"},8547:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,(r=t.CustomCodeHelper||(t.CustomCodeHelper={})).CallsControllerFunction="CallsControllerFunction",r.ConsoleOutputDisable="ConsoleOutputDisable",r.DebugProtectionFunctionCall="DebugProtectionFunctionCall",r.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",r.DebugProtectionFunction="DebugProtectionFunction",r.DomainLock="DomainLock",r.SelfDefendingUnicode="SelfDefendingUnicode",r.StringArray="StringArray",r.StringArrayCallsWrapper="StringArrayCallsWrapper",r.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",r.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",r.StringArrayRotateFunction="StringArrayRotateFunction"},7705:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,(r=t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={})).ConsoleOutput="ConsoleOutput",r.DebugProtection="DebugProtection",r.DomainLock="DomainLock",r.SelfDefending="SelfDefending",r.StringArray="StringArray"},6517:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,(r=t.ControlFlowCustomNode||(t.ControlFlowCustomNode={})).BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",r.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",r.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",r.CallExpressionFunctionNode="CallExpressionFunctionNode",r.ControlFlowStorageNode="ControlFlowStorageNode",r.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",r.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",r.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",r.StringLiteralNode="StringLiteralNode"},6782:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={})).BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"},2982:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={})).ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"},3627:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,(r=t.StringArrayCustomNode||(t.StringArrayCustomNode={})).StringArrayCallNode="StringArrayCallNode",r.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",r.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"},2855:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,(r=t.StringArrayIndexNode||(t.StringArrayIndexNode={})).StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",r.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"},3163:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEvent=void 0,(r=t.ObfuscationEvent||(t.ObfuscationEvent={})).AfterObfuscation="afterObfuscation",r.BeforeObfuscation="beforeObfuscation"},3552:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const n=r(1700);t.IdentifierNamesGenerator=n.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},7943:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,(r=t.LoggingMessage||(t.LoggingMessage={})).EmptySourceCode="Empty source code. Obfuscation canceled...",r.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",r.ObfuscationStarted="Obfuscation started...",r.RandomGeneratorSeed="Random generator seed: %s...",r.CodeTransformationStage="Code transformation stage: %s...",r.NodeTransformationStage="AST transformation stage: %s...",r.Version="Version: %s"},4038:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,(r=t.LoggingPrefix||(t.LoggingPrefix={})).Base="[javascript-obfuscator]",r.CLI="[javascript-obfuscator-cli]"},780:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,(r=t.NodeTransformationStage||(t.NodeTransformationStage={})).ControlFlowFlattening="ControlFlowFlattening",r.Converting="Converting",r.DeadCodeInjection="DeadCodeInjection",r.Finalizing="Finalizing",r.Initializing="Initializing",r.Preparing="Preparing",r.RenameIdentifiers="RenameIdentifiers",r.RenameProperties="RenameProperties",r.Simplifying="Simplifying",r.StringArray="StringArray"},6188:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,(r=t.NodeTransformer||(t.NodeTransformer={})).BooleanLiteralTransformer="BooleanLiteralTransformer",r.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",r.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",r.CommentsTransformer="CommentsTransformer",r.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",r.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",r.EscapeSequenceTransformer="EscapeSequenceTransformer",r.EvalCallExpressionTransformer="EvalCallExpressionTransformer",r.ExportSpecifierTransformer="ExportSpecifierTransformer",r.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",r.FunctionControlFlowTransformer="FunctionControlFlowTransformer",r.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",r.LabeledStatementTransformer="LabeledStatementTransformer",r.MemberExpressionTransformer="MemberExpressionTransformer",r.MetadataTransformer="MetadataTransformer",r.MethodDefinitionTransformer="MethodDefinitionTransformer",r.NumberLiteralTransformer="NumberLiteralTransformer",r.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",r.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",r.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",r.ObjectExpressionTransformer="ObjectExpressionTransformer",r.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",r.ParentificationTransformer="ParentificationTransformer",r.RenamePropertiesTransformer="RenamePropertiesTransformer",r.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",r.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",r.SplitStringTransformer="SplitStringTransformer",r.StringArrayTransformer="StringArrayTransformer",r.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",r.TemplateLiteralTransformer="TemplateLiteralTransformer",r.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",r.VariablePreserveTransformer="VariablePreserveTransformer"},1155:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,(r=t.VisitorDirection||(t.VisitorDirection={})).Enter="enter",r.Leave="leave"},5739:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,(r=t.ControlFlowReplacer||(t.ControlFlowReplacer={})).BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",r.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",r.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",r.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"},547:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,(r=t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={})).BasePropertiesExtractor="BasePropertiesExtractor",r.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"},4930:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,(r=t.ObfuscatingGuard||(t.ObfuscatingGuard={})).BlackListObfuscatingGuard="BlackListObfuscatingGuard",r.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",r.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",r.IgnoredRequireImportObfuscatingGuard="IgnoredRequireImportObfuscatingGuard",r.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"},1296:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const n=r(1700);t.StringArrayEncoding=n.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},5114:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const n=r(1700);t.StringArrayIndexesType=n.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},679:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const n=r(1700);t.StringArrayWrappersType=n.Utils.makeEnum({Variable:"variable",Function:"function"})},9789:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,(r=t.NodeType||(t.NodeType={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassDeclaration="ClassDeclaration",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForStatement="ForStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MethodDefinition="MethodDefinition",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.YieldExpression="YieldExpression"},5181:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,(r=t.ObfuscatingGuardResult||(t.ObfuscatingGuardResult={})).ForceTransform="ForceTransform",r.Ignore="Ignore",r.Transform="Transform"},4867:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const n=r(1700);t.OptionsPreset=n.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},5138:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const n=r(1700);t.SourceMapMode=n.Utils.makeEnum({Inline:"inline",Separate:"separate"})},2178:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEventEmitter=void 0;const i=r(6700),a=o(r(6729));i.decorate(i.injectable(),a.default);let s=class extends a.default{};s=n([i.injectable()],s),t.ObfuscationEventEmitter=s},5749:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const a=r(6700),s=r(2553),u=r(8983);let l=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return u.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const n=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;n.add(e),this.lexicalScopesPreservedNamesMap.set(t,n)}isValidIdentifierName(e){return this.notReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const n of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(n))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}notReservedName(e){return!this.options.reservedNames.length||!this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.AbstractIdentifierNamesGenerator=l},1515:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const s=r(6700),u=r(2553),l=r(5749),c=r(8520);let d=n=class extends l.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const n of e)r||n!==n.toUpperCase()?r||n!==n.toLowerCase()?t+=n:(t+=n.toUpperCase(),r=!0):t+=n.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){const e=`${this.options.identifiersPrefix?""+this.options.identifiersPrefix:""}${this.generateNewDictionaryName()}`;return this.isValidIdentifierName(e)?(this.preserveName(e),e):this.generateForGlobalScope()}generateForLexicalScope(e){const t=[e,...c.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName();return this.isValidIdentifierNameInLexicalScopes(r,t)?(this.preserveNameForLexicalScope(r,e),r):this.generateForLexicalScope(e)}generateNewDictionaryName(){if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const e=this.identifiersIterator.next();if(!e.done){const t=e.value;return this.isValidIdentifierName(t)?e.value:this.generateNewDictionaryName()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),this.generateNewDictionaryName()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map((e=>e.toLowerCase()));return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=n.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};d=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),a(2,s.inject(u.ServiceIdentifiers.IArrayUtils)),i("design:paramtypes",[Object,Object,Object])],d),t.DictionaryIdentifierNamesGenerator=d},2162:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const s=r(6700),u=r(2553),l=r(5749),c=r(2303),d=r(1700);let p=n=class extends l.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){const t=this.randomGenerator.getRandomInteger(1e4,99999999),r=c.NumberUtils.toHex(t),o=d.Utils.hexadecimalPrefix.length,i=(null!=e?e:n.baseIdentifierNameLength)+o,a="_"+r.slice(0,i);return this.isValidIdentifierName(a)?(this.preserveName(a),a):this.generateNext(e)}generateForGlobalScope(e){const t=this.generateNext(e);return`${this.options.identifiersPrefix}${t}`.replace("__","_")}generateForLexicalScope(e,t){return this.generateNext(t)}};p.baseIdentifierNameLength=6,p=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p),t.HexadecimalIdentifierNamesGenerator=p},9212:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const s=r(6700),u=r(2553),l=r(6544),c=r(3477),d=r(4287),p=r(5749),g=r(8520);let f=n=class extends p.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=n.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.updatePreviousMangledName(t),this.preserveName(t),t}generateForGlobalScope(e){const t=this.options.identifiersPrefix?""+this.options.identifiersPrefix:"",r=this.generateNewMangledName(this.previousMangledName),n=`${t}${r}`;return this.updatePreviousMangledName(r),this.isValidIdentifierName(n)?(this.preserveName(n),n):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...g.NodeLexicalScopeUtils.getLexicalScopes(e)];let o=this.getLastMangledNameForScopes(r);do{o=this.generateNewMangledName(o)}while(!this.isValidIdentifierNameInLexicalScopes(o,r));return n.lastMangledNameInScopeMap.set(e,o),this.updatePreviousMangledName(o),this.preserveNameForLexicalScope(o,e),o}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,n=t.length;if(r!==n)return r>n;const o=this.getNameSequence();for(let n=0;n<r;n++){const r=e[n],i=t[n];if(r!==i)return o.indexOf(r)>o.indexOf(i)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!n.reservedNamesSet.has(e)}getNameSequence(){return n.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.previousMangledName)&&(this.previousMangledName=e)}generateNewMangledName(e){let t=(e=>{const t=this.getNameSequence(),r=t.length,n=e.length,o=e=>"0".repeat(e);let i=n-1;do{const a=e[i],s=t.indexOf(a);if(s!==r-1)return e.slice(0,i)+t[s+1]+o(n-(i+1));--i}while(i>=0);return`${t[l.numbersString.length]}${o(n)}`})(e);return this.isValidIdentifierName(t)||(t=this.generateNewMangledName(t)),t}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=n.lastMangledNameInScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return n.initMangledNameCharacter}};f.initMangledNameCharacter="9",f.lastMangledNameInScopeMap=new WeakMap,f.nameSequence=[...`${l.numbersString}${c.alphabetString}${d.alphabetStringUppercase}`],f.reservedNamesSet=new Set(["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"]),f=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],f),t.MangledIdentifierNamesGenerator=f},5102:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledShuffledIdentifierNamesGenerator=void 0;const s=r(6700),u=r(2553),l=r(6544),c=r(3477),d=r(4287),p=r(9212);let g=n=class extends p.MangledIdentifierNamesGenerator{constructor(e,t,r){super(t,r),this.arrayUtils=e}initialize(){this.initializeNameSequence([...""+l.numbersString,...this.arrayUtils.shuffle([...`${c.alphabetString}${d.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(n.shuffledNameSequence=e)}getNameSequence(){return n.shuffledNameSequence}generateNewMangledName(e){return super.generateNewMangledName(e)}};o([s.postConstruct(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],g.prototype,"initialize",null),g=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IArrayUtils)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object])],g),t.MangledShuffledIdentifierNamesGenerator=g},7702:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const u=r(6700),l=r(2553),c=s(r(4061)),d=r(4038);let p=n=class{constructor(e){this.options=e}static log(e,t,r,n){const o=e(`\n${t} ${r}`);console.log(o,null!=n?n:"")}info(e,t){this.options.log&&n.log(n.colorInfo,d.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&n.log(n.colorSuccess,d.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&n.log(n.colorWarn,d.LoggingPrefix.Base,e,t)}};p.colorInfo=c.default.cyan,p.colorSuccess=c.default.green,p.colorWarn=c.default.yellow,p=n=o([u.injectable(),a(0,u.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object])],p),t.Logger=p},2063:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e,t){this.randomGenerator=e,this.options=t}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],u),t.AbstractNodeTransformer=u},8521:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const o=r(6700),i=r(576);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=n([o.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},3107:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformersRunner=void 0;const l=r(6700),c=r(2553),d=a(r(7085)),p=r(1155),g=r(8983),f=r(5301);let h=class{constructor(e,t){this.nodeTransformerFactory=e,this.nodeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const n=this.buildNormalizedNodeTransformers(t,r),o=this.nodeTransformerNamesGroupsBuilder.build(n);for(const t of o){const o=[],i=[];for(const e of t){const t=n[e].getVisitor(r);t&&(t.enter&&o.push({enter:t.enter}),t.leave&&i.push({leave:t.leave}))}(o.length||i.length)&&d.replace(e,{enter:this.mergeVisitorsForDirection(o,p.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,p.VisitorDirection.Leave)})}return e}buildNormalizedNodeTransformers(e,t){return e.reduce(((e,r)=>{const n=this.nodeTransformerFactory(r);return n.getVisitor(t)?Object.assign(Object.assign({},e),{[r]:n}):e}),{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(n,o)=>{if(f.NodeMetadata.isIgnoredNode(n))return d.VisitorOption.Skip;for(let i=0;i<r;i++){const r=e[i][t];if(!r)continue;const a=r(n,o);a&&g.NodeGuards.isNode(a)&&(n=a)}return n}:(e,t)=>e}};h=i([l.injectable(),u(0,l.inject(c.ServiceIdentifiers.Factory__INodeTransformer)),u(1,l.inject(c.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),s("design:paramtypes",[Function,Object])],h),t.NodeTransformersRunner=h},9045:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(6517),f=r(780),h=r(2063),m=r(8983),y=r(2815);let b=n=class extends h.AbstractNodeTransformer{constructor(e,t,r,n){super(r,n),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=m.NodeGuards.isBreakStatementNode(e)||m.NodeGuards.isContinueStatementNode(e),r=m.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),n=m.NodeGuards.isClassDeclarationNode(e);return m.NodeGuards.isFunctionDeclarationNode(e)||t||r||n}static canTransformBlockStatementNode(e){let t=!0;return p.traverse(e,{enter:e=>{if(m.NodeGuards.isWhileStatementNode(e))return p.VisitorOption.Skip;n.isProhibitedStatementNode(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}getVisitor(e){switch(e){case f.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&m.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!n.canTransformBlockStatementNode(e))return e;const r=e.body,o=this.arrayUtils.createWithRange(r.length),i=this.arrayUtils.shuffle(o),a=o.map((e=>i.indexOf(e))),s=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const u=s.getNode()[0];return y.NodeUtils.parentizeNode(u,t),u}};b=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,c.inject(d.ServiceIdentifiers.IArrayUtils)),l(2,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(3,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object,Object])],b),t.BlockStatementControlFlowTransformer=b},8769:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(6517),f=r(5739),h=r(9789),m=r(780),y=r(2063),b=r(8434),S=r(8983),_=r(5301),C=r(3790),E=r(2815);let A=n=class extends y.AbstractNodeTransformer{constructor(e,t,r,n,o){super(n,o),this.controlFlowData=new Map,this.visitedFunctionNodes=new Set,this.hostNodesWithControlFlowNode=new Set,this.controlFlowStorageFactory=e,this.controlFlowReplacerFactory=t,this.controlFlowCustomNodeFactory=r}getVisitor(e){switch(e){case m.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(S.NodeGuards.isFunctionDeclarationNode(e)||S.NodeGuards.isFunctionExpressionNode(e)||S.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!S.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),n=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,n),this.transformFunctionBody(e.body,n),!n.getLength())return e;const o=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.ControlFlowStorageNode);return o.initialize(n),b.NodeAppender.prepend(r,o.getNode()),this.hostNodesWithControlFlowNode.add(r),E.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(S.NodeGuards.isSwitchCaseNode(e)?e.consequent.shift():e.body.shift());const r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}getHostNode(e){const t=C.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>n.hostNodeSearchMinDepth&&t.splice(0,n.hostNodeSearchMinDepth),t.length>n.hostNodeSearchMaxDepth&&(t.length=n.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}isVisitedFunctionNode(e){return(S.NodeGuards.isFunctionDeclarationNode(e)||S.NodeGuards.isFunctionExpressionNode(e)||S.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){p.replace(e,{enter:(e,r)=>{if(_.NodeMetadata.isIgnoredNode(e))return p.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return p.VisitorOption.Skip;if(!n.controlFlowReplacersMap.has(e.type))return e;if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold)return e;const o=n.controlFlowReplacersMap.get(e.type);return void 0===o?e:Object.assign(Object.assign({},this.controlFlowReplacerFactory(o).replace(e,r,t)),{parentNode:r})}})}};A.controlFlowReplacersMap=new Map([[h.NodeType.BinaryExpression,f.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[h.NodeType.CallExpression,f.ControlFlowReplacer.CallExpressionControlFlowReplacer],[h.NodeType.LogicalExpression,f.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[h.NodeType.Literal,f.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),A.hostNodeSearchMinDepth=0,A.hostNodeSearchMaxDepth=2,A=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.Factory__TControlFlowStorage)),l(1,c.inject(d.ServiceIdentifiers.Factory__IControlFlowReplacer)),l(2,c.inject(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(3,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(4,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Function,Function,Object,Object])],A),t.FunctionControlFlowTransformer=A},6110:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const s=r(6700),u=r(2553);let l=n=class{constructor(e,t,r){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.randomGenerator=t,this.options=r}static getStorageKeysByIdForCurrentStorage(e,t){let r;return r=e.has(t)?e.get(t):new Map,r}insertCustomNodeToControlFlowStorage(e,t,r,o){const i=t.getStorageId(),a=n.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,i),s=a.get(r);if(this.randomGenerator.getMathRandom()<o&&s&&s.length)return this.randomGenerator.getRandomGenerator().pickone(s);const u=e=>{const r=this.randomGenerator.getRandomString(e);return t.getStorage().has(r)?u(e):r},l=u(5);return a.set(r,[l]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(l,e),l}};l=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],l),t.AbstractControlFlowReplacer=l},6800:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const s=r(6700),u=r(2553),l=r(6517),c=r(7233);let d=n=class extends c.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const o=e.operator,i=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.BinaryExpressionFunctionNode);i.initialize(o);const a=this.insertCustomNodeToControlFlowStorage(i,r,o,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}};d.usingExistingIdentifierChance=.5,d=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],d),t.BinaryExpressionControlFlowReplacer=d},1766:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const s=r(6700),u=r(2553),l=r(6517),c=r(6110),d=r(8983);let p=n=class extends c.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const o=e.callee;if(!d.NodeGuards.isIdentifierNode(o))return e;const i=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;a.initialize(s);const u=this.insertCustomNodeToControlFlowStorage(a,r,i,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),u,o,s)}getControlFlowStorageCallNode(e,t,r,n){const o=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);o.initialize(e,t,r,n);const i=o.getNode()[0];if(!i||!d.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};p.usingExistingIdentifierChance=.5,p=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],p),t.CallExpressionControlFlowReplacer=p},7233:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const a=r(6700),s=r(2553),u=r(6517),l=r(6110),c=r(8983);let d=class extends l.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}getControlFlowStorageCallNode(e,t,r,n){const o=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);o.initialize(e,t,r,n);const i=o.getNode()[0];if(!i||!c.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IControlFlowCustomNode)),i(1,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(2,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object,Object])],d),t.ExpressionWithOperatorControlFlowReplacer=d},1788:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionControlFlowReplacer=void 0;const s=r(6700),u=r(2553),l=r(6517),c=r(7233),d=r(8983),p=r(2815);let g=n=class extends c.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;const o=e.operator,i=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.LogicalExpressionFunctionNode);i.initialize(o);const a=this.insertCustomNodeToControlFlowStorage(i,r,o,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}checkForProhibitedExpressions(e,t){return[e,t].some((e=>{let t;return t=d.NodeGuards.isUnaryExpressionNode(e)?p.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(d.NodeGuards.isLiteralNode(t)||d.NodeGuards.isIdentifierNode(t)||d.NodeGuards.isObjectExpressionNode(t)||d.NodeGuards.isExpressionStatementNode(t))}))}};g.usingExistingIdentifierChance=.5,g=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],g),t.LogicalExpressionControlFlowReplacer=g},2775:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const s=r(6700),u=r(2553),l=r(6517),c=r(6110),d=r(8983),p=r(7586);let g=n=class extends c.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(d.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!p.NodeLiteralUtils.isStringLiteralNode(e)||e.value.length<3)return e;const o=String(e.value),i=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.StringLiteralNode);i.initialize(e.value);const a=this.insertCustomNodeToControlFlowStorage(i,r,o,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(l.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const n=r.getNode()[0];if(!n||!d.NodeGuards.isExpressionStatementNode(n))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return n.expression}};g.usingExistingIdentifierChance=1,g=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],g),t.StringLiteralControlFlowReplacer=g},4425:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(8983),d=r(2815),p=r(9181);let g=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&c.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return d.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return p.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return p.NodeFactory.unaryExpressionNode("!",p.NodeFactory.arrayExpressionNode())}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],g),t.BooleanLiteralTransformer=g},9947:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSpecifierTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(8983),d=r(2815);let p=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&c.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=d.NodeUtils.clone(e.local)),e}};p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],p),t.ExportSpecifierTransformer=p},1160:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(9181),d=r(8983);let p=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&d.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(d.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=c.NodeFactory.literalNode(e.property.name)}return e}};p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],p),t.MemberExpressionTransformer=p},2526:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MethodDefinitionTransformer=void 0;const s=r(6700),u=r(2553),l=r(780),c=r(2063),d=r(9181),p=r(8983);let g=n=class extends c.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case l.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&p.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return p.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):p.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return n.ignoredNames.includes(t.name)||e.computed||(e.computed=!0,e.key=d.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||n.ignoredNames.includes(t.value)||e.computed||(e.computed=!0),e}};g.ignoredNames=["constructor"],g=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],g),t.MethodDefinitionTransformer=g},8962:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralTransformer=void 0;const a=r(6700),s=r(2553),u=r(6188),l=r(780),c=r(2063),d=r(9181),p=r(8983),g=r(2303);let f=class extends c.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){switch(e){case l.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&p.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let n;return this.numberLiteralCache.has(r)?n=this.numberLiteralCache.get(r):(n=g.NumberUtils.isCeil(r)?g.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,n)),d.NodeFactory.literalNode(r,n)}};f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],f),t.NumberLiteralTransformer=f},3827:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberToNumericalExpressionTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(8983),d=r(9181),p=r(2303);let g=class extends l.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){if(!this.options.numbersToExpressions)return null;switch(e){case u.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&c.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value)return e;if(c.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=this.numberNumericalExpressionAnalyzer.analyze(e.value);return this.convertNumericalExpressionDataToNode(r)}convertNumericalExpressionDataToNode(e,t="+"){var r;const n=e.length,o=n>1?e.slice(0,n-1):[e[0]],i=n>1?e.slice(-1):[];if(i.length)return this.convertPartsToBinaryExpression(t,o,i);const a=null!==(r=o[0])&&void 0!==r?r:null;return Array.isArray(a)?this.convertNumericalExpressionDataToNode(a,"*"):this.convertPartOrNumberToLiteralNode(a)}convertPartsToBinaryExpression(e,t,r){const n=r[0];return Array.isArray(n)?d.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertNumericalExpressionDataToNode(n,"*")):d.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertPartOrNumberToLiteralNode(n))}convertPartOrNumberToLiteralNode(e){const t=Array.isArray(e)?e[0]:e,r=p.NumberUtils.isPositive(t),n=d.NodeFactory.literalNode(Math.abs(t));return r?n:d.NodeFactory.unaryExpressionNode("-",n)}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),i(1,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(2,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object,Object])],g),t.NumberToNumericalExpressionTransformer=g},3710:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(780),f=r(547),h=r(2063),m=r(8983),y=r(3790);let b=n=class extends h.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedObjectExpressionNode(e,t,r){return n.isReferencedIdentifierName(e,r)||n.isProhibitedArrowFunctionExpression(e,t)||n.isProhibitedSequenceExpression(e,r)}static isReferencedIdentifierName(e,t){const r=[];let n=!1,o=!1;return p.traverse(t,{enter:t=>{t===e&&(o=!0),m.NodeGuards.isIdentifierNode(t)&&(o?r.includes(t.name)&&(n=!0):r.push(t.name))},leave:t=>{if(t===e)return o=!1,p.VisitorOption.Break}}),n}static isProhibitedArrowFunctionExpression(e,t){return m.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}static isProhibitedSequenceExpression(e,t){return m.NodeGuards.isExpressionStatementNode(t)&&m.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some((e=>m.NodeGuards.isCallExpressionNode(e)&&m.NodeGuards.isSuperNode(e.callee)))}getVisitor(e){if(!this.options.transformObjectKeys)return null;switch(e){case g.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&m.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!e.properties.length)return e;const r=y.NodeStatementUtils.getRootStatementOfNode(e);return n.isProhibitedObjectExpressionNode(e,t,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(n.objectExpressionExtractorNames,e,r)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const n=[...e],o=n.shift();if(!o)return t;const{nodeToReplace:i,objectExpressionHostStatement:a,objectExpressionNode:s}=this.objectExpressionExtractorFactory(o).extract(t,r);return this.applyObjectExpressionKeysExtractorsRecursive(n,s,a),i}};b.objectExpressionExtractorNames=[f.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,f.ObjectExpressionExtractor.BasePropertiesExtractor],b=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),l(1,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(2,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object])],b),t.ObjectExpressionKeysTransformer=b},7506:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(9181),d=r(8983);let p=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&d.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.properties.forEach((e=>{d.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))})),e}transformComputedProperty(e){d.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=c.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),d.NodeGuards.isIdentifierNode(e.key)&&(e.key=c.NodeFactory.literalNode(e.key.name))}};p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],p),t.ObjectExpressionTransformer=p},3412:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectPatternPropertiesTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(8983),d=r(8520),p=r(2815);let g=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&c.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!c.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=d.NodeLexicalScopeUtils.getLexicalScope(e);if(t&&c.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=p.NodeUtils.clone(e.value),p.NodeUtils.parentizeNode(e.value,e),e}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],g),t.ObjectPatternPropertiesTransformer=g},9662:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=s(r(641)),f=r(6188),h=r(780),m=r(2063),y=r(9181),b=r(8983),S=r(7586),_=r(2815);let C=n=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.ObjectExpressionKeysTransformer,f.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t,r){const n=Math.ceil(t/r),o=[];let i=0;for(let t=0;t<n;++t,i+=r)o[t]=g.substr(e,i,r);return o}getVisitor(e){switch(e){case h.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(this.options.splitStrings)return t&&b.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(S.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,t,n.firstPassChunkLength);return p.replace(r,{enter:(e,t)=>{if(t&&b.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,t,this.options.splitStringsChunkLength)}})}transformLiteralNodeByChunkLength(e,t,r){if(!S.NodeLiteralUtils.isStringLiteralNode(e))return e;const o=g.length(e.value);if(r>=o)return e;const i=n.chunkString(e.value,o,r),a=this.transformStringChunksToBinaryExpressionNode(i);return _.NodeUtils.parentizeAst(a),_.NodeUtils.parentizeNode(a,t),a}transformStringChunksToBinaryExpressionNode(e){const t=e.shift(),r=e.shift();if(!t||!r)throw new Error("First and second chunks values should not be empty");const n=y.NodeFactory.binaryExpressionNode("+",y.NodeFactory.literalNode(t),y.NodeFactory.literalNode(r));return e.reduce(((e,t)=>{const r=y.NodeFactory.literalNode(t);return y.NodeFactory.binaryExpressionNode("+",e,r)}),n)}};C.firstPassChunkLength=1e3,C=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(1,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Object,Object])],C),t.SplitStringTransformer=C},8985:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const s=r(6700),u=r(2553),l=r(780),c=r(2063),d=r(9181),p=r(8983),g=r(2815);let f=n=class extends c.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&p.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){switch(e){case l.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&p.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return p.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(e,t){const r=e.expressions;let o,i=[];if(e.quasis.forEach((e=>{i.push(d.NodeFactory.literalNode(e.value.cooked));const t=r.shift();t&&i.push(t)})),i=i.filter((e=>!(p.NodeGuards.isLiteralNode(e)&&""===e.value))),n.isLiteralNodeWithStringValue(i[0])||n.isLiteralNodeWithStringValue(i[1])||i.unshift(d.NodeFactory.literalNode("")),i.length>1){let e=d.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());i.forEach((t=>{e=d.NodeFactory.binaryExpressionNode("+",e,t)})),o=e}else o=i[0];return g.NodeUtils.parentizeAst(o),g.NodeUtils.parentizeNode(o,t),o}};f=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],f),t.TemplateLiteralTransformer=f},7412:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const i=r(6700),a=r(8434),s=r(9181),u=r(8983),l=r(3790),c=r(2815);let d=n=class{static getPropertyNodeKeyName(e){const t=e.key;return!u.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?u.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||u.NodeGuards.isObjectPatternNode(e)||u.NodeGuards.isArrayPatternNode(e)||u.NodeGuards.isAssignmentPatternNode(e)||u.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&u.NodeGuards.isLiteralNode(e.key)}extract(e,t){const r=e.parentNode;return r&&u.NodeGuards.isVariableDeclaratorNode(r)&&u.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const n=e.properties,[o,i]=this.extractPropertiesToExpressionStatements(n,t,r),s=l.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,o,t),c.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const o=[],i=[];for(let a=e.length-1;a>=0;a--){const l=e[a];if(u.NodeGuards.isSpreadElementNode(l))break;if(n.isProhibitedPropertyNode(l))continue;const c=l.value;if(n.isProhibitedPattern(c))continue;const d=n.getPropertyNodeKeyName(l);if(!d)continue;const p=n.shouldCreateLiteralNode(l)?s.NodeFactory.literalNode(d):s.NodeFactory.identifierNode(d),g=s.NodeFactory.memberExpressionNode(r,p,!0),f=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",g,c));u.NodeGuards.isObjectExpressionNode(l.value)&&this.transformObjectExpressionNode(l.value,t,g),o.unshift(f),i.unshift(a)}return[o,i]}filterExtractedObjectExpressionProperties(e,t){e.properties=e.properties.filter(((e,r)=>!t.includes(r)))}};d=n=o([i.injectable()],d),t.BasePropertiesExtractor=d},618:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const a=r(6700),s=r(2553),u=r(2982),l=r(8434),c=r(8983),d=r(3790),p=r(2815),g=r(8520);let f=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const n=d.NodeStatementUtils.getScopeOfNode(t),o=c.NodeGuards.isNodeWithLexicalScope(n)?n:null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null;if(!o)throw new Error("Cannot find lexical scope node for the host statement node");const i=e.properties,a=this.getObjectExpressionHostNode(o,i),s=[a];return l.NodeAppender.insertBefore(n,s,t),p.NodeUtils.parentizeAst(a),p.NodeUtils.parentizeNode(a,n),{nodeToReplace:this.getObjectExpressionIdentifierNode(a),objectExpressionHostStatement:a,objectExpressionNode:this.getObjectExpressionNode(a)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(u.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const n=r.getNode()[0];if(!n||!c.NodeGuards.isVariableDeclarationNode(n))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return n}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!c.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!c.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),o("design:paramtypes",[Function])],f),t.ObjectExpressionToVariableDeclarationExtractor=f},1718:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(6782),f=r(6188),h=r(9789),m=r(780),y=r(2063),b=r(9181),S=r(8983),_=r(3790),C=r(2815);let E=n=class extends y.AbstractNodeTransformer{constructor(e,t,r,n){super(r,n),this.deadCodeInjectionRootAstHostNodeSet=new Set,this.collectedBlockStatements=[],this.collectedBlockStatementsTotalLength=0,this.deadCodeInjectionCustomNodeFactory=e,this.transformersRunner=t}static isProhibitedNodeInsideCollectedBlockStatement(e){return S.NodeGuards.isFunctionDeclarationNode(e)||S.NodeGuards.isBreakStatementNode(e)||S.NodeGuards.isContinueStatementNode(e)||S.NodeGuards.isAwaitExpressionNode(e)||S.NodeGuards.isYieldExpressionNode(e)||S.NodeGuards.isSuperNode(e)||S.NodeGuards.isForOfStatementNode(e)&&e.await}static isScopeHoistingFunctionDeclaration(e){if(!S.NodeGuards.isFunctionDeclarationNode(e))return!1;const t=_.NodeStatementUtils.getScopeOfNode(e),r=S.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,n=r.indexOf(e);if(0===n)return!1;const o=r.slice(0,n),i=b.NodeFactory.blockStatementNode(o),a=e.id.name;let s=!1;return p.traverse(i,{enter:e=>{if(S.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,p.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return p.traverse(e,{enter:e=>{if(S.NodeGuards.isBlockStatementNode(e)&&t++,t>n.maxNestedBlockStatementsCount||n.isProhibitedNodeInsideCollectedBlockStatement(e)||n.isScopeHoistingFunctionDeclaration(e))return r=!1,p.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;return p.traverse(e,{enter:e=>{if(n.isScopeHoistingFunctionDeclaration(e))return t=!1,p.VisitorOption.Break}}),!!t&&_.NodeStatementUtils.getParentNodeWithStatements(e).type!==h.NodeType.Program}getVisitor(e){switch(e){case m.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&S.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&S.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case m.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}prepareNode(e,t){p.traverse(e,{enter:e=>{if(!S.NodeGuards.isBlockStatementNode(e))return;const t=C.NodeUtils.clone(e);if(!n.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLength<n.minCollectedBlockStatementsCount)return p.VisitorOption.Break;if(this.randomGenerator.getMathRandom()>this.options.deadCodeInjectionThreshold||!n.isValidWrappedBlockStatementNode(e))return e;const r=this.collectedBlockStatements.length-1,o=this.randomGenerator.getRandomInteger(0,r),i=this.collectedBlockStatements.splice(o,1)[0];return i===e?e:this.replaceBlockStatementNode(e,i,t)}restoreNode(e,t){const r=e.body[0];if(!S.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){return S.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}makeClonedBlockStatementNodeUnique(e){const t=b.NodeFactory.programNode([b.NodeFactory.expressionStatementNode(b.NodeFactory.functionExpressionNode([],e))]);return C.NodeUtils.parentizeAst(t),C.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,n.transformersToRenameBlockScopeIdentifiers,m.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const o=b.NodeFactory.blockStatementNode([b.NodeFactory.functionDeclarationNode(n.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(o);const i=this.deadCodeInjectionCustomNodeFactory(g.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,o);const a=i.getNode()[0];return C.NodeUtils.parentizeNode(a,r),a}};E.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",E.maxNestedBlockStatementsCount=4,E.minCollectedBlockStatementsCount=5,E.transformersToRenameBlockScopeIdentifiers=[f.NodeTransformer.LabeledStatementTransformer,f.NodeTransformer.ScopeIdentifiersTransformer,f.NodeTransformer.ScopeThroughIdentifiersTransformer],E=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),l(1,c.inject(d.ServiceIdentifiers.INodeTransformersRunner)),l(2,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(3,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object,Object])],E),t.DeadCodeInjectionTransformer=E},4187:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(6188),c=r(2063),d=r(8983),p=r(7586),g=r(9181),f=r(2815);let h=class extends c.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[l.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){switch(e){case u.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(d.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!p.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),n=g.NodeFactory.literalNode(r);return f.NodeUtils.parentizeNode(n,t),n}};h=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),i(2,a.inject(s.ServiceIdentifiers.IEscapeSequenceEncoder)),o("design:paramtypes",[Object,Object,Object])],h),t.EscapeSequenceTransformer=h},3836:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return i(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTransformer=void 0;const c=r(6700),d=r(2553),p=s(r(7085)),g=r(780),f=r(2063),h=r(2240),m=r(8983);let y=n=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case g.NodeTransformationStage.Initializing:return{leave:e=>{if(m.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case g.NodeTransformationStage.Finalizing:return{leave:e=>{if(m.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){if(!(e=this.filterCommentsOnPrimaryTraverse(e)).comments||!e.comments.length)return e;const t=e.comments.reverse();if(0===t.length)return e;if(!e.body.length)return e.leadingComments=t,e;let r=!0;return p.traverse(e,{enter:n=>{if(n===e)return;const o=t.findIndex((e=>e.range&&n.range&&e.range[0]<n.range[0]));o>=0&&((r?e:n).leadingComments=t.splice(o,t.length-o).reverse()),r=!1}}),t.length>0&&(e.trailingComments=t.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!0))),e}filterCommentsOnFinalizingTraverse(e){return p.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!1)))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter((e=>this.filterComment(e,!1)))),e}}),e}filterComment(e,t){return!(!t||!h.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||n.preservedWords.some((t=>e.value.includes(t)))}};y.preservedWords=["@license","@preserve"],y=n=a([c.injectable(),l(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),l(1,c.inject(d.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Object,Object])],y),t.CommentsTransformer=y},9763:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const a=r(6700),s=r(2553),u=r(6188),l=r(3163),c=r(780),d=r(2063),p=r(8983);let g=class extends d.AbstractNodeTransformer{constructor(e,t,r,n,o,i){super(o,i),this.runAfter=[u.NodeTransformer.ParentificationTransformer,u.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.obfuscationEventEmitter=r,this.customCodeHelperGroupStorage=n}getVisitor(e){switch(e){case c.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(p.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesBeforeObfuscation(e,t),this.transformNode(e,t)}};case c.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{p.NodeGuards.isProgramNode(e)&&this.appendCustomNodesAfterObfuscation(e,t)}};default:return null}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesBeforeObfuscation(e,t){this.customCodeHelperGroupStorage.getStorage().forEach((e=>{e.initialize(),this.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendNodes.bind(e))})),this.obfuscationEventEmitter.emit(l.ObfuscationEvent.BeforeObfuscation,e,this.callsGraphData)}appendCustomNodesAfterObfuscation(e,t){this.obfuscationEventEmitter.emit(l.ObfuscationEvent.AfterObfuscation,e,this.callsGraphData)}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.ICallsGraphAnalyzer)),i(1,a.inject(s.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),i(2,a.inject(s.ServiceIdentifiers.IObfuscationEventEmitter)),i(3,a.inject(s.ServiceIdentifiers.TCustomNodeGroupStorage)),i(4,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(5,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object,Object,Object,Object,Object])],g),t.CustomCodeHelpersTransformer=g},4188:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const s=r(6700),u=r(2553),l=r(6188),c=r(780),d=r(2063),p=r(9181),g=r(8983),f=r(2815),h=r(6493);let m=n=class extends d.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[l.NodeTransformer.EscapeSequenceTransformer,l.NodeTransformer.ParentificationTransformer,l.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return g.NodeGuards.isLiteralNode(e)?n.extractEvalStringFromLiteralNode(e):g.NodeGuards.isTemplateLiteralNode(e)?n.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){const t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}getVisitor(e){switch(e){case c.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&g.NodeGuards.isCallExpressionNode(e)&&g.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case c.NodeTransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:(e,t)=>{if(t&&this.isEvalRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}transformNode(e,t){const r=e.arguments[0];if(!r)return e;const o=n.extractEvalStringFromCallExpressionArgument(r);if(!o)return e;let i;try{i=f.NodeUtils.convertCodeToStructure(o)}catch(t){return e}const a=p.NodeFactory.functionExpressionNode([],p.NodeFactory.blockStatementNode(i));return f.NodeUtils.parentizeAst(a),f.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,n=f.NodeUtils.convertStructureToCode(r);return p.NodeFactory.callExpressionNode(p.NodeFactory.identifierNode("eval"),[p.NodeFactory.literalNode(h.StringUtils.escapeJsString(n))])}isEvalRootAstHostNode(e){return g.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};m=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],m),t.EvalCallExpressionTransformer=m},2722:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const a=r(6700),s=r(2553),u=r(6188),l=r(780),c=r(2063),d=r(8983),p=r(5301);let g=class extends c.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.ParentificationTransformer,u.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case l.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return p.NodeMetadata.set(e,{ignoredNode:!1}),d.NodeGuards.isLiteralNode(e)&&p.NodeMetadata.set(e,{replacedLiteral:!1}),e}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],g),t.MetadataTransformer=g},1478:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const s=r(6700),u=r(2553),l=r(6188),c=r(780),d=r(4930),p=r(5181),g=r(2063),f=r(8983),h=r(5301);let m=n=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[l.NodeTransformer.ParentificationTransformer,l.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=n.obfuscatingGuardsList.map(e)}getVisitor(e){switch(e){case c.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){const r=this.obfuscatingGuards.map((t=>t.check(e)));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,n=!1;t.every((e=>e===p.ObfuscatingGuardResult.Transform))||(r=t.some((e=>e===p.ObfuscatingGuardResult.ForceTransform)),n=!r&&t.some((e=>e===p.ObfuscatingGuardResult.Ignore))),h.NodeMetadata.set(e,{forceTransformNode:r&&!f.NodeGuards.isProgramNode(e),ignoredNode:n&&!f.NodeGuards.isProgramNode(e)})}};m.obfuscatingGuardsList=[d.ObfuscatingGuard.BlackListObfuscatingGuard,d.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,d.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,d.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,d.ObfuscatingGuard.ReservedStringObfuscatingGuard],m=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__INodeGuard)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],m),t.ObfuscatingGuardsTransformer=m},6815:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(2815);let d=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return c.NodeUtils.parentizeNode(e,t)}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],d),t.ParentificationTransformer=d},515:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const a=r(6700),s=r(6188),u=r(2553),l=r(780),c=r(2063),d=r(8983);let p=class extends c.AbstractNodeTransformer{constructor(e,t,r,n){super(t,r),this.runAfter=[s.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=n,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case l.NodeTransformationStage.Preparing:case l.NodeTransformationStage.Converting:case l.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&d.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:n,variableScope:o}=e;for(const e of n.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,o)}preserveIdentifierNameForRootLexicalScope(e){this.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=d.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};p=n([a.injectable(),i(0,a.inject(u.ServiceIdentifiers.IIdentifierReplacer)),i(1,a.inject(u.ServiceIdentifiers.IRandomGenerator)),i(2,a.inject(u.ServiceIdentifiers.IOptions)),i(3,a.inject(u.ServiceIdentifiers.IScopeIdentifiersTraverser)),o("design:paramtypes",[Object,Object,Object,Object])],p),t.VariablePreserveTransformer=p},4150:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const a=r(6700),s=r(5181),u=r(8983);let l=n=class{constructor(){this.blackListGuardsLength=n.blackListGuards.length}check(e){for(let t=0;t<this.blackListGuardsLength;t++)if(n.blackListGuards[t](e))return s.ObfuscatingGuardResult.Ignore;return s.ObfuscatingGuardResult.Transform}};l.blackListGuards=[u.NodeGuards.isUseStrictOperator],l=n=o([a.injectable(),i("design:paramtypes",[])],l),t.BlackListObfuscatingGuard=l},2240:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(6700),a=r(5181),s=r(8983);let u=n=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return n.obfuscationEnableCommentRegExp.test(e.value)||n.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?a.ObfuscatingGuardResult.Transform:a.ObfuscatingGuardResult.Ignore}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let o=0;o<t;o++){const t=e[o];n.obfuscationEnableCommentRegExp.test(t.value)?r=!0:n.obfuscationDisableCommentRegExp.test(t.value)&&(r=!1)}return r}};u.obfuscationEnableCommentRegExp=new RegExp("javascript-obfuscator *: *enable"),u.obfuscationDisableCommentRegExp=new RegExp("javascript-obfuscator *: *disable"),u=n=o([i.injectable()],u),t.ConditionalCommentObfuscatingGuard=u},1595:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ForceTransformStringObfuscatingGuard=void 0;const a=r(6700),s=r(5181),u=r(2553),l=r(8983);let c=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&l.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?s.ObfuscatingGuardResult.ForceTransform:s.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};c=n([a.injectable(),i(0,a.inject(u.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object])],c),t.ForceTransformStringObfuscatingGuard=c},1641:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IgnoredRequireImportObfuscatingGuard=void 0;const a=r(6700),s=r(5181),u=r(2553),l=r(8983);let c=class{constructor(e){this.options=e}check(e){return this.options.ignoreRequireImports&&l.NodeGuards.isCallExpressionNode(e)&&l.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name?s.ObfuscatingGuardResult.Ignore:s.ObfuscatingGuardResult.Transform}};c=n([a.injectable(),i(0,a.inject(u.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object])],c),t.IgnoredRequireImportObfuscatingGuard=c},7189:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const a=r(6700),s=r(5181),u=r(2553),l=r(8983);let c=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&l.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?s.ObfuscatingGuardResult.Ignore:s.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};c=n([a.injectable(),i(0,a.inject(u.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object])],c),t.ReservedStringObfuscatingGuard=c},6652:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LabeledStatementTransformer=void 0;const l=r(6700),c=r(2553),d=a(r(7085)),p=r(780),g=r(2063),f=r(8983),h=r(8520);let m=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierReplacer=e}getVisitor(e){switch(e){case p.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&f.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=h.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){d.replace(e,{enter:(e,r)=>{if(r&&f.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};m=i([l.injectable(),u(0,l.inject(c.ServiceIdentifiers.IIdentifierReplacer)),u(1,l.inject(c.ServiceIdentifiers.IRandomGenerator)),u(2,l.inject(c.ServiceIdentifiers.IOptions)),s("design:paramtypes",[Object,Object,Object])],m),t.LabeledStatementTransformer=m},1048:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTransformer=void 0;const l=r(6700),c=r(2553),d=a(r(7085)),p=r(780),g=r(2063),f=r(8983),h=r(5301);let m=class extends g.AbstractNodeTransformer{constructor(e,t,r,n){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierReplacer=e,this.scopeIdentifiersTraverser=n}getVisitor(e){switch(e){case p.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&f.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,(e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:n}=e;(this.options.renameGlobals||!t||r.defs.every((e=>"ImportBinding"===e.type||"CatchClause"===e.type)))&&this.transformScopeVariableIdentifiers(r,n,t)})),e}transformScopeVariableIdentifiers(e,t,r){var n;const o=null!==(n=e.identifiers[0])&&void 0!==n?n:null;o&&this.isReplaceableIdentifierNode(o,t,e)&&(this.storeIdentifierName(o,t,r),this.replaceIdentifierName(o,t,e))}storeIdentifierName(e,t,r){r?this.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const n=this.identifierReplacer.replace(e,t);r.identifiers.forEach((e=>{e.name=n.name})),r.references.forEach((t=>{t.identifier.name=e.name}))}isReplaceableIdentifierNode(e,t,r){const n=e.parentNode;return!(!n||h.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyIdentifierNode(e,n)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(e,n)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,n)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,n)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,n)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,n)||this.isProhibitedImportSpecifierNode(e,n)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||f.NodeGuards.isLabelIdentifierNode(e,n))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return f.NodeGuards.isClassDeclarationNode(e.scope.block)&&f.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return f.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&f.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return f.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&f.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return f.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&f.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&f.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return f.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return f.NodeGuards.isPropertyNode(t)&&!t.computed&&f.NodeGuards.isIdentifierNode(t.key)&&f.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return f.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&f.NodeGuards.isPropertyNode(t.parentNode)&&f.NodeGuards.isIdentifierNode(t.left)&&f.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let n=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===n)return!1;if(!e.defs.some((e=>"var"===e.kind)))return!1;let o=!1;return d.traverse(r,{enter:(e,r)=>{if(f.NodeGuards.isObjectPatternNode(e)&&r&&f.NodeGuards.isAssignmentExpressionNode(r)){n=!0;const r=e.properties;for(const e of r)if(f.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&f.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return o=!0,d.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=n&&n),o}};m=i([l.injectable(),u(0,l.inject(c.ServiceIdentifiers.IIdentifierReplacer)),u(1,l.inject(c.ServiceIdentifiers.IRandomGenerator)),u(2,l.inject(c.ServiceIdentifiers.IOptions)),u(3,l.inject(c.ServiceIdentifiers.IScopeIdentifiersTraverser)),s("design:paramtypes",[Object,Object,Object,Object])],m),t.ScopeIdentifiersTransformer=m},502:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeThroughIdentifiersTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(2063),c=r(8983);let d=class extends l.AbstractNodeTransformer{constructor(e,t,r,n){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=n}getVisitor(e){switch(e){case u.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&c.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,(e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)})),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const n=this.identifierReplacer.replace(e,t);r.identifier.name=n.name}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IIdentifierReplacer)),i(1,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(2,a.inject(s.ServiceIdentifiers.IOptions)),i(3,a.inject(s.ServiceIdentifiers.IScopeIdentifiersTraverser)),o("design:paramtypes",[Object,Object,Object,Object])],d),t.ScopeThroughIdentifiersTransformer=d},57:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierReplacer=void 0;const a=r(6700),s=r(2553),u=r(9181);let l=class{constructor(e,t){this.blockScopesMap=new Map,this.options=t,this.identifierNamesGenerator=e(t)}storeGlobalName(e,t){const r=e.name;if(this.isReservedName(r))return;const n=this.identifierNamesGenerator.generateForGlobalScope();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,n)}storeLocalName(e,t){const r=e.name;if(this.isReservedName(r))return;const n=this.identifierNamesGenerator.generateForLexicalScope(t);this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,n)}replace(e,t){let r=e.name;if(this.blockScopesMap.has(t)){const e=this.blockScopesMap.get(t);e.has(r)&&(r=e.get(r))}return u.NodeFactory.identifierNode(r)}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object])],l),t.IdentifierReplacer=l},7015:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const s=r(6700),u=r(2553),l=r(780),c=r(2063),d=r(8983);let p=n=class extends c.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!d.NodeGuards.isIdentifierNode(t)||!e.computed)&&(d.NodeGuards.isIdentifierNode(t)||d.NodeGuards.isLiteralNode(t))}getVisitor(e){switch(e){case l.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return d.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):d.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):d.NodeGuards.isMethodDefinitionNode(e)?this.transformMethodDefinitionNode(e):e}transformPropertyNode(e){const t=e.key;return n.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t),e.shorthand=!1),e}transformMemberExpressionNode(e){const t=e.property;return n.isValidPropertyNode(e,t)&&(e.property=this.renamePropertiesReplacer.replace(t)),e}transformMethodDefinitionNode(e){const t=e.key;return n.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t)),e}};p=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object])],p),t.RenamePropertiesTransformer=p},9320:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const s=r(6700),u=r(2553),l=a(r(6856)),c=r(8983),d=r(9181);let p=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(l.default),this.identifierNamesGenerator=e(t),this.options=t}replace(e){return c.NodeGuards.isIdentifierNode(e)?d.NodeFactory.identifierNode(this.replacePropertyName(e.name)):c.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?d.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t;if(this.isReservedName(e))return e;let r=null!==(t=this.propertyNamesMap.get(e))&&void 0!==t?t:null;return null!==r||(r=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,r)),r}isReservedName(e){return this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}isReservedDomPropertyName(e){return this.reservedDomPropertiesList.has(e)}};p=n([s.injectable(),i(0,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i(1,s.inject(u.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Function,Object])],p),t.RenamePropertiesReplacer=p},743:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStatementSimplifyTransformer=void 0;const a=r(6700),s=r(2553),u=r(6188),l=r(2063),c=r(8983),d=r(9181);let p=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.ExpressionStatementsMergeTransformer,u.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!c.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:n}=this.collectIteratedStatementsSimplifyData(e),o=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:o,trailingStatement:null,hasReturnStatement:n,hasSingleExpression:!1};const i=1===r.length,a=i?r[0]:d.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:o,trailingStatement:{statement:n?d.NodeFactory.returnStatementNode(a):d.NodeFactory.expressionStatementNode(a),expression:a},hasReturnStatement:n,hasSingleExpression:i}}collectIteratedStatementsSimplifyData(e){const t=[];let r=!1,n=null;for(let o=e.body.length-1;o>=0;o--){const i=e.body[o];if(c.NodeGuards.isExpressionStatementNode(i))c.NodeGuards.isSequenceExpressionNode(i.expression)?t.unshift(...i.expression.expressions):t.unshift(i.expression),n=o;else{if(!c.NodeGuards.isReturnStatementNode(i)||!i.argument)break;t.unshift(i.argument),r=!0,n=o}}return{startIndex:n,unwrappedExpressions:t,hasReturnStatement:r}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:d.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};p=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],p),t.AbstractStatementSimplifyTransformer=p},7596:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementSimplifyTransformer=void 0;const a=r(6700),s=r(2553),u=r(6188),l=r(780),c=r(743),d=r(8983),p=r(9181),g=r(2815);let f=class extends c.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){switch(e){case l.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&d.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const n=this.getPartialStatement(r),o=d.NodeGuards.isBlockStatementNode(n)?n:p.NodeFactory.blockStatementNode([n]);return g.NodeUtils.parentizeNode(o,t)}};f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],f),t.BlockStatementSimplifyTransformer=f},7615:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionStatementsMergeTransformer=void 0;const l=r(6700),c=r(2553),d=a(r(7085)),p=r(780),g=r(2063),f=r(9181),h=r(8983),m=r(3790),y=r(2815);let b=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&h.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeGuards.isNodeWithStatements(t))return e;const r=m.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&h.NodeGuards.isExpressionStatementNode(r)?(h.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),y.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=f.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),y.NodeUtils.parentizeAst(r.expression),y.NodeUtils.parentizeNode(r.expression,r)),d.VisitorOption.Remove):e}};b=i([l.injectable(),u(0,l.inject(c.ServiceIdentifiers.IRandomGenerator)),u(1,l.inject(c.ServiceIdentifiers.IOptions)),s("design:paramtypes",[Object,Object])],b),t.ExpressionStatementsMergeTransformer=b},942:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(743),c=r(8983),d=r(9181),p=r(2815);let g=class extends l.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case u.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&c.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let n;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;n=this.getConsequentAndAlternateNode(e,r,t)}else n=this.getConsequentNode(e,r);return p.NodeUtils.parentizeNode(n,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?d.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?d.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):d.NodeFactory.expressionStatementNode(d.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?d.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?d.NodeFactory.returnStatementNode(d.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?d.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):d.NodeFactory.expressionStatementNode(d.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return c.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return c.NodeGuards.isFunctionDeclarationNode(e)||c.NodeGuards.isIfStatementNode(e)||c.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};g=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],g),t.IfStatementSimplifyTransformer=g},5805:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariableDeclarationsMergeTransformer=void 0;const l=r(6700),c=r(2553),d=a(r(7085)),p=r(780),g=r(2063),f=r(8983),h=r(3790);let m=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&f.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!f.NodeGuards.isNodeWithStatements(t))return e;const r=h.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&f.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),d.VisitorOption.Remove):e}};m=i([l.injectable(),u(0,l.inject(c.ServiceIdentifiers.IRandomGenerator)),u(1,l.inject(c.ServiceIdentifiers.IOptions)),s("design:paramtypes",[Object,Object])],m),t.VariableDeclarationsMergeTransformer=m},9720:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperTransformer=void 0;const a=r(6700),s=r(2553),u=r(780),l=r(3627),c=r(679),d=r(2063),p=r(8434),g=r(8983);let f=class extends d.AbstractNodeTransformer{constructor(e,t,r,n,o,i,a){super(e,t),this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=n,this.stringArrayScopeCallsWrapperNamesDataStorage=o,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){if(!this.options.stringArrayWrappersCount)return null;switch(e){case u.NodeTransformationStage.StringArray:return{enter:(e,t)=>{t&&g.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&g.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}};default:return null}}transformNode(e){var t,r;const n=null!==(t=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==t?t:null,o=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(!n||!o)return e;const{callsWrappersParameterIndexesData:i}=o,a=Object.values(n);for(const t of a){if(!t)continue;const{names:r}=t;for(let n=r.length-1;n>=0;n--){const a=r[n],{name:s,index:u,parameterIndexesData:l}=this.getUpperStringArrayCallsWrapperData(t,o),c=this.getStringArrayScopeCallsWrapperNode(a,i,s,l,u);p.NodeAppender.prepend(e,c)}}return e}getRootStringArrayCallsWrapperData(e,t){const{encoding:r}=e,{resultShiftedIndex:n}=t;return{name:this.stringArrayStorage.getStorageCallsWrapperName(r),index:n,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e,t){var r,n,o,i,a,s;const{encoding:u}=e,{scopeShiftedIndex:l}=t,c=this.getRootStringArrayCallsWrapperData(e,t);if(!this.options.stringArrayWrappersChainedCalls)return c;const d=null!==(r=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==r?r:null;if(!d)return c;const p=null!==(n=this.stringArrayScopeCallsWrapperNamesDataStorage.get(d))&&void 0!==n?n:null,g=null!==(o=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(d))&&void 0!==o?o:null,f=null!==(a=null===(i=null==p?void 0:p[u])||void 0===i?void 0:i.names)&&void 0!==a?a:null;return(null==f?void 0:f.length)?{name:this.randomGenerator.getRandomGenerator().pickone(f),index:l,parameterIndexesData:null!==(s=null==g?void 0:g.callsWrappersParameterIndexesData)&&void 0!==s?s:null}:c}getStringArrayScopeCallsWrapperNode(e,t,r,n,o){switch(this.options.stringArrayWrappersType){case c.StringArrayWrappersType.Function:return this.getStringArrayScopeCallsWrapperFunctionNode(e,t,r,n,o);case c.StringArrayWrappersType.Variable:default:return this.getStringArrayScopeCallsWrapperVariableNode(e,r)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(l.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t,r,n,o){const i=this.stringArrayTransformerCustomNodeFactory(l.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return i.initialize(e,t,r,n,o),i.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};f=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),i(2,a.inject(s.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),i(3,a.inject(s.ServiceIdentifiers.IStringArrayStorage)),i(4,a.inject(s.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),i(5,a.inject(s.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),i(6,a.inject(s.ServiceIdentifiers.Factory__IStringArrayCustomNode)),o("design:paramtypes",[Object,Object,Object,Object,Object,Object,Function])],f),t.StringArrayScopeCallsWrapperTransformer=f},8033:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTransformer=void 0;const s=r(6700),u=r(2553),l=r(780),c=r(3627),d=r(679),p=r(2063),g=r(8983),f=r(7586),h=r(5301),m=r(2815);let y=n=class extends p.AbstractNodeTransformer{constructor(e,t,r,n,o,i,a,s,u,l){super(e,t),this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=n,this.stringArrayStorage=o,this.stringArrayScopeCallsWrapperNamesDataStorage=i,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=a,this.stringArrayStorageAnalyzer=s,this.identifierNamesGenerator=u(t),this.stringArrayTransformerCustomNodeFactory=l}getVisitor(e){switch(e){case l.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(g.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&g.NodeGuards.isLiteralNode(e)&&!h.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};default:return null}}prepareNode(e){this.stringArrayStorageAnalyzer.analyze(e),this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!f.NodeLiteralUtils.isStringLiteralNode(e)||f.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,n=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),o=this.literalNodesCacheStorage.buildKey(r,n);if(this.literalNodesCacheStorage.shouldUseCachedValue(o,n))return this.literalNodesCacheStorage.get(o);const i=n?this.getStringArrayCallNode(n):e;return this.literalNodesCacheStorage.set(o,i),m.NodeUtils.parentizeNode(i,t),i}getStringArrayCallNode(e){const{name:t,index:r,parameterIndexesData:n}=this.getStringArrayCallsWrapperData(e),{decodeKey:o}=e,i=this.stringArrayTransformerCustomNodeFactory(c.StringArrayCustomNode.StringArrayCallNode);i.initialize(t,n,r,this.stringArrayStorage.getIndexShiftAmount(),o);const a=i.getNode()[0];if(!g.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayCallsWrapperData(e):this.getRootStringArrayCallsWrapperData(e)}getRootStringArrayCallsWrapperData(e){const{encoding:t,index:r}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),parameterIndexesData:null,index:r}}getUpperStringArrayCallsWrapperData(e){var t,r,n,o;const{encoding:i,index:a}=e,s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null,u=null!==(r=this.visitedLexicalScopeNodesStackStorage.getPenultimateElement())&&void 0!==r?r:null;if(!s)throw new Error("Cannot find current lexical scope body node");const l=this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(s,e),c=this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(s,u),d=null!==(o=null===(n=l[i])||void 0===n?void 0:n.names)&&void 0!==o?o:[];return{name:this.randomGenerator.getRandomGenerator().pickone(d),index:c?c.resultShiftedIndex+a:a,parameterIndexesData:c.callsWrappersParameterIndexesData}}getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(e,t){var r,n,o;const{encoding:i}=t,a=null!==(r=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==r?r:{},s=null!==(o=null===(n=a[i])||void 0===n?void 0:n.names)&&void 0!==o?o:[];if(s.length===this.options.stringArrayWrappersCount)return a;const u=g.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext();return a[i]={encoding:i,names:[...s,u]},this.stringArrayScopeCallsWrapperNamesDataStorage.set(e,a),a}getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(e,t){var r,o;const i=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(i)return i;const a=t&&null!==(o=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(t))&&void 0!==o?o:null,s=this.options.stringArrayWrappersType===d.StringArrayWrappersType.Function?this.getStringArrayCallsWrapperParameterIndexesData():null,u=this.options.stringArrayWrappersType===d.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(n.minShiftedIndexValue,n.maxShiftedIndexValue):0,l={callsWrappersParameterIndexesData:s,parentLexicalScopeBodyNode:t,resultShiftedIndex:a?a.resultShiftedIndex+u:u,scopeShiftedIndex:u};return this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(e,l),l}getStringArrayCallsWrapperParameterIndexesData(){const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};y.minShiftedIndexValue=-1e3,y.maxShiftedIndexValue=1e3,y=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(1,s.inject(u.ServiceIdentifiers.IOptions)),a(2,s.inject(u.ServiceIdentifiers.ILiteralNodesCacheStorage)),a(3,s.inject(u.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),a(4,s.inject(u.ServiceIdentifiers.IStringArrayStorage)),a(5,s.inject(u.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),a(6,s.inject(u.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),a(7,s.inject(u.ServiceIdentifiers.IStringArrayStorageAnalyzer)),a(8,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(9,s.inject(u.ServiceIdentifiers.Factory__IStringArrayCustomNode)),i("design:paramtypes",[Object,Object,Object,Object,Object,Object,Object,Object,Function,Function])],y),t.StringArrayTransformer=y},8434:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const n=r(8983);class o{static append(e,t){t=o.parentizeScopeStatementsBeforeAppend(e,t),o.setScopeStatements(e,[...o.getScopeStatements(e),...t])}static appendToOptimalBlockScope(e,t,r,n=0){const i=e.length?o.getOptimalBlockScope(e,n):t;o.prepend(i,r)}static getOptimalBlockScope(e,t,r=1/0){const n=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&n.callsGraph.length?o.getOptimalBlockScope(n.callsGraph,0,--r):n.callee}static insertBefore(e,t,r){const n=o.getScopeStatements(e).indexOf(r);o.insertAtIndex(e,t,n)}static insertAfter(e,t,r){const n=o.getScopeStatements(e).indexOf(r);o.insertAtIndex(e,t,n+1)}static insertAtIndex(e,t,r){t=o.parentizeScopeStatementsBeforeAppend(e,t),o.setScopeStatements(e,[...o.getScopeStatements(e).slice(0,r),...t,...o.getScopeStatements(e).slice(r)])}static prepend(e,t){t=o.parentizeScopeStatementsBeforeAppend(e,t),o.setScopeStatements(e,[...t,...o.getScopeStatements(e)])}static getScopeStatements(e){return n.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach((t=>{t.parentNode=e})),t}static setScopeStatements(e,t){n.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=o},9181:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFactory=void 0;const a=i(r(3913)),s=r(9789);class u{static programNode(e=[]){return{type:s.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}static arrayExpressionNode(e=[]){return{type:s.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}static arrowFunctionExpressionNode(e,t,r){return{type:s.NodeType.ArrowFunctionExpression,params:e,expression:t,body:r}}static assignmentExpressionNode(e,t,r){return{type:s.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static binaryExpressionNode(e,t,r){return{type:s.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static blockStatementNode(e=[]){return{type:s.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}static breakStatement(e){return{type:s.NodeType.BreakStatement,label:e,metadata:{ignoredNode:!1}}}static callExpressionNode(e,t=[],r=!1){return{type:s.NodeType.CallExpression,callee:e,optional:r,arguments:t,metadata:{ignoredNode:!1}}}static conditionalExpressionNode(e,t,r){return{type:s.NodeType.ConditionalExpression,test:e,consequent:t,alternate:r,metadata:{ignoredNode:!1}}}static continueStatement(e){return{type:s.NodeType.ContinueStatement,label:e,metadata:{ignoredNode:!1}}}static directiveNode(e,t){return{type:s.NodeType.ExpressionStatement,expression:e,directive:t,metadata:{ignoredNode:!1}}}static exportAllDeclarationNode(e){return{type:s.NodeType.ExportAllDeclaration,source:e,metadata:{ignoredNode:!1}}}static exportNamedDeclarationNode(e,t){return{type:s.NodeType.ExportNamedDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static expressionStatementNode(e){return{type:s.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}static functionDeclarationNode(e,t,r){return{type:s.NodeType.FunctionDeclaration,id:u.identifierNode(e),params:t,body:r,generator:!1,metadata:{ignoredNode:!1}}}static functionExpressionNode(e,t){return{type:s.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}static ifStatementNode(e,t,r){return Object.assign(Object.assign({type:s.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r}),{metadata:{ignoredNode:!1}})}static identifierNode(e){return{type:s.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}static importDeclarationNode(e,t){return{type:s.NodeType.ImportDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static literalNode(e,t){return t=void 0!==t?t:`'${e}'`,{type:s.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:a.Precedence.Primary},metadata:{ignoredNode:!1}}}static logicalExpressionNode(e,t,r){return{type:s.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static memberExpressionNode(e,t,r=!1,n=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,optional:n,property:t,metadata:{ignoredNode:!1}}}static objectExpressionNode(e){return{type:s.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}static propertyNode(e,t,r=!1){return{type:s.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}static returnStatementNode(e){return{type:s.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}static sequenceExpressionNode(e){return{type:s.NodeType.SequenceExpression,expressions:e,metadata:{ignoredNode:!1}}}static switchStatementNode(e,t){return{type:s.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}static switchCaseNode(e,t){return{type:s.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}static unaryExpressionNode(e,t,r=!0){return{type:s.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}static updateExpressionNode(e,t){return{type:s.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}static templateElement(e,t){return{type:s.NodeType.TemplateElement,value:e,tail:t,metadata:{ignoredNode:!1}}}static templateLiteral(e,t){return{type:s.NodeType.TemplateLiteral,expressions:e,quasis:t,metadata:{ignoredNode:!1}}}static variableDeclarationNode(e=[],t="var"){return{type:s.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}static variableDeclaratorNode(e,t){return{type:s.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}static whileStatementNode(e,t){return{type:s.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}t.NodeFactory=u},8983:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const n=r(9789);class o{static isArrayPatternNode(e){return e.type===n.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===n.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===n.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===n.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===n.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return o.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===n.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===n.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===n.NodeType.CallExpression}static isClassDeclarationNode(e){return e.type===n.NodeType.ClassDeclaration&&null!==e.id}static isContinueStatementNode(e){return e.type===n.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===n.NodeType.ExpressionStatement&&"directive"in e}static isExportAllDeclarationNode(e){return e.type===n.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===n.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===n.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===n.NodeType.ExpressionStatement&&!("directive"in e)}static isForOfStatementNode(e){return e.type===n.NodeType.ForOfStatement}static isFunctionNode(e){return o.isFunctionDeclarationNode(e)||o.isFunctionExpressionNode(e)||o.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===n.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===n.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===n.NodeType.Identifier}static isIfStatementNode(e){return e.type===n.NodeType.IfStatement}static isImportDeclarationNode(e){return e.type===n.NodeType.ImportDeclaration}static isImportSpecifierNode(e){return e.type===n.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=o.isLabeledStatementNode(t)&&t.label===e,n=o.isContinueStatementNode(t)&&t.label===e,i=o.isBreakStatementNode(t)&&t.label===e;return r||n||i}static isLabeledStatementNode(e){return e.type===n.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===n.NodeType.Literal}static isMemberExpressionNode(e){return e.type===n.NodeType.MemberExpression}static isMethodDefinitionNode(e){return e.type===n.NodeType.MethodDefinition}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return o.isProgramNode(e)||o.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return o.isNodeWithLexicalScope(e)||o.isBlockStatementNode(e)}static isNodeWithLexicalScopeStatements(e,t){return o.isProgramNode(e)||o.isBlockStatementNode(e)&&o.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return o.isProgramNode(e)||o.isBlockStatementNode(e)||o.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===n.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===n.NodeType.ObjectExpression}static isProgramNode(e){return e.type===n.NodeType.Program}static isPropertyNode(e){return e.type===n.NodeType.Property}static isRestElementNode(e){return e.type===n.NodeType.RestElement}static isReturnStatementNode(e){return e.type===n.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===n.NodeType.SequenceExpression}static isSpreadElementNode(e){return e.type===n.NodeType.SpreadElement}static isSuperNode(e){return e.type===n.NodeType.Super}static isSwitchCaseNode(e){return e.type===n.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===n.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===n.NodeType.TemplateLiteral}static isUnaryExpressionNode(e){return e.type===n.NodeType.UnaryExpression}static isUseStrictOperator(e){return o.isDirectiveNode(e)&&"use strict"===e.directive}static isVariableDeclarationNode(e){return e.type===n.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===n.NodeType.VariableDeclarator}static isWhileStatementNode(e){return e.type===n.NodeType.WhileStatement}static isYieldExpressionNode(e){return e.type===n.NodeType.YieldExpression}}t.NodeGuards=o,o.nodesWithLexicalStatements=[n.NodeType.ArrowFunctionExpression,n.NodeType.FunctionDeclaration,n.NodeType.FunctionExpression,n.NodeType.MethodDefinition]},8520:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const n=r(8983);class o{static getLexicalScope(e){return o.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return o.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==a?o.getLexicalScopesRecursive(a,t,r,++i):r}}t.NodeLexicalScopeUtils=o},7586:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const n=r(8983);t.NodeLiteralUtils=class{static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!n.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!n.NodeGuards.isImportDeclarationNode(t)||!(!n.NodeGuards.isExportAllDeclarationNode(t)&&!n.NodeGuards.isExportNamedDeclarationNode(t))}}},5301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===r.get(e,"replacedLiteral")}}t.NodeMetadata=r},3790:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const n=r(8983);class o{static getParentNodeWithStatements(e){return o.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return o.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return o.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return o.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(n.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithStatements(t)?e:o.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithStatements(t)?t:o.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(n.NodeGuards.isProgramNode(e)||n.NodeGuards.isNodeWithLexicalScopeStatements(e,a)&&i>0)&&r.push(e),e!==a?o.getParentNodesWithStatementsRecursive(a,t,r,++i):r}static getSiblingStatementByOffset(e,t){const r=o.getScopeOfNode(e),i=n.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,a=i.indexOf(e);return i[a+t]||null}}t.NodeStatementUtils=o},2815:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeUtils=void 0;const a=i(r(3913)),s=i(r(7085)),u=r(5371),l=r(3191),c=r(8983),d=r(5301);class p{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return p.parentizeAst(p.cloneRecursive(e))}static convertCodeToStructure(e){const t=l.ASTParserFacade.parse(e,{ecmaVersion:u.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(p.parentizeNode(e,t),c.NodeGuards.isLiteralNode(e)&&p.addXVerbatimPropertyTo(e),d.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce(((e,t)=>e+a.generate(t,{sourceMapWithCode:!0}).code),"")}static getUnaryExpressionArgumentNode(e){return c.NodeGuards.isUnaryExpressionNode(e.argument)?p.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return s.replace(e,{enter:p.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;const t={};return Object.keys(e).forEach((r=>{var n;if("parentNode"===r)return;const o=null!==(n=e[r])&&void 0!==n?n:null;let i;i=null===o||o instanceof RegExp?o:o instanceof Array?o.map(p.cloneRecursive):"object"==typeof o?p.cloneRecursive(o):o,t[r]=i})),t}}t.NodeUtils=p},6186:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const s=r(6700),u=r(2553),l=r(8983);let c=n=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const n=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(n,n,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const n=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(n,n,r)}traverseScopeIdentifiersRecursive(e,t,r){const o=t.variableScope,i=l.NodeGuards.isNodeWithBlockLexicalScope(o.block)?o.block:null,a=n.globalScopeNames.includes(o.type);if(i){for(const s of t.variables)s.name!==n.argumentsVariableName&&r({isGlobalDeclaration:a,isBubblingDeclaration:s.identifiers.some((e=>e.parentNode&&l.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand)),rootScope:e,variable:s,variableScope:o,variableLexicalScopeNode:i});for(const n of t.childScopes)this.traverseScopeIdentifiersRecursive(e,n,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const n=t.variableScope,o=l.NodeGuards.isNodeWithBlockLexicalScope(n.block)?n.block:null;if(o){for(const e of t.through)r({reference:e,variableLexicalScopeNode:o});for(const n of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,n,r)}}};c.argumentsVariableName="arguments",c.globalScopeNames=["global","module"],c=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.IScopeAnalyzer)),i("design:paramtypes",[Object])],c),t.ScopeIdentifiersTraverser=c},4081:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const s=r(6700),u=r(2553),l=r(5545),c=r(3552),d=r(7081),p=r(4867),g=r(5138),f=r(5114),h=r(1296),m=r(679),y=r(2932),b=r(4503),S=r(7312),_=r(875),C=r(8810),E=r(6485);let A=n=class{constructor(e,t){var r;const o=n.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:p.OptionsPreset.Default);Object.assign(this,o,e);const i=l.validateSync(this,n.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n"+C.ValidationErrorsFormatter.format(i));Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=n.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};A.optionPresetsMap=new Map([[p.OptionsPreset.Default,y.DEFAULT_PRESET],[p.OptionsPreset.LowObfuscation,b.LOW_OBFUSCATION_PRESET],[p.OptionsPreset.MediumObfuscation,S.MEDIUM_OBFUSCATION_PRESET],[p.OptionsPreset.HighObfuscation,_.HIGH_OBFUSCATION_PRESET]]),A.validatorOptions={validationError:{target:!1}},o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"compact",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"controlFlowFlattening",void 0),o([l.IsNumber(),l.Min(0),l.Max(1),i("design:type",Number)],A.prototype,"controlFlowFlatteningThreshold",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"deadCodeInjection",void 0),o([l.IsNumber(),i("design:type",Number)],A.prototype,"deadCodeInjectionThreshold",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"debugProtection",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"debugProtectionInterval",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"disableConsoleOutput",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsString({each:!0}),E.IsAllowedForObfuscationTargets([d.ObfuscationTarget.Browser,d.ObfuscationTarget.BrowserNoEval]),i("design:type",Array)],A.prototype,"domainLock",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsString({each:!0}),i("design:type",Array)],A.prototype,"forceTransformStrings",void 0),o([l.IsIn([c.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,c.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,c.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,c.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),i("design:type",Object)],A.prototype,"identifierNamesGenerator",void 0),o([l.IsString(),i("design:type",String)],A.prototype,"identifiersPrefix",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsString({each:!0}),l.ValidateIf((e=>e.identifierNamesGenerator===c.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator)),l.ArrayNotEmpty(),i("design:type",Array)],A.prototype,"identifiersDictionary",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"ignoreRequireImports",void 0),o([l.IsString(),i("design:type",String)],A.prototype,"inputFileName",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"log",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"numbersToExpressions",void 0),o([l.IsIn([p.OptionsPreset.Default,p.OptionsPreset.LowObfuscation,p.OptionsPreset.MediumObfuscation,p.OptionsPreset.HighObfuscation]),i("design:type",String)],A.prototype,"optionsPreset",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"renameGlobals",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"renameProperties",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsString({each:!0}),i("design:type",Array)],A.prototype,"reservedNames",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsString({each:!0}),i("design:type",Array)],A.prototype,"reservedStrings",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"rotateStringArray",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"selfDefending",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"shuffleStringArray",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"simplify",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"sourceMap",void 0),o([l.IsString(),l.ValidateIf((e=>Boolean(e.sourceMapBaseUrl))),l.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),i("design:type",String)],A.prototype,"sourceMapBaseUrl",void 0),o([l.IsString(),i("design:type",String)],A.prototype,"sourceMapFileName",void 0),o([l.IsIn([g.SourceMapMode.Inline,g.SourceMapMode.Separate]),i("design:type",Object)],A.prototype,"sourceMapMode",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"splitStrings",void 0),o([l.IsNumber(),l.ValidateIf((e=>Boolean(e.splitStrings))),l.Min(1),i("design:type",Number)],A.prototype,"splitStringsChunkLength",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"stringArray",void 0),o([l.IsArray(),l.ArrayUnique(),l.IsIn([h.StringArrayEncoding.None,h.StringArrayEncoding.Base64,h.StringArrayEncoding.Rc4],{each:!0}),i("design:type",Array)],A.prototype,"stringArrayEncoding",void 0),o([l.IsArray(),l.ArrayNotEmpty(),l.ArrayUnique(),l.IsIn([f.StringArrayIndexesType.HexadecimalNumber,f.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),i("design:type",Array)],A.prototype,"stringArrayIndexesType",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"stringArrayIndexShift",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"stringArrayWrappersChainedCalls",void 0),o([l.IsNumber(),l.Min(0),i("design:type",Number)],A.prototype,"stringArrayWrappersCount",void 0),o([l.IsNumber(),l.Min(2),i("design:type",Number)],A.prototype,"stringArrayWrappersParametersMaxCount",void 0),o([l.IsIn([m.StringArrayWrappersType.Variable,m.StringArrayWrappersType.Function]),i("design:type",String)],A.prototype,"stringArrayWrappersType",void 0),o([l.IsNumber(),l.Min(0),l.Max(1),i("design:type",Number)],A.prototype,"stringArrayThreshold",void 0),o([l.IsIn([d.ObfuscationTarget.Browser,d.ObfuscationTarget.BrowserNoEval,d.ObfuscationTarget.Node]),i("design:type",Object)],A.prototype,"target",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"transformObjectKeys",void 0),o([l.IsBoolean(),i("design:type",Boolean)],A.prototype,"unicodeEscapeSequence",void 0),A=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.TInputOptions)),a(1,s.inject(u.ServiceIdentifiers.IOptionsNormalizer)),i("design:paramtypes",[Object,Object])],A),t.Options=A},6181:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const i=r(6700),a=r(7031),s=r(4007),u=r(2114),l=r(2979),c=r(4993),d=r(2135),p=r(9309),g=r(3360),f=r(5084),h=r(6516),m=r(1343),y=r(9553),b=r(3783);let S=n=class{normalize(e){let t=Object.assign({},e);for(const e of n.normalizerRules)t=e(t);return t}};S.normalizerRules=[a.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,u.DeadCodeInjectionThresholdRule,l.DomainLockRule,c.InputFileNameRule,d.SeedRule,p.SelfDefendingRule,g.SourceMapBaseUrlRule,f.SourceMapFileNameRule,h.SplitStringsChunkLengthRule,m.StringArrayRule,y.StringArrayEncodingRule,b.StringArrayWrappersChainedCallsRule],S=n=o([i.injectable()],S),t.OptionsNormalizer=S},8810:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce(((e,t)=>[...e,r.formatWithNestedConstraints(t)]),[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;return t?`\`${e.property}\` errors:\n${Object.keys(t).map((e=>` - ${t[e]}\n`)).join()}`:`\`${e.property}\` error\n`}}t.ValidationErrorsFormatter=r},7031:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0,t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e=Object.assign(Object.assign({},e),{controlFlowFlattening:!1,controlFlowFlatteningThreshold:0})),e)},4007:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const n=r(2932);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e=Object.assign(Object.assign({},e),{deadCodeInjection:!0,stringArray:!0})).stringArrayThreshold||(e=Object.assign(Object.assign({},e),{stringArray:!0,stringArrayThreshold:n.DEFAULT_PRESET.stringArrayThreshold}))),e)},2114:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0,t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e=Object.assign(Object.assign({},e),{deadCodeInjection:!1,deadCodeInjectionThreshold:0})),e)},2979:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const n=r(1700);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(n.Utils.extractDomainFrom(r));e=Object.assign(Object.assign({},e),{domainLock:t})}return e}},4993:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const n=r(4413);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(n.StringSeparator.Dot).slice(0,-1).join(n.StringSeparator.Dot)||t,e=Object.assign(Object.assign({},e),{inputFileName:t+".js"})),e}},2135:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>e.seed?Object.assign(Object.assign({},e),{seed:e.seed}):Object.assign(Object.assign({},e),{seed:(0,999999999,Math.floor(1e9*Math.random()+0))})},9309:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0,t.SelfDefendingRule=e=>(e.selfDefending&&(e=Object.assign(Object.assign({},e),{compact:!0,selfDefending:!0})),e)},3360:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0,t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:t+"/"})),e):e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:""})}},5084:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const n=r(4413);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(n.StringSeparator.Dot);const o=r.length,i=r[o-1];o>1&&i.length<=3&&(r=r.slice(0,-1)),t=r.join(n.StringSeparator.Dot),e=Object.assign(Object.assign({},e),{sourceMapFileName:t+".js.map"})}return e}},6516:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},9553:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const n=r(1296);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e=Object.assign(Object.assign({},e),{stringArrayEncoding:[n.StringArrayEncoding.None]})),e)},1343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const n=r(1296);t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:[n.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0})),e)},3783:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0,t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e=Object.assign(Object.assign({},e),{stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0})),e)},2932:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const n=r(3552),o=r(7081),i=r(4867),a=r(5138),s=r(5114),u=r(1296),l=r(679);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:n.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:i.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:[u.StringArrayEncoding.None],stringArrayIndexesType:[s.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:l.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:o.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},875:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const n=r(4867),o=r(1296),i=r(7312);t.HIGH_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},i.MEDIUM_OBFUSCATION_PRESET),{controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:!0,optionsPreset:n.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayEncoding:[o.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1}))},4503:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const n=r(4867),o=r(2932);t.LOW_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},o.DEFAULT_PRESET),{disableConsoleOutput:!0,optionsPreset:n.OptionsPreset.LowObfuscation,rotateStringArray:!0,selfDefending:!0,shuffleStringArray:!0,simplify:!0}))},7312:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const n=r(4867),o=r(1296),i=r(679),a=r(4503);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},a.LOW_OBFUSCATION_PRESET),{controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:n.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayEncoding:[o.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:i.StringArrayWrappersType.Function,transformObjectKeys:!0}))},9237:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const n=r(3552),o=r(7081),i=r(5138),a=r(1296),s=r(679),u=r(5114);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:n.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:[a.StringArrayEncoding.None],stringArrayIndexesType:[u.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:s.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:o.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},6485:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=void 0;const o=r(5545),i=n(r(4063)),a=r(4413),s=r(2932);t.IsAllowedForObfuscationTargets=function(e,t){return(r,n)=>{o.registerDecorator({propertyName:n,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const o=r.object,a=s.DEFAULT_PRESET[n];return i.default(t,a)||e.includes(o.target)},defaultMessage:t=>"This option allowed only for obfuscation targets: "+e.join(a.StringSeparator.Comma+" ")}})}}},658:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCode=void 0;const a=r(6700),s=r(2553),u=r(626),l=r(5138);let c=class{constructor(e,t){this.cryptUtils=e,this.options=t}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getObfuscatedCode(){return this.correctObfuscatedCode()}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case l.SourceMapMode.Inline:t+="data:application/json;base64,"+this.cryptUtils.btoa(this.sourceMap);break;case l.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};n([u.initializable(),o("design:type",String)],c.prototype,"obfuscatedCode",void 0),n([u.initializable(),o("design:type",String)],c.prototype,"sourceMap",void 0),c=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.ICryptUtils)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],c),t.ObfuscatedCode=c},7865:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0,t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},9559:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayStorage=void 0;const a=r(6700),s=r(2553),u=r(626);let l=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};n([u.initializable(),o("design:type",Array)],l.prototype,"storage",void 0),n([u.initializable(),o("design:type",String)],l.prototype,"storageId",void 0),n([a.postConstruct(),o("design:type",Function),o("design:paramtypes",[]),o("design:returntype",void 0)],l.prototype,"initialize",null),l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.ArrayStorage=l},2814:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const a=r(6700),s=r(2553),u=r(626);let l=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};n([u.initializable(),o("design:type",String)],l.prototype,"storageId",void 0),n([u.initializable(),o("design:type",Map)],l.prototype,"storage",void 0),n([a.postConstruct(),o("design:type",Function),o("design:paramtypes",[]),o("design:returntype",void 0)],l.prototype,"initialize",null),l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.MapStorage=l},7359:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const s=r(6700),u=r(2553),l=r(7705),c=r(2814);let d=n=class extends c.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),n.customCodeHelperGroupsList.forEach((e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)}))}};d.customCodeHelperGroupsList=[l.CustomCodeHelperGroup.ConsoleOutput,l.CustomCodeHelperGroup.DebugProtection,l.CustomCodeHelperGroup.DomainLock,l.CustomCodeHelperGroup.SelfDefending,l.CustomCodeHelperGroup.StringArray],o([s.postConstruct(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],d.prototype,"initialize",null),d=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),a(1,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(2,s.inject(u.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],d),t.CustomCodeHelperGroupStorage=d},2835:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0;const a=r(6700),s=r(2553),u=r(2814);let l=class extends u.MapStorage{constructor(e,t){super(e,t)}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.ControlFlowStorage=l},5159:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralNodesCacheStorage=void 0;const a=r(6700),s=r(2553),u=r(1296),l=r(2814);let c=class extends l.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==u.StringArrayEncoding.Rc4&&this.storage.has(e)}};c=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],c),t.LiteralNodesCacheStorage=c},6930:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=void 0;const a=r(6700),s=r(2553),u=r(2814);let l=class extends u.MapStorage{constructor(e,t){super(e,t)}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=l},19:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperNamesDataStorage=void 0;const a=r(6700),s=r(2553),u=r(2814);let l=class extends u.MapStorage{constructor(e,t){super(e,t)}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),o("design:paramtypes",[Object,Object])],l),t.StringArrayScopeCallsWrapperNamesDataStorage=l},5046:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const s=r(6700),u=r(2553),l=r(1296),c=r(2814);let d=n=class extends c.MapStorage{constructor(e,t,r,o,i){super(r,o),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(o),this.arrayUtils=t,this.cryptUtilsSwappedAlphabet=i,this.rc4Keys=this.randomGenerator.getRandomGenerator().n((()=>this.randomGenerator.getRandomGenerator().string({length:n.rc4KeyLength})),n.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(n.minimumIndexShiftAmount,n.maximumIndexShiftAmount):0,this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(n.minimumRotationAmount,n.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(n.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const o=this.identifierNamesGenerator.generateForGlobalScope(n.stringArrayNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,o),o}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map((([e,t],r)=>(t.index=r,[e,t]))).sort((([,e],[,t])=>e.index-t.index)))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:n}=this.getEncodedValue(e),o=this.storage.get(t);if(o)return o;const i={encodedValue:t,encoding:r,decodeKey:n,value:e,index:this.getLength()};return this.storage.set(t,i),i}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case l.StringArrayEncoding.Rc4:{const n=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),o=this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(e,n)),i=null!==(t=this.rc4EncodedValuesSourcesCache.get(o))&&void 0!==t?t:[];let a=i.length;return(!a||!i.includes(e))&&(i.push(e),a++),this.rc4EncodedValuesSourcesCache.set(o,i),a>1?this.getEncodedValue(e):{encodedValue:o,encoding:r,decodeKey:n}}case l.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtilsSwappedAlphabet.btoa(e),encoding:r,decodeKey:t}}default:return{encodedValue:e,encoding:r,decodeKey:null}}}};d.minimumRotationAmount=100,d.maximumRotationAmount=500,d.minimumIndexShiftAmount=100,d.maximumIndexShiftAmount=500,d.rc4KeyLength=4,d.rc4KeysCount=50,d.stringArrayNameLength=4,o([s.postConstruct(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],d.prototype,"initialize",null),d=n=o([s.injectable(),a(0,s.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,s.inject(u.ServiceIdentifiers.IArrayUtils)),a(2,s.inject(u.ServiceIdentifiers.IRandomGenerator)),a(3,s.inject(u.ServiceIdentifiers.IOptions)),a(4,s.inject(u.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),i("design:paramtypes",[Function,Object,Object,Object,Object])],d),t.StringArrayStorage=d},3621:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VisitedLexicalScopeNodesStackStorage=void 0;const a=r(6700),s=r(2553),u=r(9559);let l=class extends u.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){var e;const t=this.getLength();return null!==(e=this.get(t-2))&&void 0!==e?e:void 0}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};l=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),i(1,a.inject(s.ServiceIdentifiers.IOptions)),i(2,a.inject(s.ServiceIdentifiers.IArrayUtils)),o("design:paramtypes",[Object,Object,Object])],l),t.VisitedLexicalScopeNodesStackStorage=l},576:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const n of e){const e=t[n].runAfter;if(e&&e.length)for(const o of e)void 0===t[o]?r.push([n,null]):r.push([o,n]);else r.push([n,null])}return r}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.ILevelledTopologicalSorter)),o("design:paramtypes",[Object])],u),t.AbstractTransformerNamesGroupsBuilder=u},6959:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const a=r(6700),s=r(2553);let u=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;r<e;r++)t.push(r);return t}fillWithRange(e,t){const r=[];for(let n=0;n<e;n++)r.push(t(n));return r}findMostOccurringElement(e){var t;if(!e.length)return null;const r={};let n=e[0],o=1;for(const i of e){const e=(null!==(t=r[i])&&void 0!==t?t:0)+1;e>o&&(n=i,o=e),r[i]=e}return n}getLastElement(e){var t;return null!==(t=e[e.length-1])&&void 0!==t?t:void 0}rotate(e,t){if(!e.length)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const r=e;let n;for(;t--;)n=r.pop(),n&&r.unshift(n);return r}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};u=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),o("design:paramtypes",[Object])],u),t.ArrayUtils=u},5678:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const a=r(6700),s=r(2553),u=r(1047),l=r(4291),c=r(1700);let d=class{constructor(e){this.base64Alphabet=u.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(`${c.Utils.hexadecimalPrefix}${t}`,16))));for(let n,o,i=0,a=t;e.charAt(0|i)||(a="=",i%1);r+=a.charAt(63&n>>8-i%1*8)){if(o=e.charCodeAt(i+=3/4),o>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");n=n<<8|o}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:l.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${n=e,n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var n;const o=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(o),r=o.join(""),[((e,t)=>{let r=-1,n=-1,o="";for(;r<e.length||n<t.length;)this.randomGenerator.getMathRandom()<.5&&n<t.length?o+=t.charAt(++n):o+=e.charAt(++r);return o})(e,r),r]}rc4(e,t){const r=[];let n,o=0,i="";for(var a=0;a<256;a++)r[a]=a;for(a=0;a<256;a++)o=(o+r[a]+t.charCodeAt(a%t.length))%256,n=r[a],r[a]=r[o],r[o]=n;a=0,o=0;for(let t=0;t<e.length;t++)o=(o+r[a=(a+1)%256])%256,n=r[a],r[a]=r[o],r[o]=n,i+=String.fromCharCode(e.charCodeAt(t)^r[(r[a]+r[o])%256]);return i}};d=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),o("design:paramtypes",[Object])],d),t.CryptUtils=d},8300:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},o=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtilsSwappedAlphabet=void 0;const a=r(6700),s=r(2553),u=r(99),l=r(5678);let c=class extends l.CryptUtils{constructor(e){super(e),this.base64Alphabet=u.base64alphabetSwapped}};c=n([a.injectable(),i(0,a.inject(s.ServiceIdentifiers.IRandomGenerator)),o("design:paramtypes",[Object])],c),t.CryptUtilsSwappedAlphabet=c},3062:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;const i=r(6700);let a=n=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);const o=new RegExp("[\\s\\S]","g");let i,a;const s=e.replace(o,(e=>t||n.forceEscapeCharactersRegExp.test(e)?(n.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e));return this.stringsCache.set(r,s),this.stringsCache.set(`${s}-${String(t)}`,s),s}};a.ASCIICharactersRegExp=/[\x00-\x7F]/,a.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,a=n=o([i.injectable()],a),t.EscapeSequenceEncoder=a},5579:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;const o=r(6700);let i=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const n of e)void 0===r[n]&&this.visit(t,r,n);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error("Unable to remove non-root node: "+e);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t)for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error("Unknown node: "+e);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const n=t[r];if("visiting"===n)throw new Error("Detected cycle involving node: "+r);if(n)return;t[r]="visiting";const o=this.getPrecedents(r);for(const r of o)this.visit(e,t,r);t[r]="ok",e.push(r)}};i=n([o.injectable()],i),t.LevelledTopologicalSorter=i},2303:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const n=r(1700);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):e.toString(16)+"n";return`${n.Utils.hexadecimalPrefix}${t}`}static isCeil(e){return"number"!=typeof e||e%1==0}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return e<Number.MIN_SAFE_INTEGER||e>Number.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),n=e%2==0?1:2;for(let o=1;o<=r;o+=n){if(e%o!=0)continue;t.push(-o,o);const r=e/o;r!==o&&t.push(-r,r)}return t.sort(((e,t)=>e-t))}}},4291:function(e,t,r){"use strict";var n,o=this&&this.__decorate||function(e,t,r,n){var o,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const u=r(6700),l=r(2553),c=s(r(2568)),d=r(714),p=r(626),g=r(3477),f=r(4287);let h=n=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new d.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomIntegerExcluding(e,t,r){const n=[];for(let o=e;o<=t;o++)r.includes(o)||n.push(o);return this.randomGenerator.pickone(n)}getRandomString(e,t=n.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();return(""+e).split("|").length>1?e:`${e}|${c.default(this.sourceCode.getSourceCode())}`}};h.randomGeneratorPool=`${g.alphabetString}${f.alphabetStringUppercase}`,o([p.initializable(),i("design:type",Object)],h.prototype,"randomGenerator",void 0),o([u.postConstruct(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],h.prototype,"initialize",null),h=n=o([u.injectable(),a(0,u.inject(l.ServiceIdentifiers.ISourceCode)),a(1,u.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],h),t.RandomGenerator=h},6493:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtils=void 0;const o=n(r(1153));t.StringUtils=class{static escapeJsString(e){return o.default(e)}}},1700:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){return e&&t?`${e}_${new Date(parseInt(t,10)).toISOString()}`:"unknown"}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze(Object.assign({},e))}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},384:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},5955:(e,t,r)=>{"use strict";var n=r(2584),o=r(8662),i=r(6430),a=r(5692);function s(e){return e.call.bind(e)}var u="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,c=s(Object.prototype.toString),d=s(Number.prototype.valueOf),p=s(String.prototype.valueOf),g=s(Boolean.prototype.valueOf);if(u)var f=s(BigInt.prototype.valueOf);if(l)var h=s(Symbol.prototype.valueOf);function m(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function y(e){return"[object Map]"===c(e)}function b(e){return"[object Set]"===c(e)}function S(e){return"[object WeakMap]"===c(e)}function _(e){return"[object WeakSet]"===c(e)}function C(e){return"[object ArrayBuffer]"===c(e)}function E(e){return"undefined"!=typeof ArrayBuffer&&(C.working?C(e):e instanceof ArrayBuffer)}function A(e){return"[object DataView]"===c(e)}function N(e){return"undefined"!=typeof DataView&&(A.working?A(e):e instanceof DataView)}function v(e){return"[object SharedArrayBuffer]"===c(e)}function T(e){return"undefined"!=typeof SharedArrayBuffer&&(v.working?v(e):e instanceof SharedArrayBuffer)}function I(e){return m(e,d)}function O(e){return m(e,p)}function D(e){return m(e,g)}function R(e){return u&&m(e,f)}function P(e){return l&&m(e,h)}t.isArgumentsObject=n,t.isGeneratorFunction=o,t.isTypedArray=a,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):a(e)||N(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},y.working="undefined"!=typeof Map&&y(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(y.working?y(e):e instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(b.working?b(e):e instanceof Set)},S.working="undefined"!=typeof WeakMap&&S(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(S.working?S(e):e instanceof WeakMap)},_.working="undefined"!=typeof WeakSet&&_(new WeakSet),t.isWeakSet=function(e){return _(e)},C.working="undefined"!=typeof ArrayBuffer&&C(new ArrayBuffer),t.isArrayBuffer=E,A.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&A(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=N,v.working="undefined"!=typeof SharedArrayBuffer&&v(new SharedArrayBuffer),t.isSharedArrayBuffer=T,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===c(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===c(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===c(e)},t.isGeneratorObject=function(e){return"[object Generator]"===c(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===c(e)},t.isNumberObject=I,t.isStringObject=O,t.isBooleanObject=D,t.isBigIntObject=R,t.isSymbolObject=P,t.isBoxedPrimitive=function(e){return I(e)||O(e)||D(e)||R(e)||P(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(E(e)||T(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},9539:(e,t,r)=>{var n=r(4155),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++)r[t[n]]=Object.getOwnPropertyDescriptor(e,t[n]);return r},i=/%[sdj%]/g;t.format=function(e){if(!S(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(l(arguments[r]));return t.join(" ")}r=1;for(var n=arguments,o=n.length,a=String(e).replace(i,(function(e){if("%%"===e)return"%";if(r>=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r<o;s=n[++r])y(s)||!E(s)?a+=" "+s:a+=" "+l(s);return a},t.deprecate=function(e,r){if(void 0!==n&&!0===n.noDeprecation)return e;if(void 0===n)return function(){return t.deprecate(e,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(n.throwDeprecation)throw new Error(r);n.traceDeprecation?console.trace(r):console.error(r),o=!0}return e.apply(this,arguments)}};var a={},s=/^$/;if(n.env.NODE_DEBUG){var u=n.env.NODE_DEBUG;u=u.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+u+"$","i")}function l(e,r){var n={seen:[],stylize:d};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&t._extend(n,r),_(n.showHidden)&&(n.showHidden=!1),_(n.depth)&&(n.depth=2),_(n.colors)&&(n.colors=!1),_(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),p(n,e,n.depth)}function c(e,t){var r=l.styles[t];return r?"["+l.colors[r][0]+"m"+e+"["+l.colors[r][1]+"m":e}function d(e,t){return e}function p(e,r,n){if(e.customInspect&&r&&v(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,e);return S(o)||(o=p(e,o,n)),o}var i=function(e,t){if(_(t))return e.stylize("undefined","undefined");if(S(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return b(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}(e,r);if(i)return i;var a=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),N(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return g(r);if(0===a.length){if(v(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(C(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(A(r))return e.stylize(Date.prototype.toString.call(r),"date");if(N(r))return g(r)}var l,c="",d=!1,E=["{","}"];return h(r)&&(d=!0,E=["[","]"]),v(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),C(r)&&(c=" "+RegExp.prototype.toString.call(r)),A(r)&&(c=" "+Date.prototype.toUTCString.call(r)),N(r)&&(c=" "+g(r)),0!==a.length||d&&0!=r.length?n<0?C(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),l=d?function(e,t,r,n,o){for(var i=[],a=0,s=t.length;a<s;++a)R(t,String(a))?i.push(f(e,t,r,n,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(f(e,t,r,n,o,!0))})),i}(e,r,n,s,a):a.map((function(t){return f(e,r,n,s,t,d)})),e.seen.pop(),function(e,t,r){return e.reduce((function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}(l,c,E)):E[0]+c+E[1]}function g(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),R(n,o)||(a="["+o+"]"),s||(e.seen.indexOf(u.value)<0?(s=y(r)?p(e,u.value,null):p(e,u.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),_(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function b(e){return"number"==typeof e}function S(e){return"string"==typeof e}function _(e){return void 0===e}function C(e){return E(e)&&"[object RegExp]"===T(e)}function E(e){return"object"==typeof e&&null!==e}function A(e){return E(e)&&"[object Date]"===T(e)}function N(e){return E(e)&&("[object Error]"===T(e)||e instanceof Error)}function v(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function I(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(s.test(e)){var r=n.pid;a[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else a[e]=function(){};return a[e]},t.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=r(5955),t.isArray=h,t.isBoolean=m,t.isNull=y,t.isNullOrUndefined=function(e){return null==e},t.isNumber=b,t.isString=S,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=_,t.isRegExp=C,t.types.isRegExp=C,t.isObject=E,t.isDate=A,t.types.isDate=A,t.isError=N,t.types.isNativeError=N,t.isFunction=v,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=r(384);var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function D(){var e=new Date,t=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":");return[e.getDate(),O[e.getMonth()],t].join(" ")}function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",D(),t.format.apply(t,arguments))},t.inherits=r(5717),t._extend=function(e,t){if(!t||!E(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function M(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(P&&e[P]){var t;if("function"!=typeof(t=e[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,n){e?r(e):t(n)}));try{e.apply(this,o)}catch(e){r(e)}return n}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),P&&Object.defineProperty(t,P,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,o(e))},t.promisify.custom=P,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],r=0;r<arguments.length;r++)t.push(arguments[r]);var o=t.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};e.apply(this,t).then((function(e){n.nextTick(a.bind(null,null,e))}),(function(e){n.nextTick(M.bind(null,e,a))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,o(e)),t}},8966:(e,t,r)=>{"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=$e(r(8469)),i=$e(r(7536)),a=$e(r(1359)),s=$e(r(557)),u=$e(r(2315)),l=$e(r(9466)),c=$e(r(661)),d=$e(r(3868)),p=$e(r(2492)),g=$e(r(8999)),f=$e(r(1028)),h=$e(r(7795)),m=$e(r(221)),y=$e(r(9493)),b=$e(r(7380)),S=we(r(9234)),_=we(r(4583)),C=$e(r(4986)),E=$e(r(1513)),A=$e(r(4595)),N=$e(r(3928)),v=$e(r(7245)),T=$e(r(4094)),I=$e(r(7146)),O=$e(r(2941)),D=$e(r(9019)),R=$e(r(3590)),P=$e(r(6826)),M=$e(r(2828)),F=$e(r(937)),x=we(r(9146)),L=$e(r(5218)),w=$e(r(7117)),$=$e(r(4313)),B=$e(r(8335)),G=$e(r(6298)),j=$e(r(6454)),U=$e(r(6648)),k=$e(r(4339)),V=$e(r(8177)),H=$e(r(2438)),W=$e(r(368)),K=$e(r(8874)),z=$e(r(4979)),Y=$e(r(1008)),X=$e(r(4069)),q=$e(r(4958)),Z=$e(r(3235)),J=$e(r(7278)),Q=$e(r(9131)),ee=$e(r(3315)),te=$e(r(1464)),re=$e(r(7228)),ne=$e(r(682)),oe=$e(r(9396)),ie=$e(r(5807)),ae=$e(r(7148)),se=$e(r(7612)),ue=$e(r(9887)),le=we(r(8355)),ce=$e(r(2129)),de=$e(r(94)),pe=$e(r(8021)),ge=$e(r(5061)),fe=$e(r(4611)),he=$e(r(1727)),me=$e(r(6776)),ye=$e(r(2782)),be=$e(r(2689)),Se=$e(r(555)),_e=$e(r(2776)),Ce=$e(r(4554)),Ee=$e(r(478)),Ae=we(r(8140)),Ne=$e(r(4959)),ve=$e(r(9778)),Te=$e(r(4790)),Ie=$e(r(5152)),Oe=$e(r(4816)),De=$e(r(8035)),Re=$e(r(4714)),Pe=$e(r(4928)),Me=$e(r(8346)),Fe=$e(r(2900)),xe=$e(r(8220));function Le(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return Le=function(){return e},e}function we(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=Le();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,t&&t.set(e,r),r}function $e(e){return e&&e.__esModule?e:{default:e}}var Be={version:"13.0.0",toDate:o.default,toFloat:i.default,toInt:a.default,toBoolean:s.default,equals:u.default,contains:l.default,matches:c.default,isEmail:d.default,isURL:p.default,isMACAddress:g.default,isIP:f.default,isIPRange:h.default,isFQDN:m.default,isBoolean:y.default,isIBAN:V.default,isBIC:H.default,isAlpha:S.default,isAlphaLocales:S.locales,isAlphanumeric:_.default,isAlphanumericLocales:_.locales,isNumeric:C.default,isPassportNumber:E.default,isPort:A.default,isLowercase:N.default,isUppercase:v.default,isAscii:T.default,isFullWidth:I.default,isHalfWidth:O.default,isVariableWidth:D.default,isMultibyte:R.default,isSemVer:P.default,isSurrogatePair:M.default,isInt:F.default,isFloat:x.default,isFloatLocales:x.locales,isDecimal:L.default,isHexadecimal:w.default,isOctal:$.default,isDivisibleBy:B.default,isHexColor:G.default,isRgbColor:j.default,isHSL:U.default,isISRC:k.default,isMD5:W.default,isHash:K.default,isJWT:z.default,isJSON:Y.default,isEmpty:X.default,isLength:q.default,isLocale:b.default,isByteLength:Z.default,isUUID:J.default,isMongoId:Q.default,isAfter:ee.default,isBefore:te.default,isIn:re.default,isCreditCard:ne.default,isIdentityCard:oe.default,isEAN:ie.default,isISIN:ae.default,isISBN:se.default,isISSN:ue.default,isMobilePhone:le.default,isMobilePhoneLocales:le.locales,isPostalCode:Ae.default,isPostalCodeLocales:Ae.locales,isEthereumAddress:ce.default,isCurrency:de.default,isBtcAddress:pe.default,isISO8601:ge.default,isRFC3339:fe.default,isISO31661Alpha2:he.default,isISO31661Alpha3:me.default,isBase32:ye.default,isBase64:be.default,isDataURI:Se.default,isMagnetURI:_e.default,isMimeType:Ce.default,isLatLong:Ee.default,ltrim:Ne.default,rtrim:ve.default,trim:Te.default,escape:Ie.default,unescape:Oe.default,stripLow:De.default,whitelist:Re.default,blacklist:Pe.default,isWhitelisted:Me.default,normalizeEmail:Fe.default,toString,isSlug:xe.default};t.default=Be,e.exports=t.default,e.exports.default=t.default},79:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.commaDecimal=t.dotDecimal=t.arabicLocales=t.englishLocales=t.decimal=t.alphanumeric=t.alpha=void 0;var r={"en-US":/^[A-Z]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,"fa-IR":/^['آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی']+$/i};t.alpha=r;var n={"en-US":/^[0-9A-Z]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,"fa-IR":/^['0-9آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی۱۲۳۴۵۶۷۸۹۰']+$/i};t.alphanumeric=n;var o={"en-US":".",ar:"٫"};t.decimal=o;var i=["AU","GB","HK","IN","NZ","ZA","ZM"];t.englishLocales=i;for(var a,s=0;s<i.length;s++)r[a="en-".concat(i[s])]=r["en-US"],n[a]=n["en-US"],o[a]=o["en-US"];var u=["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"];t.arabicLocales=u;for(var l,c=0;c<u.length;c++)r[l="ar-".concat(u[c])]=r.ar,n[l]=n.ar,o[l]=o.ar;var d=["ar-EG","ar-LB","ar-LY"];t.dotDecimal=d;var p=["bg-BG","cs-CZ","da-DK","de-DE","el-GR","en-ZM","es-ES","fr-FR","it-IT","ku-IQ","hu-HU","nb-NO","nn-NO","nl-NL","pl-PL","pt-PT","ru-RU","sl-SI","sr-RS@latin","sr-RS","sv-SE","tr-TR","uk-UA"];t.commaDecimal=p;for(var g=0;g<d.length;g++)o[d[g]]=o["en-US"];for(var f=0;f<p.length;f++)o[p[f]]=",";r["pt-BR"]=r["pt-PT"],n["pt-BR"]=n["pt-PT"],o["pt-BR"]=o["pt-PT"],r["pl-Pl"]=r["pl-PL"],n["pl-Pl"]=n["pl-PL"],o["pl-Pl"]=o["pl-PL"]},4928:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[".concat(t,"]+"),"g"),"")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},9466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)(e),e.indexOf((0,o.default)(t))>=0};var n=i(r(5571)),o=i(r(1913));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},2315:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),e===t};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},5152:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},3315:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,n.default)(e);var r=(0,o.default)(t),i=(0,o.default)(e);return!!(i&&r&&i>r)};var n=i(r(5571)),o=i(r(8469));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},9234:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,o.default)(e),t in i.alpha)return i.alpha[t].test(e);throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=r(79),a=Object.keys(i.alpha);t.locales=a},4583:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,o.default)(e),t in i.alphanumeric)return i.alphanumeric[t].test(e);throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=r(79),a=Object.keys(i.alphanumeric);t.locales=a},4094:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[\x00-\x7F]+$/;e.exports=t.default,e.exports.default=t.default},2438:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/;e.exports=t.default,e.exports.default=t.default},2782:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);var t=e.length;return!!(t>0&&t%8==0&&i.test(e))};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[A-Z2-7]+=*$/;e.exports=t.default,e.exports.default=t.default},2689:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);var t=e.length;if(!t||t%4!=0||i.test(e))return!1;var r=e.indexOf("=");return-1===r||r===t-1||r===t-2&&"="===e[t-1]};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/[^A-Z0-9+\/=]/i;e.exports=t.default,e.exports.default=t.default},1464:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,n.default)(e);var r=(0,o.default)(t),i=(0,o.default)(e);return!!(i&&r&&i<r)};var n=i(r(5571)),o=i(r(8469));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},9493:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),["true","false","1","0"].indexOf(e)>=0};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},8021:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;e.exports=t.default,e.exports.default=t.default},3235:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,n;(0,o.default)(e),"object"===i(t)?(r=t.min||0,n=t.max):(r=arguments[1],n=arguments[2]);var a=encodeURI(e).split(/%..|./).length-1;return a>=r&&(void 0===n||a<=n)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=t.default,e.exports.default=t.default},682:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);var t=e.replace(/[- ]+/g,"");if(!i.test(t))return!1;for(var r,n,a,s=0,u=t.length-1;u>=0;u--)r=t.substring(u,u+1),n=parseInt(r,10),s+=a&&(n*=2)>=10?n%10+1:n,a=!a;return!(s%10!=0||!t)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/;e.exports=t.default,e.exports.default=t.default},94:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),function(e){var t="\\d{".concat(e.digits_after_decimal[0],"}");e.digits_after_decimal.forEach((function(e,r){0!==r&&(t="".concat(t,"|\\d{").concat(e,"}"))}));var r="(\\".concat(e.symbol.replace(/\./g,"\\."),")").concat(e.require_symbol?"":"?"),n="-?",o="[1-9]\\d{0,2}(\\".concat(e.thousands_separator,"\\d{3})*"),i="(".concat(["0","[1-9]\\d*",o].join("|"),")?"),a="(\\".concat(e.decimal_separator,"(").concat(t,"))").concat(e.require_decimal?"":"?"),s=i+(e.allow_decimal||e.require_decimal?a:"");return e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?s+=n:e.negative_sign_before_digits&&(s=n+s)),e.allow_negative_sign_placeholder?s="( (?!\\-))?".concat(s):e.allow_space_after_symbol?s=" ?".concat(s):e.allow_space_after_digits&&(s+="( (?!$))?"),e.symbol_after_digits?s+=r:s=r+s,e.allow_negatives&&(e.parens_for_negatives?s="(\\(".concat(s,"\\)|").concat(s,")"):e.negative_sign_before_digits||e.negative_sign_after_digits||(s=n+s)),new RegExp("^(?!-? )(?=.*\\d)".concat(s,"$"))}(t=(0,n.default)(t,a)).test(e)};var n=i(r(4808)),o=i(r(5571));function i(e){return e&&e.__esModule?e:{default:e}}var a={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};e.exports=t.default,e.exports.default=t.default},555:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);var t=e.split(",");if(t.length<2)return!1;var r=t.shift().trim().split(";"),n=r.shift();if("data:"!==n.substr(0,5))return!1;var u=n.substr(5);if(""!==u&&!i.test(u))return!1;for(var l=0;l<r.length;l++)if(l===r.length-1&&"base64"===r[l].toLowerCase());else if(!a.test(r[l]))return!1;for(var c=0;c<t.length;c++)if(!s.test(t[c]))return!1;return!0};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[a-z]+\/[a-z0-9\-\+]+$/i,a=/^[a-z\-]+=[a-z0-9\-]+$/i,s=/^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;e.exports=t.default,e.exports.default=t.default},5218:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,o.default)(e),(t=(0,n.default)(t,u)).locale in a.decimal)return!(0,i.default)(l,e.replace(/ /g,""))&&function(e){return new RegExp("^[-+]?([0-9]+)?(\\".concat(a.decimal[e.locale],"[0-9]{").concat(e.decimal_digits,"})").concat(e.force_decimal?"":"?","$"))}(t).test(e);throw new Error("Invalid locale '".concat(t.locale,"'"))};var n=s(r(4808)),o=s(r(5571)),i=s(r(8343)),a=r(79);function s(e){return e&&e.__esModule?e:{default:e}}var u={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},l=["","-","+"];e.exports=t.default,e.exports.default=t.default},8335:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)(e),(0,o.default)(e)%parseInt(t,10)==0};var n=i(r(5571)),o=i(r(7536));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},5807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);var t,r,n=Number(e.slice(-1));return i.test(e)&&n===((r=10-(t=e).slice(0,-1).split("").map((function(e,r){return Number(e)*function(e,t){return 8===e?t%2==0?3:1:t%2==0?1:3}(t.length,r)})).reduce((function(e,t){return e+t}),0)%10)<10?r:0)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(\d{8}|\d{13})$/;e.exports=t.default,e.exports.default=t.default},3868:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,o.default)(t,l)).require_display_name||t.allow_display_name){var r=e.match(c);if(r){var u,m=function(e){if(Array.isArray(e))return e}(y=r)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,o=!1,i=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),3!==r.length);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw i}}return r}}(y)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}();if(u=m[1],e=m[2],u.endsWith(" ")&&(u=u.substr(0,u.length-1)),!function(e){var t=e.match(/^"(.+)"$/i),r=t?t[1]:e;if(!r.trim())return!1;if(/[\.";<>]/.test(r)){if(!t)return!1;if(r.split('"').length!==r.split('\\"').length)return!1}return!0}(u))return!1}else if(t.require_display_name)return!1}var y;if(!t.ignore_max_length&&e.length>254)return!1;var b=e.split("@"),S=b.pop(),_=b.join("@"),C=S.toLowerCase();if(t.domain_specific_validation&&("gmail.com"===C||"googlemail.com"===C)){var E=(_=_.toLowerCase()).split("+")[0];if(!(0,i.default)(E.replace(".",""),{min:6,max:30}))return!1;for(var A=E.split("."),N=0;N<A.length;N++)if(!p.test(A[N]))return!1}if(!(0,i.default)(_,{max:64})||!(0,i.default)(S,{max:254}))return!1;if(!(0,a.default)(S,{require_tld:t.require_tld})){if(!t.allow_ip_domain)return!1;if(!(0,s.default)(S)){if(!S.startsWith("[")||!S.endsWith("]"))return!1;var v=S.substr(1,S.length-2);if(0===v.length||!(0,s.default)(v))return!1}}if('"'===_[0])return _=_.slice(1,_.length-1),t.allow_utf8_local_part?h.test(_):g.test(_);for(var T=t.allow_utf8_local_part?f:d,I=_.split("."),O=0;O<I.length;O++)if(!T.test(I[O]))return!1;return!0};var n=u(r(5571)),o=u(r(4808)),i=u(r(3235)),a=u(r(221)),s=u(r(1028));function u(e){return e&&e.__esModule?e:{default:e}}var l={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0},c=/^([^\x00-\x1F\x7F-\x9F\cX]+)<(.+)>$/i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,p=/^[a-z\d]+$/,g=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,f=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,h=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;e.exports=t.default,e.exports.default=t.default},4069:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)(e),0===((t=(0,o.default)(t,a)).ignore_whitespace?e.trim().length:e.length)};var n=i(r(5571)),o=i(r(4808));function i(e){return e&&e.__esModule?e:{default:e}}var a={ignore_whitespace:!1};e.exports=t.default,e.exports.default=t.default},2129:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(0x)[0-9a-f]{40}$/i;e.exports=t.default,e.exports.default=t.default},221:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,o.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));for(var r=e.split("."),i=0;i<r.length;i++)if(r[i].length>63)return!1;if(t.require_tld){var s=r.pop();if(!r.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(s))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20]/.test(s))return!1}for(var u,l=0;l<r.length;l++){if(u=r[l],t.allow_underscores&&(u=u.replace(/_/g,"")),!/^[a-z\u00a1-\uffff0-9-]+$/i.test(u))return!1;if(/[\uff01-\uff5e]/.test(u))return!1;if("-"===u[0]||"-"===u[u.length-1])return!1}return!0};var n=i(r(5571)),o=i(r(4808));function i(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1};e.exports=t.default,e.exports.default=t.default},9146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e),t=t||{};var r=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(t.locale?i.decimal[t.locale]:".","[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));if(""===e||"."===e||"-"===e||"+"===e)return!1;var n=parseFloat(e.replace(",","."));return r.test(e)&&(!t.hasOwnProperty("min")||n>=t.min)&&(!t.hasOwnProperty("max")||n<=t.max)&&(!t.hasOwnProperty("lt")||n<t.lt)&&(!t.hasOwnProperty("gt")||n>t.gt)},t.locales=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=r(79),a=Object.keys(i.decimal);t.locales=a},7146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)},t.fullWidth=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;t.fullWidth=i},6648:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)||a.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s*)(\s*,\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(,\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i,a=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s)(\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(\/\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i;e.exports=t.default,e.exports.default=t.default},2941:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)},t.halfWidth=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;t.halfWidth=i},8874:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),new RegExp("^[a-fA-F0-9]{".concat(i[t],"}$")).test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};e.exports=t.default,e.exports.default=t.default},6298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;e.exports=t.default,e.exports.default=t.default},7117:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(0x|0h)?[0-9A-F]+$/i;e.exports=t.default,e.exports.default=t.default},8177:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),function(e){var t=e.replace(/[\s\-]+/gi,"").toUpperCase(),r=t.slice(0,2).toUpperCase();return r in i&&i[r].test(t)}(e)&&function(e){var t=e.replace(/[^A-Z0-9]+/gi,"").toUpperCase();return 1===(t.slice(4)+t.slice(0,4)).replace(/[A-Z]/g,(function(e){return e.charCodeAt(0)-55})).match(/\d{1,7}/g).reduce((function(e,t){return Number(e+t)%97}),"")}(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i={AD:/^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,AE:/^(AE[0-9]{2})\d{3}\d{16}$/,AL:/^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,AT:/^(AT[0-9]{2})\d{16}$/,AZ:/^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,BA:/^(BA[0-9]{2})\d{16}$/,BE:/^(BE[0-9]{2})\d{12}$/,BG:/^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,BH:/^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,BR:/^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,BY:/^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,CH:/^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,CR:/^(CR[0-9]{2})\d{18}$/,CY:/^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,CZ:/^(CZ[0-9]{2})\d{20}$/,DE:/^(DE[0-9]{2})\d{18}$/,DK:/^(DK[0-9]{2})\d{14}$/,DO:/^(DO[0-9]{2})[A-Z]{4}\d{20}$/,EE:/^(EE[0-9]{2})\d{16}$/,ES:/^(ES[0-9]{2})\d{20}$/,FI:/^(FI[0-9]{2})\d{14}$/,FO:/^(FO[0-9]{2})\d{14}$/,FR:/^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,GB:/^(GB[0-9]{2})[A-Z]{4}\d{14}$/,GE:/^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,GI:/^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,GL:/^(GL[0-9]{2})\d{14}$/,GR:/^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,GT:/^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,HR:/^(HR[0-9]{2})\d{17}$/,HU:/^(HU[0-9]{2})\d{24}$/,IE:/^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/,IL:/^(IL[0-9]{2})\d{19}$/,IQ:/^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,IS:/^(IS[0-9]{2})\d{22}$/,IT:/^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,JO:/^(JO[0-9]{2})[A-Z]{4}\d{22}$/,KW:/^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,KZ:/^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,LB:/^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,LC:/^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,LI:/^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,LT:/^(LT[0-9]{2})\d{16}$/,LU:/^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,LV:/^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,MC:/^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,MD:/^(MD[0-9]{2})[A-Z0-9]{20}$/,ME:/^(ME[0-9]{2})\d{18}$/,MK:/^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,MR:/^(MR[0-9]{2})\d{23}$/,MT:/^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,MU:/^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,NL:/^(NL[0-9]{2})[A-Z]{4}\d{10}$/,NO:/^(NO[0-9]{2})\d{11}$/,PK:/^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,PL:/^(PL[0-9]{2})\d{24}$/,PS:/^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/,PT:/^(PT[0-9]{2})\d{21}$/,QA:/^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,RO:/^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,RS:/^(RS[0-9]{2})\d{18}$/,SA:/^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,SC:/^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,SE:/^(SE[0-9]{2})\d{20}$/,SI:/^(SI[0-9]{2})\d{15}$/,SK:/^(SK[0-9]{2})\d{20}$/,SM:/^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,TL:/^(TL[0-9]{2})\d{19}$/,TN:/^(TN[0-9]{2})\d{20}$/,TR:/^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,UA:/^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,VA:/^(VA[0-9]{2})\d{18}$/,VG:/^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/,XK:/^(XK[0-9]{2})\d{16}$/};e.exports=t.default,e.exports.default=t.default},1028:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,4)||e(t,6);if("4"===r){if(!i.test(t))return!1;var n=t.split(".").sort((function(e,t){return e-t}));return n[3]<=255}if("6"===r){var s=[t];if(t.includes("%")){if(2!==(s=t.split("%")).length)return!1;if(!s[0].includes(":"))return!1;if(""===s[1])return!1}var u=s[0].split(":"),l=!1,c=e(u[u.length-1],4),d=c?7:8;if(u.length>d)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(u.shift(),u.shift(),l=!0):"::"===t.substr(t.length-2)&&(u.pop(),u.pop(),l=!0);for(var p=0;p<u.length;++p)if(""===u[p]&&p>0&&p<u.length-1){if(l)return!1;l=!0}else if(c&&p===u.length-1);else if(!a.test(u[p]))return!1;return l?u.length>=1:u.length===d}return!1};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/,a=/^[0-9A-F]{1,4}$/i;e.exports=t.default,e.exports.default=t.default},7795:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,n.default)(e);var t=e.split("/");return 2===t.length&&(!!a.test(t[1])&&(!(t[1].length>1&&t[1].startsWith("0"))&&((0,o.default)(t[0],4)&&t[1]<=32&&t[1]>=0)))};var n=i(r(5571)),o=i(r(1028));function i(e){return e&&e.__esModule?e:{default:e}}var a=/^\d{1,2}$/;e.exports=t.default,e.exports.default=t.default},7612:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,10)||e(t,13);var n,u=t.replace(/[\s-]+/g,""),l=0;if("10"===r){if(!i.test(u))return!1;for(n=0;n<9;n++)l+=(n+1)*u.charAt(n);if("X"===u.charAt(9)?l+=100:l+=10*u.charAt(9),l%11==0)return!!u}else if("13"===r){if(!a.test(u))return!1;for(n=0;n<12;n++)l+=s[n%2]*u.charAt(n);if(u.charAt(12)-(10-l%10)%10==0)return!!u}return!1};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(?:[0-9]{9}X|[0-9]{10})$/,a=/^(?:[0-9]{13})$/,s=[1,3];e.exports=t.default,e.exports.default=t.default},7148:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,o.default)(e),!i.test(e))return!1;for(var t,r,n=e.replace(/[A-Z]/g,(function(e){return parseInt(e,36)})),a=0,s=!0,u=n.length-2;u>=0;u--)t=n.substring(u,u+1),r=parseInt(t,10),a+=s&&(r*=2)>=10?r+1:r,s=!s;return parseInt(e.substr(e.length-1),10)===(1e4-a)%10};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;e.exports=t.default,e.exports.default=t.default},1727:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),(0,o.default)(a,e.toUpperCase())};var n=i(r(5571)),o=i(r(8343));function i(e){return e&&e.__esModule?e:{default:e}}var a=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"];e.exports=t.default,e.exports.default=t.default},6776:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),(0,o.default)(a,e.toUpperCase())};var n=i(r(5571)),o=i(r(8343));function i(e){return e&&e.__esModule?e:{default:e}}var a=["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"];e.exports=t.default,e.exports.default=t.default},5061:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);var r=i.test(e);return t&&r&&t.strict?function(e){var t=e.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(t){var r=Number(t[1]),n=Number(t[2]);return r%4==0&&r%100!=0||r%400==0?n<=366:n<=365}var o=e.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),i=o[1],a=o[2],s=o[3],u=a?"0".concat(a).slice(-2):a,l=s?"0".concat(s).slice(-2):s,c=new Date("".concat(i,"-").concat(u||"01","-").concat(l||"01"));return!a||!s||c.getUTCFullYear()===i&&c.getUTCMonth()+1===a&&c.getUTCDate()===s}(e):r};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;e.exports=t.default,e.exports.default=t.default},4339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;e.exports=t.default,e.exports.default=t.default},9887:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.default)(e);var r=i;if(r=t.require_hyphen?r.replace("?",""):r,!(r=t.case_sensitive?new RegExp(r):new RegExp(r,"i")).test(e))return!1;for(var n=e.replace("-","").toUpperCase(),a=0,s=0;s<n.length;s++){var u=n[s];a+=("X"===u?10:+u)*(8-s)}return a%11==0};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i="^\\d{4}-?\\d{3}[\\dX]$";e.exports=t.default,e.exports.default=t.default},9396:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,o.default)(e),t in i)return i[t](e);if("any"===t){for(var r in i)if(i.hasOwnProperty(r)&&(0,i[r])(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i={ES:function(e){(0,o.default)(e);var t={X:0,Y:1,Z:2},r=e.trim().toUpperCase();if(!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r))return!1;var n=r.slice(0,-1).replace(/[X,Y,Z]/g,(function(e){return t[e]}));return r.endsWith(["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][n%23])},"he-IL":function(e){var t=e.trim();if(!/^\d{9}$/.test(t))return!1;for(var r,n=t,o=0,i=0;i<n.length;i++)o+=(r=Number(n[i])*(i%2+1))>9?r-9:r;return o%10==0},"zh-TW":function(e){var t={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},r=e.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(r)&&Array.from(r).reduce((function(e,r,n){if(0===n){var o=t[r];return o%10*9+Math.floor(o/10)}return 9===n?(10-e%10-Number(r))%10==0:e+Number(r)*(9-n)}),0)}};e.exports=t.default,e.exports.default=t.default},7228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r;if((0,n.default)(e),"[object Array]"===Object.prototype.toString.call(t)){var i=[];for(r in t)({}).hasOwnProperty.call(t,r)&&(i[r]=(0,o.default)(t[r]));return i.indexOf(e)>=0}return"object"===a(t)?t.hasOwnProperty(e):!(!t||"function"!=typeof t.indexOf)&&t.indexOf(e)>=0};var n=i(r(5571)),o=i(r(1913));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=t.default,e.exports.default=t.default},937:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);var r=(t=t||{}).hasOwnProperty("allow_leading_zeroes")&&!t.allow_leading_zeroes?i:a,n=!t.hasOwnProperty("min")||e>=t.min,s=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||e<t.lt,l=!t.hasOwnProperty("gt")||e>t.gt;return r.test(e)&&n&&s&&u&&l};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,a=/^[-+]?[0-9]+$/;e.exports=t.default,e.exports.default=t.default},1008:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,o.default)(e);try{var t=JSON.parse(e);return!!t&&"object"===i(t)}catch(e){}return!1};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=t.default,e.exports.default=t.default},4979:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^([A-Za-z0-9\-_~+\/]+[=]{0,2})\.([A-Za-z0-9\-_~+\/]+[=]{0,2})(?:\.([A-Za-z0-9\-_~+\/]+[=]{0,2}))?$/;e.exports=t.default,e.exports.default=t.default},478:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,o.default)(e),!e.includes(","))return!1;var t=e.split(",");return!(t[0].startsWith("(")&&!t[1].endsWith(")")||t[1].endsWith(")")&&!t[0].startsWith("("))&&i.test(t[0])&&a.test(t[1])};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,a=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/;e.exports=t.default,e.exports.default=t.default},4958:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,n;(0,o.default)(e),"object"===i(t)?(r=t.min||0,n=t.max):(r=arguments[1]||0,n=arguments[2]);var a=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],s=e.length-a.length;return s>=r&&(void 0===n||s<=n)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=t.default,e.exports.default=t.default},7380:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),"en_US_POSIX"===e||"ca_ES_VALENCIA"===e||i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/;e.exports=t.default,e.exports.default=t.default},3928:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),e===e.toLowerCase()};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},8999:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),t&&t.no_colons?a.test(e):i.test(e)||s.test(e)||u.test(e)||l.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/,a=/^([0-9a-fA-F]){12}$/,s=/^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/,u=/^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/,l=/^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;e.exports=t.default,e.exports.default=t.default},368:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[a-f0-9]{32}$/;e.exports=t.default,e.exports.default=t.default},2776:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e.trim())};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;e.exports=t.default,e.exports.default=t.default},4554:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)||a.test(e)||s.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,a=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,s=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;e.exports=t.default,e.exports.default=t.default},8355:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){if((0,o.default)(e),r&&r.strictMode&&!e.startsWith("+"))return!1;if(Array.isArray(t))return t.some((function(t){return!(!i.hasOwnProperty(t)||!i[t].test(e))}));if(t in i)return i[t].test(e);if(!t||"any"===t){for(var n in i)if(i.hasOwnProperty(n)&&i[n].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i={"am-AM":/^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)[569]\d{7}$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^(\+49)?0?1(5[0-25-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PK":/^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[89]\d{7}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?(6\d{1}|7[1234])\d{7}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36)(20|30|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"ms-MY":/^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4?\d{8}$/,"nl-NL":/^(\+?31|0)6?\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/(?=^(\+?5{2}\-?|0)[1-9]{2}\-?\d{4}\-?\d{4}$)(^(\+?5{2}\-?|0)[1-9]{2}\-?[6-9]{1}\d{3}\-?\d{4}$)|(^(\+?5{2}\-?|0)[1-9]{2}\-?9[6-9]{1}\d{3}\-?\d{4}$)/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"vi-VN":/^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?1([358][0-9]|4[579]|6[67]|7[01235678]|9[189])[0-9]{8}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/};i["en-CA"]=i["en-US"],i["fr-BE"]=i["nl-BE"],i["zh-HK"]=i["en-HK"],i["zh-MO"]=i["en-MO"];var a=Object.keys(i);t.locales=a},9131:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),(0,o.default)(e)&&24===e.length};var n=i(r(5571)),o=i(r(7117));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},3590:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/[^\x00-\x7F]/;e.exports=t.default,e.exports.default=t.default},4986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),t&&t.no_symbols?a.test(e):i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[+-]?([0-9]*[.])?[0-9]+$/,a=/^[0-9]+$/;e.exports=t.default,e.exports.default=t.default},4313:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^(0o)?[0-7]+$/i;e.exports=t.default,e.exports.default=t.default},1513:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=e.replace(/\s/g,"").toUpperCase();return t.toUpperCase()in r&&r[t].test(n)};var r={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,CA:/^[A-Z]{2}\d{6}$/,CH:/^[A-Z]\d{7}$/,CN:/^[GE]\d{8}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,MT:/^\d{7}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,PO:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$/};e.exports=t.default,e.exports.default=t.default},4595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e,{min:0,max:65535})};var n,o=(n=r(937))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},8140:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,o.default)(e),t in u)return u[t].test(e);if("any"===t){for(var r in u)if(u.hasOwnProperty(r)&&u[r].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^\d{4}$/,a=/^\d{5}$/,s=/^\d{6}$/,u={AD:/^AD\d{3}$/,AT:i,AU:i,BE:i,BG:i,BR:/^\d{5}-\d{3}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:i,CZ:/^\d{3}\s?\d{2}$/,DE:a,DK:i,DZ:a,EE:a,ES:a,FI:a,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HU:i,ID:a,IE:/^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i,IL:a,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IS:/^\d{3}$/,IT:a,JP:/^\d{3}\-\d{4}$/,KE:a,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:i,LV:/^LV\-\d{4}$/,MX:a,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,NL:/^\d{4}\s?[a-z]{2}$/i,NO:i,NZ:i,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:s,RU:s,SA:a,SE:/^[1-9]\d{2}\s?\d{2}$/,SI:i,SK:/^\d{3}\s?\d{2}$/,TN:i,TW:/^\d{3}(\d{2})?$/,UA:a,US:/^\d{5}(-\d{4})?$/,ZA:i,ZM:a},l=Object.keys(u);t.locales=l},4611:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),p.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/([01][0-9]|2[0-3])/,a=/[0-5][0-9]/,s=new RegExp("[-+]".concat(i.source,":").concat(a.source)),u=new RegExp("([zZ]|".concat(s.source,")")),l=new RegExp("".concat(i.source,":").concat(a.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),c=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),d=new RegExp("".concat(l.source).concat(u.source)),p=new RegExp("".concat(c.source,"[ tT]").concat(d.source));e.exports=t.default,e.exports.default=t.default},6454:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return(0,o.default)(e),t?i.test(e)||a.test(e)||s.test(e)||u.test(e):i.test(e)||a.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,a=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/,s=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/,u=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;e.exports=t.default,e.exports.default=t.default},6826:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),i.test(e)};var n=o(r(5571));function o(e){return e&&e.__esModule?e:{default:e}}var i=(0,o(r(4731)).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))","?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"]);e.exports=t.default,e.exports.default=t.default},8220:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/^[^-_](?!.*?[-_]{2,})([a-z0-9\\-]{1,}).*[^-_]$/;e.exports=t.default,e.exports.default=t.default},2828:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;e.exports=t.default,e.exports.default=t.default},2492:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),!e||e.length>=2083||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;var r,s,d,p,g,f,h,m;if(t=(0,a.default)(t,u),h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(r=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(r))return!1}else{if(t.require_protocol)return!1;if("//"===e.substr(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.substr(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if((s=h.shift()).indexOf(":")>=0&&s.split(":").length>2)return!1}f=null,m=null;var y=(p=h.join("@")).match(l);return y?(d="",m=y[1],f=y[2]||null):(d=(h=p.split(":")).shift(),h.length&&(f=h.join(":"))),!(null!==f&&(g=parseInt(f,10),!/^[0-9]+$/.test(f)||g<=0||g>65535))&&(!!((0,i.default)(d)||(0,o.default)(d,t)||m&&(0,i.default)(m,6))&&(d=d||m,!(t.host_whitelist&&!c(d,t.host_whitelist))&&(!t.host_blacklist||!c(d,t.host_blacklist))))};var n=s(r(5571)),o=s(r(221)),i=s(r(1028)),a=s(r(4808));function s(e){return e&&e.__esModule?e:{default:e}}var u={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1},l=/^\[([^\]]+)\](?::([0-9]+))?$/;function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];if(e===n||(o=n,"[object RegExp]"===Object.prototype.toString.call(o)&&n.test(e)))return!0}var o;return!1}e.exports=t.default,e.exports.default=t.default},7278:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";(0,o.default)(e);var r=i[t];return r&&r.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};e.exports=t.default,e.exports.default=t.default},7245:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),e===e.toUpperCase()};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},9019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),i.fullWidth.test(e)&&a.halfWidth.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n},i=r(7146),a=r(2941);e.exports=t.default,e.exports.default=t.default},8346:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);for(var r=e.length-1;r>=0;r--)if(-1===t.indexOf(e[r]))return!1;return!0};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},4959:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("^[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+"),"g"):/^\s+/g;return e.replace(r,"")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},661:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){return(0,o.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,r)),t.test(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},2900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t=(0,o.default)(t,i);var r=e.split("@"),n=r.pop(),d=[r.join("@"),n];if(d[1]=d[1].toLowerCase(),"gmail.com"===d[1]||"googlemail.com"===d[1]){if(t.gmail_remove_subaddress&&(d[0]=d[0].split("+")[0]),t.gmail_remove_dots&&(d[0]=d[0].replace(/\.+/g,c)),!d[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]=t.gmail_convert_googlemaildotcom?"gmail.com":d[1]}else if(a.indexOf(d[1])>=0){if(t.icloud_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(d[0]=d[0].toLowerCase())}else if(s.indexOf(d[1])>=0){if(t.outlookdotcom_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(d[0]=d[0].toLowerCase())}else if(u.indexOf(d[1])>=0){if(t.yahoo_remove_subaddress){var p=d[0].split("-");d[0]=p.length>1?p.slice(0,-1).join("-"):p[0]}if(!d[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(d[0]=d[0].toLowerCase())}else l.indexOf(d[1])>=0?((t.all_lowercase||t.yandex_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]="yandex.ru"):t.all_lowercase&&(d[0]=d[0].toLowerCase());return d.join("@")};var n,o=(n=r(4808))&&n.__esModule?n:{default:n},i={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,yandex_lowercase:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},a=["icloud.com","me.com"],s=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],u=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"],l=["yandex.ru","yandex.ua","yandex.kz","yandex.com","yandex.by","ya.ru"];function c(e){return e.length>1?e:""}e.exports=t.default,e.exports.default=t.default},9778:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+$"),"g"):/\s+$/g;return e.replace(r,"")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},8035:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e);var r=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,o.default)(e,r)};var n=i(r(5571)),o=i(r(4928));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},557:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),t?"1"===e||/^true$/i.test(e):"0"!==e&&!/^false$/i.test(e)&&""!==e};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},8469:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),e=Date.parse(e),isNaN(e)?null:new Date(e)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},7536:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e)?parseFloat(e):NaN};var n,o=(n=r(9146))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},1359:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),parseInt(e,t||10)};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},4790:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)((0,o.default)(e,t),t)};var n=i(r(9778)),o=i(r(4959));function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},4816:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),e.replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#x2F;/g,"/").replace(/&#x5C;/g,"\\").replace(/&#96;/g,"`")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},5571:(e,t)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t;if(!("string"==typeof e||e instanceof String))throw t=null===e?"null":"object"===(t=r(e))&&e.constructor&&e.constructor.hasOwnProperty("name")?e.constructor.name:"a ".concat(t),new TypeError("Expected string but received ".concat(t,"."))},e.exports=t.default,e.exports.default=t.default},8343:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e,t){return e.some((function(e){return t===e}))},e.exports=t.default,e.exports.default=t.default},4808:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e},e.exports=t.default,e.exports.default=t.default},4731:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.join("");return new RegExp(r,t)},e.exports=t.default,e.exports.default=t.default},1913:(e,t)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return"object"===r(e)&&null!==e?e="function"==typeof e.toString?e.toString():"[object Object]":(null==e||isNaN(e)&&!e.length)&&(e=""),String(e)},e.exports=t.default,e.exports.default=t.default},4714:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[^".concat(t,"]+"),"g"),"")};var n,o=(n=r(5571))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},6430:(e,t,r)=>{"use strict";var n=r(9804),o=r(6314),i=r(1348),a=i("Object.prototype.toString"),s=r(1405)()&&"symbol"==typeof Symbol.toStringTag,u=o(),l=i("String.prototype.slice"),c={},d=r(2059),p=Object.getPrototypeOf;s&&d&&p&&n(u,(function(e){if("function"==typeof r.g[e]){var t=new r.g[e];if(!(Symbol.toStringTag in t))throw new EvalError("this engine has support for Symbol.toStringTag, but "+e+" does not have the property! Please report this.");var n=p(t),o=d(n,Symbol.toStringTag);if(!o){var i=p(n);o=d(i,Symbol.toStringTag)}c[e]=o.get}}));var g=r(5692);e.exports=function(e){return!!g(e)&&(s?function(e){var t=!1;return n(c,(function(r,n){if(!t)try{var o=r.call(e);o===n&&(t=o)}catch(e){}})),t}(e):l(a(e),8,-1))}},8318:(e,t,r)=>{"use strict";var n,o=TypeError,i=Object.getOwnPropertyDescriptor;if(i)try{i({},"")}catch(e){i=null}var a=function(){throw new o},s=i?function(){try{return a}catch(e){try{return i(arguments,"callee").get}catch(e){return a}}}():a,u=r(1405)(),l=Object.getPrototypeOf||function(e){return e.__proto__},c=n,d="undefined"==typeof Uint8Array?n:l(Uint8Array),p={"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":u?l([][Symbol.iterator]()):n,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":undefined,"%AsyncFunctionPrototype%":n,"%AsyncGenerator%":n,"%AsyncGeneratorFunction%":undefined,"%AsyncGeneratorPrototype%":n,"%AsyncIteratorPrototype%":c&&u&&Symbol.asyncIterator?c[Symbol.asyncIterator]():n,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":"undefined"==typeof DataView?n:DataView,"%DataViewPrototype%":"undefined"==typeof DataView?n:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float32ArrayPrototype%":"undefined"==typeof Float32Array?n:Float32Array.prototype,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%Float64ArrayPrototype%":"undefined"==typeof Float64Array?n:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":n,"%GeneratorFunction%":undefined,"%GeneratorPrototype%":n,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int8ArrayPrototype%":"undefined"==typeof Int8Array?n:Int8Array.prototype,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int16ArrayPrototype%":"undefined"==typeof Int16Array?n:Int8Array.prototype,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%Int32ArrayPrototype%":"undefined"==typeof Int32Array?n:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":u?l(l([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%JSONParse%":"object"==typeof JSON?JSON.parse:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&u?l((new Map)[Symbol.iterator]()):n,"%MapPrototype%":"undefined"==typeof Map?n:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":Number.prototype,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%PromisePrototype%":"undefined"==typeof Promise?n:Promise.prototype,"%PromiseProto_then%":"undefined"==typeof Promise?n:Promise.prototype.then,"%Promise_all%":"undefined"==typeof Promise?n:Promise.all,"%Promise_reject%":"undefined"==typeof Promise?n:Promise.reject,"%Promise_resolve%":"undefined"==typeof Promise?n:Promise.resolve,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&u?l((new Set)[Symbol.iterator]()):n,"%SetPrototype%":"undefined"==typeof Set?n:Set.prototype,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":u?l(""[Symbol.iterator]()):n,"%StringPrototype%":String.prototype,"%Symbol%":u?Symbol:n,"%SymbolPrototype%":u?Symbol.prototype:n,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":s,"%TypedArray%":d,"%TypedArrayPrototype%":d?d.prototype:n,"%TypeError%":o,"%TypeErrorPrototype%":o.prototype,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?n:Uint8Array.prototype,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray.prototype,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?n:Uint16Array.prototype,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?n:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakMapPrototype%":"undefined"==typeof WeakMap?n:WeakMap.prototype,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%WeakSetPrototype%":"undefined"==typeof WeakSet?n:WeakSet.prototype},g=r(8612).call(Function.call,String.prototype.replace),f=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,h=/\\(\\)?/g,m=function(e){var t=[];return g(e,f,(function(e,r,n,o){t[t.length]=n?g(o,h,"$1"):r||e})),t},y=function(e,t){if(!(e in p))throw new SyntaxError("intrinsic "+e+" does not exist!");if(void 0===p[e]&&!t)throw new o("intrinsic "+e+" exists, but is not available. Please file an issue!");return p[e]};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new TypeError('"allowMissing" argument must be a boolean');for(var r=m(e),n=y("%"+(r.length>0?r[0]:"")+"%",t),a=1;a<r.length;a+=1)if(null!=n)if(i&&a+1>=r.length){var s=i(n,r[a]);if(!t&&!(r[a]in n))throw new o("base intrinsic for "+e+" exists, but the property is not available.");n=s&&"get"in s&&!("originalValue"in s.get)?s.get:n[r[a]]}else n=n[r[a]];return n}},4238:(e,t,r)=>{"use strict";var n=r(8612),o=r(8318),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||n.call(a,i),u=o("%Object.defineProperty%",!0);if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(){return s(n,a,arguments)};var l=function(){return s(n,i,arguments)};u?u(e.exports,"apply",{value:l}):e.exports.apply=l},1348:(e,t,r)=>{"use strict";var n=r(8318),o=r(4238),i=o(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&i(e,".prototype.")?o(r):r}},2059:(e,t,r)=>{"use strict";var n=r(8318)("%Object.getOwnPropertyDescriptor%");if(n)try{n([],"length")}catch(e){n=null}e.exports=n},6856:e=>{"use strict";e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALT_MASK","ALWAYS","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AddSearchProvider","AnalyserNode","AnimationEvent","AnonXMLHttpRequest","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioStreamTrack","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BarProp","BaseHref","BatteryManager","BeforeLoadEvent","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Boolean","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSUnknownRule","CSSValue","CSSValueList","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","CloseEvent","Collator","CommandEvent","Comment","CompositionEvent","Console","Controllers","ConvolverNode","Counter","Crypto","CryptoKey","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DST_ALPHA","DST_COLOR","DYNAMIC_DRAW","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DelayNode","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Document","DocumentFragment","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","Element","ElementQuery","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","Feed","FeedEntry","File","FileError","FileList","FileReader","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FormData","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadButton","GamepadEvent","GestureEvent","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","Image","ImageBitmap","ImageData","Infinity","InputEvent","InputMethodContext","InstallTrigger","Int16Array","Int32Array","Int8Array","Intent","InternalError","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","KeyboardEvent","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LocalMediaStream","Location","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_VALUE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MediaController","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBSOLETE","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","Option","OscillatorNode","OverflowEvent","PACK_ALIGNMENT","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","Path2D","Performance","PerformanceEntry","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Plugin","PluginArray","PopStateEvent","PopupBlockedEvent","ProcessingInstruction","ProgressEvent","Promise","PropertyNodeList","Proxy","PushManager","PushSubscription","Q","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED_BITS","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RGB","RGB565","RGB5_A1","RGBA","RGBA4","RGBColor","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCDataChannelEvent","RTCIceCandidate","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","RTCStatsReport","RadioNodeList","Range","RangeError","RangeException","RecordErrorEvent","Rect","ReferenceError","RegExp","Request","Response","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","START_TO_END","START_TO_START","STATIC_DRAW","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedWorker","SimpleGestureEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","StopIteration","Storage","StorageEvent","String","StyleSheet","StyleSheetList","SubtleCrypto","Symbol","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Text","TextDecoder","TextEncoder","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","TypeError","UIEvent","UNCACHED","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNSCHEDULED_STATE","UNSENT","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VTTCue","VTTRegion","ValidityState","VideoStreamTrack","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WaveShaperNode","WeakMap","WeakSet","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArray","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WheelEvent","Window","Worker","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","add","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addWakeLockListener","addedNodes","additionalName","additiveSymbols","addons","adoptNode","adr","advance","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allowFullscreen","allowedDirections","alpha","alt","altGraphKey","altHtml","altKey","altLeft","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","angle","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","apply","applyElement","arc","arcTo","archive","areas","arguments","arrayBuffer","asin","asinh","assert","assign","async","atEnd","atan","atan2","atanh","atob","attachEvent","attachShader","attachShadow","attachments","attack","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributes","audioTracks","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","axes","axis","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","balance","baseFrequencyX","baseFrequencyY","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","beginElement","beginElementAt","beginPath","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","binaryType","bind","bindAttribLocation","bindBuffer","bindFramebuffer","bindRenderbuffer","bindTexture","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blob","blockDirection","blue","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderColorDark","borderColorLight","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","c","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canPlayType","cancel","cancelAnimationFrame","cancelBubble","cancelScheduledValues","cancelable","candidate","canvas","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","characterData","characterDataOldValue","characterSet","charging","chargingTime","charset","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","classList","className","classid","clear","clearAttributes","clearColor","clearData","clearDepth","clearImmediate","clearInterval","clearMarks","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-interpolation","color-interpolation-filters","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commitPreferences","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","compatMode","compatible","compile","compileShader","complete","componentFromPoint","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexSubImage2D","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectStart","connected","connection","connectionSpeed","console","consolidate","constrictionActive","constructor","contactID","contains","containsNode","content","contentDocument","contentEditable","contentOverflow","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuous","control","controller","controls","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","cos","cosh","count","counter-increment","counter-reset","counterIncrement","counterReset","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTMLDocument","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPopup","createProcessingInstruction","createProgram","createRadialGradient","createRange","createRangeCollection","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createScriptProcessor","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTreeWalker","createWaveShaper","creationTime","crossOrigin","crypto","csi","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentNode","currentPage","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customError","cx","cy","d","data","dataFld","dataFormatAs","dataPageSize","dataSrc","dataTransfer","database","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPrevented","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","delayTime","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteRenderbuffer","deleteRow","deleteRule","deleteShader","deleteTFoot","deleteTHead","deleteTexture","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","depthFunc","depthMask","depthRange","deriveBits","deriveKey","description","deselectAll","designMode","destination","destinationURL","detach","detachEvent","detachShader","detail","detune","devicePixelRatio","deviceXDPI","deviceYDPI","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disableVertexAttribArray","disabled","dischargingTime","disconnect","dispatchEvent","display","distanceModel","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","download","dragDrop","draggable","drawArrays","drawArraysInstancedANGLE","drawCustomFocusRing","drawElements","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dump","duplicate","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effectAllowed","elapsedTime","elementFromPoint","elements","elevation","ellipse","email","embeds","empty","empty-cells","emptyCells","enable","enableBackground","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeURI","encodeURIComponent","encoding","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endTime","ended","endsWith","entities","entries","entryType","enumerate","enumerateEditable","error","errorCode","escape","eval","evaluate","event","eventPhase","every","exception","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPointerLock","exp","expand","expandEntityReferences","expando","expansion","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","f","face","factoryReset","fallback","familyName","farthestViewportElement","fastSeek","fatal","fetch","fetchStart","fftSize","fgColor","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","fill","fill-opacity","fill-rule","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","fireEvent","firstChild","firstElementChild","firstPage","fixed","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","fontcolor","fonts","fontsize","for","forEach","forceRedraw","form","formAction","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","fr","frame","frameBorder","frameElement","frameSpacing","framebufferRenderbuffer","framebufferTexture2D","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","frontFace","fround","fullScreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","genderIdentity","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getAdjacentText","getAll","getAllResponseHeaders","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","getAudioTracks","getBBox","getBattery","getBlob","getBookmark","getBoundingClientRect","getBufferParameter","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getChannelData","getCharNumAtPosition","getClientRect","getClientRects","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getConfiguration","getContext","getContextAttributes","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDestinationInsertionPoints","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getFeature","getFile","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHours","getImageData","getInt16","getInt32","getInt8","getIntersectionList","getItem","getItems","getKey","getLineDash","getLocalStreams","getMarks","getMatchedCSSRules","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNotifier","getNumberOfChars","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getPathSegAtLength","getPointAtLength","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyValue","getPrototypeOf","getRGBColorValue","getRandomValues","getRangeAt","getReceivers","getRectValue","getRegistration","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRotationOfChar","getSVGDocument","getScreenCTM","getSeconds","getSelection","getSenders","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getStats","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedExtensions","getTexParameter","getTime","getTimezoneOffset","getTotalLength","getTrackById","getTracks","getTransformToElement","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformLocation","getUserMedia","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getWakeLockState","getYear","givenName","global","globalAlpha","globalCompositeOperation","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","gradientTransform","gradientUnits","grammars","green","group","groupCollapsed","groupEnd","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasComposition","hasExtension","hasFeature","hasFocus","hasLayout","hasOwnProperty","hash","head","headers","heading","height","hidden","hide","hideFocus","high","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostname","href","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","hwTimestamp","hypot","iccId","iceConnectionState","iceGatheringState","icon","id","identifier","identity","ignoreBOM","ignoreCase","image-orientation","image-rendering","imageOrientation","imageRendering","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData","insertItemBefore","insertNode","insertRow","insertRule","instanceRoot","intercept","interimResults","internalSubset","intersectsNode","interval","invalidIteratorState","inverse","invertSelf","is","is2D","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isFinite","isFramebuffer","isFrozen","isGenerator","isId","isInjected","isInteger","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isRenderbuffer","isSafeInteger","isSameNode","isSealed","isShader","isSupported","isTextEdit","isTexture","isTrusted","isTypeSupported","isView","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","iterateNext","iterator","javaEnabled","jobTitle","join","json","justify-content","justifyContent","k1","k2","k3","k4","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keySystem","keyText","keyUsage","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftMargin","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearRampToValueAtTime","lineno","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTimes","loaded","localDescription","localName","localStorage","locale","localeCompare","location","locationbar","lock","lockedFile","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","manifest","map","mapping","margin","margin-bottom","margin-left","margin-right","margin-top","marginBottom","marginHeight","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-type","maskContentUnits","maskType","maskUnits","match","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-height","max-width","maxAlternatives","maxChannelCount","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxLength","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","metaKey","method","mimeType","mimeTypes","min","min-height","min-width","minDecibels","minHeight","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationStart","navigator","near","nearestViewportElement","negative","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextNode","nextPage","nextSibling","nickname","noHref","noResize","noShade","noValidate","noWrap","nodeName","nodeType","nodeValue","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","observe","of","offscreenBuffering","offset","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onactivate","onactive","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onblocked","onblur","onbounce","onboundary","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","oncompassneedscalibration","oncomplete","oncontextmenu","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceproximity","ondischargingtimechange","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onfullscreenchange","onfullscreenerror","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","oniceconnectionstatechange","oninactive","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onlayoutcomplete","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerup","onpopstate","onprogress","onpropertychange","onratechange","onreadystatechange","onremovestream","onremovetrack","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onseeked","onseeking","onselect","onselectionchange","onselectstart","onshow","onsignalingstatechange","onsoundend","onsoundstart","onspeechend","onspeechstart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","ontextinput","ontimeout","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onunload","onupdateready","onupgradeneeded","onuserproximity","onversionchange","onvoiceschanged","onvolumechange","onwaiting","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opener","opera","operationType","operator","opr","optimum","options","order","orderX","orderY","ordered","org","orient","orientAngle","orientType","orientation","origin","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","overflow","overflow-x","overflow-y","overflowX","overflowY","overrideMimeType","oversample","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","pad","padding","padding-bottom","padding-left","padding-right","padding-top","paddingBottom","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","palette","panningModel","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseFloat","parseFromString","parseInt","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","paused","pending","performance","permission","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phoneticFamilyName","phoneticGivenName","photo","ping","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","placeholder","platform","play","playbackRate","playbackState","playbackTime","played","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","position","positionAlign","postError","postMessage","poster","pow","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","previousElementSibling","previousNode","previousPage","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","privateKey","probablySupportsContext","process","processIceMessage","product","productSub","profile","profileEnd","profiles","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","pseudoClass","pseudoElement","publicId","publicKey","published","push","pushNotification","pushState","put","putImageData","quadraticCurveTo","qualifier","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","quote","quotes","r","r1","r2","race","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readOnly","readPixels","readReportRequested","readyState","reason","reboot","receiver","receivers","recordNumber","recordset","rect","red","redirectCount","redirectEnd","redirectStart","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referrer","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProtocolHandler","reject","rel","relList","relatedNode","relatedTarget","release","releaseCapture","releaseEvents","releasePointerCapture","releaseShaderCompiler","reliable","reload","remainingSpace","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removedNodes","renderbufferStorage","renderedBuffer","renderingMode","repeat","replace","replaceAdjacentText","replaceChild","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceTrack","replaceWholeText","reportValidity","requestAnimationFrame","requestAutocomplete","requestData","requestFullscreen","requestMediaKeySystemAccess","requestPermission","requestPointerLock","requestStart","requestingWindow","required","requiredExtensions","requiredFeatures","reset","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseStart","responseText","responseType","responseURL","responseXML","restore","result","resultType","resume","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightMargin","rolloffFactor","root","rootElement","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationRate","round","rowIndex","rowSpan","rows","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","safari","sampleCoverage","sampleRate","sandbox","save","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scripts","scroll","scroll-behavior","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMaxX","scrollMaxY","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbars","scrolling","sdp","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekable","seeking","select","selectAllChildren","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentTimestamp","separator","serializeToString","serviceWorker","sessionId","sessionStorage","set","setActive","setAlpha","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBingCurrentSearchDefault","setCapture","setColor","setCompositeOperation","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFullYear","setHours","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setLineCap","setLineDash","setLineJoin","setLineWidth","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setPeriodicWave","setPointerCapture","setPosition","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-rendering","shapeRendering","sheet","shift","shiftKey","shiftLeft","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signalingState","sin","singleNodeValue","sinh","size","sizeToContent","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","source","sourceBuffer","sourceBuffers","sourceIndex","spacing","span","speakAs","speaking","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","standalone","standby","start","startContainer","startIce","startOffset","startRendering","startTime","startsWith","state","status","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopOpacity","stopPropagation","storageArea","storageName","storageStatus","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","strike","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supports","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takeRecords","tan","tanh","target","targetElement","targetTouches","targetX","targetY","tel","terminate","test","texImage2D","texParameterf","texParameteri","texSubImage2D","text","text-align","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationStyle","textDecorationUnderline","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlinePosition","then","threadId","threshold","tiltX","tiltY","time","timeEnd","timeStamp","timeout","timestamp","timestampOffset","timing","title","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMethod","toPrecision","toSdp","toSource","toStaticHTML","toString","toStringTag","toTimeString","toUTCString","toUpperCase","toggle","toggleLongPressEnabled","tooLong","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touchAction","touches","trace","track","transaction","transactions","transform","transform-origin","transform-style","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","trim","trimLeft","trimRight","trueSpeed","trunc","truncate","type","typeDetail","typeMismatch","typeMustMatch","types","ubound","undefined","unescape","uneval","unicode-bidi","unicodeBidi","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","unique","uniqueID","uniqueNumber","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","update","updateCommands","updateIce","updateInterval","updateSettings","updated","updating","upload","upper","upperBound","upperOpen","uri","url","urn","urns","usages","useCurrentView","useMap","useProgram","usedSpace","userAgent","userLanguage","username","v8BreakIterator","vAlign","vLink","valid","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisorANGLE","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vibrate","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","visibility","visibilityState","visible","vlinkColor","voice","volume","vrml","vspace","w","wand","warn","wasClean","watch","watchPosition","webdriver","webkitAddKey","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitKeys","webkitLineDashOffset","webkitLockOrientation","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextSizeAdjust","webkitTransform","webkitTransformOrigin","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","wrap","wrapKey","write","writeln","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(8492)})()}));
+//# sourceMappingURL=index.browser.js.map \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.browser.js.LICENSE.txt b/src/node_modules/javascript-obfuscator/dist/index.browser.js.LICENSE.txt
new file mode 100644
index 0000000..3f89e2f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.browser.js.LICENSE.txt
@@ -0,0 +1,52 @@
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <https://feross.org>
+ * @license MIT
+ */
+
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+
+/*!
+Copyright (C) 2016-2020 Timofey Kachalov <sanex3339@yandex.ru>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*! *****************************************************************************
+Copyright (C) Microsoft. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
diff --git a/src/node_modules/javascript-obfuscator/dist/index.browser.js.map b/src/node_modules/javascript-obfuscator/dist/index.browser.js.map
new file mode 100644
index 0000000..6a64ae4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.browser.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://JavaScriptObfuscator/webpack/universalModuleDefinition","webpack://JavaScriptObfuscator/./node_modules/@javascript-obfuscator/escodegen/escodegen.js","webpack://JavaScriptObfuscator/./node_modules/acorn/dist/acorn.js","webpack://JavaScriptObfuscator/./node_modules/array-filter/index.js","webpack://JavaScriptObfuscator/./node_modules/assert/build/assert.js","webpack://JavaScriptObfuscator/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://JavaScriptObfuscator/./node_modules/assert/build/internal/errors.js","webpack://JavaScriptObfuscator/./node_modules/assert/build/internal/util/comparisons.js","webpack://JavaScriptObfuscator/./node_modules/available-typed-arrays/index.js","webpack://JavaScriptObfuscator/./node_modules/chalk/node_modules/ansi-styles/index.js","webpack://JavaScriptObfuscator/./node_modules/chalk/node_modules/color-convert/conversions.js","webpack://JavaScriptObfuscator/./node_modules/chalk/node_modules/color-convert/index.js","webpack://JavaScriptObfuscator/./node_modules/chalk/node_modules/color-convert/route.js","webpack://JavaScriptObfuscator/./node_modules/chalk/node_modules/color-name/index.js","webpack://JavaScriptObfuscator/./node_modules/chalk/source/index.js","webpack://JavaScriptObfuscator/./node_modules/chalk/source/templates.js","webpack://JavaScriptObfuscator/./node_modules/chalk/source/util.js","webpack://JavaScriptObfuscator/./node_modules/chance/chance.js","webpack://JavaScriptObfuscator/./node_modules/char-regex/index.js","webpack://JavaScriptObfuscator/./node_modules/charenc/charenc.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/metadata/ValidationMetadata.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/metadata/MetadataStorage.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/node_modules/tslib/tslib.es6.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation/ValidationError.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation/ValidationTypes.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation/ValidationUtils.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/utils.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation/ValidationExecutor.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/container.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/validation/Validator.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/Allow.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/metadata/ConstraintMetadata.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/register-decorator.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/ValidateBy.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsDefined.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsOptional.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/Validate.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/ValidateIf.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/ValidateNested.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/ValidatePromise.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsLatLong.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsLatitude.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsLongitude.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/Equals.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/NotEquals.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsEmpty.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsIn.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/common/IsNotIn.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/number/IsPositive.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/number/IsNegative.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/number/Max.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/number/Min.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/date/MinDate.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/date/MaxDate.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/Contains.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/NotContains.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsAlpha.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsDecimal.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsAscii.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsBase64.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsByteLength.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsCreditCard.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsCurrency.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsEmail.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsFQDN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsFullWidth.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsHexColor.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/ValidationOptions.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMacAddress.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsIP.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsPort.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISBN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISIN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISO8601.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsJSON.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsJWT.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsLowercase.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMongoId.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMultibyte.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsUrl.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsUUID.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsUppercase.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/Length.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/MaxLength.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/MinLength.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/Matches.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsHash.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISSN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsDateString.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsBooleanString.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsNumberString.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsBase32.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsBIC.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsDataURI.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsEAN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsHSL.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsIBAN.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsISRC.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsLocale.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsMimeType.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsOctal.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsPostalCode.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsRFC3339.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsRgbColor.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/string/IsSemVer.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsDate.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsInt.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsString.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsArray.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/typechecker/IsObject.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayContains.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/array/ArrayUnique.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/decorator/object/IsInstance.js","webpack://JavaScriptObfuscator/./node_modules/class-validator/esm5/index.js","webpack://JavaScriptObfuscator/./node_modules/crypt/crypt.js","webpack://JavaScriptObfuscator/./node_modules/define-properties/index.js","webpack://JavaScriptObfuscator/./node_modules/es6-object-assign/index.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/definition.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/index.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/pattern-visitor.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/reference.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/referencer.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/scope-manager.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/scope.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/lib/variable.js","webpack://JavaScriptObfuscator/./node_modules/eslint-scope/node_modules/estraverse/estraverse.js","webpack://JavaScriptObfuscator/./node_modules/esrecurse/esrecurse.js","webpack://JavaScriptObfuscator/./node_modules/estraverse/estraverse.js","webpack://JavaScriptObfuscator/./node_modules/esutils/lib/ast.js","webpack://JavaScriptObfuscator/./node_modules/esutils/lib/code.js","webpack://JavaScriptObfuscator/./node_modules/esutils/lib/keyword.js","webpack://JavaScriptObfuscator/./node_modules/esutils/lib/utils.js","webpack://JavaScriptObfuscator/./node_modules/eventemitter3/index.js","webpack://JavaScriptObfuscator/./node_modules/fast-deep-equal/index.js","webpack://JavaScriptObfuscator/./node_modules/foreach/index.js","webpack://JavaScriptObfuscator/./node_modules/function-bind/implementation.js","webpack://JavaScriptObfuscator/./node_modules/function-bind/index.js","webpack://JavaScriptObfuscator/./node_modules/google-libphonenumber/dist/libphonenumber.js","webpack://JavaScriptObfuscator/./node_modules/has-symbols/index.js","webpack://JavaScriptObfuscator/./node_modules/has-symbols/shams.js","webpack://JavaScriptObfuscator/./node_modules/has/src/index.js","webpack://JavaScriptObfuscator/./node_modules/inherits/inherits_browser.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/decorator_utils.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/inject.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/injectable.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/multi_inject.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/named.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/optional.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/post_construct.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/tagged.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/target_name.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/annotation/unmanaged.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/bindings/binding.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/bindings/binding_count.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/constants/error_msgs.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/constants/literal_types.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/constants/metadata_keys.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/container/container.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/container/container_module.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/container/container_snapshot.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/container/lookup.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/inversify.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/context.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/metadata.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/metadata_reader.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/plan.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/planner.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/queryable_string.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/reflection_utils.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/request.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/planning/target.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/resolution/instantiation.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/resolution/resolver.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_in_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_in_when_on_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_on_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_to_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_when_on_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/binding_when_syntax.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/syntax/constraint_helpers.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/utils/binding_utils.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/utils/exceptions.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/utils/id.js","webpack://JavaScriptObfuscator/./node_modules/inversify/lib/utils/serialization.js","webpack://JavaScriptObfuscator/./node_modules/is-arguments/index.js","webpack://JavaScriptObfuscator/./node_modules/is-buffer/index.js","webpack://JavaScriptObfuscator/./node_modules/is-generator-function/index.js","webpack://JavaScriptObfuscator/./node_modules/is-nan/implementation.js","webpack://JavaScriptObfuscator/./node_modules/is-nan/index.js","webpack://JavaScriptObfuscator/./node_modules/is-nan/polyfill.js","webpack://JavaScriptObfuscator/./node_modules/is-nan/shim.js","webpack://JavaScriptObfuscator/./node_modules/is-typed-array/index.js","webpack://JavaScriptObfuscator/./node_modules/is-typed-array/node_modules/es-abstract/GetIntrinsic.js","webpack://JavaScriptObfuscator/./node_modules/is-typed-array/node_modules/es-abstract/helpers/callBind.js","webpack://JavaScriptObfuscator/./node_modules/is-typed-array/node_modules/es-abstract/helpers/callBound.js","webpack://JavaScriptObfuscator/./node_modules/is-typed-array/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://JavaScriptObfuscator/./node_modules/js-string-escape/index.js","webpack://JavaScriptObfuscator/./node_modules/md5/md5.js","webpack://JavaScriptObfuscator/./node_modules/object-is/implementation.js","webpack://JavaScriptObfuscator/./node_modules/object-is/index.js","webpack://JavaScriptObfuscator/./node_modules/object-is/node_modules/es-abstract/GetIntrinsic.js","webpack://JavaScriptObfuscator/./node_modules/object-is/node_modules/es-abstract/helpers/callBind.js","webpack://JavaScriptObfuscator/./node_modules/object-is/polyfill.js","webpack://JavaScriptObfuscator/./node_modules/object-is/shim.js","webpack://JavaScriptObfuscator/./node_modules/object-keys/implementation.js","webpack://JavaScriptObfuscator/./node_modules/object-keys/index.js","webpack://JavaScriptObfuscator/./node_modules/object-keys/isArguments.js","webpack://JavaScriptObfuscator/./node_modules/process/browser.js","webpack://JavaScriptObfuscator/./node_modules/reflect-metadata/Reflect.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/array-set.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/base64-vlq.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/base64.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/binary-search.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/mapping-list.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/quick-sort.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/source-map-consumer.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/source-map-generator.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/source-node.js","webpack://JavaScriptObfuscator/./node_modules/source-map/lib/util.js","webpack://JavaScriptObfuscator/./node_modules/source-map/source-map.js","webpack://JavaScriptObfuscator/./node_modules/string-template/index.js","webpack://JavaScriptObfuscator/./node_modules/stringz/dist/index.js","webpack://JavaScriptObfuscator/./node_modules/supports-color/browser.js","webpack://JavaScriptObfuscator/./index.ts","webpack://JavaScriptObfuscator/./src/ASTParserFacade.ts","webpack://JavaScriptObfuscator/./src/JavaScriptObfuscator.ts","webpack://JavaScriptObfuscator/./src/JavaScriptObfuscatorFacade.ts","webpack://JavaScriptObfuscator/./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts","webpack://JavaScriptObfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts","webpack://JavaScriptObfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts","webpack://JavaScriptObfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts","webpack://JavaScriptObfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts","webpack://JavaScriptObfuscator/./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts","webpack://JavaScriptObfuscator/./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts","webpack://JavaScriptObfuscator/./src/analyzers/scope-analyzer/ScopeAnalyzer.ts","webpack://JavaScriptObfuscator/./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts","webpack://JavaScriptObfuscator/./src/code-transformers/AbstractCodeTransformer.ts","webpack://JavaScriptObfuscator/./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts","webpack://JavaScriptObfuscator/./src/code-transformers/CodeTransformersRunner.ts","webpack://JavaScriptObfuscator/./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts","webpack://JavaScriptObfuscator/./src/constants/AlphabetString.ts","webpack://JavaScriptObfuscator/./src/constants/AlphabetStringUppercase.ts","webpack://JavaScriptObfuscator/./src/constants/Base64Alphabet.ts","webpack://JavaScriptObfuscator/./src/constants/Base64AlphabetSwapped.ts","webpack://JavaScriptObfuscator/./src/constants/EcmaVersion.ts","webpack://JavaScriptObfuscator/./src/constants/NumbersString.ts","webpack://JavaScriptObfuscator/./src/container/InversifyContainerFacade.ts","webpack://JavaScriptObfuscator/./src/container/ServiceIdentifiers.ts","webpack://JavaScriptObfuscator/./src/container/modules/analyzers/AnalyzersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/code-transformers/CodeTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/custom-nodes/CustomNodesModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/generators/GeneratorsModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/ControlFlowTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/ConvertingTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/FinalizingTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/InitializingTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/NodeTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/PreparingTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/SimplifyingTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node-transformers/StringArrayTransformersModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/node/NodeModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/options/OptionsModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/storages/StoragesModule.ts","webpack://JavaScriptObfuscator/./src/container/modules/utils/UtilsModule.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/AbstractCustomCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/CustomCodeHelperFormatter.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/CustomCodeHelperObfuscator.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/AbstractCustomNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts","webpack://JavaScriptObfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts","webpack://JavaScriptObfuscator/./src/decorators/Initializable.ts","webpack://JavaScriptObfuscator/./src/enums/ObfuscationTarget.ts","webpack://JavaScriptObfuscator/./src/enums/StringSeparator.ts","webpack://JavaScriptObfuscator/./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts","webpack://JavaScriptObfuscator/./src/enums/code-transformers/CodeTransformationStage.ts","webpack://JavaScriptObfuscator/./src/enums/code-transformers/CodeTransformer.ts","webpack://JavaScriptObfuscator/./src/enums/custom-code-helpers/CustomCodeHelper.ts","webpack://JavaScriptObfuscator/./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts","webpack://JavaScriptObfuscator/./src/enums/custom-nodes/ControlFlowCustomNode.ts","webpack://JavaScriptObfuscator/./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts","webpack://JavaScriptObfuscator/./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts","webpack://JavaScriptObfuscator/./src/enums/custom-nodes/StringArrayCustomNode.ts","webpack://JavaScriptObfuscator/./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts","webpack://JavaScriptObfuscator/./src/enums/event-emitters/ObfuscationEvent.ts","webpack://JavaScriptObfuscator/./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/enums/logger/LoggingMessage.ts","webpack://JavaScriptObfuscator/./src/enums/logger/LoggingPrefix.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/NodeTransformationStage.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/NodeTransformer.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/VisitorDirection.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts","webpack://JavaScriptObfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts","webpack://JavaScriptObfuscator/./src/enums/node/NodeType.ts","webpack://JavaScriptObfuscator/./src/enums/node/ObfuscatingGuardResult.ts","webpack://JavaScriptObfuscator/./src/enums/options/presets/OptionsPreset.ts","webpack://JavaScriptObfuscator/./src/enums/source-map/SourceMapMode.ts","webpack://JavaScriptObfuscator/./src/event-emitters/ObfuscationEventEmitter.ts","webpack://JavaScriptObfuscator/./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts","webpack://JavaScriptObfuscator/./src/logger/Logger.ts","webpack://JavaScriptObfuscator/./src/node-transformers/AbstractNodeTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts","webpack://JavaScriptObfuscator/./src/node-transformers/NodeTransformersRunner.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/SplitStringTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts","webpack://JavaScriptObfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts","webpack://JavaScriptObfuscator/./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/initializing-transformers/CommentsTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/MetadataTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/ParentificationTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts","webpack://JavaScriptObfuscator/./src/node-transformers/string-array-transformers/StringArrayTransformer.ts","webpack://JavaScriptObfuscator/./src/node/NodeAppender.ts","webpack://JavaScriptObfuscator/./src/node/NodeFactory.ts","webpack://JavaScriptObfuscator/./src/node/NodeGuards.ts","webpack://JavaScriptObfuscator/./src/node/NodeLexicalScopeUtils.ts","webpack://JavaScriptObfuscator/./src/node/NodeLiteralUtils.ts","webpack://JavaScriptObfuscator/./src/node/NodeMetadata.ts","webpack://JavaScriptObfuscator/./src/node/NodeStatementUtils.ts","webpack://JavaScriptObfuscator/./src/node/NodeUtils.ts","webpack://JavaScriptObfuscator/./src/node/ScopeIdentifiersTraverser.ts","webpack://JavaScriptObfuscator/./src/options/Options.ts","webpack://JavaScriptObfuscator/./src/options/OptionsNormalizer.ts","webpack://JavaScriptObfuscator/./src/options/ValidationErrorsFormatter.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/DeadCodeInjectionRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/DomainLockRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/InputFileNameRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/SeedRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/SelfDefendingRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/SourceMapBaseUrlRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/SourceMapFileNameRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/StringArrayEncodingRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/StringArrayRule.ts","webpack://JavaScriptObfuscator/./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts","webpack://JavaScriptObfuscator/./src/options/presets/Default.ts","webpack://JavaScriptObfuscator/./src/options/presets/HighObfuscation.ts","webpack://JavaScriptObfuscator/./src/options/presets/LowObfuscation.ts","webpack://JavaScriptObfuscator/./src/options/presets/MediumObfuscation.ts","webpack://JavaScriptObfuscator/./src/options/presets/NoCustomNodes.ts","webpack://JavaScriptObfuscator/./src/options/validators/IsAllowedForObfuscationTargets.ts","webpack://JavaScriptObfuscator/./src/source-code/ObfuscatedCode.ts","webpack://JavaScriptObfuscator/./src/source-code/SourceCode.ts","webpack://JavaScriptObfuscator/./src/storages/ArrayStorage.ts","webpack://JavaScriptObfuscator/./src/storages/MapStorage.ts","webpack://JavaScriptObfuscator/./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts","webpack://JavaScriptObfuscator/./src/storages/custom-nodes/ControlFlowStorage.ts","webpack://JavaScriptObfuscator/./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts","webpack://JavaScriptObfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts","webpack://JavaScriptObfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts","webpack://JavaScriptObfuscator/./src/storages/string-array-transformers/StringArrayStorage.ts","webpack://JavaScriptObfuscator/./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts","webpack://JavaScriptObfuscator/./src/utils/AbstractTransformerNamesGroupsBuilder.ts","webpack://JavaScriptObfuscator/./src/utils/ArrayUtils.ts","webpack://JavaScriptObfuscator/./src/utils/CryptUtils.ts","webpack://JavaScriptObfuscator/./src/utils/CryptUtilsSwappedAlphabet.ts","webpack://JavaScriptObfuscator/./src/utils/EscapeSequenceEncoder.ts","webpack://JavaScriptObfuscator/./src/utils/LevelledTopologicalSorter.ts","webpack://JavaScriptObfuscator/./src/utils/NumberUtils.ts","webpack://JavaScriptObfuscator/./src/utils/RandomGenerator.ts","webpack://JavaScriptObfuscator/./src/utils/StringUtils.ts","webpack://JavaScriptObfuscator/./src/utils/Utils.ts","webpack://JavaScriptObfuscator/./node_modules/util/support/isBufferBrowser.js","webpack://JavaScriptObfuscator/./node_modules/util/support/types.js","webpack://JavaScriptObfuscator/./node_modules/util/util.js","webpack://JavaScriptObfuscator/./node_modules/validator/index.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/alpha.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/blacklist.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/contains.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/equals.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/escape.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isAfter.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isAlpha.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isAlphanumeric.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isAscii.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBIC.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBase32.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBase64.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBefore.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBoolean.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isBtcAddress.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isByteLength.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isCreditCard.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isCurrency.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isDataURI.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isDecimal.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isDivisibleBy.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isEAN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isEmail.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isEmpty.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isEthereumAddress.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isFQDN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isFloat.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isFullWidth.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isHSL.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isHalfWidth.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isHash.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isHexColor.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isHexadecimal.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isIBAN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isIP.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isIPRange.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISBN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISIN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISO31661Alpha2.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISO31661Alpha3.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISO8601.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISRC.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isISSN.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isIdentityCard.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isIn.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isInt.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isJSON.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isJWT.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isLatLong.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isLength.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isLocale.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isLowercase.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMACAddress.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMD5.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMagnetURI.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMimeType.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMobilePhone.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMongoId.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isMultibyte.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isNumeric.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isOctal.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isPassportNumber.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isPort.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isPostalCode.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isRFC3339.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isRgbColor.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isSemVer.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isSlug.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isSurrogatePair.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isURL.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isUUID.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isUppercase.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isVariableWidth.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/isWhitelisted.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/ltrim.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/matches.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/normalizeEmail.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/rtrim.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/stripLow.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/toBoolean.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/toDate.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/toFloat.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/toInt.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/trim.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/unescape.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/util/assertString.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/util/includes.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/util/merge.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/util/multilineRegex.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/util/toString.js","webpack://JavaScriptObfuscator/./node_modules/validator/lib/whitelist.js","webpack://JavaScriptObfuscator/./node_modules/which-typed-array/index.js","webpack://JavaScriptObfuscator/./node_modules/which-typed-array/node_modules/es-abstract/GetIntrinsic.js","webpack://JavaScriptObfuscator/./node_modules/which-typed-array/node_modules/es-abstract/helpers/callBind.js","webpack://JavaScriptObfuscator/./node_modules/which-typed-array/node_modules/es-abstract/helpers/callBound.js","webpack://JavaScriptObfuscator/./node_modules/which-typed-array/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://JavaScriptObfuscator/webpack/bootstrap","webpack://JavaScriptObfuscator/webpack/startup","webpack://JavaScriptObfuscator/webpack/runtime/compat get default export","webpack://JavaScriptObfuscator/webpack/runtime/define property getters","webpack://JavaScriptObfuscator/webpack/runtime/global","webpack://JavaScriptObfuscator/webpack/runtime/hasOwnProperty shorthand","webpack://JavaScriptObfuscator/webpack/runtime/make namespace object","webpack://JavaScriptObfuscator/webpack/runtime/node module decorator"],"names":["root","factory","exports","module","define","amd","self","Syntax","Precedence","BinaryPrecedence","SourceNode","estraverse","esutils","base","indent","json","renumber","hexadecimal","quotes","escapeless","newline","space","parentheses","semicolons","safeConcatenation","directive","extra","parse","sourceMap","sourceCode","preserveBlankLines","FORMAT_MINIFY","FORMAT_DEFAULTS","isStatement","node","CodeGenerator","Statement","hasOwnProperty","type","Sequence","Yield","Assignment","Conditional","ArrowFunction","NullishCoalescing","LogicalOR","LogicalAND","BitwiseOR","BitwiseXOR","BitwiseAND","Equality","Relational","BitwiseSHIFT","Additive","Multiplicative","Exponentiation","Await","Unary","Postfix","OptionalChaining","Call","New","TaggedTemplate","Member","Primary","F_SEMICOLON_OPT","S_TFFT","F_ALLOW_IN","stringRepeat","str","num","result","endsWithLineTerminator","len","length","code","isLineTerminator","charCodeAt","merge","target","override","key","updateDeeply","val","isHashObject","Object","RegExp","escapeRegExpCharacter","ch","previousIsBackslash","String","fromCharCode","escapeAllowedCharacter","next","hex","toString","toUpperCase","slice","isDecimalDigit","escapeDisallowedCharacter","Error","flattenToString","arr","i","iz","elem","Array","isArray","toSourceNodeWhenNeeded","generated","loc","name","start","line","column","source","noEmptySpace","join","left","right","leftSource","rightSource","leftCharCode","rightCharCode","isIdentifierPartES5","isWhiteSpace","addIndent","stmt","withIndent","fn","previousBase","generateComment","comment","specialBase","value","format","adjustMultilineComment","test","array","j","spaces","sn","split","Number","MAX_VALUE","addComments","save","tailingToStatement","fragment","extRange","range","prevRange","prefix","count","leadingComments","extendedRange","substring","match","push","Program","body","trailingComments","calculateSpaces","generateBlankLines","end","newlineCount","parenthesize","text","current","should","generateVerbatimString","string","generateIdentifier","generateAsyncPrefix","spaceRequired","async","generateStarSuffix","generator","moz","starlessGenerator","generateMethodPrefix","prop","func","computed","prototype","maybeBlock","flags","noLeadingComment","that","this","BlockStatement","generateStatement","EmptyStatement","maybeBlockSuffix","ends","generatePattern","precedence","Identifier","generateExpression","generateFunctionParams","hasDefault","ArrowFunctionExpression","rest","defaults","params","generateAssignment","generateFunctionBody","expr","expression","charAt","generateIterationForStatement","operator","await","VariableDeclaration","kind","declarations","generatePropertyKey","semicolon","content","bodyFlags","BreakStatement","label","ContinueStatement","ClassBody","ClassDeclaration","id","superClass","DirectiveStatement","raw","quote","escapeDirective","DoWhileStatement","CatchClause","guard","param","splice","DebuggerStatement","ExportDefaultDeclaration","declaration","ExportNamedDeclaration","specifiers","ExportBatchSpecifier","ExportAllDeclaration","exported","ExpressionStatement","isClassPrefixed","isFunctionPrefixed","isAsyncPrefixed","Literal","ImportDeclaration","cursor","ImportDefaultSpecifier","ImportNamespaceSpecifier","VariableDeclarator","itemFlags","F_ALLOW_CALL","init","block","ThrowStatement","argument","TryStatement","guardedHandlers","handlers","finalizer","handler","SwitchStatement","discriminant","cases","SwitchCase","consequent","IfStatement","alternate","ForStatement","update","ForInStatement","ForOfStatement","LabeledStatement","FunctionDeclaration","ReturnStatement","WhileStatement","WithStatement","object","Expression","SequenceExpression","expressions","AssignmentExpression","ConditionalExpression","LogicalExpression","BinaryExpression","leftPrecedence","rightPrecedence","currentPrecedence","CallExpression","callee","optional","ChainExpression","NewExpression","MemberExpression","property","indexOf","MetaProperty","meta","UnaryExpression","YieldExpression","delegate","AwaitExpression","all","UpdateExpression","FunctionExpression","ArrayPattern","ArrayExpression","isPattern","multiline","elements","RestElement","ClassExpression","MethodDefinition","Property","shorthand","AssignmentPattern","method","ObjectExpression","properties","ObjectPattern","ThisExpression","Super","local","ImportSpecifier","imported","ExportSpecifier","e","regex","pattern","bigint","single","singleQuotes","doubleQuotes","escapeString","point","temp","exponent","pos","replace","Math","floor","generateNumber","reg","characterInBrack","generateRegExp","GeneratorExpression","ComprehensionExpression","comprehensionExpressionStartsWithAssignment","blocks","filter","ComprehensionBlock","of","SpreadElement","TaggedTemplateExpression","tag","quasi","TemplateElement","TemplateLiteral","quasis","ModuleSpecifier","ImportExpression","flag","verbatim","generateVerbatim","replaceRight","style","compact","version","generate","options","pair","defaultOptions","sourceMapRoot","sourceMapWithCode","browser","g","codegen","isExpression","generateInternal","toStringWithSourceMap","file","sourceRoot","sourceContent","map","setSourceContent","attachComments","reservedWords","3","5","6","strict","strictBind","ecma5AndLessKeywords","keywords","keywordRelationalOperator","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","set","isIdentifierStart","astral","isIdentifierChar","TokenType","conf","keyword","beforeExpr","startsExpr","isLoop","isAssign","postfix","binop","updateContext","prec","keywords$1","kw","types","regexp","eof","bracketL","bracketR","braceL","braceR","parenL","parenR","comma","semi","colon","dot","question","questionDot","arrow","template","invalidTemplate","ellipsis","backQuote","dollarBraceL","eq","assign","incDec","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","starstar","coalesce","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","lineBreak","lineBreakG","isNewLine","ecma2019String","nonASCIIwhitespace","skipWhiteSpace","ref","has","obj","propName","call","wordsRegexp","words","Position","col","offset","n","SourceLocation","p","sourceFile","getLineInfo","input","cur","lastIndex","exec","index","ecmaVersion","sourceType","onInsertedSemicolon","onTrailingComma","allowReserved","allowReturnOutsideFunction","allowImportExportEverywhere","allowAwaitOutsideFunction","allowHashBang","locations","onToken","onComment","ranges","program","directSourceFile","preserveParens","warnedAboutEcmaVersion","getOptions","opts","opt","console","warn","tokens","token","startLoc","endLoc","pushComment","functionFlags","Parser","startPos","reserved","reservedStrict","reservedWordsStrict","reservedWordsStrictBind","containsEsc","lineStart","lastIndexOf","curLine","curPosition","lastTokEndLoc","lastTokStartLoc","lastTokStart","lastTokEnd","context","initialContext","exprAllowed","inModule","strictDirective","potentialArrowAt","yieldPos","awaitPos","awaitIdentPos","labels","undefinedExports","skipLineComment","scopeStack","enterScope","regexpState","prototypeAccessors","inFunction","configurable","inGenerator","inAsync","allowSuper","allowDirectSuper","treatFunctionsAsVar","inNonArrowFunction","startNode","nextToken","parseTopLevel","get","currentVarScope","currentThisScope","treatFunctionsAsVarInScope","currentScope","extend","plugins","arguments","cls","parseExpressionAt","parser","parseExpression","tokenizer","defineProperties","pp","literal","DestructuringErrors","shorthandAssign","trailingComma","parenthesizedAssign","parenthesizedBind","doubleProto","spaceAfter","eat","isContextual","eatContextual","expectContextual","unexpected","canInsertSemicolon","insertSemicolon","afterTrailingComma","tokType","notNext","expect","raise","checkPatternErrors","refDestructuringErrors","raiseRecoverable","parens","checkExpressionErrors","andThrow","checkYieldAwaitInDefaultParams","isSimpleAssignTarget","pp$1","parseStatement","list","keys","adaptDirectivePrologue","finishNode","loopLabel","switchLabel","isLet","skip","nextCh","ident","isAsyncFunction","topLevel","starttype","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseFunctionStatement","parseClass","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseVarStatement","parseWhileStatement","parseWithStatement","parseBlock","parseEmptyStatement","parseExpressionStatement","parseImport","parseExport","maybeName","parseLabeledStatement","isBreak","parseIdent","lab","pop","parseParenExpression","awaitAt","parseFor","init$1","parseVar","parseForIn","toAssignable","checkLValPattern","isAsync","declarationPosition","parseFunction","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","sawDefault","isCase","exitScope","empty","clause","parseBindingAtom","simple","i$1","label$1","statementStart","createNewLexicalScope","exitStrict","isForIn","parseMaybeAssign","isFor","decl","parseVarId","statement","allowExpressionBody","initFunction","checkLValSimple","oldYieldPos","oldAwaitPos","oldAwaitIdentPos","parseFunctionParams","parseFunctionBody","parseBindingList","oldStrict","parseClassId","parseClassSuper","classBody","hadConstructor","element","parseClassElement","constructorAllowsSuper","this$1","tryContextual","k","noLineBreak","startNodeAt","static","isGenerator","parsePropertyName","allowsDirectSuper","parseClassMethod","parseMethod","parseExprSubscripts","checkExport","parseExprAtom","fNode","cNode","shouldParseExportStatement","checkVariableExport","parseExportSpecifiers","spec","checkUnreserved","checkLocalExport","checkPatternExport","pat","list$1","elt","decls","nodes","first","parseImportSpecifiers","node$1","node$2","statements","isDirectiveCandidate","pp$2","isBinding","toAssignableList","exprList","last","parseSpread","parseRestBinding","parseObj","close","allowEmpty","allowTrailingComma","elts","parseBindingListItem","parseMaybeDefault","bindingType","checkClashes","isBind","declareName","checkLValInnerPattern","pp$3","checkPropClash","propHash","proto","other","noIn","afterLeftParse","parseYield","ownDestructuringErrors","oldParenAssign","oldTrailingComma","parseMaybeConditional","parseExprOps","parseMaybeUnary","parseExprOp","leftStartPos","leftStartLoc","minPrec","logical","op","buildBinary","sawUnary","parseAwait","parseSubscripts","noCalls","maybeAsyncArrow","optionalChained","parseSubscript","chainNode","optionalSupported","parseExprList","parseArrowExpression","parseTemplate","isTagged","readRegexp","canBeArrow","parseLiteral","parseParenAndDistinguishExpression","parseNew","parseExprImport","parseDynamicImport","parseImportMeta","errorPos","spreadStart","innerStartPos","innerStartLoc","lastIsComma","parseParenItem","innerEndPos","innerEndLoc","parseParenArrowList","finishNodeAt","par","item","empty$1","isImport","parseTemplateElement","cooked","tail","curElt","isAsyncProp","parseProperty","parsePropertyValue","copyNode","paramCount","isArrowFunction","isMethod","useStrict","checkParams","nonSimple","isSimpleParamList","oldLabels","undefined","allowDuplicates","nameHash","liberal","pp$4","message","err","SyntaxError","raisedAt","pp$5","Scope","var","lexical","functions","scope","redeclared","scope$2","scope$3","SCOPE_TOP","Node","pp$6","newNode","TokContext","isExpr","preserveSpace","types$1","b_stat","b_expr","b_tmpl","p_stat","p_expr","q_tmpl","tryReadTemplateToken","f_stat","f_expr","f_expr_gen","f_gen","pp$7","braceIsBlock","prevType","parent","curContext","inGeneratorContext","out","statementParens","allowed","ecma9BinaryProperties","ecma10BinaryProperties","unicodeBinaryProperties","9","10","11","12","unicodeGeneralCategoryValues","ecma9ScriptValues","ecma10ScriptValues","ecma11ScriptValues","unicodeScriptValues","data","buildUnicodeData","d","binary","nonBinary","General_Category","Script","Script_Extensions","gc","sc","scx","pp$8","RegExpValidationState","validFlags","unicodeProperties","switchU","switchN","lastIntValue","lastStringValue","lastAssertionIsQuantifiable","numCapturingParens","maxBackReference","groupNames","backReferenceNames","codePointToString","isSyntaxCharacter","isControlLetter","isUnicodePropertyNameCharacter","isUnicodePropertyValueCharacter","isHexDigit","hexToInt","isOctalDigit","reset","unicode","at","forceU","s","l","c","nextIndex","lookahead","advance","validateRegExpFlags","state","validateRegExpPattern","regexp_pattern","regexp_disjunction","regexp_alternative","regexp_eatQuantifier","regexp_eatTerm","regexp_eatAssertion","regexp_eatAtom","regexp_eatExtendedAtom","lookbehind","noError","regexp_eatQuantifierPrefix","regexp_eatBracedQuantifier","min","max","regexp_eatDecimalDigits","regexp_eatPatternCharacters","regexp_eatReverseSolidusAtomEscape","regexp_eatCharacterClass","regexp_eatUncapturingGroup","regexp_eatCapturingGroup","regexp_eatAtomEscape","regexp_groupSpecifier","regexp_eatInvalidBracedQuantifier","regexp_eatExtendedPatternCharacter","regexp_eatSyntaxCharacter","regexp_eatGroupName","regexp_eatRegExpIdentifierName","regexp_eatRegExpIdentifierStart","regexp_eatRegExpIdentifierPart","regexp_eatRegExpUnicodeEscapeSequence","isRegExpIdentifierStart","isRegExpIdentifierPart","regexp_eatBackReference","regexp_eatCharacterClassEscape","regexp_eatCharacterEscape","regexp_eatKGroupName","regexp_eatDecimalEscape","regexp_eatControlEscape","regexp_eatCControlLetter","regexp_eatZero","regexp_eatHexEscapeSequence","regexp_eatLegacyOctalEscapeSequence","regexp_eatIdentityEscape","regexp_eatControlLetter","regexp_eatFixedHexDigits","lead","leadSurrogateEnd","trail","regexp_eatHexDigits","isCharacterClassEscape","regexp_eatUnicodePropertyValueExpression","regexp_eatUnicodePropertyName","regexp_eatUnicodePropertyValue","regexp_validateUnicodePropertyNameAndValue","regexp_eatLoneUnicodePropertyNameOrValue","nameOrValue","regexp_validateUnicodePropertyNameOrValue","regexp_classRanges","regexp_eatClassAtom","regexp_eatClassEscape","ch$1","regexp_eatClassControlLetter","regexp_eatOctalDigit","n1","n2","Token","pp$9","stringToBigInt","BigInt","codePointToString$1","ignoreEscapeSequenceInKeyword","getToken","Symbol","iterator","done","skipSpace","finishToken","readToken","fullCharCodeAtPos","readWord","getTokenFromCode","skipBlockComment","startSkip","loop","readToken_dot","readNumber","next2","readToken_slash","finishOp","readToken_mult_modulo_exp","size","tokentype","readToken_pipe_amp","readToken_caret","readToken_plus_min","readToken_lt_gt","readToken_eq_excl","readToken_question","readRadixNumber","readString","escaped","inClass","flagsStart","readWord1","readInt","radix","maybeLegacyOctalNumericLiteral","allowSeparators","isLegacyOctalNumericLiteral","total","lastCode","Infinity","startsWithDot","octal","val$1","parseInt","parseFloat","readCodePoint","codePos","readHexChar","invalidStringToken","chunkStart","readEscapedChar","INVALID_TEMPLATE_ESCAPE_ERROR","inTemplateElement","readTmplToken","readInvalidTemplateToken","position","inTemplate","octalStr","substr","word","escStart","esc","acorn","tokTypes","keywordTypes","tokContexts","defineProperty","TypeError","ret","hasOwn","constructor","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","isRegExp","objectAssign","objectIs","is","lazyLoadComparison","comparison","Map","warned","assert","ok","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","generatedMessage","actual","expected","stackStartFn","_len","args","_key","apply","concat","fail","internalMessage","argsLen","process","emitWarning","bind","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","instance","Constructor","_classCallCheck","forEach","compareExceptionKey","a","b","expectedException","msg","isPrototypeOf","getActual","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resolve","resultPromise","expectsError","error","details","fnType","expectsNoError","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","shift","tmp1","_defineProperty","enumerable","writable","_defineProperties","props","descriptor","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","Parent","o","setPrototypeOf","__proto__","getPrototypeOf","endsWith","search","this_len","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","inspectValue","customInspect","depth","maxArrayLength","showHidden","breakLength","showProxy","sorted","getters","_Error","limit","stackTraceLimit","stderr","isTTY","getColorDepth","res","lastPos","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","columns","maxCount","log","repeat","maxLines","_actualLines","printedLines","skippedMsg","expectedLine","actualLine","divergingLines","createErrDiff","_res","knownOperators","captureStackTrace","protoProps","subClass","_inherits","custom","recurseTimes","ctx","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectSpread","util","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","determiner","reason","inspected","RangeError","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","arrayFromSet","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","isNaN","uncurryThis","f","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","pow","getOwnNonIndexProperties","compare","x","y","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","byteLength","Uint8Array","buffer","byteOffset","areSimilarTypedArrays","areSimilarFloatArrays","_keys","_keys2","valueOf","Boolean","isEqualBoxedPrimitive","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","objEquiv","delete","setHasEqualElement","memo","setValues","findLooseMatchingPrimitives","prim","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","mapHasEqualEntry","key1","item1","key2","aValues","Set","add","bValues","_val","setEquiv","aEntries","_aEntries$i","item2","bEntries","_i2","_bEntries$_i","mapEquiv","keysA","typedArray","wrapAnsi16","wrapAnsi256","wrapAnsi16m","rgb","ansi2ansi","rgb2rgb","r","setLazyProperty","colorConvert","makeDynamicStyles","wrap","targetSpace","identity","isBackground","styles","sourceSpace","suite","entries","modifier","bold","dim","italic","underline","inverse","hidden","strikethrough","color","black","yellow","magenta","cyan","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","gray","bgGray","grey","bgGrey","groupName","group","styleName","open","cssKeywords","reverseKeywords","convert","channels","hsl","hsv","hwb","cmyk","xyz","lch","ansi16","ansi256","hcg","apple","model","delta","h","rdif","gdif","bdif","v","diff","diffc","w","reversed","currentClosestKeyword","currentClosestDistance","distance","z","t2","t3","t1","smin","lmin","hi","q","t","vmin","sl","wh","bl","ratio","m","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","round","ansi","mult","rem","colorString","char","integer","chroma","grayscale","hue","pure","mg","conversions","route","fromModel","routes","toModel","wrappedFn","arg0","conversion","wrapRounded","wrapRaw","link","from","to","wrapConversion","graph","path","unshift","models","buildGraph","queue","adjacents","adjacent","deriveBFS","ansiStyles","stdout","stdoutColor","stderrColor","stringReplaceAll","stringEncaseCRLFWithFirstIndex","levelMapping","ChalkClass","chalkFactory","chalk","level","isInteger","colorLevel","applyOptions","arguments_","chalkTag","Chalk","Instance","builder","createBuilder","createStyler","_styler","_isEmpty","visible","usedModels","styler","_generator","openAll","closeAll","applyStyle","lfIndex","strings","firstString","parts","supportsColor","TEMPLATE_REGEX","STYLE_REGEX","STRING_REGEX","ESCAPE_REGEX","ESCAPES","unescape","u","bracket","fromCodePoint","parseArguments","results","chunks","trim","matches","chunk","number","escape","character","parseStyle","buildStyle","enabled","layer","temporary","escapeCharacter","errMessage","replacer","substringLength","endIndex","returnValue","gotCR","MAX_INT","NUMBERS","CHARS_LOWER","CHARS_UPPER","HEX_POOL","UnsupportedError","Chance","seed","random","seedling","hash","mt","mersenne_twister","bimd5","blueimp_md5","initOptions","testRange","errorMessage","VERSION","base64","CopyToken","EscapeToken","ReplaceToken","diceFn","natural","btoa","Buffer","bool","likelihood","falsy","pool","NaN","animal","toLowerCase","pick","letters","symbols","casing","alpha","numeric","floating","fixed","precision","num_fixed","toFixed","numerals","exclude","exclusionIndex","sortedExclusions","sort","prime","lastPrime","primes","is_prime","targetPrimes","letter","substitute","replacers","chance","mode","capitalize","mixin","func_name","unique","comparator","MAX_DUPLICATES","clonedParams","JSON","stringify","pad","width","shuffle","pickone","pickset","selected_source_index","new_array","source_indexes","_","last_source_index","weighted","weights","sum","weightIndex","chosenIdx","selected","lastGoodIdx","chosen","paragraph","sentences","sentence_array","sentence","separator","linebreak","punctuation","syllable","chr","consonants","syllables","age","ageRange","birthday","currentYear","getFullYear","setFullYear","year","date","cpf","formatted","d1","d2","cnpj","gender","nationality","profession","rank","company","extraGenders","allLastNames","lastNames","israelId","thisDigit","mrz","checkDigit","multipliers","runningTotal","idx","passportNumber","dob","getMonth","getDate","expiry","issuer","middle","middle_initial","suffix","name_prefixes","prefixes","abbreviation","name_prefix","full","HIDN","idn","ssn","ssn_pool","dash","ssnFour","dashes","aadhar","aadhar_pool","whiteSpace","onlyLastFour","separatedByWhiteSpace","name_suffixes","name_suffix","nationalities","android_id","apple_token","wp8_anid2","wp7_anid","guid","bb_pin","avatar","protocol","email","fileExtension","fallback","rating","http","https","pg","mm","identicon","monsterid","wavatar","retro","blank","bmp","gif","jpg","png","md5","delimiter","hasAlpha","rgbValue","alphaChannel","min_alpha","max_alpha","min_rgb","max_rgb","min_green","max_green","min_blue","max_blue","withHash","symbol","hexstring","isGrayscale","min_red","max_red","colorValue","domain","tld","fbid","google_analytics","hashtag","ip","ipv6","klout","semver","include_prerelease","prerelease","rpg","tlds","twitter","url","extension","domain_prefix","extensions","port","locale","region","locales","loremPicsum","greyscale","height","blurred","query","address","street","altitude","areacode","city","coordinates","latitude","longitude","countries","country","geohash","geojson","DDM","DMS","DD","includes","phone","numPick","ukNum","section","sections","area","mobile","exchange","subscriber","areaCode","mcdu","postal","postcode","counties","county","provinces","province","states","us_states_and_dc","territories","armed_forces","short_suffix","street_suffix","street_suffixes","zip","plusfour","ampm","date_string","american","month","daysInMonth","days","day","hour","twentyfour","minute","second","millisecond","hammertime","months","timestamp","weekday","weekdays","weekday_only","cc","to_generate","cc_type","luhn_calculate","cc_types","short_name","currency_types","currency","timezones","timezone","currency_pair","returnAsString","currencies","reduce","acc","dollar","cents","euro","toLocaleString","exp","exp_year","exp_month","future","month_int","curMonth","curYear","vat","it_vat","iban","cf","name_generator","isLast","return_value","date_generator","range1","range2","evens","digit","checkdigit_generator","pl_pesel","controlNumber","pl_nip","pl_regon","note","notes","scales","naturals","flats","sharps","flatKey","sharpKey","midi_note","chord_quality","chord_qualities","jazz","chord","tempo","coin","d4","d6","d8","d10","d12","d20","d30","d100","thrown","bits","rolls","guid_pool","luhn_check","digits","reverse","fileName","fileOptions","poolCollectionKey","typeRange","extensionObjectCollection","fileType","firstNames","postcodeAreas","locale_languages","locale_regions","country_regions","it","mx","colorNames","animals","emotions","o_hasOwnProperty","o_keys","copyObject","_target","_copyArray","_copyObject","mac_address","networkVersion","mac_pool","normal","mean","dev","normal_pool","performanceCounter","radio","fl","side","values","tv","emotion","MersenneTwister","BlueImpMD5","N","M","MATRIX_A","UPPER_MASK","LOWER_MASK","mti","init_genrand","init_by_array","init_key","key_length","genrand_int32","mag01","kk","genrand_int31","genrand_real1","genrand_real3","genrand_res53","safe_add","lsw","bit_roll","cnt","md5_cmn","md5_ff","md5_gg","md5_hh","md5_ii","binl_md5","olda","oldb","oldc","oldd","binl2rstr","output","rstr2binl","rstr_md5","rstr_hmac_md5","bkey","ipad","opad","rstr2hex","hex_tab","str2rstr_utf8","encodeURIComponent","raw_md5","hex_md5","raw_hmac_md5","hex_hmac_md5","importScripts","window","document","combo","fitz","nonAstral","regional","surrogatePair","optModifier","optVar","seq","charenc","utf8","stringToBytes","bin","bytesToString","bytes","decodeURIComponent","ValidationMetadata","groups","always","each","propertyName","constraints","constraintCls","validationTypeOptions","validationOptions","ValidationSchemaToMetadataTransformer","transform","schema","metadatas","validation","getMetadataStorage","global","classValidatorMetadataStorage","MetadataStorage","validationMetadatas","constraintMetadatas","addValidationSchema","validationMetadata","addValidationMetadata","metadata","addConstraintMetadata","groupByPropertyName","grouped","getTargetValidationMetadatas","targetConstructor","targetSchema","originalMetadatas","find","uniqueInheritedMetadatas","inheritedMetadata","originalMetadata","getTargetValidatorConstraints","__assign","ValidationError","shouldDecorate","hasParent","parentPath","boldStart","boldEnd","propConstraintFailed","formattedProperty_1","children","childError","ValidationTypes","isValid","CUSTOM_VALIDATION","NESTED_VALIDATION","PROMISE_VALIDATION","CONDITIONAL_VALIDATION","WHITELIST","IS_DEFINED","ValidationUtils","replaceMessageSpecialTokens","validationArguments","messageString","constraint","targetName","userContainer","userContainerOptions","ValidationExecutor","validator","validatorOptions","awaitingPromises","ignoreAsyncValidations","metadataStorage","execute","validationErrors","hasValidationMetaData","targetMetadatas","groupedMetadatas","forbidUnknownValues","validationError","unknownValue","whitelist","definedMetadatas","resolvedValue","performValidations","notAllowedProperties","forbidNonWhitelisted","_a","generateValidationError","stripEmptyErrors","errors","customValidationMetadatas","nestedValidationMetadatas","conditionalValidationMetadatas","conditionalValidations","customValidations","mapContexts","skipUndefinedProperties","skipNullProperties","skipMissingProperties","nestedValidations","resultA","resultB","customConstraintMetadata","validatedSubValues","subValue","validate","some","validatedSubValue","asyncValidatedSubValues","asyncValidationIsFinishedPromise","flatValidatedValues","every","createValidationError","contexts","_b","validatedValue","promise","customConstraint","getConstraintType","customValidatorMetadata","dismissDefaultMessages","defaultMessage","Validator","coreValidate","objectOrSchemaName","objectOrValidationOptions","maybeValidatorOptions","executor","validateOrReject","thisArg","_arguments","sent","trys","ops","verb","step","reject","P","fulfilled","rejected","validateSync","defaultContainer","class_1","instances","someClass","useContainer","iocContainer","getFromContainer","fallbackOnErrors","Allow","ConstraintMetadata","registerDecorator","validator_1","CustomConstraint","validationMetadataArgs","buildMessage","impl","eachPrefix","ValidateBy","isDefined","IsDefined","IsOptional","ValidatorConstraint","Validate","constraintClass","constraintsOrValidationOptions","maybeValidationOptions","ValidateIf","condition","ValidateNested","ValidatePromise","IS_LATLONG","isLatLong","IsLatLong","IS_LATITUDE","isLatitude","IsLatitude","IS_LONGITUDE","isLongitude","IsLongitude","EQUALS","equals","Equals","NOT_EQUALS","notEquals","NotEquals","IS_EMPTY","isEmpty","IsEmpty","IS_NOT_EMPTY","isNotEmpty","IsNotEmpty","IS_IN","isIn","possibleValues","possibleValue","IsIn","IS_NOT_IN","isNotIn","IsNotIn","IS_DIVISIBLE_BY","isDivisibleBy","IsDivisibleBy","IS_POSITIVE","isPositive","IsPositive","IS_NEGATIVE","isNegative","IsNegative","MAX","Max","maxValue","MIN","Min","minValue","MIN_DATE","minDate","MinDate","MAX_DATE","maxDate","MaxDate","CONTAINS","contains","Contains","NOT_CONTAINS","notContains","NotContains","IS_ALPHA","isAlpha","IsAlpha","IS_ALPHANUMERIC","isAlphanumeric","IsAlphanumeric","IS_DECIMAL","isDecimal","IsDecimal","IS_ASCII","isAscii","IsAscii","IS_BASE64","isBase64","IsBase64","IS_BYTE_LENGTH","isByteLength","IsByteLength","IS_CREDIT_CARD","isCreditCard","IsCreditCard","IS_CURRENCY","isCurrency","IsCurrency","IS_EMAIL","isEmail","IsEmail","IS_FQDN","isFQDN","IsFQDN","IS_FULL_WIDTH","isFullWidth","IsFullWidth","IS_HALF_WIDTH","isHalfWidth","IsHalfWidth","IS_VARIABLE_WIDTH","isVariableWidth","IsVariableWidth","IS_HEX_COLOR","isHexColor","IsHexColor","IS_HEXADECIMAL","isHexadecimal","IsHexadecimal","isValidationOptions","IS_MAC_ADDRESS","isMACAddress","IsMACAddress","optionsOrValidationOptionsArg","validationOptionsArg","IS_IP","isIP","versionStr","IsIP","IS_PORT","isPort","IsPort","IS_ISBN","isISBN","IsISBN","IS_ISIN","isISIN","IsISIN","IS_ISO8601","isISO8601","IsISO8601","IS_JSON","isJSON","IsJSON","IS_JWT","isJWT","IsJWT","IS_LOWERCASE","isLowercase","IsLowercase","IS_MOBILE_PHONE","isMobilePhone","IsMobilePhone","IS_ISO31661_ALPHA_2","isISO31661Alpha2","IsISO31661Alpha2","IS_ISO31661_ALPHA_3","isISO31661Alpha3","IsISO31661Alpha3","IS_MONGO_ID","isMongoId","IsMongoId","IS_MULTIBYTE","isMultibyte","IsMultibyte","IS_SURROGATE_PAIR","isSurrogatePair","IsSurrogatePair","IS_URL","isURL","IsUrl","IS_UUID","isUUID","IsUUID","IS_FIREBASE_PUSH_ID","isFirebasePushId","IsFirebasePushId","IS_UPPERCASE","isUppercase","IsUppercase","LENGTH","Length","isMinLength","isMaxLength","MAX_LENGTH","maxLength","MaxLength","MIN_LENGTH","minLength","MinLength","MATCHES","modifiers","Matches","modifiersOrAnnotationOptions","IS_PHONE_NUMBER","isPhoneNumber","phoneUtil","PhoneNumberUtil","phoneNum","parseAndKeepRawInput","isValidNumber","IsPhoneNumber","IS_MILITARY_TIME","isMilitaryTime","IsMilitaryTime","IS_HASH","isHash","algorithm","IsHash","IS_ISSN","isISSN","IsISSN","IS_DATE_STRING","isDateString","IsDateString","IS_BOOLEAN_STRING","isBooleanString","IsBooleanString","IS_NUMBER_STRING","isNumberString","IsNumberString","IS_BASE32","isBase32","IsBase32","IS_BIC","isBIC","IsBIC","IS_BTC_ADDRESS","isBtcAddress","IsBtcAddress","IS_DATA_URI","isDataURI","IsDataURI","IS_EAN","isEAN","IsEAN","IS_ETHEREUM_ADDRESS","isEthereumAddress","IsEthereumAddress","IS_HSL","isHSL","IsHSL","IS_IBAN","isIBAN","IsIBAN","IS_IDENTITY_CARD","isIdentityCard","IsIdentityCard","IS_ISRC","isISRC","IsISRC","IS_LOCALE","isLocale","IsLocale","IS_MAGNET_URI","isMagnetURI","IsMagnetURI","IS_MIME_TYPE","isMimeType","IsMimeType","IS_OCTAL","isOctal","IsOctal","IS_PASSPORT_NUMBER","isPassportNumber","countryCode","IsPassportNumber","IS_POSTAL_CODE","isPostalCode","IsPostalCode","IS_RFC_3339","isRFC3339","IsRFC3339","IS_RGB_COLOR","isRgbColor","includePercentValues","IsRgbColor","IS_SEM_VER","isSemVer","IsSemVer","IS_BOOLEAN","isBoolean","IsBoolean","IS_DATE","IsDate","IS_NUMBER","isNumber","allowInfinity","allowNaN","maxDecimalPlaces","decimalPlaces","isFinite","IsNumber","IS_ENUM","isEnum","entity","IsEnum","IS_INT","isInt","IsInt","IS_STRING","isString","IsString","IS_ARRAY","IsArray","IS_OBJECT","isObject","IsObject","ARRAY_CONTAINS","arrayContains","ArrayContains","ARRAY_NOT_CONTAINS","arrayNotContains","ArrayNotContains","ARRAY_NOT_EMPTY","arrayNotEmpty","ArrayNotEmpty","ARRAY_MIN_SIZE","arrayMinSize","ArrayMinSize","ARRAY_MAX_SIZE","arrayMaxSize","ArrayMaxSize","ARRAY_UNIQUE","arrayUnique","uniqueItems","ArrayUnique","IS_NOT_EMPTY_OBJECT","isNotEmptyObject","IsNotEmptyObject","IS_INSTANCE","isInstance","targetTypeConstructor","IsInstance","targetType","schemaNameOrObject","registerSchema","base64map","crypt","rotl","rotr","endian","randomBytes","bytesToWords","wordsToBytes","bytesToHex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","predicates","firstSource","nextSource","keysArray","nextKey","desc","polyfill","Variable","Definition","ParameterDefinition","super","Parameter","ScopeManager","Referencer","Reference","analyze","tree","providedOptions","optimistic","nodejsScope","impliedStrict","childVisitorKeys","scopeManager","visit","__currentScope","esrecurse","PatternVisitor","Visitor","nodeType","rootPattern","callback","assignments","rightHandNodes","restElements","lastRestElement","xs","writeExpr","maybeImplicitGlobal","partial","identifier","tainted","resolved","isWrite","__maybeImplicitGlobal","isStatic","WRITE","READ","RW","definition","Importer","referencer","specifier","visitPattern","__define","ImportBinding","visitImport","isInnerMethodDefinition","__close","previous","assignment","__referencing","visitPatternOptions","visitPatternCallback","processRightHandNodes","visitor","traverseIdentifierInPattern","FunctionName","__nestFunctionExpressionNameScope","__nestFunctionScope","info","referencingDefaultValue","visitChildren","ClassName","__nestClassScope","isMethodDefinition","pushInnerMethodDefinition","popInnerMethodDefinition","__nestForScope","isStrict","variableTargetScope","__nestCatchScope","__nestGlobalScope","__isNodejsScope","__isES6","isModule","__nestModuleScope","isStrictModeSupported","isImpliedStrict","visitProperty","visitClass","__ignoreEval","variableScope","__detectEval","__nestBlockScope","__detectThis","__nestWithScope","visitVariableDeclaration","__nestSwitchScope","visitFunction","visitForIn","visitExportDeclaration","GlobalScope","CatchScope","WithScope","ModuleScope","ClassScope","SwitchScope","FunctionScope","ForScope","FunctionExpressionNameScope","BlockScope","scopes","globalScope","__nodeToScope","WeakMap","__options","__declaredVariables","ignoreEval","inner","testScope","functionExpressionScope","__get","upper","acquire","__nestScope","shouldBeStatically","def","upperScope","taints","dynamic","through","variables","references","directCallToEvalScope","thisFound","__left","useDirective","isStrictScope","__useDirective","childScopes","registerScope","__isOptimistic","defs","__resolve","__delegateToUpperScope","__shouldStaticallyCloseForGlobal","__staticCloseRef","__dynamicCloseRef","closeRef","__shouldStaticallyClose","__globalCloseRef","variable","__isValidResolution","__addDeclaredVariablesOfNode","identifiers","__defineGeneric","__isClosed","implicit","__defineImplicit","ImplicitGlobalVariable","__defineArguments","bodyStart","clone","VisitorOption","VisitorKeys","BREAK","SKIP","REMOVE","deepCopy","Element","Controller","isNode","isProperty","traverse","extendCommentRange","upperBound","Break","Skip","Remove","remove","jz","addToPath","__current","__leavelist","parents","__execute","__state","notify","__initialize","__worklist","__fallback","__keys","worklist","leavelist","current2","candidates","candidate","sentinel","enter","leave","outer","removeElem","nextElem","providedComments","comments","cloneEnvironment","__visitor","__childVisitorKeys","child","candidateExistsInLeaveList","trailingStatement","isIterationStatement","isSourceElement","isProblematicIfStatement","ES6Regex","ES5Regex","NON_ASCII_WHITESPACES","IDENTIFIER_START","IDENTIFIER_PART","cp","NonAsciiIdentifierStart","NonAsciiIdentifierPart","isIdentifierStartES5","isIdentifierStartES6","isIdentifierPartES6","isKeywordES5","isKeywordES6","isStrictModeReservedWordES6","isReservedWordES5","isReservedWordES6","isIdentifierNameES5","isIdentifierNameES6","lowCh","check","isRestrictedWord","isIdentifierES5","isIdentifierES6","ast","Events","EE","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","names","listeners","ee","listenerCount","emit","a1","a2","a3","a4","a5","removeListener","on","removeAllListeners","off","prefixed","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","Empty","implementation","1","require","COMPILED","goog","exportPath_","execScript","CLOSURE_UNCOMPILED_DEFINES","CLOSURE_DEFINES","FEATURESET_YEAR","DEBUG","LOCALE","TRUSTED_SITE","STRICT_MODE_COMPATIBLE","DISALLOW_TEST_ONLY_CODE","ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING","provide","isInModuleLoader_","isProvided_","constructNamespace_","implicitNamespaces_","getObjectByName","getScriptNonce","getScriptNonce_","cspNonce_","NONCE_PATTERN_","querySelector","nonce","getAttribute","VALID_MODULE_RE_","isInGoogModuleLoader_","moduleLoaderState_","moduleName","getInternal_","loadedModules_","ModuleType","ES6","GOOG","isInEs6ModuleLoader_","$jscomp","getCurrentModulePath","declareLegacyNamespace","declareModuleId","moduleId","setTestOnly","forwardDeclare","globalize","addDependency","DEPENDENCIES_ENABLED","debugLoader_","ENABLE_DEBUG_LOADER","logToConsole_","requested","load_","requireType","basePath","nullFunction","abstractMethod","addSingletonGetter","instance_","getInstance","instantiatedSingletons_","LOAD_MODULE_USING_EVAL","SEAL_MODULE_EXPORTS","TRANSPILE","ASSUME_ES_MODULES_TRANSPILED","TRANSPILE_TO_LANGUAGE","TRANSPILER","hasBadLetScoping","useSafari10Workaround","eval","workaroundSafari10EvalBug","loadModule","isFunction","loadModuleFromSource_","seal","normalizePath_","loadFileSync_","CLOSURE_LOAD_FILE_SYNC","XMLHttpRequest","send","status","responseText","transpile_","transpile","$gwtExport","typeOf","isArrayLike","isDateLike","getUid","UID_PROPERTY_","uidCounter_","hasUid","removeUid","removeAttribute","getHashCode","removeHashCode","cloneObject","bindNative_","bindJs_","now","globalEval","evalWorksForGlobals_","_evalTest_","createElement","defer","appendChild","createTextNode","head","removeChild","getCssName","cssNameMapping_","cssNameMappingStyle_","CLOSURE_CSS_NAME_MAP_FN","setCssNameMapping","CLOSURE_CSS_NAME_MAPPING","getMsg","html","getMsgWithFallback","exportSymbol","exportProperty","inherits","superClass_","defineClass","statics","createSealingConstructor_","applyProperties_","SEAL_CLASS_INSTANCES","isUnsealable_","UNSEALABLE_CONSTRUCTOR_PROPERTY_","OBJECT_PROTOTYPE_FIELDS_","tagUnsealableClass","inHtmlDocument_","isDocumentLoading_","attachEvent","readyState","findBasePath_","CLOSURE_BASE_PATH","currentScript","getElementsByTagName","src","Transpiler","requiresTranspilation_","transpilationTarget_","createRequiresTranspilation_","es3","navigator","userAgent","needsTranspile","transpiler_","protectScriptTag_","DebugLoader_","dependencies_","idToPath_","written_","loadingDeps_","depsToLoad_","paused_","factory_","DependencyFactory","deferredCallbacks_","deferredQueue_","bootstrap","setTimeout","getPathFromDeps_","onLoad","loadClosureDeps","createDependency","loadDeps_","areDepsLoaded_","requires","setDependencyFactory","loading_","pause","resume","resume_","loaded","loaded_","pending","setModuleState","registerEs6ModuleExports","registerGoogModuleExports","clearModuleState","defer_","areDepsLoaded","load","pause_","LoadController","Dependency","relativePath","provides","loadFlags","loadCallbacks_","getPathName","callbackMap_","registerCallback_","unregisterCallback_","callback_","CLOSURE_IMPORT_SCRIPT","IS_OLD_IE_","write","TRUSTED_TYPES_POLICY_","createHTML","setAttribute","onreadystatechange","onload","createScriptURL","Es6ModuleDependency","textContent","createScript","TransformedDependency","contents_","lazyFetch_","ensure","TranspiledDependency","transpiler","PreTranspiledEs6ModuleDependency","GoogModuleDependency","needsTranspile_","atob","lang","CLOSURE_NO_DEPS","TRUSTED_TYPES_POLICY_NAME","identity_","createTrustedTypesPolicy","trustedTypes","TrustedTypes","createPolicy","createURL","StringBuffer","append","buffer_","clear","getLength","debug","reportErrorToServer","dom","NodeType","ELEMENT","ATTRIBUTE","TEXT","CDATA_SECTION","ENTITY_REFERENCE","ENTITY","PROCESSING_INSTRUCTION","COMMENT","DOCUMENT","DOCUMENT_TYPE","DOCUMENT_FRAGMENT","NOTATION","asserts","ENABLE_ASSERTS","subs_","messagePattern","DEFAULT_ERROR_HANDLER","errorHandler_","doAssertFailure_","setErrorHandler","assertExists","assertNumber","assertString","assertFunction","assertObject","assertArray","assertBoolean","assertElement","assertInstanceof","getType_","assertFinite","assertObjectPrototypeIsIntact","displayName","NATIVE_ARRAY_PROTOTYPES","ASSUME_NATIVE_FUNCTIONS","peek","forEachRight","reduceRight","findIndex","findRight","findIndexRight","insert","insertAt","insertArrayAt","insertBefore","removeAt","removeLast","removeIf","removeAllIf","toArray","removeDuplicates","binarySearch","binarySearch_","defaultCompare","binarySelect","stableSort","sortByKey","sortObjectsByKey","isSorted","defaultCompareEquality","compare3","inverseDefaultCompare","binaryInsert","binaryRemove","bucket","toObject","flatten","rotate","moveItem","copyByIndex","concatMap","getCount","getAnyKey","getAnyValue","containsValue","getValues","getKeys","getValueByKeys","containsKey","findKey","findValue","setIfUndefined","setWithReturnValueIfNotSet","unsafeClone","transpose","PROTOTYPE_FIELDS_","createSet","createImmutableView","isFrozen","freeze","isImmutableView","getAllPropertyNames","getOwnPropertyNames","getSuperClass","assertIsLocation","getWindow_","Location","debugStringForType_","assertIsElementType_","assertIsHTMLAnchorElement","assertIsHTMLButtonElement","assertIsHTMLLinkElement","assertIsHTMLImageElement","assertIsHTMLAudioElement","assertIsHTMLVideoElement","assertIsHTMLInputElement","assertIsHTMLTextAreaElement","assertIsHTMLCanvasElement","assertIsHTMLEmbedElement","assertIsHTMLFormElement","assertIsHTMLFrameElement","assertIsHTMLIFrameElement","assertIsHTMLObjectElement","assertIsHTMLScriptElement","ownerDocument","defaultView","parentWindow","constant","FALSE","TRUE","NULL","lock","nth","partialRight","withReturnValue","sequence","equalTo","compose","and","or","not","CACHE_RETURN_VALUE","cacheReturnValue","debounce","clearTimeout","throttle","rateLimit","HtmlElement","TagName","tagName_","A","ABBR","ACRONYM","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","AUDIO","B","BASE","BASEFONT","BDI","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DEL","DETAILS","DFN","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","HTML","I","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","KEYGEN","LABEL","LEGEND","LI","LINK","MAIN","MAP","MARK","MATH","MENU","MENUITEM","META","METER","NAV","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","OUTPUT","PARAM","PICTURE","PRE","PROGRESS","Q","RP","RT","RTC","RUBY","S","SAMP","SCRIPT","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","SVG","TABLE","TBODY","TD","TEMPLATE","TEXTAREA","TFOOT","TH","THEAD","TIME","TITLE","TR","TRACK","TT","U","UL","VAR","VIDEO","WBR","tags","VOID_TAGS_","br","command","embed","img","keygen","track","wbr","isVoidTag","trustedtypes","PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY","TypedString","Const","stringConstValueWithSecurityContract__googStringSecurityPrivate_","GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_","STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_","TYPE_MARKER_","implementsGoogStringTypedString","getTypedStringValue","unwrap","EMPTY","SafeScript","privateDoNotAccessOrElseSafeScriptWrappedValue_","SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","fromConstant","createSafeScriptSecurityPrivateDoNotAccessOrElse","fromConstantAndArgs","stringify_","fromJson","unwrapTrustedScript","initSecurityPrivateDoNotAccessOrElse_","fs","createObjectUrl","getUrlObject_","createObjectURL","revokeObjectUrl","revokeObjectURL","findUrlObject_","URL","webkitURL","browserSupportsObjectUrls","blob","getBlob","BlobBuilder","WebKitBlobBuilder","getBlobWithProperties","Blob","endings","i18n","bidi","FORCE_RTL","IS_RTL","Format","LRE","RLE","PDF","LRM","RLM","Dir","LTR","RTL","NEUTRAL","RIGHT","LEFT","I18N_RIGHT","I18N_LEFT","toDir","ltrChars_","rtlChars_","htmlSkipReg_","stripHtmlIfNeeded_","rtlCharReg_","ltrCharReg_","hasAnyRtl","hasRtlChar","hasAnyLtr","ltrRe_","rtlRe_","isRtlChar","isLtrChar","isNeutralChar","ltrDirCheckRe_","rtlDirCheckRe_","startsWithRtl","isRtlText","startsWithLtr","isLtrText","isRequiredLtrRe_","isNeutralText","ltrExitDirCheckRe_","rtlExitDirCheckRe_","endsWithLtr","isLtrExitText","endsWithRtl","isRtlExitText","rtlLocalesRe_","isRtlLanguage","bracketGuardTextRe_","guardBracketInText","enforceRtlInHtml","enforceRtlInText","enforceLtrInHtml","enforceLtrInText","dimensionsRe_","leftRe_","rightRe_","tempRe_","mirrorCSS","doubleQuoteSubstituteRe_","singleQuoteSubstituteRe_","normalizeHebrewQuote","wordSeparatorRe_","hasNumeralsRe_","rtlDetectionThreshold_","estimateDirection","detectRtlDirectionality","setElementDirAndAlign","textAlign","dir","setElementDirByTextDirectionality","DirectionalString","TrustedResourceUrl","privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_","CONSTRUCTOR_TOKEN_PRIVATE_","TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","implementsGoogI18nBidiDirectionalString","getDirection","cloneWithParams","URL_PARAM_PARSER_","createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse","stringifyParams_","unwrapTrustedScriptURL","BASE_URL_","FORMAT_MARKER_","formatWithParams","fromConstants","fromSafeScript","internal","startsWith","caseInsensitiveStartsWith","caseInsensitiveCompare","caseInsensitiveEndsWith","caseInsensitiveEquals","isEmptyOrWhitespace","newLineToBr","htmlEscape","AMP_RE_","LT_RE_","GT_RE_","QUOT_RE_","SINGLE_QUOTE_RE_","NULL_RE_","ALL_RE_","whitespaceEscape","caseInsensitiveContains","compareVersions","compareElements_","SafeUrl","privateDoNotAccessOrElseSafeUrlWrappedValue_","SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","INNOCUOUS_STRING","createSafeUrlSecurityPrivateDoNotAccessOrElse","SAFE_MIME_TYPE_PATTERN_","isSafeMimeType","fromBlob","DATA_URL_PATTERN_","fromDataUrl","fromTelUrl","SIP_URL_PATTERN_","fromSipUrl","fromFacebookMessengerUrl","fromWhatsAppUrl","fromSmsUrl","isSmsUrlBodyValid_","fromSshUrl","sanitizeChromeExtensionUrl","sanitizeExtensionUrl_","sanitizeFirefoxExtensionUrl","sanitizeEdgeExtensionUrl","fromTrustedResourceUrl","SAFE_URL_PATTERN_","SAFE_URL_PATTERN","sanitize","sanitizeAssertUnchanged","ABOUT_BLANK","SafeStyle","privateDoNotAccessOrElseSafeStyleWrappedValue_","SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createSafeStyleSecurityPrivateDoNotAccessOrElse","sanitizePropertyValue_","sanitizePropertyValueString_","FUNCTIONS_RE_","URL_RE_","VALUE_RE_","COMMENT_RE_","hasBalancedQuotes_","hasBalancedSquareBrackets_","sanitizeUrl_","VALUE_ALLOWED_CHARS_","ALLOWED_FUNCTIONS_","SafeStyleSheet","privateDoNotAccessOrElseSafeStyleSheetWrappedValue_","SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createRule","hasBalancedBrackets_","createSafeStyleSheetSecurityPrivateDoNotAccessOrElse","labs","getNativeUserAgentString_","getNavigator_","userAgent_","setUserAgent","getUserAgent","matchUserAgent","matchUserAgentIgnoreCase","extractVersionTuples","matchOpera_","matchIE_","matchEdgeHtml_","matchEdgeChromium_","matchOperaChromium_","matchFirefox_","matchSafari_","matchChrome_","matchCoast_","isSilk","matchIosWebview_","matchAndroidBrowser_","isChrome","isFirefox","isOpera","isIE","isEdge","isEdgeChromium","isOperaChromium","isSafari","isCoast","isIosWebview","isAndroidBrowser","getVersion","getIEVersion_","isVersionOrHigher","SafeHtml","privateDoNotAccessOrElseSafeHtmlWrappedValue_","SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","dir_","ENABLE_ERROR_MESSAGES","SUPPORT_STYLE_ATTRIBUTE","unwrapTrustedHTML","createSafeHtmlSecurityPrivateDoNotAccessOrElse","htmlEscapePreservingNewlines","htmlEscapePreservingNewlinesAndSpaces","VALID_NAMES_IN_TAG_","URL_ATTRIBUTES_","action","cite","formaction","href","manifest","poster","NOT_ALLOWED_TAG_NAMES_","verifyTagName","createSafeHtmlTagSecurityPrivateDoNotAccessOrElse","createIframe","srcdoc","combineAttributes","sandbox","createSandboxIframe","canUseSandboxIframe","HTMLIFrameElement","createScriptSrc","createStyle","createMetaRefresh","getAttrNameAndValue_","getStyleValue_","createWithDir","concatWithDir","stringifyAttributes","DOCTYPE_HTML","uncheckedconversions","safeHtmlFromStringKnownToSatisfyTypeContract","safeScriptFromStringKnownToSatisfyTypeContract","safeStyleFromStringKnownToSatisfyTypeContract","safeStyleSheetFromStringKnownToSatisfyTypeContract","safeUrlFromStringKnownToSatisfyTypeContract","trustedResourceUrlFromStringKnownToSatisfyTypeContract","safe","InsertAdjacentHtmlPosition","AFTERBEGIN","AFTEREND","BEFOREBEGIN","BEFOREEND","insertAdjacentHtml","insertAdjacentHTML","SET_INNER_HTML_DISALLOWED_TAGS_","isInnerHtmlCleanupRecursive_","firstChild","innerHTML","parentElement","unsafeSetInnerHtmlDoNotUseOrElse","lastChild","setInnerHtml","tagName","setOuterHtml","outerHTML","setFormElementAction","setButtonFormAction","formAction","setInputFormAction","setStyle","cssText","documentWrite","setAnchorHref","setImageSrc","setAudioSrc","setVideoSrc","setEmbedSrc","setFrameSrc","setIframeSrc","setIframeSrcdoc","setLinkHrefAndRel","rel","setObjectData","setScriptSrc","setScriptContent","setLocationHref","assignLocation","replaceLocation","openInWindow","parseFromStringHtml","parseFromString","createImageFromBlob","Image","DETECT_DOUBLE_ESCAPING","FORCE_NON_DOM_HTML_UNESCAPING","Unicode","NBSP","subs","collapseWhitespace","isEmptyString","isEmptyOrWhitespaceSafe","makeSafe","isEmptySafe","isBreakingWhitespace","isNumeric","isAlphaNumeric","isSpace","isUnicodeChar","stripNewlines","canonicalizeNewlines","normalizeWhitespace","normalizeSpaces","collapseBreakingSpaces","trimLeft","trimRight","numberAwareCompare_","intAwareCompare","floatAwareCompare","numerateCompare","urlEncode","urlDecode","E_RE_","unescapeEntities","unescapeEntitiesUsingDom_","unescapePureXmlEntities_","unescapeEntitiesWithDocument","HTML_ENTITY_PATTERN_","nodeValue","preserveSpaces","stripQuotes","truncate","truncateMiddle","specialEscapeChars_","jsEscapeCache_","escapeChar","countOf","removeAll","regExpEscape","replaceAll","padNumber","buildString","getRandomString","abs","hashCode","uniqueStringCounter_","createUniqueString","toNumber","isLowerCamelCase","isUpperCamelCase","toCamelCase","toSelectorCase","toTitleCase","splitLimit","lastComponent","editDistance","proto2","Descriptor","messageType_","name_","fullName_","fullName","containingType_","containingType","fields_","getTag","getName","getFullName","getContainingType","getDescriptor","getFields","getFieldsMap","findFieldByName","findFieldByTag","createMessageInstance","FieldDescriptor","parent_","tag_","isPacked_","packed","isRepeated_","repeated","isRequired_","required","fieldType_","fieldType","nativeType_","deserializationConversionPermitted_","FieldType","INT64","UINT64","FIXED64","SFIXED64","SINT64","FLOAT","DOUBLE","defaultValue_","defaultValue","INT32","FIXED32","BOOL","STRING","GROUP","MESSAGE","BYTES","UINT32","ENUM","SFIXED32","SINT32","getDefaultValue","getFieldType","getNativeType","deserializationConversionPermitted","getFieldMessageType","isCompositeType","isPacked","isRepeated","isRequired","isOptional","Message","values_","deserializedFields_","lazyDeserializer_","initializeForLazyDeserializer","setUnknown","forEachUnknown","has$Value","arrayOf","array$Values","count$Values","get$Value","getOrDefault","get$ValueOrDefault","set$Value","add$Value","clear$Field","getValueForTag_","copyFrom","mergeFrom","initDefaults","deserializeField","checkFieldType_","createDescriptor","Serializer","DECODE_SYMBOLIC_ENUMS","serialize","getSerializedValue","deserialize","deserializeTo","getDeserializedValue","INTEGER_REGEX","LazyDeserializer","PbLiteSerializer","zeroIndexing_","setZeroIndexed","phonenumbers","NumberFormat","descriptor_","getPattern","getPatternOrDefault","setPattern","hasPattern","patternCount","clearPattern","getFormat","getFormatOrDefault","setFormat","hasFormat","formatCount","clearFormat","getLeadingDigitsPattern","getLeadingDigitsPatternOrDefault","addLeadingDigitsPattern","leadingDigitsPatternArray","hasLeadingDigitsPattern","leadingDigitsPatternCount","clearLeadingDigitsPattern","getNationalPrefixFormattingRule","getNationalPrefixFormattingRuleOrDefault","setNationalPrefixFormattingRule","hasNationalPrefixFormattingRule","nationalPrefixFormattingRuleCount","clearNationalPrefixFormattingRule","getNationalPrefixOptionalWhenFormatting","getNationalPrefixOptionalWhenFormattingOrDefault","setNationalPrefixOptionalWhenFormatting","hasNationalPrefixOptionalWhenFormatting","nationalPrefixOptionalWhenFormattingCount","clearNationalPrefixOptionalWhenFormatting","getDomesticCarrierCodeFormattingRule","getDomesticCarrierCodeFormattingRuleOrDefault","setDomesticCarrierCodeFormattingRule","hasDomesticCarrierCodeFormattingRule","domesticCarrierCodeFormattingRuleCount","clearDomesticCarrierCodeFormattingRule","PhoneNumberDesc","getNationalNumberPattern","getNationalNumberPatternOrDefault","setNationalNumberPattern","hasNationalNumberPattern","nationalNumberPatternCount","clearNationalNumberPattern","getPossibleLength","getPossibleLengthOrDefault","addPossibleLength","possibleLengthArray","hasPossibleLength","possibleLengthCount","clearPossibleLength","getPossibleLengthLocalOnly","getPossibleLengthLocalOnlyOrDefault","addPossibleLengthLocalOnly","possibleLengthLocalOnlyArray","hasPossibleLengthLocalOnly","possibleLengthLocalOnlyCount","clearPossibleLengthLocalOnly","getExampleNumber","getExampleNumberOrDefault","setExampleNumber","hasExampleNumber","exampleNumberCount","clearExampleNumber","PhoneMetadata","getGeneralDesc","getGeneralDescOrDefault","setGeneralDesc","hasGeneralDesc","generalDescCount","clearGeneralDesc","getFixedLine","getFixedLineOrDefault","setFixedLine","hasFixedLine","fixedLineCount","clearFixedLine","getMobile","getMobileOrDefault","setMobile","hasMobile","mobileCount","clearMobile","getTollFree","getTollFreeOrDefault","setTollFree","hasTollFree","tollFreeCount","clearTollFree","getPremiumRate","getPremiumRateOrDefault","setPremiumRate","hasPremiumRate","premiumRateCount","clearPremiumRate","getSharedCost","getSharedCostOrDefault","setSharedCost","hasSharedCost","sharedCostCount","clearSharedCost","getPersonalNumber","getPersonalNumberOrDefault","setPersonalNumber","hasPersonalNumber","personalNumberCount","clearPersonalNumber","getVoip","getVoipOrDefault","setVoip","hasVoip","voipCount","clearVoip","getPager","getPagerOrDefault","setPager","hasPager","pagerCount","clearPager","getUan","getUanOrDefault","setUan","hasUan","uanCount","clearUan","getEmergency","getEmergencyOrDefault","setEmergency","hasEmergency","emergencyCount","clearEmergency","getVoicemail","getVoicemailOrDefault","setVoicemail","hasVoicemail","voicemailCount","clearVoicemail","getShortCode","getShortCodeOrDefault","setShortCode","hasShortCode","shortCodeCount","clearShortCode","getStandardRate","getStandardRateOrDefault","setStandardRate","hasStandardRate","standardRateCount","clearStandardRate","getCarrierSpecific","getCarrierSpecificOrDefault","setCarrierSpecific","hasCarrierSpecific","carrierSpecificCount","clearCarrierSpecific","getSmsServices","getSmsServicesOrDefault","setSmsServices","hasSmsServices","smsServicesCount","clearSmsServices","getNoInternationalDialling","getNoInternationalDiallingOrDefault","setNoInternationalDialling","hasNoInternationalDialling","noInternationalDiallingCount","clearNoInternationalDialling","getId","getIdOrDefault","setId","hasId","idCount","clearId","getCountryCode","getCountryCodeOrDefault","setCountryCode","hasCountryCode","countryCodeCount","clearCountryCode","getInternationalPrefix","getInternationalPrefixOrDefault","setInternationalPrefix","hasInternationalPrefix","internationalPrefixCount","clearInternationalPrefix","getPreferredInternationalPrefix","getPreferredInternationalPrefixOrDefault","setPreferredInternationalPrefix","hasPreferredInternationalPrefix","preferredInternationalPrefixCount","clearPreferredInternationalPrefix","getNationalPrefix","getNationalPrefixOrDefault","setNationalPrefix","hasNationalPrefix","nationalPrefixCount","clearNationalPrefix","getPreferredExtnPrefix","getPreferredExtnPrefixOrDefault","setPreferredExtnPrefix","hasPreferredExtnPrefix","preferredExtnPrefixCount","clearPreferredExtnPrefix","getNationalPrefixForParsing","getNationalPrefixForParsingOrDefault","setNationalPrefixForParsing","hasNationalPrefixForParsing","nationalPrefixForParsingCount","clearNationalPrefixForParsing","getNationalPrefixTransformRule","getNationalPrefixTransformRuleOrDefault","setNationalPrefixTransformRule","hasNationalPrefixTransformRule","nationalPrefixTransformRuleCount","clearNationalPrefixTransformRule","getSameMobileAndFixedLinePattern","getSameMobileAndFixedLinePatternOrDefault","setSameMobileAndFixedLinePattern","hasSameMobileAndFixedLinePattern","sameMobileAndFixedLinePatternCount","clearSameMobileAndFixedLinePattern","getNumberFormat","getNumberFormatOrDefault","addNumberFormat","numberFormatArray","hasNumberFormat","numberFormatCount","clearNumberFormat","getIntlNumberFormat","getIntlNumberFormatOrDefault","addIntlNumberFormat","intlNumberFormatArray","hasIntlNumberFormat","intlNumberFormatCount","clearIntlNumberFormat","getMainCountryForCode","getMainCountryForCodeOrDefault","setMainCountryForCode","hasMainCountryForCode","mainCountryForCodeCount","clearMainCountryForCode","getLeadingDigits","getLeadingDigitsOrDefault","setLeadingDigits","hasLeadingDigits","leadingDigitsCount","clearLeadingDigits","getLeadingZeroPossible","getLeadingZeroPossibleOrDefault","setLeadingZeroPossible","hasLeadingZeroPossible","leadingZeroPossibleCount","clearLeadingZeroPossible","PhoneMetadataCollection","getMetadata","getMetadataOrDefault","addMetadata","metadataArray","hasMetadata","metadataCount","clearMetadata","0","2","4","7","8","21","25","27","28","29","30","31","33","24","17","13","15","16","18","19","20","22","23","26","PhoneNumber","getNationalNumber","getNationalNumberOrDefault","setNationalNumber","hasNationalNumber","nationalNumberCount","clearNationalNumber","getExtension","getExtensionOrDefault","setExtension","hasExtension","extensionCount","clearExtension","getItalianLeadingZero","getItalianLeadingZeroOrDefault","setItalianLeadingZero","hasItalianLeadingZero","italianLeadingZeroCount","clearItalianLeadingZero","getNumberOfLeadingZeros","getNumberOfLeadingZerosOrDefault","setNumberOfLeadingZeros","hasNumberOfLeadingZeros","numberOfLeadingZerosCount","clearNumberOfLeadingZeros","getRawInput","getRawInputOrDefault","setRawInput","hasRawInput","rawInputCount","clearRawInput","getCountryCodeSource","getCountryCodeSourceOrDefault","setCountryCodeSource","hasCountryCodeSource","countryCodeSourceCount","clearCountryCodeSource","getPreferredDomesticCarrierCode","getPreferredDomesticCarrierCodeOrDefault","setPreferredDomesticCarrierCode","hasPreferredDomesticCarrierCode","preferredDomesticCarrierCodeCount","clearPreferredDomesticCarrierCode","CountryCodeSource","UNSPECIFIED","FROM_NUMBER_WITH_PLUS_SIGN","FROM_NUMBER_WITH_IDD","FROM_NUMBER_WITHOUT_PLUS_SIGN","FROM_DEFAULT_COUNTRY","ctor","countryCodeToRegionCodeMap","32","34","36","39","40","41","43","44","45","46","47","48","49","51","52","53","54","55","56","57","58","60","61","62","63","64","65","66","81","82","84","86","90","91","92","93","94","95","98","211","212","213","216","218","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","256","257","258","260","261","262","263","264","265","266","267","268","269","290","291","297","298","299","350","351","352","353","354","355","356","357","358","359","370","371","372","373","374","375","376","377","378","380","381","382","383","385","386","387","389","420","421","423","500","501","502","503","504","505","506","507","508","509","590","591","592","593","594","595","596","597","598","599","670","672","673","674","675","676","677","678","679","680","681","682","683","685","686","687","688","689","690","691","692","800","808","850","852","853","855","856","870","878","880","881","882","883","886","888","960","961","962","963","964","965","966","967","968","970","971","972","973","974","975","976","977","979","992","993","994","995","996","998","countryToMetadata","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TG","TJ","TK","TL","TM","TN","TO","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","regionToMetadataMap","INVALID_COUNTRY_CODE","NOT_A_NUMBER","TOO_SHORT_AFTER_IDD","TOO_SHORT_NSN","TOO_LONG","NANPA_COUNTRY_CODE_","MIN_LENGTH_FOR_NSN_","MAX_LENGTH_FOR_NSN_","MAX_LENGTH_COUNTRY_CODE_","MAX_INPUT_STRING_LENGTH_","UNKNOWN_REGION_","COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_","MOBILE_TOKEN_MAPPINGS_","GEO_MOBILE_COUNTRIES_","PLUS_SIGN","STAR_SIGN_","RFC3966_EXTN_PREFIX_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","DIGIT_MAPPINGS","DIALLABLE_CHAR_MAPPINGS_","ALPHA_MAPPINGS_","C","D","E","F","G","H","J","K","L","O","R","T","V","W","X","Y","Z","ALL_NORMALIZATION_MAPPINGS_","ALL_PLUS_NUMBER_GROUPING_SYMBOLS_","SINGLE_INTERNATIONAL_PREFIX_","VALID_PUNCTUATION","VALID_DIGITS_","VALID_ALPHA_","PLUS_CHARS_","PLUS_CHARS_PATTERN","LEADING_PLUS_CHARS_PATTERN","SEPARATOR_PATTERN_","CAPTURING_DIGIT_PATTERN","VALID_START_CHAR_PATTERN_","SECOND_NUMBER_START_PATTERN_","UNWANTED_END_CHAR_PATTERN_","VALID_ALPHA_PHONE_PATTERN_","MIN_LENGTH_PHONE_NUMBER_PATTERN_","VALID_PHONE_NUMBER_","DEFAULT_EXTN_PREFIX_","CAPTURING_EXTN_DIGITS_","EXTN_PATTERNS_FOR_PARSING_","EXTN_PATTERN_","VALID_PHONE_NUMBER_PATTERN_","NON_DIGITS_PATTERN_","FIRST_GROUP_PATTERN_","NP_PATTERN_","FG_PATTERN_","CC_PATTERN_","FIRST_GROUP_ONLY_PREFIX_PATTERN_","REGION_CODE_FOR_NON_GEO_ENTITY","PhoneNumberFormat","E164","INTERNATIONAL","NATIONAL","RFC3966","PhoneNumberType","FIXED_LINE","MOBILE","FIXED_LINE_OR_MOBILE","TOLL_FREE","PREMIUM_RATE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL","UNKNOWN","MatchType","NO_MATCH","SHORT_NSN_MATCH","NSN_MATCH","EXACT_MATCH","ValidationResult","IS_POSSIBLE","IS_POSSIBLE_LOCAL_ONLY","TOO_SHORT","INVALID_LENGTH","extractPossibleNumber","isViablePhoneNumber","matchesEntirely","normalize","normalizeHelper_","normalizeDigitsOnly","normalizeSB_","normalizeDiallableCharsOnly","convertAlphaCharactersInNumber","getLengthOfGeographicalAreaCode","getMetadataForRegion","getRegionCodeForNumber","isNumberGeographical","getLengthOfNationalDestinationCode","getNumberType","getCountryMobileToken","getSupportedRegions","getSupportedGlobalNetworkCallingCodes","getSupportedCallingCodes","descHasPossibleNumberData_","descHasData_","getSupportedTypesForMetadata_","getNumberDescByType_","getSupportedTypesForRegion","isValidRegionCode_","getSupportedTypesForNonGeoEntity","getMetadataForNonGeographicalRegion","formattingRuleHasFirstGroupOnly","hasValidCountryCallingCode_","getNationalSignificantNumber","prefixNumberWithCountryCallingCode_","getRegionCodeForCountryCode","getMetadataForRegionOrCallingCode_","maybeGetFormattedExtension_","formatNsn_","formatByPattern","chooseFormattingPatternForNumber_","formatNsnUsingPattern_","formatNationalNumberWithCarrierCode","formatNationalNumberWithPreferredCarrierCode","formatNumberForMobileDialing","canBeInternationallyDialled","testNumberLength_","formatOutOfCountryCallingNumber","isNANPACountry","getCountryCodeForValidRegion_","formatInOriginalFormat","hasFormattingPatternForNumber_","getNddPrefixForRegion","rawInputContainsNationalPrefix_","formatOutOfCountryKeepingAlphaChars","getExampleNumberForType","getExampleNumberForNonGeoEntity","getNumberTypeHelper_","isNumberMatchingDesc_","isValidNumberForRegion","getRegionCodeForNumberFromRegionList_","getRegionCodesForCountryCode","getCountryCodeForRegion","isAlphaNumber","maybeStripExtension","isPossibleNumber","isPossibleNumberWithReason","isPossibleNumberForType","isPossibleNumberForTypeWithReason","testNumberLengthForType_","isPossibleNumberString","truncateTooLongNumber","extractCountryCode","maybeExtractCountryCode","maybeStripInternationalPrefixAndNormalize","maybeStripNationalPrefixAndCarrierCode","parsePrefixAsIdd_","checkRegionForParsing_","parseHelper_","setItalianLeadingZerosForPhoneNumber_","buildNationalNumberForParsing_","copyCoreFieldsOnly_","isNumberMatch","isNationalNumberSuffixOfTheOther_","matchesPrefix","AsYouTypeFormatter","DIGIT_PLACEHOLDER_","DIGIT_PATTERN_","currentOutput_","formattingTemplate_","currentFormattingPattern_","accruedInput_","accruedInputWithoutFormatting_","ableToFormat_","isExpectingCountryCallingCode_","isCompleteNumber_","inputHasFormatting_","phoneUtil_","positionToRemember_","originalPosition_","lastMatchPosition_","prefixBeforeNationalNumber_","shouldAddSpaceAfterNationalPrefix_","extractedNationalPrefix_","nationalNumber_","possibleFormats_","defaultCountry_","defaultMetadata_","currentMetadata_","getMetadataForRegion_","SEPARATOR_BEFORE_NATIONAL_NUMBER_","EMPTY_METADATA_","ELIGIBLE_FORMAT_PATTERN_","NATIONAL_PREFIX_SEPARATORS_PATTERN_","MIN_LEADING_DIGITS_LENGTH_","maybeCreateNewTemplate_","createFormattingTemplate_","getAvailableFormats_","narrowDownPossibleFormats_","getFormattingTemplate_","inputDigit","inputDigitWithOptionToRememberPosition_","inputDigitAndRememberPosition","isDigitOrLeadingPlusSign_","normalizeAndAccrueDigitsAndPlusSign_","attemptToExtractIdd_","attemptToExtractCountryCallingCode_","attemptToChoosePatternWithPrefixExtracted_","ableToExtractLongerNdd_","removeNationalPrefixFromNationalNumber_","attemptToChooseFormattingPattern_","inputDigitHelper_","attemptToFormatAccruedDigits_","inputAccruedNationalNumber_","appendNationalNumber_","getExtractedNationalPrefix_","getRememberedPosition","isNanpaNumberWithNationalPrefix_","shortnumbermetadata","ShortNumberInfo","REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_","ShortNumberCost","STANDARD_RATE","UNKNOWN_COST","getRegionCodesForCountryCode_","regionDialingFromMatchesNumber_","isPossibleShortNumberForRegion","getNationalSignificantNumber_","isPossibleShortNumber","isValidShortNumberForRegion","matchesPossibleNumberAndNationalNumber_","isValidShortNumber","getRegionCodeForShortNumberFromRegionList_","getExpectedCostForRegion","isEmergencyNumber","getExpectedCost","getExampleShortNumber","getExampleShortNumberForCost","connectsToEmergencyNumber","matchesEmergencyNumberHelper_","isCarrierSpecific","isCarrierSpecificForRegion","isSmsServiceForRegion","origSymbol","hasSymbolSham","symObj","syms","superCtor","super_","TempCtor","ERROR_MSGS","METADATA_KEY","_tagParameterOrProperty","metadataKey","annotationTarget","parameterIndex","paramsOrPropertiesMetadata","isParameterDecorator","INVALID_DECORATOR_OPERATION","hasOwnMetadata","paramOrPropertyMetadata","paramOrPropertyMetadata_1","DUPLICATED_METADATA","defineMetadata","_decorate","decorators","decorate","_param","paramIndex","decorator","tagParameter","TAGGED","tagProperty","TAGGED_PROP","error_msgs_1","metadata_1","decorator_utils_1","LazyServiceIdentifer","cb","_cb","inject","serviceIdentifier","targetKey","UNDEFINED_INJECT_ANNOTATION","Metadata","INJECT_TAG","ERRORS_MSGS","injectable","PARAM_TYPES","DUPLICATED_INJECTABLE_DECORATOR","DESIGN_PARAM_TYPES","multiInject","MULTI_INJECT_TAG","named","NAMED_TAG","OPTIONAL_TAG","postConstruct","propertyKey","POST_CONSTRUCT","MULTIPLE_POST_CONSTRUCT_METHODS","tagged","metadataValue","NAME_TAG","unmanaged","UNMANAGED_TAG","literal_types_1","id_1","Binding","activated","BindingTypeEnum","Invalid","request","implementationType","cache","provider","onActivation","dynamicValue","BindingCount","MultipleBindingsAvailable","NoBindingsAvailable","OnlyOneBindingAvailable","NULL_ARGUMENT","KEY_NOT_FOUND","AMBIGUOUS_MATCH","CANNOT_UNBIND","NOT_REGISTERED","MISSING_INJECTABLE_ANNOTATION","MISSING_INJECT_ANNOTATION","CIRCULAR_DEPENDENCY","NOT_IMPLEMENTED","INVALID_BINDING_TYPE","NO_MORE_SNAPSHOTS_AVAILABLE","INVALID_MIDDLEWARE_RETURN","INVALID_FUNCTION_BINDING","INVALID_TO_SELF_VALUE","ARGUMENTS_LENGTH_MISMATCH","CONTAINER_OPTIONS_MUST_BE_AN_OBJECT","CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE","CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE","CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK","POST_CONSTRUCT_ERROR","CIRCULAR_DEPENDENCY_IN_FACTORY","STACK_OVERFLOW","BindingScopeEnum","Request","Singleton","Transient","ConstantValue","DynamicValue","Factory","Provider","TargetTypeEnum","ClassProperty","ConstructorArgument","__awaiter","__generator","binding_1","metadata_reader_1","planner_1","resolver_1","binding_to_syntax_1","serialization_1","container_snapshot_1","lookup_1","Container","containerOptions","defaultScope","autoBindInjectable","skipBaseClassChecks","_bindingDictionary","Lookup","_snapshots","_middleware","_metadataReader","MetadataReader","container1","container2","container","bindingDictionary","getBindingDictionary","bindingDictionary1","bindingDictionary2","copyDictionary","origin","destination","binding","modules","getHelpers","_getContainerModuleHelpersFactory","modules_1","currentModule","containerModuleHelpers","registry","bindFunction","unbindFunction","isboundFunction","rebindFunction","loadAsync","modules_2","unload","conditionFactory","removeByCondition","BindingToSyntax","rebind","unbind","getServiceIdentifierAsString","unbindAll","isBound","hasKey","isBoundNamed","isBoundTagged","bindings","request_1","createMockRequest","snapshot","ContainerSnapshot","restore","middleware","createChild","applyMiddleware","middlewares","initial","_planAndResolve","prev","curr","applyCustomMetadataReader","metadataReader","_get","getTagged","getNamed","getAll","getAllTagged","getAllNamed","constructorFunction","tempContainer","toSelf","setModuleId","bindingToSyntax","_binding","getRebindFunction","_rebind","mId","_bind","_isBound","_unbind","avoidConstraints","isMultiInject","defaultArgs","contextInterceptor","plan","ContainerModule","AsyncContainerModule","_map","getMap","entry","updatedEntries","copy","container_1","container_module_1","injectable_1","tagged_1","named_1","inject_1","optional_1","unmanaged_1","multi_inject_1","target_name_1","post_construct_1","constraint_helpers_1","traverseAncerstors","taggedConstraint","namedConstraint","typeConstraint","binding_utils_1","multiBindToService","Context","addPlan","setCurrentRequest","currentRequest","getConstructorMetadata","constructorFunc","compilerGeneratedMetadata","userGeneratedMetadata","getPropertiesMetadata","Plan","parentContext","rootRequest","binding_count_1","exceptions_1","context_1","plan_1","reflection_utils_1","target_1","cntnr","_getActiveBindings","parentRequest","activeBindings","getBindings","serviceIdentifierString","listMetadataForTarget","listRegisteredBindingsForServiceIdentifier","_validateActiveBindingCount","_createSubRequests","childRequest","thePlan","addChildRequest","subChildRequest","dependencies","getDependencies","baseClassDependencyCount","getBaseClassDependencyCount","getFunctionName","dependency","injectMetadata","Target","tagMetadata","_createTarget","isStackOverflowExeption","circularDependencyToException","QueryableString","searchString","reverseString","reverseSearchString","compareString","getTargets","constructorName","isBaseClass","serviceIdentifiers","constructorArgsMetadata","constructorTargets","iterations","targets","getConstructorArgsAsTarget","getConstructorArgsAsTargets","propertyTargets","getClassPropsAsTargets","targetMetadata","formatTargetMetadata","isManaged","classPropsMetadata","keys_1","baseConstructor","baseTargets","targetMetadataMap","unmanagedCount","dependencyCount","childRequests","requestScope","queryable_string_1","namedOrTagged","metadataItem","hasTag","matchesArray","matchesTag","isNamed","getNamedTag","getCustomTags","matchesNamedTag","resolveInstance","constr","resolveRequest","Func","injections","propertyInjectionsRequests","propertyInjections","injection","_injectProperties","_postConstruct","instantiation_1","invokeFactory","factoryType","_resolveRequest","targetIsAnArray","targetParentIsNotAnArray","_f","isSingleton","isRequestSingleton","binding_when_on_syntax_1","BindingInSyntax","inRequestScope","BindingWhenOnSyntax","inSingletonScope","inTransientScope","binding_in_syntax_1","binding_on_syntax_1","binding_when_syntax_1","BindingInWhenOnSyntax","_bindingWhenSyntax","BindingWhenSyntax","_bindingOnSyntax","BindingOnSyntax","_bindingInSyntax","when","whenTargetNamed","whenTargetIsDefault","whenTargetTagged","whenInjectedInto","whenParentNamed","whenParentTagged","whenAnyAncestorIs","ancestor","whenNoAncestorIs","whenAnyAncestorNamed","whenAnyAncestorTagged","whenNoAncestorNamed","whenNoAncestorTagged","whenAnyAncestorMatches","whenNoAncestorMatches","binding_in_when_on_syntax_1","toConstantValue","toDynamicValue","toConstructor","toFactory","toFunction","bindingWhenOnSyntax","toAutoFactory","toProvider","toService","service","metaData","idCounter","alreadyDependencyChain","name_1","registeredBindingsList","registeredBindings","services","_createStringArr","req","dependencyChainToString","m_1","namedTag","otherTags","hasToStringTag","toStringTag","isStandardArguments","isLegacyArguments","supportsStandardArguments","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","fnToStr","isFnRegex","getProto","generatorFunc","getGeneratorFunc","GeneratorFunction","getPolyfill","shim","availableTypedArrays","callBound","$toString","typedArrays","$indexOf","$slice","toStrTags","gOPD","EvalError","superProto","anyTrue","getter","tryTypedArrays","$TypeError","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","asyncGenIterator","TypedArray","INTRINSICS","ArrayBuffer","asyncIterator","Atomics","DataView","decodeURI","encodeURI","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakSet","$replace","rePropName","reEscapeChar","stringToPath","subString","getBaseIntrinsic","allowMissing","$Function","GetIntrinsic","$apply","$call","callBind","intrinsic","encoding","FF","_ff","_gg","HH","_hh","II","_ii","aa","bb","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","$SyntaxError","getEvalledConstructor","expressionSyntax","asyncGenFunction","asyncGenFunctionPrototype","asyncGenPrototype","AggregateError","FinalizationRegistry","WeakRef","LEGACY_ALIASES","$concat","$spliceApply","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","$reflectApply","$defineProperty","applyBind","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","env","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","exporter","makeExporter","supportsSymbol","toPrimitiveSymbol","toPrimitive","iteratorSymbol","supportsCreate","supportsProto","downLevel","HashMap","MakeDictionary","functionPrototype","usePolyfill","_Map","cacheSentinel","arraySentinel","MapIterator","selector","_index","_values","_selector","throw","return","_cacheKey","_cacheIndex","_find","getKey","getValue","getEntry","CreateMapPolyfill","_Set","rootKey","CreateUniqueKey","table","GetOrCreateWeakMapTable","CreateUUID","FillRandomBytes","crypto","getRandomValues","msCrypto","byte","CreateWeakMapPolyfill","GetOrCreateMetadataMap","Create","IsUndefined","metadataMap","OrdinaryHasMetadata","MetadataKey","OrdinaryHasOwnMetadata","OrdinaryGetPrototypeOf","IsNull","OrdinaryGetMetadata","OrdinaryGetOwnMetadata","OrdinaryDefineOwnMetadata","MetadataValue","OrdinaryMetadataKeys","OrdinaryOwnMetadataKeys","parentKeys","ownKeys_1","parentKeys_1","GetMethod","IsCallable","GetIterator","IteratorStep","nextValue","IteratorClose","Type","ToPrimitive","PreferredType","hint","exoticToPrim","toString_1","toString_2","OrdinaryToPrimitive","ToPropertyKey","ToString","IsConstructor","prototypeProto","__","attributes","decorated","DecorateConstructor","DecorateProperty","IsPropertyKey","hasNativeMap","ArraySet","_array","_set","fromArray","aArray","aAllowDuplicates","aStr","sStr","toSetString","isDuplicate","aIdx","encode","aValue","encoded","vlq","toVLQSigned","VLQ_BASE","decode","aIndex","aOutParam","continuation","shifted","strLen","intToCharMap","charCode","recursiveSearch","aLow","aHigh","aNeedle","aHaystack","aCompare","aBias","mid","cmp","LEAST_UPPER_BOUND","GREATEST_LOWER_BOUND","MappingList","_sorted","_last","generatedLine","generatedColumn","unsortedForEach","aCallback","aThisArg","aMapping","mappingA","mappingB","lineA","lineB","columnA","columnB","compareByGeneratedPositionsInflated","swap","ary","doQuickSort","low","high","pivot","base64VLQ","quickSort","SourceMapConsumer","aSourceMap","aSourceMapURL","parseSourceMapInput","IndexedSourceMapConsumer","BasicSourceMapConsumer","getArg","sources","sourcesContent","mappings","_version","isAbsolute","relative","_names","_sources","_absoluteSources","computeSourceURL","_mappings","_sourceMapURL","Mapping","originalLine","originalColumn","lastOffset","_sections","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","eachMapping","aContext","aOrder","_generatedMappings","_originalMappings","mapping","allGeneratedPositionsFor","aArgs","needle","_findSourceIndex","_findMapping","compareByOriginalPositions","lastColumn","aSource","relativeSource","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","segment","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","originalMappings","compareByGeneratedPositionsDeflated","aMappings","aLineName","aColumnName","aComparator","computeColumnSpans","nextMapping","lastGeneratedColumn","originalPositionFor","hasContentsOfAllSources","sourceContentFor","nullOnMissing","urlParse","fileUriAbsPath","scheme","generatedPositionFor","sectionIndex","bias","generatedPosition","sectionMappings","adjustedMapping","SourceMapGenerator","_skipValidation","_sourcesContents","aSourceMapConsumer","newMapping","original","addMapping","sourceRelative","_validateMapping","aSourceFile","aSourceContent","applySourceMap","aSourceMapPath","newSources","newNames","aGenerated","aOriginal","aName","_serializeMappings","nameIdx","sourceIdx","previousGeneratedLine","aSources","toJSON","REGEX_NEWLINE","isSourceNode","aLine","aColumn","aChunks","sourceContents","fromStringWithSourceMap","aGeneratedCode","aRelativePath","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lastGeneratedLine","lastMapping","nextLine","addMappingWithCode","aChunk","prepend","walk","aFn","aSep","newChildren","aPattern","aReplacement","walkSourceContents","fromSetString","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","auth","host","urlGenerate","aParsedUrl","aPath","up","aRoot","aPathUrl","aRootUrl","joined","supportsNullProto","isProtoString","strcmp","aStr1","aStr2","onlyCompareOriginal","onlyCompareGenerated","sourceURL","sourceMapURL","parsed","nargs","__importDefault","mod","__esModule","char_regex_1","default","begin","strLength","padString","padPosition","padRepeats","searchStr","strArr","searchArr","finded","searchIndex","JavaScriptObfuscatorFacade_1","JavaScriptObfuscator","__createBinding","k2","__setModuleDefault","__importStar","ASTParserFacade","chalk_1","config","sourceTypeLength","sourceTypes","parseType","processParsingError","inputConfig","errorLine","startErrorIndex","nearestSymbolsCount","endErrorIndex","formattedPointer","colorError","formattedCodeSlice","JavaScriptObfuscator_1","__decorate","__metadata","__param","inversify_1","ServiceIdentifiers_1","escodegen","CodeTransformer_1","CodeTransformationStage_1","LoggingMessage_1","NodeTransformer_1","NodeTransformationStage_1","EcmaVersion_1","ASTParserFacade_1","NodeGuards_1","Utils_1","codeTransformersRunner","nodeTransformersRunner","randomGenerator","obfuscatedCodeFactory","logger","timeStart","LoggingMessage","Version","Utils","buildVersionMessage","BUILD_TIMESTAMP","ObfuscationStarted","RandomGeneratorSeed","getInputSeed","runCodeTransformationStage","CodeTransformationStage","PreparingTransformers","astTree","parseCode","obfuscatedAstTree","transformAstTree","generatorOutput","generateCode","FinalizingTransformers","obfuscationTime","success","ObfuscationCompleted","getObfuscatedCode","parseOptions","runNodeTransformationStage","NodeTransformationStage","Initializing","NodeGuards","isProgramNode","Preparing","deadCodeInjection","DeadCodeInjection","controlFlowFlattening","ControlFlowFlattening","renameProperties","RenameProperties","Converting","RenameIdentifiers","StringArray","simplify","Simplifying","Finalizing","EmptySourceCode","escodegenParams","inputFileName","codeTransformationStage","codeTransformersList","nodeTransformationStage","nodeTransformersList","CodeTransformer","HashbangOperatorTransformer","NodeTransformer","BooleanLiteralTransformer","BlockStatementControlFlowTransformer","BlockStatementSimplifyTransformer","CommentsTransformer","CustomCodeHelpersTransformer","DeadCodeInjectionTransformer","EscapeSequenceTransformer","EvalCallExpressionTransformer","ExportSpecifierTransformer","ExpressionStatementsMergeTransformer","FunctionControlFlowTransformer","IfStatementSimplifyTransformer","LabeledStatementTransformer","RenamePropertiesTransformer","MemberExpressionTransformer","MetadataTransformer","MethodDefinitionTransformer","NumberLiteralTransformer","NumberToNumericalExpressionTransformer","ObfuscatingGuardsTransformer","ObjectExpressionKeysTransformer","ObjectExpressionTransformer","ObjectPatternPropertiesTransformer","ParentificationTransformer","ScopeIdentifiersTransformer","SplitStringTransformer","StringArrayScopeCallsWrapperTransformer","StringArrayTransformer","TemplateLiteralTransformer","VariableDeclarationsMergeTransformer","VariablePreserveTransformer","ServiceIdentifiers","ICodeTransformersRunner","INodeTransformersRunner","IRandomGenerator","Factory__IObfuscatedCode","ILogger","IOptions","InversifyContainerFacade_1","Options_1","JavaScriptObfuscatorFacade","inputOptions","inversifyContainerFacade","InversifyContainerFacade","obfuscatedCode","IJavaScriptObfuscator","obfuscate","sourceCodesObject","sourceCodeIdentifier","identifiersPrefix","getIdentifiersPrefixForMultipleSources","sourceCodeOptions","optionsPreset","Options","getOptionsByPreset","CallsGraphAnalyzer_1","CallsGraphAnalyzer","CalleeDataExtractor_1","NodeStatementUtils_1","calleeDataExtractorFactory","blockScopeBodyLength","limitThresholdActivationIndex","limitThresholdActivationLength","limitIndex","limitThreshold","analyzeRecursive","blockScopeBody","getLimitIndex","callsGraphData","blockScopeBodyNode","isCallExpressionNode","parentNode","NodeStatementUtils","getParentNodeWithStatements","analyzeCallExpressionNode","callExpressionNode","calleeDataExtractorsList","calleeDataExtractorName","calleeData","extract","callsGraph","CalleeDataExtractor","FunctionDeclarationCalleeDataExtractor","FunctionExpressionCalleeDataExtractor","ObjectExpressionCalleeDataExtractor","Factory__ICalleeDataExtractor","AbstractCalleeDataExtractor","AbstractCalleeDataExtractor_1","isIdentifierNode","calleeBlockStatement","getCalleeBlockStatement","targetNode","isFunctionDeclarationNode","calleeName","isFunctionExpressionNode","isVariableDeclaratorNode","ObjectExpressionCalleeDataExtractor_1","propertyNode","nextItemInCallsChain","isTargetPropertyNodeWithIdentifierKey","isTargetPropertyNodeWithLiteralKey","isLiteralNode","isMemberExpressionNode","objectMembersCallsChain","createObjectMembersCallsChain","functionExpressionName","currentChain","memberExpression","objectName","isObjectExpressionNode","findCalleeBlockStatement","objectExpressionProperties","isPropertyNode","isValidTargetPropertyNode","NumberNumericalExpressionAnalyzer_1","NumberNumericalExpressionAnalyzer","NumberUtils_1","numberFactorsMap","NumberUtils","isUnsafeNumber","generateAdditionParts","addition","mixWithMultiplyParts","additionParts","upperNumberLimit","MAX_SAFE_INTEGER","temporarySum","additionalParts","getRandomInteger","combination","getMathRandom","factors","getFactors","factor","PrevailingKindOfVariablesAnalyzer_1","PrevailingKindOfVariablesAnalyzer","arrayUtils","prevailingKindOfVariables","defaultKindOfVariables","variableKinds","isVariableDeclarationNode","findMostOccurringElement","IArrayUtils","ScopeAnalyzer_1","ScopeAnalyzer","eslintScope","_c","emptyRangeValue","attachMissingRanges","eslintScopeOptions","isRootNode","sanitizeScopes","childScope","classNameVariable","upperVariable","StringArrayStorageAnalyzer_1","StringArrayStorageAnalyzer","NodeLiteralUtils_1","NodeMetadata_1","stringArrayStorage","stringArrayStorageData","stringArray","NodeMetadata","isIgnoredNode","analyzeLiteralNode","literalNode","NodeLiteralUtils","isStringLiteralNode","isProhibitedLiteralNode","shouldAddValueToStringArray","getOrThrow","isForceTransformNode","minimumLengthForStringArray","stringArrayThreshold","IStringArrayStorage","AbstractCodeTransformer","CodeTransformerNamesGroupsBuilder","AbstractTransformerNamesGroupsBuilder_1","AbstractTransformerNamesGroupsBuilder","CodeTransformersRunner","codeTransformerFactory","codeTransformerNamesGroupsBuilder","codeTransformerNames","normalizedCodeTransformers","buildNormalizedCodeTransformers","codeTransformerNamesGroups","build","nodeTransformerNamesGroup","nodeTransformerName","transformCode","codeTransformerName","codeTransformer","Factory__ICodeTransformer","ICodeTransformerNamesGroupsBuilder","AbstractCodeTransformer_1","hashbangOperatorLine","removeAndSaveHashbangOperatorLine","appendSavedHashbangOperatorLine","alphabetString","alphabetStringUppercase","AlphabetString_1","base64alphabet","AlphabetStringUppercase_1","NumbersString_1","numbersString","base64alphabetSwapped","AnalyzersModule_1","CodeTransformersModule_1","ControlFlowTransformersModule_1","ConvertingTransformersModule_1","CustomCodeHelpersModule_1","CustomNodesModule_1","DeadCodeInjectionTransformersModule_1","FinalizingTransformersModule_1","GeneratorsModule_1","InitializingTransformersModule_1","NodeModule_1","NodeTransformersModule_1","OptionsModule_1","PreparingTransformersModule_1","RenameIdentifiersTransformersModule_1","RenamePropertiesTransformersModule_1","SimplifyingTransformersModule_1","StoragesModule_1","StringArrayTransformersModule_1","UtilsModule_1","CodeTransformersRunner_1","Logger_1","NodeTransformersRunner_1","ObfuscationEventEmitter_1","ObfuscatedCode_1","SourceCode_1","bindingName","cachedDependencies","ISourceCode","SourceCode","TInputOptions","Logger","NodeTransformersRunner","IObfuscatedCode","ObfuscatedCode","obfuscatedCodeAsString","sourceMapAsString","initialize","IObfuscationEventEmitter","ObfuscationEventEmitter","analyzersModule","codeTransformersModule","controlFlowTransformersModule","convertingTransformersModule","customCodeHelpersModule","customNodesModule","deadCodeInjectionTransformersModule","finalizingTransformersModule","generatorsModule","initializingTransformersModule","nodeModule","nodeTransformersModule","optionsModule","preparingTransformersModule","renameIdentifiersTransformersModule","renamePropertiesTransformersModule","simplifyingTransformersModule","storagesModule","stringArrayTransformersModule","utilsModule","FunctionDeclarationCalleeDataExtractor_1","FunctionExpressionCalleeDataExtractor_1","ICallsGraphAnalyzer","INumberNumericalExpressionAnalyzer","IPrevailingKindOfVariablesAnalyzer","IScopeAnalyzer","IStringArrayStorageAnalyzer","ICalleeDataExtractor","getCacheFactory","CodeTransformerNamesGroupsBuilder_1","HashbangOperatorTransformer_1","ICodeTransformer","CustomCodeHelper_1","CustomCodeHelperGroup_1","ConsoleOutputCodeHelperGroup_1","DebugProtectionCodeHelperGroup_1","DomainLockCustomCodeHelperGroup_1","SelfDefendingCodeHelperGroup_1","StringArrayCodeHelperGroup_1","ConsoleOutputDisableCodeHelper_1","CustomCodeHelperFormatter_1","CustomCodeHelperObfuscator_1","DebugProtectionFunctionCallCodeHelper_1","DebugProtectionFunctionIntervalCodeHelper_1","DebugProtectionFunctionCodeHelper_1","DomainLockCodeHelper_1","CallsControllerFunctionCodeHelper_1","SelfDefendingUnicodeCodeHelper_1","StringArrayCallsWrapperCodeHelper_1","StringArrayCallsWrapperBase64CodeHelper_1","StringArrayCallsWrapperRc4CodeHelper_1","StringArrayCodeHelper_1","StringArrayRotateFunctionCodeHelper_1","ICustomCodeHelper","ConsoleOutputDisableCodeHelper","CustomCodeHelper","ConsoleOutputDisable","DebugProtectionFunctionCallCodeHelper","DebugProtectionFunctionCall","DebugProtectionFunctionIntervalCodeHelper","DebugProtectionFunctionInterval","DebugProtectionFunctionCodeHelper","DebugProtectionFunction","DomainLockCodeHelper","DomainLock","CallsControllerFunctionCodeHelper","CallsControllerFunction","SelfDefendingUnicodeCodeHelper","SelfDefendingUnicode","StringArrayCallsWrapperCodeHelper","StringArrayCallsWrapper","StringArrayCallsWrapperBase64CodeHelper","StringArrayCallsWrapperBase64","StringArrayCallsWrapperRc4CodeHelper","StringArrayCallsWrapperRc4","StringArrayCodeHelper","StringArrayRotateFunctionCodeHelper","StringArrayRotateFunction","ICustomCodeHelperGroup","ConsoleOutputCodeHelperGroup","CustomCodeHelperGroup","ConsoleOutput","DebugProtectionCodeHelperGroup","DebugProtection","DomainLockCustomCodeHelperGroup","SelfDefendingCodeHelperGroup","SelfDefending","StringArrayCodeHelperGroup","Factory__ICustomCodeHelper","getFactory","Factory__ICustomCodeHelperGroup","ICustomCodeHelperFormatter","CustomCodeHelperFormatter","ICustomCodeHelperObfuscator","CustomCodeHelperObfuscator","ControlFlowCustomNode_1","DeadCodeInjectionCustomNode_1","ObjectExpressionKeysTransformerCustomNode_1","StringArrayCustomNode_1","BinaryExpressionFunctionNode_1","BlockStatementControlFlowFlatteningNode_1","BlockStatementDeadCodeInjectionNode_1","CallExpressionControlFlowStorageCallNode_1","CallExpressionFunctionNode_1","ControlFlowStorageNode_1","ExpressionWithOperatorControlFlowStorageCallNode_1","LogicalExpressionFunctionNode_1","ObjectExpressionVariableDeclarationHostNode_1","StringArrayCallNode_1","StringArrayHexadecimalNumberIndexNode_1","StringArrayHexadecimalNumericStringIndexNode_1","StringArrayIndexNode_1","StringArrayScopeCallsWrapperFunctionNode_1","StringArrayScopeCallsWrapperVariableNode_1","StringLiteralControlFlowStorageCallNode_1","StringLiteralNode_1","Newable__ICustomNode","BinaryExpressionFunctionNode","ControlFlowCustomNode","BlockStatementControlFlowFlatteningNode","CallExpressionControlFlowStorageCallNode","CallExpressionFunctionNode","ControlFlowStorageNode","ExpressionWithOperatorControlFlowStorageCallNode","LogicalExpressionFunctionNode","StringLiteralNode","StringLiteralControlFlowStorageCallNode","BlockStatementDeadCodeInjectionNode","DeadCodeInjectionCustomNode","ObjectExpressionVariableDeclarationHostNode","ObjectExpressionKeysTransformerCustomNode","StringArrayCallNode","StringArrayCustomNode","StringArrayScopeCallsWrapperFunctionNode","StringArrayScopeCallsWrapperVariableNode","IStringArrayIndexNode","StringArrayHexadecimalNumberIndexNode","StringArrayIndexNode","StringArrayHexadecimalNumericStringIndexNode","Factory__IControlFlowCustomNode","getConstructorFactory","Factory__IIdentifierNamesGenerator","Factory__IDeadCodeInjectionCustomNode","Factory__IObjectExpressionKeysTransformerCustomNode","Factory__IStringArrayCustomNode","Factory__IStringArrayIndexNode","IdentifierNamesGenerator_1","DictionaryIdentifierNamesGenerator_1","HexadecimalIdentifierNamesGenerator_1","MangledIdentifierNamesGenerator_1","MangledShuffledIdentifierNamesGenerator_1","IIdentifierNamesGenerator","DictionaryIdentifierNamesGenerator","IdentifierNamesGenerator","HexadecimalIdentifierNamesGenerator","MangledIdentifierNamesGenerator","MangledShuffledIdentifierNamesGenerator","cachedIdentifierNamesGenerator","identifierNamesGenerator","identifierNameGeneratorFactory","ControlFlowReplacer_1","BinaryExpressionControlFlowReplacer_1","BlockStatementControlFlowTransformer_1","CallExpressionControlFlowReplacer_1","FunctionControlFlowTransformer_1","LogicalExpressionControlFlowReplacer_1","StringLiteralControlFlowReplacer_1","INodeTransformer","IControlFlowReplacer","BinaryExpressionControlFlowReplacer","ControlFlowReplacer","CallExpressionControlFlowReplacer","LogicalExpressionControlFlowReplacer","StringLiteralControlFlowReplacer","Factory__IControlFlowReplacer","ObjectExpressionExtractor_1","BasePropertiesExtractor_1","BooleanLiteralTransformer_1","ExportSpecifierTransformer_1","MemberExpressionTransformer_1","MethodDefinitionTransformer_1","NumberLiteralTransformer_1","NumberToNumericalExpressionTransformer_1","ObjectExpressionKeysTransformer_1","ObjectExpressionToVariableDeclarationExtractor_1","ObjectExpressionTransformer_1","ObjectPatternPropertiesTransformer_1","SplitStringTransformer_1","TemplateLiteralTransformer_1","IObjectExpressionExtractor","ObjectExpressionToVariableDeclarationExtractor","ObjectExpressionExtractor","BasePropertiesExtractor","Factory__IObjectExpressionExtractor","DeadCodeInjectionTransformer_1","EscapeSequenceTransformer_1","CommentsTransformer_1","NodeTransformerNamesGroupsBuilder_1","Factory__INodeTransformer","INodeTransformerNamesGroupsBuilder","NodeTransformerNamesGroupsBuilder","ObfuscatingGuard_1","BlackListObfuscatingGuard_1","ConditionalCommentObfuscatingGuard_1","CustomCodeHelpersTransformer_1","EvalCallExpressionTransformer_1","ForceTransformStringObfuscatingGuard_1","IgnoredRequireImportObfuscatingGuard_1","MetadataTransformer_1","ObfuscatingGuardsTransformer_1","ParentificationTransformer_1","ReservedStringObfuscatingGuard_1","VariablePreserveTransformer_1","INodeGuard","BlackListObfuscatingGuard","ObfuscatingGuard","ConditionalCommentObfuscatingGuard","ForceTransformStringObfuscatingGuard","IgnoredRequireImportObfuscatingGuard","ReservedStringObfuscatingGuard","Factory__INodeGuard","IdentifierReplacer_1","LabeledStatementTransformer_1","ScopeIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer","IIdentifierReplacer","IdentifierReplacer","RenamePropertiesReplacer_1","RenamePropertiesTransformer_1","IRenamePropertiesReplacer","RenamePropertiesReplacer","BlockStatementSimplifyTransformer_1","ExpressionStatementsMergeTransformer_1","IfStatementSimplifyTransformer_1","VariableDeclarationsMergeTransformer_1","StringArrayScopeCallsWrapperTransformer_1","StringArrayTransformer_1","ScopeIdentifiersTraverser_1","IScopeIdentifiersTraverser","ScopeIdentifiersTraverser","OptionsNormalizer_1","IOptionsNormalizer","OptionsNormalizer","ControlFlowStorage_1","CustomCodeHelperGroupStorage_1","LiteralNodesCacheStorage_1","StringArrayScopeCallsWrapperLexicalScopeDataStorage_1","StringArrayScopeCallsWrapperNamesDataStorage_1","StringArrayStorage_1","VisitedLexicalScopeNodesStackStorage_1","TCustomNodeGroupStorage","CustomCodeHelperGroupStorage","ILiteralNodesCacheStorage","LiteralNodesCacheStorage","StringArrayStorage","IStringArrayScopeCallsWrapperLexicalScopeDataStorage","StringArrayScopeCallsWrapperLexicalScopeDataStorage","IStringArrayScopeCallsWrapperNamesDataStorage","StringArrayScopeCallsWrapperNamesDataStorage","IVisitedLexicalScopeNodesStackStorage","VisitedLexicalScopeNodesStackStorage","Newable__TControlFlowStorage","ControlFlowStorage","Factory__TControlFlowStorage","storage","ArrayUtils_1","CryptUtils_1","CryptUtilsSwappedAlphabet_1","EscapeSequenceEncoder_1","LevelledTopologicalSorter_1","RandomGenerator_1","ArrayUtils","RandomGenerator","ICryptUtils","CryptUtils","ICryptUtilsSwappedAlphabet","CryptUtilsSwappedAlphabet","IEscapeSequenceEncoder","EscapeSequenceEncoder","ILevelledTopologicalSorter","LevelledTopologicalSorter","AbstractCustomCodeHelper_1","AbstractCustomCodeHelper","GlobalVariableTemplate1_1","GlobalVariableTemplate2_1","identifierNamesGeneratorFactory","customCodeHelperFormatter","customCodeHelperObfuscator","cachedNode","codeHelperTemplate","getCodeHelperTemplate","formatStructure","getNodeStructure","getRandomGenerator","globalVariableTemplateFunctions","GlobalVariableTemplate1","GlobalVariableTemplate2","AbstractCustomCodeHelperGroup","appendEvent","customCodeHelpers","customCodeHelperName","customCodeHelper","callsGraphLength","string_template_1","prevailingKindOfVariablesAnalyzer","getPrevailingKind","NoCustomNodes_1","additionalOptions","NO_ADDITIONAL_NODES_PRESET","identifiersDictionary","numbersToExpressions","getRawSeed","ObfuscationEvent_1","Initializable_1","SingleCallControllerTemplate_1","NodeUtils_1","callsControllerFunctionName","NodeUtils","convertCodeToStructure","ObfuscationEvent","AfterObfuscation","obfuscateTemplate","formatTemplate","SingleCallControllerTemplate","callControllerFunctionName","initializable","GlobalVariableNoEvalTemplate","ObfuscationTarget_1","ConsoleOutputDisableTemplate_1","GlobalVariableNoEvalTemplate_1","consoleOutputDisableFunctionName","globalVariableTemplate","ObfuscationTarget","BrowserNoEval","getGlobalVariableTemplate","ConsoleOutputDisableTemplate","consoleLogDisableFunctionName","AbstractCustomCodeHelperGroup_1","NodeAppender_1","NodeLexicalScopeUtils_1","customCodeHelperFactory","BeforeObfuscation","nodeWithStatements","disableConsoleOutput","randomCallsGraphIndex","getRandomCallsGraphIndex","consoleOutputDisableHostNode","NodeAppender","getOptimalBlockScope","callsControllerHostNode","consoleOutputDisableLexicalScopeNode","NodeLexicalScopeUtils","getLexicalScope","generateNext","appendCustomNodeIfExist","getNode","consoleOutputDisableExpressionCodeHelper","callsControllerFunctionCodeHelper","DebugProtectionFunctionCallTemplate_1","debugProtectionFunctionName","DebugProtectionFunctionCallTemplate","DebuggerTemplate_1","DebuggerTemplateNoEval_1","DebugProtectionFunctionTemplate_1","debuggerTemplate","DebuggerTemplate","DebuggerTemplateNoEval","DebugProtectionFunctionTemplate","DebugProtectionFunctionIntervalTemplate_1","DebugProtectionFunctionIntervalTemplate","debugProtection","debugProtectionFunctionCallHostNode","debugProtectionFunctionCallScopeNode","programBodyLength","isSwitchCaseNode","randomIndex","insertAtIndex","debugProtectionFunctionCodeHelper","debugProtectionFunctionCallCodeHelper","debugProtectionFunctionIntervalCodeHelper","debugProtectionInterval","DomainLockTemplate_1","cryptUtils","domainLockFunctionName","domainsString","domainLock","hiddenDomainsString","hideString","DomainLockTemplate","domains","domainLockFunctionHostNode","domainLockFunctionLexicalScopeNode","domainLockCodeHelper","SelfDefendingTemplate_1","SelfDefendingNoEvalTemplate_1","selfDefendingFunctionName","selfDefendingTemplate","SelfDefendingTemplate","SelfDefendingNoEvalTemplate","selfDefending","selfDefendingFunctionHostNode","selfDefendingFunctionLexicalScopeNode","selfDefendingUnicodeCodeHelper","AtobTemplate_1","StringArrayBase64DecodeTemplate_1","atobFunctionName","atobPolyfill","AtobTemplate","selfDefendingCode","getSelfDefendingTemplate","StringArrayBase64DecodeTemplate","stringArrayCallsWrapperName","StringArrayCallsWrapperTemplate_1","escapeSequenceEncoder","stringArrayName","indexShiftAmount","decodeCodeHelperTemplate","getDecodeStringArrayTemplate","preservedNames","StringArrayCallsWrapperTemplate","reservedNames","Rc4Template_1","StringArrayRC4DecodeTemplate_1","rc4Polyfill","Rc4Template","StringArrayRC4DecodeTemplate","StringArrayTemplate_1","StringUtils_1","StringArrayTemplate","stringArrayStorageItems","getEncodedStringArrayStorageItems","getStorage","stringArrayStorageItemData","StringUtils","escapeJsString","encodedValue","StringArrayRotateFunctionTemplate_1","stringArrayRotationAmount","timesName","whileFunctionName","StringArrayRotateFunctionTemplate","toHex","StringArrayEncoding_1","stringArrayEncodingsLength","stringArrayEncoding","stringArrayCallsWrapperCodeHelperName","getStringArrayCallsWrapperCodeHelperName","stringArrayCodeHelper","getStorageName","stringArrayCallsWrapperCodeHelper","getStorageCallsWrapperName","getIndexShiftAmount","stringArrayRotateFunctionCodeHelper","getRotationAmount","rotateStringArray","stringArrayCallsWrapperCodeHelperMap","StringArrayEncoding","None","Base64","Rc4","Base64AlphabetSwapped_1","rc4BytesIdentifier","statesIdentifier","newStateIdentifier","firstStateIdentifier","secondStateIdentifier","checkStateIdentifier","runStateIdentifier","getStateIdentifier","stateResultIdentifier","initializedIdentifier","base64DecodeFunctionIdentifier","dataIdentifier","rc4Identifier","onceIdentifier","AbstractCustomNode","AbstractCustomNode_1","NodeFactory_1","structure","NodeFactory","expressionStatementNode","functionExpressionNode","identifierNode","blockStatementNode","returnStatementNode","binaryExpressionNode","parentizeAst","StringSeparator_1","blockStatementBody","shuffledKeys","originalKeysIndexesInShuffledArray","controllerIdentifierName","indexIdentifierName","variableDeclarationNode","variableDeclaratorNode","memberExpressionNode","StringSeparator","VerticalLine","whileStatementNode","switchStatementNode","updateExpressionNode","isReturnStatementNode","continueStatement","switchCaseNode","breakStatement","expressionArguments","calleeIdentifier","argumentsLength","logicalExpressionNode","literalValue","controlFlowStorageName","controlFlowStorageKey","controlFlowStorage","propertyNodes","isExpressionStatementNode","getStorageId","objectExpressionNode","leftValue","rightValue","deadCodeInjectionRootAstHostNode","random1","random2","leftString","rightString","ifStatementNode","lexicalScopeNode","variableDeclarationName","generateForGlobalScope","generateForLexicalScope","AbstractStringArrayCallNode_1","AbstractStringArrayCallNode","StringArrayIndexesType_1","stringArrayIndexNodeFactory","normalizedIndex","stringArrayCallsIndexType","stringArrayIndexesType","stringArrayIndexNodeName","stringArrayIndexNodesMap","stringArrayCallIndexNode","replacedLiteral","hexadecimalNode","unaryExpressionNode","decodeKey","rc4KeyLiteralNode","stringArrayRootCallsWrapperParametersCount","StringArrayIndexesType","HexadecimalNumber","HexadecimalNumericString","stringArrayCallsWrapperParameterIndexesData","resultIndex","indexNode","getStringArrayIndexNode","getRc4KeyLiteralNode","callExpressionArgs","fillWithRange","stringArrayWrappersParametersMaxCount","getFakeStringArrayIndexNode","valueIndexParameterIndex","decodeKeyParameterIndex","actualIndex","getFakeStringArrayIndex","fakeIndexOffset","minimumIndex","maximumIndex","stringArrayScopeCallsWrapperName","stringArrayScopeCallsWrapperParameterIndexesData","upperStringArrayCallsWrapperName","upperStringArrayCallsWrapperParameterIndexesData","shiftedIndex","_g","_h","stringArrayCallIdentifierNode","decodeKeyIdentifierNode","stringArrayCallNode","getUpperStringArrayCallNode","parameters","getFakeParameterNode","getFakeUpperStringArrayIndexNode","parameter","indexParameterIdentifierNode","indexShiftNode","AbstractStringArrayIndexNode","AbstractStringArrayIndexNode_1","hexadecimalIndex","defaultDescriptor","initializedTargetMetadataKey","initializablePropertiesSetMetadataKey","wrappedMethodsSetMetadataKey","initializeTargetMetadata","initializeMethodName","decoratorName","initializeMethod","ownPropertyNames","prohibitedPropertyNames","initializablePropertiesSet","wrappedMethodsSet","methodDescriptor","originalMethod","wrapTargetMethodsInInitializedCheck","wrapInitializeMethodInInitializeCheck","initializablePropertyMetadataKey","propertyDescriptor","newVal","wrapInitializableProperty","makeEnum","Browser","LoggingPrefix","VisitorDirection","StringArrayWrappersType","ObfuscatingGuardResult","OptionsPreset","Default","LowObfuscation","MediumObfuscation","HighObfuscation","SourceMapMode","Inline","Separate","eventemitter3_1","AbstractIdentifierNamesGenerator","preservedNamesSet","lexicalScopesPreservedNamesMap","nameLength","preservedNamesForLexicalScopeSet","notReservedName","lexicalScopeNodes","isValidIdentifierName","lexicalScope","reservedName","AbstractIdentifierNamesGenerator_1","identifierNamesSet","getInitialIdentifierNames","identifiersIterator","identifierName","newIdentifierName","isSuccess","generateNewDictionaryName","preserveName","identifierNameWithPrefix","lexicalScopes","getLexicalScopes","isValidIdentifierNameInLexicalScopes","preserveNameForLexicalScope","iteratorResult","getIncrementedIdentifierNames","identifierNames","formattedIdentifierNames","incrementIdentifierName","randomInteger","hexadecimalNumber","prefixLength","hexadecimalPrefix","baseNameLength","baseIdentifierNameLength","previousMangledName","initMangledNameCharacter","generateNewMangledName","updatePreviousMangledName","getLastMangledNameForScopes","lastMangledNameInScopeMap","nextName","prevName","nextNameLength","prevNameLength","nameSequence","getNameSequence","nextNameCharacter","prevNameCharacter","mangledName","reservedNamesSet","isIncrementedMangledName","newMangledName","nameSequenceLength","zeroSequence","indexInSequence","lastMangledName","initializeNameSequence","shuffledNameSequence","LoggingPrefix_1","loggingLevelColor","loggingPrefix","loggingMessage","processedMessage","colorInfo","colorSuccess","colorWarn","AbstractNodeTransformer","VisitorDirection_1","nodeTransformerFactory","nodeTransformerNamesGroupsBuilder","nodeTransformerNames","normalizedNodeTransformers","buildNormalizedNodeTransformers","nodeTransformerNamesGroups","enterVisitors","leaveVisitors","getVisitor","mergeVisitorsForDirection","Enter","Leave","nodeTransformer","visitors","direction","visitorsLength","visitorFunction","visitorResult","AbstractNodeTransformer_1","controlFlowCustomNodeFactory","isBreakOrContinueStatement","isBreakStatementNode","isContinueStatementNode","isVariableDeclarationWithLetOrConstKind","isClassDeclaration","isClassDeclarationNode","canTransform","isWhileStatementNode","isProhibitedStatementNode","isBlockStatementNode","transformNode","controlFlowFlatteningThreshold","canTransformBlockStatementNode","createWithRange","blockStatementControlFlowFlatteningCustomNode","newBlockStatementNode","parentizeNode","NodeType_1","controlFlowStorageFactory","controlFlowReplacerFactory","controlFlowData","visitedFunctionNodes","hostNodesWithControlFlowNode","isArrowFunctionExpressionNode","functionNode","hostNode","getHostNode","getControlFlowStorage","transformFunctionBody","controlFlowStorageCustomNode","hostControlFlowStorage","mergeWith","functionNodeBody","blockScopesOfNode","getParentNodesWithStatements","hostNodeSearchMinDepth","hostNodeSearchMaxDepth","isVisitedFunctionNode","controlFlowReplacersMap","controlFlowReplacerName","AbstractControlFlowReplacer_1","AbstractControlFlowReplacer","replacerDataByControlFlowStorageId","identifierDataByControlFlowStorageId","controlFlowStorageId","storageKeysById","customNode","replacerId","usingExistingIdentifierChance","getStorageKeysByIdForCurrentStorage","storageKeysForCurrentId","generateStorageKey","storageKey","ExpressionWithOperatorControlFlowReplacer_1","ExpressionWithOperatorControlFlowReplacer","binaryExpressionFunctionCustomNode","insertCustomNodeToControlFlowStorage","getControlFlowStorageCallNode","callExpressionFunctionCustomNode","controlFlowStorageCallCustomNode","statementNode","leftExpression","rightExpression","checkForProhibitedExpressions","logicalExpressionFunctionCustomNode","expressionNode","nodeForCheck","isUnaryExpressionNode","getUnaryExpressionArgumentNode","literalFunctionCustomNode","getTrueUnaryExpressionNode","getFalseUnaryExpressionNode","arrayExpressionNode","isExportSpecifierNode","exportSpecifierNode","isMethodDefinitionNode","methodDefinitionNode","replaceIdentifierKey","replaceLiteralKey","keyNode","ignoredNames","runAfter","numberLiteralCache","rawValue","isCeil","numberNumericalExpressionAnalyzer","numberNumericalExpressionData","convertNumericalExpressionDataToNode","numberNumericalExpressionDataLength","leftParts","rightParts","convertPartsToBinaryExpression","firstLeftPartOrNumber","convertPartOrNumberToLiteralNode","rightPartOrNumber","partOrNumber","isPositiveNumber","objectExpressionExtractorFactory","objectExpressionParentNode","objectExpressionHostStatement","isReferencedIdentifierName","isProhibitedArrowFunctionExpression","isProhibitedSequenceExpression","objectExpressionHostNode","isCurrentNode","objectExpressionNodeParentNode","isSequenceExpressionNode","isSuperNode","transformObjectKeys","hostStatement","getRootStatementOfNode","isProhibitedObjectExpressionNode","applyObjectExpressionKeysExtractorsRecursive","objectExpressionExtractorNames","newObjectExpressionExtractorNames","objectExpressionExtractor","nodeToReplace","newObjectExpressionHostStatement","newObjectExpressionNode","transformComputedProperty","transformBaseProperty","isObjectPatternNode","renameGlobals","stringz","stringLength","chunkSize","chunksCount","ceil","nextChunkStartIndex","chunkIndex","splitStrings","firstPassChunksNode","transformLiteralNodeByChunkLength","firstPassChunkLength","splitStringsChunkLength","chunkLength","valueLength","stringChunks","chunkString","transformStringChunksToBinaryExpressionNode","firstChunk","secondChunk","initialBinaryExpressionNode","chunkLiteralNode","isTemplateLiteralNode","templateLiteralNode","isTaggedTemplateExpressionNode","transformTemplateLiteralNode","templateLiteralExpressions","transformedNode","templateElement","isLiteralNodeWithStringValue","propertyKeyNode","isArrayPatternNode","isAssignmentPatternNode","isRestElementNode","transformObjectExpressionNode","memberExpressionHostNode","expressionStatements","removablePropertyIds","extractPropertiesToExpressionStatements","hostNodeWithStatements","getScopeOfNode","filterExtractedObjectExpressionProperties","insertAfter","isSpreadElementNode","isProhibitedPropertyNode","propertyValue","isProhibitedPattern","propertyKeyName","getPropertyNodeKeyName","memberExpressionProperty","shouldCreateLiteralNode","assignmentExpressionNode","objectExpressionKeysTransformerCustomNodeFactory","transformObjectExpressionToVariableDeclaration","isNodeWithLexicalScope","getObjectExpressionHostNode","statementsToInsert","getObjectExpressionIdentifierNode","getObjectExpressionNode","variableDeclarationHostNodeCustomNode","newObjectExpressionIdentifierNode","deadCodeInjectionCustomNodeFactory","transformersRunner","deadCodeInjectionRootAstHostNodeSet","collectedBlockStatements","collectedBlockStatementsTotalLength","isAwaitExpressionNode","isYieldExpressionNode","isForOfStatementNode","scopeNode","scopeBody","indexInScope","slicedBody","hostBlockStatementNode","functionDeclarationName","isScopeHoistedFunctionDeclaration","nestedBlockStatementsCount","isValidBlockStatementNode","maxNestedBlockStatementsCount","isProhibitedNodeInsideCollectedBlockStatement","isScopeHoistingFunctionDeclaration","prepareNode","isDeadCodeInjectionRootAstHostNode","restoreNode","programNode","clonedBlockStatementNode","isValidCollectedBlockStatementNode","transformedBlockStatementNode","makeClonedBlockStatementNodeUnique","minCollectedBlockStatementsCount","deadCodeInjectionThreshold","isValidWrappedBlockStatementNode","maxInteger","randomBlockStatementNode","replaceBlockStatementNode","hostNodeFirstStatement","transformersToRenameBlockScopeIdentifiers","functionDeclarationNode","deadCodeInjectionRootAstHostNodeName","blockStatementDeadCodeInjectionCustomNode","unicodeEscapeSequence","newLiteralNode","filterCommentsOnFinalizingTraverse","rootNode","filterCommentsOnPrimaryTraverse","isFirstNode","commentIdx","filterComment","keepConditionalComment","isConditionalComment","preservedWords","preservedWord","callsGraphAnalyzer","obfuscationEventEmitter","customCodeHelperGroupStorage","appendCustomNodesBeforeObfuscation","appendCustomNodesAfterObfuscation","customCodeHelperGroup","getAppendEvent","appendNodes","evalRootAstHostNodeSet","extractEvalStringFromLiteralNode","extractEvalStringFromTemplateLiteralNode","isEvalRootAstHostNode","callExpressionFirstArgument","evalString","extractEvalStringFromCallExpressionArgument","evalRootAstHostNode","targetAst","convertStructureToCode","ignoredNode","ObfuscatingGuardResult_1","obfuscatingGuardFactory","obfuscatingGuards","obfuscatingGuardsList","obfuscatingGuardResults","obfuscatingGuard","setNodeMetadata","obfuscatingGuardResult","Transform","ForceTransform","Ignore","forceTransformNode","identifierReplacer","scopeIdentifiersTraverser","preserveScopeVariableIdentifiers","traverseScopeIdentifiers","isGlobalDeclaration","isBubblingDeclaration","preserveIdentifierNameForRootLexicalScope","preserveIdentifierNameForLexicalScope","blackListGuardsLength","blackListGuards","isUseStrictOperator","obfuscationAllowed","obfuscationEnableCommentRegExp","obfuscationDisableCommentRegExp","isNodeWithComments","checkComments","commentsLength","forceTransformStrings","isForceTransformString","forceTransformString","ignoreRequireImports","reservedStrings","isReservedString","reservedString","isLabeledStatementNode","labeledStatementNode","storeLabeledStatementName","replaceLabeledStatementName","storeLocalName","isLabelIdentifierNode","newIdentifier","lexicalScopesWithObjectPatternWithoutDeclarationMap","variableLexicalScopeNode","transformScopeVariableIdentifiers","firstIdentifier","isReplaceableIdentifierNode","storeIdentifierName","replaceIdentifierName","storeGlobalName","reference","isProhibitedPropertyIdentifierNode","isProhibitedPropertyAssignmentPatternIdentifierNode","isProhibitedClassDeclarationNameIdentifierNode","isProhibitedExportNamedClassDeclarationIdentifierNode","isProhibitedExportNamedFunctionDeclarationIdentifierNode","isProhibitedExportNamedVariableDeclarationIdentifierNode","isProhibitedImportSpecifierNode","isProhibitedVariableNameUsedInObjectPatternNode","isExportNamedDeclarationNode","isImportSpecifierNode","isLexicalScopeHasObjectPatternWithoutDeclaration","isProhibitedVariableDeclaration","isAssignmentExpressionNode","traverseScopeThroughIdentifiers","transformScopeThroughIdentifiers","blockScopesMap","isReservedName","namesMap","renamePropertiesReplacer","transformPropertyNode","transformMemberExpressionNode","transformMethodDefinitionNode","isValidPropertyNode","ReservedDomProperties_json_1","propertyNamesMap","reservedDomPropertiesList","replacePropertyName","renamedPropertyName","isReservedOptionName","isReservedDomPropertyName","AbstractStatementSimplifyTransformer","leadingStatements","hasReturnStatement","hasSingleExpression","startIndex","unwrappedExpressions","collectIteratedStatementsSimplifyData","getLeadingStatements","sequenceExpressionNode","statementBodyStatementNode","statementSimplifyData","AbstractStatementSimplifyTransformer_1","simplifyData","getStatementSimplifyData","partialStatementNode","getPartialStatement","isNodeWithStatements","prevStatement","getPreviousSiblingStatement","isIfStatementNode","consequentSimplifyData","alternateSimplifyData","getConsequentAndAlternateNode","getConsequentNode","conditionalExpressionNode","partialStatement","isProhibitedSingleStatementForIfStatementBranch","StringArrayWrappersType_1","visitedLexicalScopeNodesStackStorage","stringArrayScopeCallsWrapperNamesDataStorage","stringArrayScopeCallsWrapperLexicalScopeDataStorage","stringArrayTransformerCustomNodeFactory","stringArrayWrappersCount","isNodeWithLexicalScopeStatements","onLexicalScopeNodeEnter","onLexicalScopeNodeLeave","lexicalScopeBodyNode","stringArrayScopeCallsWrapperNamesDataByEncoding","stringArrayScopeCallsWrapperLexicalScopeData","callsWrappersParameterIndexesData","stringArrayScopeCallsWrapperParameterIndexes","stringArrayScopeCallsWrapperNamesDataList","stringArrayScopeCallsWrapperNamesData","upperStringArrayCallsWrapperShiftedIndex","parameterIndexesData","upperStringArrayCallsWrapperParameterIndexes","getUpperStringArrayCallsWrapperData","stringArrayScopeCallsWrapperNode","getStringArrayScopeCallsWrapperNode","resultShiftedIndex","scopeShiftedIndex","rootStringArrayCallsWrapperData","getRootStringArrayCallsWrapperData","stringArrayWrappersChainedCalls","parentLexicalScopeBodyNode","getLastElement","parentLexicalScopeNamesDataByEncoding","parentScopeCallsWrapperLexicalScopeData","parentLexicalScopeNames","stringArrayScopeCallsWrapperShiftedIndex","stringArrayWrappersType","getStringArrayScopeCallsWrapperFunctionNode","getStringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperFunctionNode","literalNodesCacheStorage","stringArrayStorageAnalyzer","isReplacedLiteral","shuffleStringArray","shuffleStorage","rotateStorage","getItemDataForLiteralNode","cacheKey","buildKey","shouldUseCachedValue","resultNode","getStringArrayCallNode","getStringArrayCallsWrapperData","stringArrayCallCustomNode","currentLexicalScopeBodyNode","getPenultimateElement","getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding","getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData","stringArrayScopeCallsWrapperNames","nextScopeCallsWrapperName","storedLexicalScopeData","parentLexicalScopeData","getStringArrayCallsWrapperParameterIndexesData","minShiftedIndexValue","maxShiftedIndexValue","lexicalScopeData","maxIndexValue","getRandomIntegerExcluding","parentizeScopeStatementsBeforeAppend","setScopeStatements","getScopeStatements","bodyStatements","targetBlockScope","deep","firstCall","indexInScopeStatement","functionName","argumentExpr","parentNodeIsLabeledStatementNode","parentNodeIsContinueStatementNode","parentNodeIsBreakStatementNode","isFunctionNode","nodesWithLexicalStatements","isDirectiveNode","getLexicalScopesRecursive","maxSize","nodesWithLexicalScope","isImportDeclarationNode","isExportAllDeclarationNode","getParentNodesWithStatementsRecursive","getSiblingStatementByOffset","nodesWithStatements","cloneRecursive","addXVerbatimPropertyTo","clonedValue","scopeAnalyzer","acquireScope","traverseScopeIdentifiersRecursive","traverseScopeThroughIdentifiersRecursive","rootScope","isNodeWithBlockLexicalScope","globalScopeNames","argumentsVariableName","class_validator_1","OptionsPreset_1","SourceMapMode_1","Default_1","LowObfuscation_1","MediumObfuscation_1","HighObfuscation_1","ValidationErrorsFormatter_1","IsAllowedForObfuscationTargets_1","optionsNormalizer","ValidationErrorsFormatter","optionPresetsMap","DEFAULT_PRESET","LOW_OBFUSCATION_PRESET","MEDIUM_OBFUSCATION_PRESET","HIGH_OBFUSCATION_PRESET","IsAllowedForObfuscationTargets","sourceMapBaseUrl","require_protocol","require_tld","require_valid_protocol","ControlFlowFlatteningThresholdRule_1","DeadCodeInjectionRule_1","DeadCodeInjectionThresholdRule_1","DomainLockRule_1","InputFileNameRule_1","SeedRule_1","SelfDefendingRule_1","SourceMapBaseUrlRule_1","SourceMapFileNameRule_1","SplitStringsChunkLengthRule_1","StringArrayRule_1","StringArrayEncodingRule_1","StringArrayWappersChainedCalls_1","normalizedOptions","normalizerRule","normalizerRules","ControlFlowFlatteningThresholdRule","DeadCodeInjectionRule","DeadCodeInjectionThresholdRule","DomainLockRule","InputFileNameRule","SeedRule","SelfDefendingRule","SourceMapBaseUrlRule","SourceMapFileNameRule","SplitStringsChunkLengthRule","StringArrayRule","StringArrayEncodingRule","StringArrayWrappersChainedCallsRule","errorMessages","formatWithNestedConstraints","normalizedDomains","extractDomainFrom","Dot","sourceMapFileName","sourceMapFileNameParts","sourceMapFileNamePartsCount","lastPart","stringArrayIndexShift","sourceMapMode","fast_deep_equal_1","obfuscationTargets","optionsObject","Comma","correctObfuscatedCode","sourceMapUrl","sourceMappingUrl","ArrayStorage","storageLength","storageId","deletedElement","mergeId","MapStorage","storageValue","MapStorage_1","customCodeHelperGroupFactory","customCodeHelperGroupsList","customCodeHelperGroupName","cryptUtilsSwappedAlphabet","rc4EncodedValuesSourcesCache","rotationAmount","stringArrayStorageCallsWrapperNamesMap","rc4Keys","rc4KeyLength","rc4KeysCount","minimumIndexShiftAmount","maximumIndexShiftAmount","minimumRotationAmount","maximumRotationAmount","getOrSetIfDoesNotExist","stringArrayStorageName","stringArrayNameLength","storageCallsWrapperName","newStorageCallsWrapperName","stringArrayStorageItemDataA","stringArrayStorageItemDataB","getEncodedValue","storedStringArrayStorageItemData","rc4","encodedValueSources","encodedValueSourcesLength","ArrayStorage_1","nodeWithLexicalScopeStatements","levelledTopologicalSorter","normalizedTransformers","transformerNames","relationEdges","buildTransformersRelationEdges","precedent","sortByGroups","transformerName","runAfterRelations","runAfterRelation","valueFunction","elementsMap","mostOccurringElement","mostOccurringElementCount","updatedElementCount","times","newArray","shuffledArray","Base64Alphabet_1","base64Alphabet","chars","p1","randomStringDiff","randomGeneratorPool","randomStringDiffArray","s1","s2","i1","i2","randomMerge","stringsCache","encodeAllSymbols","replaceRegExp","forceEscapeCharactersRegExp","ASCIICharactersRegExp","register","consequents","marks","resultItemsGroups","hasNodes","rootNodes","findRootNodes","getPrecedents","precedentsGroups","precedentsGroup","hasPrecedents","precedents","mark","basePart","POSITIVE_INFINITY","MIN_SAFE_INTEGER","incrementValue","currentFactor","compliment","md5_1","chance_1","valuesToExclude","valuesToPickArray","inputSeed","getSourceCode","js_string_escape_1","buildTimestamp","toISOString","sourceCodeIndex","baseMultipleSourcesIdentifiersPrefix","enumLikeObject","arg","fill","readUInt8","isArgumentsObject","isGeneratorFunction","whichTypedArray","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isSharedArrayBufferToString","isSharedArrayBuffer","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","isNull","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","seen","stylize","stylizeNoColor","colors","_extend","isUndefined","stylizeWithColor","formatValue","styleType","primitive","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","braces","toUTCString","formatProperty","formatArray","reduceToSingleString","ar","re","debuglog","pid","isNullOrUndefined","isSymbol","isPrimitive","time","getHours","getMinutes","getSeconds","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","_toDate","_interopRequireDefault","_toFloat","_toInt","_toBoolean","_equals","_contains","_matches","_isEmail","_isURL","_isMACAddress","_isIP","_isIPRange","_isFQDN","_isBoolean","_isLocale","_isAlpha","_interopRequireWildcard","_isAlphanumeric","_isNumeric","_isPassportNumber","_isPort","_isLowercase","_isUppercase","_isAscii","_isFullWidth","_isHalfWidth","_isVariableWidth","_isMultibyte","_isSemVer","_isSurrogatePair","_isInt","_isFloat","_isDecimal","_isHexadecimal","_isOctal","_isDivisibleBy","_isHexColor","_isRgbColor","_isHSL","_isISRC","_isIBAN","_isBIC","_isMD","_isHash","_isJWT","_isJSON","_isLength","_isByteLength","_isUUID","_isMongoId","_isAfter","_isBefore","_isIn","_isCreditCard","_isIdentityCard","_isEAN","_isISIN","_isISBN","_isISSN","_isMobilePhone","_isEthereumAddress","_isCurrency","_isBtcAddress","_isISO","_isRFC","_isISO31661Alpha","_isISO31661Alpha2","_isBase","_isBase2","_isDataURI","_isMagnetURI","_isMimeType","_isLatLong","_isPostalCode","_ltrim","_rtrim","_trim","_escape","_unescape","_stripLow","_whitelist","_blacklist","_isWhitelisted","_normalizeEmail","_isSlug","_getRequireWildcardCache","newObj","hasPropertyDescriptor","toDate","toFloat","toInt","toBoolean","isIPRange","isAlphaLocales","isAlphanumericLocales","isFloat","isFloatLocales","isMD5","isLength","isAfter","isBefore","isMobilePhoneLocales","isPostalCodeLocales","ltrim","rtrim","stripLow","blacklist","isWhitelisted","normalizeEmail","isSlug","commaDecimal","dotDecimal","arabicLocales","englishLocales","decimal","alphanumeric","he","_locale","_i3","_assertString","_toString","_alpha","ascii","isBICReg","base32","notBase64","firstPaddingChar","btc","sanitized","creditCard","tmpNum","shouldDouble","decimal_digits","digits_after_decimal","require_symbol","negative","whole_dollar_amount_with_sep","thousands_separator","whole_dollar_amount","decimal_amount","decimal_separator","require_decimal","allow_decimal","allow_negatives","parens_for_negatives","negative_sign_after_digits","negative_sign_before_digits","allow_negative_sign_placeholder","allow_space_after_symbol","allow_space_after_digits","symbol_after_digits","currencyRegex","_merge","default_currency_options","schemeAndMediaType","mediaType","validMediaType","validAttribute","validData","default_decimal_options","_includes","force_decimal","decimalRegExp","ean","remainder","actualCheckDigit","validEanRegex","getPositionWeightThroughLengthAndIndex","partialSum","default_email_options","require_display_name","allow_display_name","display_email","splitNameAddress","display_name","_display_email","trim_quotes","display_name_without_quotes","validateDisplayName","ignore_max_length","user","lower_domain","domain_specific_validation","username","_user_parts","gmailUserPart","allow_ip_domain","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","default_is_empty_options","ignore_whitespace","eth","default_fqdn_options","allow_trailing_dot","allow_underscores","float","lt","gt","fullWidth","hslcomma","hslspace","halfWidth","lengths","md4","sha1","sha256","sha384","sha512","ripemd128","ripemd160","tiger128","tiger160","tiger192","crc32","crc32b","hexcolor","strippedStr","isoCountryCode","ibanRegexThroughCountryCode","hasValidIbanFormat","hasValidIbanChecksum","ipv4Maybe","addressAndZone","foundOmissionBlock","foundIPv4TransitionBlock","expectedNumberOfBlocks","ipv6Block","subnetMaybe","checksum","isbn10Maybe","isbn13Maybe","isin","checksumStr","validISO31661Alpha2CountriesCodes","validISO31661Alpha3CountriesCodes","iso8601","ordinalMatch","oYear","oDay","monthString","dayString","getUTCFullYear","getUTCMonth","getUTCDate","isValidDate","isrc","testIssn","issn","require_hyphen","case_sensitive","validators","charsValue","incNum","ALPHABET_CODES","allow_leading_zeroes","int","intLeadingZeroes","minCheckPassed","maxCheckPassed","ltCheckPassed","gtCheckPassed","jwt","lat","long","surrogatePairs","localeReg","no_colons","macAddressNoColons","macAddress","macAddressWithHyphen","macAddressWithSpaces","macAddressWithDots","magnetURI","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","strictMode","phones","multibyte","no_symbols","numericNoSymbols","normalizedStr","passportRegexByCountryCode","PO","patterns","fourDigit","fiveDigit","sixDigit","rfc3339","timeHour","timeMinute","timeNumOffset","timeOffset","partialTime","fullDate","fullTime","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","semanticVersioningRegex","charsetRegex","hostname","port_str","default_url_options","protocols","allow_protocol_relative_urls","require_host","disallow_auth","ipv6_match","wrapped_ipv6","host_whitelist","checkHost","host_blacklist","uuid","default_normalize_email_options","raw_parts","gmail_remove_subaddress","gmail_remove_dots","dotsReplacer","all_lowercase","gmail_lowercase","gmail_convert_googlemaildotcom","icloud_domains","icloud_remove_subaddress","icloud_lowercase","outlookdotcom_domains","outlookdotcom_remove_subaddress","outlookdotcom_lowercase","yahoo_domains","yahoo_remove_subaddress","components","yahoo_lowercase","yandex_domains","yandex_lowercase","keep_new_lines","invalidType","arrVal","regexpAsStringLiteral","foundName","__webpack_module_cache__","__webpack_require__","__webpack_modules__","globalThis","nmd","paths"],"mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAA8B,qBAAID,IAElCD,EAA2B,qBAAIC,IARjC,CASGK,MAAM,WACT,M,+CC0BC,WACG,aAEA,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,SAASC,EAAYC,GACjB,OAAOC,EAAcC,UAAUC,eAAeH,EAAKI,MAZvD3B,EAAa,EAAQ,MACrBC,EAAU,EAAQ,KAElBL,EAASI,EAAWJ,OAyCpBE,EAAmB,CACf,MA9BJD,EAAa,CACT+B,SAAU,EACVC,MAAO,EACPC,WAAY,EACZC,YAAa,EACbC,cAAe,EACfC,kBAAmB,EACnBC,UAAW,EACXC,WAAY,EACZC,UAAW,EACXC,WAAY,EACZC,WAAY,EACZC,SAAU,EACVC,WAAY,EACZC,aAAc,GACdC,SAAU,GACVC,eAAgB,GAChBC,eAAgB,GAChBC,MAAO,GACPC,MAAO,GACPC,QAAS,GACTC,iBAAkB,GAClBC,KAAM,GACNC,IAAK,GACLC,eAAgB,GAChBC,OAAQ,GACRC,QAAS,KAIQpB,kBACjB,KAAMpC,EAAWqC,UACjB,KAAMrC,EAAWsC,WACjB,IAAKtC,EAAWuC,UAChB,IAAKvC,EAAWwC,WAChB,IAAKxC,EAAWyC,WAChB,KAAMzC,EAAW0C,SACjB,KAAM1C,EAAW0C,SACjB,MAAO1C,EAAW0C,SAClB,MAAO1C,EAAW0C,SAClB,GAAM1C,EAAW0C,SACjB,KAAQ1C,EAAW0C,SACnB,IAAK1C,EAAW2C,WAChB,IAAK3C,EAAW2C,WAChB,KAAM3C,EAAW2C,WACjB,KAAM3C,EAAW2C,WACjB,GAAM3C,EAAW2C,WACjB,WAAc3C,EAAW2C,WACzB,KAAM3C,EAAW4C,aACjB,KAAM5C,EAAW4C,aACjB,MAAO5C,EAAW4C,aAClB,IAAK5C,EAAW6C,SAChB,IAAK7C,EAAW6C,SAChB,IAAK7C,EAAW8C,eAChB,IAAK9C,EAAW8C,eAChB,IAAK9C,EAAW8C,eAChB,KAAM9C,EAAW+C,gBAIrB,IAKIU,EAAkB,GAqBlBC,EAASC,GA6Cb,SAASC,EAAaC,EAAKC,GACvB,IAAIC,EAAS,GAEb,IAAKD,GAAO,EAAGA,EAAM,EAAGA,KAAS,EAAGD,GAAOA,EAC7B,EAANC,IACAC,GAAUF,GAIlB,OAAOE,EAOX,SAASC,EAAuBH,GAC5B,IAAII,EAAMJ,EAAIK,OACd,OAAOD,GAAO7D,EAAQ+D,KAAKC,iBAAiBP,EAAIQ,WAAWJ,EAAM,IAGrE,SAASK,EAAMC,EAAQC,GACnB,IAAIC,EACJ,IAAKA,KAAOD,EACJA,EAAS3C,eAAe4C,KACxBF,EAAOE,GAAOD,EAASC,IAG/B,OAAOF,EAGX,SAASG,EAAaH,EAAQC,GAC1B,IAAIC,EAAKE,EAET,SAASC,EAAaL,GAClB,MAAyB,iBAAXA,GAAuBA,aAAkBM,UAAYN,aAAkBO,QAGzF,IAAKL,KAAOD,EACJA,EAAS3C,eAAe4C,KAEpBG,EADJD,EAAMH,EAASC,IAEPG,EAAaL,EAAOE,IACpBC,EAAaH,EAAOE,GAAME,GAE1BJ,EAAOE,GAAOC,EAAa,GAAIC,GAGnCJ,EAAOE,GAAOE,GAI1B,OAAOJ,EA6DX,SAASQ,EAAsBC,EAAIC,GAE/B,OAAkB,QAAR,EAALD,IACOC,EAAsB,IAAM,QAAkB,OAAPD,EAAiB,OAAS,QAC3D,KAAPA,GAAoB,KAAPA,GACZC,EAAsB,GAAK,OAAiB,KAAPD,EAAa,IAAM,KAE7DE,OAAOC,aAAaH,GAmD/B,SAASI,EAAuBjB,EAAMkB,GAClC,IAAIC,EAEJ,OAAa,IAATnB,EACO,MAGE,KAATA,EACO,MAGE,IAATA,EACO,OAGXmB,EAAMnB,EAAKoB,SAAS,IAAIC,cACpBjF,GAAQ4D,EAAO,IACR,MAAQ,OAAOsB,MAAMH,EAAIpB,QAAUoB,EAC1B,IAATnB,GAAoB/D,EAAQ+D,KAAKuB,eAAeL,GAEvC,KAATlB,EACA,QAEA,MAAQ,KAAKsB,MAAMH,EAAIpB,QAAUoB,EAJjC,OAQf,SAASK,EAA0BxB,GAC/B,GAAa,KAATA,EACA,MAAO,OAGX,GAAa,KAATA,EACA,MAAO,MAGX,GAAa,KAATA,EACA,MAAO,MAGX,GAAa,OAATA,EACA,MAAO,UAGX,GAAa,OAATA,EACA,MAAO,UAGX,MAAM,IAAIyB,MAAM,oCAqEpB,SAASC,EAAgBC,GACrB,IAAIC,EAAGC,EAAIC,EAAMlC,EAAS,GAC1B,IAAKgC,EAAI,EAAGC,EAAKF,EAAI5B,OAAQ6B,EAAIC,IAAMD,EACnCE,EAAOH,EAAIC,GACXhC,GAAUmC,MAAMC,QAAQF,GAAQJ,EAAgBI,GAAQA,EAE5D,OAAOlC,EAMX,SAASqC,EAAuBC,EAAW3E,GACvC,IAAKN,EAID,OAAI8E,MAAMC,QAAQE,GACPR,EAAgBQ,GAEhBA,EAGf,GAAY,MAAR3E,EAAc,CACd,GAAI2E,aAAqBnG,EACrB,OAAOmG,EAEP3E,EAAO,GAGf,OAAgB,MAAZA,EAAK4E,IACE,IAAIpG,EAAW,KAAM,KAAMkB,EAAWiF,EAAW3E,EAAK6E,MAAQ,MAElE,IAAIrG,EAAWwB,EAAK4E,IAAIE,MAAMC,KAAM/E,EAAK4E,IAAIE,MAAME,QAAuB,IAAdtF,EAAqBM,EAAK4E,IAAIK,QAAU,KAAOvF,EAAYiF,EAAW3E,EAAK6E,MAAQ,MAG1J,SAASK,IACL,OAAO,GAAkB,IAG7B,SAASC,EAAKC,EAAMC,GAChB,IAAIC,EACAC,EACAC,EACAC,EAGJ,OAA0B,KAD1BH,EAAaZ,EAAuBU,GAAMvB,YAC3BrB,OACJ,CAAC6C,GAIe,KAD3BE,EAAcb,EAAuBW,GAAOxB,YAC5BrB,OACL,CAAC4C,IAGZI,EAAeF,EAAW3C,WAAW2C,EAAW9C,OAAS,GACzDiD,EAAgBF,EAAY5C,WAAW,IAEjB,KAAjB6C,GAAmD,KAAjBA,IAAmCA,IAAiBC,GACvF/G,EAAQ+D,KAAKiD,oBAAoBF,IAAiB9G,EAAQ+D,KAAKiD,oBAAoBD,IAClE,KAAjBD,GAAoD,MAAlBC,EAC3B,CAACL,EAAMF,IAAgBG,GACvB3G,EAAQ+D,KAAKkD,aAAaH,IAAiB9G,EAAQ+D,KAAKC,iBAAiB8C,IAC5E9G,EAAQ+D,KAAKkD,aAAaF,IAAkB/G,EAAQ+D,KAAKC,iBAAiB+C,GACvE,CAACL,EAAMC,GAEX,CAACD,EAAMjG,EAAOkG,IAGzB,SAASO,EAAUC,GACf,MAAO,CAAClH,EAAMkH,GAGlB,SAASC,EAAWC,GAChB,IAAIC,EACJA,EAAerH,EAEfoH,EADApH,GAAQC,GAERD,EAAOqH,EAiEX,SAASC,EAAgBC,EAASC,GAC9B,GAAqB,SAAjBD,EAAQ9F,KAAiB,CACzB,GAAIkC,EAAuB4D,EAAQE,OAC/B,MAAO,KAAOF,EAAQE,MAGtB,IAAI/D,EAAS,KAAO6D,EAAQE,MAI5B,OAHKxG,IACDyC,GAAU,MAEPA,EAGf,OAAI7C,EAAM6G,OAAOzH,OAAO0H,wBAA0B,SAASC,KAAKL,EAAQE,OAjE5E,SAAgCA,EAAOD,GACnC,IAAIK,EAAOnC,EAAG9B,EAAKwC,EAAM0B,EAAGC,EAAQV,EAAcW,EAMlD,IAJAH,EAAQJ,EAAMQ,MAAM,eACpBF,EAASG,OAAOC,UAGXzC,EAAI,EAAG9B,EAAMiE,EAAMhE,OAAQ6B,EAAI9B,IAAO8B,EAAG,CAG1C,IAFAU,EAAOyB,EAAMnC,GACboC,EAAI,EACGA,EAAI1B,EAAKvC,QAAU9D,EAAQ+D,KAAKkD,aAAaZ,EAAKpC,WAAW8D,OAC9DA,EAEFC,EAASD,IACTC,EAASD,GA4BjB,SAxB2B,IAAhBN,GAOPH,EAAerH,EACU,MAArB6H,EAAM,GAAGE,KACTP,GAAe,KAEnBxH,EAAOwH,IAEM,EAATO,KAMEA,EAENV,EAAerH,GAGd0F,EAAI,EAAG9B,EAAMiE,EAAMhE,OAAQ6B,EAAI9B,IAAO8B,EACvCsC,EAAKjC,EAAuBkB,EAAUY,EAAMnC,GAAGN,MAAM2C,KACrDF,EAAMnC,GAAK3E,EAAYiH,EAAGxB,KAAK,IAAMwB,EAKzC,OAFAhI,EAAOqH,EAEAQ,EAAMrB,KAAK,MAiBPmB,CAAuB,KAAOJ,EAAQE,MAAQ,KAAMD,GAExD,KAAOD,EAAQE,MAAQ,KAGlC,SAASW,EAAYlB,EAAMxD,GACvB,IAAIgC,EAAG9B,EAAK2D,EAASc,EAAMC,EAAoBd,EAAae,EACxDC,EAAUC,EAAOC,EAAWC,EAAuBC,EAEvD,GAAI1B,EAAK2B,iBAAmB3B,EAAK2B,gBAAgBhF,OAAS,EAAG,CAGzD,GAFAwE,EAAO3E,EAEHzC,EAAoB,CAmBpB,IAjBAyC,EAAS,GAET8E,GAHAjB,EAAUL,EAAK2B,gBAAgB,IAGZC,cACnBL,EAAQlB,EAAQkB,OAGhBG,IADAD,EAAS3H,EAAW+H,UAAUP,EAAS,GAAIC,EAAM,KACjCO,MAAM,QAAU,IAAInF,QACxB,GACRH,EAAOuF,KAAK1F,EAAa,KAAMqF,IAC/BlF,EAAOuF,KAAKhC,EAAUK,EAAgBC,OAEtC7D,EAAOuF,KAAKN,GACZjF,EAAOuF,KAAK3B,EAAgBC,KAGhCmB,EAAYD,EAEP/C,EAAI,EAAG9B,EAAMsD,EAAK2B,gBAAgBhF,OAAQ6B,EAAI9B,EAAK8B,IAEpD+C,GADAlB,EAAUL,EAAK2B,gBAAgBnD,IACf+C,MAGhBG,GADQ5H,EAAW+H,UAAUL,EAAU,GAAID,EAAM,IAClCO,MAAM,QAAU,IAAInF,OACnCH,EAAOuF,KAAK1F,EAAa,KAAMqF,IAC/BlF,EAAOuF,KAAKhC,EAAUK,EAAgBC,KAEtCmB,EAAYD,EAIhBG,GADS5H,EAAW+H,UAAUN,EAAM,GAAID,EAAS,IACjCQ,MAAM,QAAU,IAAInF,OACpCH,EAAOuF,KAAK1F,EAAa,KAAMqF,SAY/B,IAVArB,EAAUL,EAAK2B,gBAAgB,GAC/BnF,EAAS,GACL/C,GAAqBuG,EAAKzF,OAAS/B,EAAOwJ,SAAgC,IAArBhC,EAAKiC,KAAKtF,QAC/DH,EAAOuF,KAAK,MAEhBvF,EAAOuF,KAAK3B,EAAgBC,IACvB5D,EAAuBoC,EAAuBrC,GAAQwB,aACvDxB,EAAOuF,KAAK,MAGXvD,EAAI,EAAG9B,EAAMsD,EAAK2B,gBAAgBhF,OAAQ6B,EAAI9B,IAAO8B,EAGjD/B,EAAuBoC,EAD5BwC,EAAW,CAACjB,EADZC,EAAUL,EAAK2B,gBAAgBnD,MAE8BR,aACzDqD,EAASU,KAAK,MAElBvF,EAAOuF,KAAKhC,EAAUsB,IAI9B7E,EAAOuF,KAAKhC,EAAUoB,IAG1B,GAAInB,EAAKkC,iBAEL,GAAInI,EAEAuH,GADAjB,EAAUL,EAAKkC,iBAAiB,IACbN,cACnBL,EAAQlB,EAAQkB,OAGhBG,IADAD,EAAS3H,EAAW+H,UAAUP,EAAS,GAAIC,EAAM,KACjCO,MAAM,QAAU,IAAInF,QAExB,GACRH,EAAOuF,KAAK1F,EAAa,KAAMqF,IAC/BlF,EAAOuF,KAAKhC,EAAUK,EAAgBC,OAEtC7D,EAAOuF,KAAKN,GACZjF,EAAOuF,KAAK3B,EAAgBC,UAKhC,IAFAe,GAAsB3E,EAAuBoC,EAAuBrC,GAAQwB,YAC5EsC,EAAcjE,EAAa,IArKvC,SAAyBC,GACrB,IAAIkC,EACJ,IAAKA,EAAIlC,EAAIK,OAAS,EAAG6B,GAAK,IACtB3F,EAAQ+D,KAAKC,iBAAiBP,EAAIQ,WAAW0B,MADlBA,GAKnC,OAAQlC,EAAIK,OAAS,EAAK6B,EA8Jc2D,CAAgBtD,EAAuB,CAAC/F,EAAM0D,EAAQzD,IAASiF,aAC1FQ,EAAI,EAAG9B,EAAMsD,EAAKkC,iBAAiBvF,OAAQ6B,EAAI9B,IAAO8B,EACvD6B,EAAUL,EAAKkC,iBAAiB1D,GAC5B4C,GAQI5E,EAFM,IAANgC,EAES,CAAChC,EAAQzD,GAET,CAACyD,EAAQ8D,IAEfyB,KAAK3B,EAAgBC,EAASC,IAErC9D,EAAS,CAACA,EAAQuD,EAAUK,EAAgBC,KAE5C7B,IAAM9B,EAAM,GAAMD,EAAuBoC,EAAuBrC,GAAQwB,cACxExB,EAAS,CAACA,EAAQ,OAMlC,OAAOA,EAGX,SAAS4F,EAAmBnD,EAAOoD,EAAK7F,GACpC,IAAIoE,EAAG0B,EAAe,EAEtB,IAAK1B,EAAI3B,EAAO2B,EAAIyB,EAAKzB,IACC,OAAlB9G,EAAW8G,IACX0B,IAIR,IAAK1B,EAAI,EAAGA,EAAI0B,EAAc1B,IAC1BpE,EAAOuF,KAAK1I,GAIpB,SAASkJ,EAAaC,EAAMC,EAASC,GACjC,OAAID,EAAUC,EACH,CAAC,IAAKF,EAAM,KAEhBA,EAGX,SAASG,EAAuBC,GAC5B,IAAIpE,EAAGC,EAAIjC,EAEX,IAAKgC,EAAI,EAAGC,GADZjC,EAASoG,EAAO7B,MAAM,YACEpE,OAAQ6B,EAAIC,EAAID,IACpChC,EAAOgC,GAAKnF,EAAUP,EAAO0D,EAAOgC,GAExC,OAAOhC,EAmBX,SAASpC,KAuCT,SAASyI,EAAmB1I,GACxB,OAAO0E,EAAuB1E,EAAK6E,KAAM7E,GAG7C,SAAS2I,EAAoB3I,EAAM4I,GAC/B,OAAO5I,EAAK6I,MAAQ,SAAWD,EAAgB1D,IAAiB/F,GAAS,GAG7E,SAAS2J,EAAmB9I,GAExB,OADkBA,EAAK+I,YAAcvJ,EAAMwJ,IAAIC,kBAC1B,IAAM9J,EAAQ,GAGvC,SAAS+J,EAAqBC,GAC1B,IAAIC,EAAOD,EAAK/C,MAAOkB,EAAS,GAQhC,OAPI8B,EAAKP,QACLvB,GAAUqB,EAAoBS,GAAOD,EAAKE,WAE1CD,EAAKL,YAELzB,GAAUwB,EAAmBM,GAAQ,IAAM,IAExC9B,EAxDXrH,EAAcqJ,UAAUC,WAAa,SAAS1D,EAAM2D,GAChD,IAAInH,EAAQoH,EAAkBC,EAAOC,KAIrC,OAFAF,GAAoBjK,EAAM0G,UAAYL,EAAK2B,gBAEvC3B,EAAKzF,OAAS/B,EAAOuL,gBAAkBH,EAChC,CAACtK,EAAOwK,KAAKE,kBAAkBhE,EAAM2D,IAG5C3D,EAAKzF,OAAS/B,EAAOyL,gBAAkBL,EAChC,KAGX3D,GAAW,WACPzD,EAAS,CACLnD,EACA0G,EAAU8D,EAAKG,kBAAkBhE,EAAM2D,QAIxCnH,IAGXpC,EAAcqJ,UAAUS,iBAAmB,SAAUlE,EAAMxD,GACvD,IAAI2H,EAAO1H,EAAuBoC,EAAuBrC,GAAQwB,YACjE,OAAIgC,EAAKzF,OAAS/B,EAAOuL,gBAAoBpK,EAAM0G,SAAYL,EAAK2B,iBAAqBwC,EAGrFA,EACO,CAAC3H,EAAQ1D,GAEb,CAAC0D,EAAQnD,EAASP,GALd,CAAC0D,EAAQlD,IAiCxBc,EAAcqJ,UAAUW,gBAAkB,SAAUjK,EAAMkK,EAAYV,GAClE,OAAIxJ,EAAKI,OAAS/B,EAAO8L,WACdzB,EAAmB1I,GAEvB2J,KAAKS,mBAAmBpK,EAAMkK,EAAYV,IAGrDvJ,EAAcqJ,UAAUe,uBAAyB,SAAUrK,GACvD,IAAIqE,EAAGC,EAAIjC,EAAQiI,EAInB,GAFAA,GAAa,EAETtK,EAAKI,OAAS/B,EAAOkM,yBAChBvK,EAAKwK,MAAUxK,EAAKyK,UAAqC,IAAzBzK,EAAKyK,SAASjI,QACxB,IAAvBxC,EAAK0K,OAAOlI,QAAgBxC,EAAK0K,OAAO,GAAGtK,OAAS/B,EAAO8L,WAG5D,CAMH,KALA9H,EAASrC,EAAKI,OAAS/B,EAAOkM,wBAA0B,CAAC5B,EAAoB3I,GAAM,IAAU,IACtF4H,KAAK,KACR5H,EAAKyK,WACLH,GAAa,GAEZjG,EAAI,EAAGC,EAAKtE,EAAK0K,OAAOlI,OAAQ6B,EAAIC,IAAMD,EACvCiG,GAActK,EAAKyK,SAASpG,GAE5BhC,EAAOuF,KAAK+B,KAAKgB,mBAAmB3K,EAAK0K,OAAOrG,GAAIrE,EAAKyK,SAASpG,GAAI,IAAK/F,EAAWiC,WArvB1F0B,IAuvBII,EAAOuF,KAAK+B,KAAKM,gBAAgBjK,EAAK0K,OAAOrG,GAAI/F,EAAWiC,WAvvBhE0B,IAyvBIoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAMzI,GAItBa,EAAKwK,OACDxK,EAAK0K,OAAOlI,QACZH,EAAOuF,KAAK,IAAMzI,GAEtBkD,EAAOuF,KAAK,OACZvF,EAAOuF,KAAKc,EAAmB1I,EAAKwK,QAGxCnI,EAAOuF,KAAK,UA3BZvF,EAAS,CAACsG,EAAoB3I,GAAM,GAAO0I,EAAmB1I,EAAK0K,OAAO,KA8B9E,OAAOrI,GAGXpC,EAAcqJ,UAAUsB,qBAAuB,SAAU5K,GACrD,IAAIqC,EAAQwI,EAoBZ,OAlBAxI,EAASsH,KAAKU,uBAAuBrK,GAEjCA,EAAKI,OAAS/B,EAAOkM,0BACrBlI,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK,OAGZ5H,EAAK8K,YACLzI,EAAOuF,KAAKzI,GAEsB,OADlC0L,EAAOlB,KAAKS,mBAAmBpK,EAAK8H,KAAMxJ,EAAWiC,WAxxBjD0B,IAyxBK4B,WAAWkH,OAAO,KACvBF,EAAO,CAAC,IAAKA,EAAM,MAEvBxI,EAAOuF,KAAKiD,IAEZxI,EAAOuF,KAAK+B,KAAKJ,WAAWvJ,EAAK8H,KA/wB5B7F,IAkxBFI,GAGXpC,EAAcqJ,UAAU0B,8BAAgC,SAAUC,EAAUpF,EAAM2D,GAC9E,IAAInH,EAAS,CAAC,OAASwD,EAAKqF,MAAQhG,IAAiB,QAAU,IAAM/F,EAAQ,KAAMuK,EAAOC,KAkB1F,OAjBA7D,GAAW,WACHD,EAAKT,KAAKhF,OAAS/B,EAAO8M,oBAC1BrF,GAAW,WACPzD,EAAOuF,KAAK/B,EAAKT,KAAKgG,KAAOlG,KAC7B7C,EAAOuF,KAAK8B,EAAKG,kBAAkBhE,EAAKT,KAAKiG,aAAa,GA7xB7D,OAgyBDhJ,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKT,KAAM9G,EAAWoD,KA7yB1DO,IAgzBJI,EAAS8C,EAAK9C,EAAQ4I,GACtB5I,EAAS,CAAC8C,EACN9C,EACAqH,EAAKU,mBAAmBvE,EAAKR,MAAO/G,EAAWiC,WAnzB/C0B,IAozBD,QAEPI,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAKiC,KAAM0B,IAChCnH,GAGXpC,EAAcqJ,UAAUgC,oBAAsB,SAAUT,EAAMxB,GAC1D,IAAIhH,EAAS,GAYb,OAVIgH,GACAhH,EAAOuF,KAAK,KAGhBvF,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAMvM,EAAWiC,WAj0B7C0B,IAm0BJoH,GACAhH,EAAOuF,KAAK,KAGTvF,GAGXpC,EAAcqJ,UAAUqB,mBAAqB,SAAUvF,EAAMC,EAAO4F,EAAUf,EAAYV,GAKtF,OAJIlL,EAAWiC,WAAa2J,IACxBV,GA11BS,GA61BNpB,EACH,CACIuB,KAAKS,mBAAmBhF,EAAM9G,EAAWoD,KAAM8H,GAC/CrK,EAAQ8L,EAAW9L,EACnBwK,KAAKS,mBAAmB/E,EAAO/G,EAAWiC,WAAYiJ,IAE1DlL,EAAWiC,WACX2J,IAIRjK,EAAcqJ,UAAUiC,UAAY,SAAU/B,GAC1C,OAAKnK,GAAcmK,EAAQzH,EAChB,GAEJ,KAKX9B,EAAcC,UAAY,CAEtB0J,eAAgB,SAAU/D,EAAM2D,GAC5B,IAAIpC,EAAOoE,EAASnJ,EAAS,CAAC,IAAKnD,GAAUwK,EAAOC,KAgFpD,OA9EA7D,GAAW,WAaP,IAAIzB,EAAGC,EAAI4C,EAAUuE,EAMrB,IAjByB,IAArB5F,EAAKiC,KAAKtF,QAAgB5C,IAC1BwH,EAAQvB,EAAKuB,OACH,GAAKA,EAAM,GAAK,IAEH,QADnBoE,EAAU7L,EAAW+H,UAAUN,EAAM,GAAK,EAAGA,EAAM,GAAK,IAC5C,KACR/E,EAAS,CAAC,MAEdA,EAAOuF,KAAK4D,IAKpBC,EAp4BK,EAGC,EAk4BFjC,IACAiC,GAl4BM,IAq4BLpH,EAAI,EAAGC,EAAKuB,EAAKiC,KAAKtF,OAAQ6B,EAAIC,IAAMD,EACrCzE,IAEU,IAANyE,IACIwB,EAAKiC,KAAK,GAAGN,kBACbJ,EAAQvB,EAAKiC,KAAK,GAAGN,gBAAgB,GAAGC,cAErB,QADnB+D,EAAU7L,EAAW+H,UAAUN,EAAM,GAAIA,EAAM,KACnC,KACR/E,EAAS,CAAC,OAGbwD,EAAKiC,KAAK,GAAGN,iBACdS,EAAmBpC,EAAKuB,MAAM,GAAIvB,EAAKiC,KAAK,GAAGV,MAAM,GAAI/E,IAK7DgC,EAAI,IACCwB,EAAKiC,KAAKzD,EAAI,GAAG0D,kBAAsBlC,EAAKiC,KAAKzD,GAAGmD,iBACrDS,EAAmBpC,EAAKiC,KAAKzD,EAAI,GAAG+C,MAAM,GAAIvB,EAAKiC,KAAKzD,GAAG+C,MAAM,GAAI/E,KAK7EgC,IAAMC,EAAK,IACXmH,GAAa1J,GAIbmF,EADArB,EAAKiC,KAAKzD,GAAGmD,iBAAmB5H,EACrB8J,EAAKG,kBAAkBhE,EAAKiC,KAAKzD,GAAIoH,GAErC7F,EAAU8D,EAAKG,kBAAkBhE,EAAKiC,KAAKzD,GAAIoH,IAG9DpJ,EAAOuF,KAAKV,GACP5E,EAAuBoC,EAAuBwC,GAAUrD,aACrDjE,GAAsByE,EAAIC,EAAK,GAG1BuB,EAAKiC,KAAKzD,EAAI,GAAGmD,iBAItBnF,EAAOuF,KAAK1I,GAIhBU,GAEIyE,IAAMC,EAAK,IACNuB,EAAKiC,KAAKzD,GAAG0D,kBACdE,EAAmBpC,EAAKiC,KAAKzD,GAAG+C,MAAM,GAAIvB,EAAKuB,MAAM,GAAI/E,OAO7EA,EAAOuF,KAAKhC,EAAU,MACfvD,GAGXqJ,eAAgB,SAAU7F,EAAM2D,GAC5B,OAAI3D,EAAK8F,MACE,SAAW9F,EAAK8F,MAAM9G,KAAO8E,KAAK4B,UAAU/B,GAEhD,QAAUG,KAAK4B,UAAU/B,IAGpCoC,kBAAmB,SAAU/F,EAAM2D,GAC/B,OAAI3D,EAAK8F,MACE,YAAc9F,EAAK8F,MAAM9G,KAAO8E,KAAK4B,UAAU/B,GAEnD,WAAaG,KAAK4B,UAAU/B,IAGvCqC,UAAW,SAAUhG,EAAM2D,GACvB,IAAInH,EAAS,CAAE,IAAKnD,GAAUwK,EAAOC,KAmBrC,OAjBA7D,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EAEP,IAAKD,EAAI,EAAGC,EAAKuB,EAAKiC,KAAKtF,OAAQ6B,EAAIC,IAAMD,EACzChC,EAAOuF,KAAKhJ,GACZyD,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKiC,KAAKzD,GAAI/F,EAAW+B,SA/8BjE4B,IAg9BQoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK1I,MAKnBoD,EAAuBoC,EAAuBrC,GAAQwB,aACvDxB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAKjJ,GACZ0D,EAAOuF,KAAK,KACLvF,GAGXyJ,iBAAkB,SAAUjG,EAAM2D,GAC9B,IAAInH,EAAQ6E,EAWZ,OAVA7E,EAAU,CAAC,SACPwD,EAAKkG,KACL1J,EAAS8C,EAAK9C,EAAQsH,KAAKS,mBAAmBvE,EAAKkG,GAAIzN,EAAW+B,SAl+BlE4B,KAo+BA4D,EAAKmG,aACL9E,EAAW/B,EAAK,UAAWwE,KAAKS,mBAAmBvE,EAAKmG,WAAY1N,EAAWiD,MAr+B/EU,IAs+BAI,EAAS8C,EAAK9C,EAAQ6E,IAE1B7E,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK+B,KAAKE,kBAAkBhE,EAAKiC,KAAM9F,IACvCK,GAGX4J,mBAAoB,SAAUpG,EAAM2D,GAChC,OAAIhK,EAAM0M,KAAOrG,EAAKqG,IACXrG,EAAKqG,IAAMvC,KAAK4B,UAAU/B,GAxtB7C,SAAyBrH,GACrB,IAAIkC,EAAGC,EAAI7B,EAAM0J,EAGjB,IADAA,EAAmB,WAAXnN,EAAsB,IAAM,IAC/BqF,EAAI,EAAGC,EAAKnC,EAAIK,OAAQ6B,EAAIC,IAAMD,EAAG,CAEtC,GAAa,MADb5B,EAAON,EAAIQ,WAAW0B,IACM,CACxB8H,EAAQ,IACR,MACG,GAAa,KAAT1J,EAAwB,CAC/B0J,EAAQ,IACR,MACgB,KAAT1J,KACL4B,EAIV,OAAO8H,EAAQhK,EAAMgK,EAysBVC,CAAgBvG,EAAKtG,WAAaoK,KAAK4B,UAAU/B,IAG5D6C,iBAAkB,SAAUxG,EAAM2D,GAE9B,IAAInH,EAAS8C,EAAK,KAAMwE,KAAKJ,WAAW1D,EAAKiC,KApgCpC,IAsgCT,OAAO3C,EADP9C,EAASsH,KAAKI,iBAAiBlE,EAAKiC,KAAMzF,GACtB,CAChB,QAAUlD,EAAQ,IAClBwK,KAAKS,mBAAmBvE,EAAKU,KAAMjI,EAAW+B,SA1/B9C4B,GA2/BA,IAAM0H,KAAK4B,UAAU/B,MAI7B8C,YAAa,SAAUzG,EAAM2D,GACzB,IAAInH,EAAQqH,EAAOC,KAoBnB,OAnBA7D,GAAW,WACP,IAAIyG,EAEA1G,EAAK2G,OACLnK,EAAS,CACL,QAAUlD,EAAQ,IAClBuK,EAAKU,mBAAmBvE,EAAK2G,MAAOlO,EAAW+B,SAvgCvD4B,GAwgCQ,KAGA4D,EAAK0G,QACLA,EAAQ7C,EAAKU,mBAAmBvE,EAAK0G,MAAOjO,EAAW+B,SA5gC/D4B,GA6gCQI,EAAOoK,OAAO,EAAG,EAAG,OAAQF,KAGhClK,EAAS,CAAC,YAGlBA,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAKiC,KAjiCxB,IAkiCFzF,GAGXqK,kBAAmB,SAAU7G,EAAM2D,GAC/B,MAAO,WAAaG,KAAK4B,UAAU/B,IAGvCM,eAAgB,SAAUjE,EAAM2D,GAC5B,MAAO,KAGXmD,yBAA0B,SAAU9G,EAAM2D,GACtC,IAA2BiC,EAAvBpJ,EAAS,CAAE,UAYf,OAVAoJ,EAAajC,EAAQzH,EAAmBC,EAhjC/B,EAojCTK,EAAS8C,EAAK9C,EAAQ,WAClBtC,EAAY8F,EAAK+G,aACRzH,EAAK9C,EAAQsH,KAAKE,kBAAkBhE,EAAK+G,YAAanB,IAEtDtG,EAAK9C,EAAQsH,KAAKS,mBAAmBvE,EAAK+G,YAAatO,EAAWiC,WA1iC3E0B,GA0iCgG0H,KAAK4B,UAAU/B,KAKvHqD,uBAAwB,SAAUhH,EAAM2D,GACpC,IAA2BiC,EAAvBpJ,EAAS,CAAE,UAAuBqH,EAAOC,KAM7C,OAJA8B,EAAajC,EAAQzH,EAAmBC,EAhkC/B,EAokCL6D,EAAK+G,YACEzH,EAAK9C,EAAQsH,KAAKE,kBAAkBhE,EAAK+G,YAAanB,KAK7D5F,EAAKiH,aAC0B,IAA3BjH,EAAKiH,WAAWtK,OAChBH,EAAS8C,EAAK9C,EAAQ,IAAMlD,EAAQ,KAC7B0G,EAAKiH,WAAW,GAAG1M,OAAS/B,EAAO0O,qBAC1C1K,EAAS8C,EAAK9C,EAAQsH,KAAKS,mBAAmBvE,EAAKiH,WAAW,GAAIxO,EAAW+B,SAhkCjF4B,KAkkCII,EAAS8C,EAAK9C,EAAQ,KACtByD,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EAEP,IADAjC,EAAOuF,KAAK1I,GACPmF,EAAI,EAAGC,EAAKuB,EAAKiH,WAAWtK,OAAQ6B,EAAIC,IAAMD,EAC/ChC,EAAOuF,KAAKhJ,GACZyD,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKiH,WAAWzI,GAAI/F,EAAW+B,SAxkC/E4B,IAykCgBoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAM1I,MAIzBoD,EAAuBoC,EAAuBrC,GAAQwB,aACvDxB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAKjJ,EAAO,MAGnBkH,EAAKZ,OACL5C,EAAS8C,EAAK9C,EAAQ,CAClB,OAASlD,EAETwK,KAAKS,mBAAmBvE,EAAKZ,OAAQ3G,EAAW+B,SAxlCxD4B,GAylCQ0H,KAAK4B,UAAU/B,KAGnBnH,EAAOuF,KAAK+B,KAAK4B,UAAU/B,KAG5BnH,IAGX2K,qBAAsB,SAAUnH,EAAM2D,GAElC,IAAInH,EAAS,CACT,SAAWlD,EACX,IAAMA,GAcV,OAXI0G,EAAKoH,UACL5K,EAAOuF,KAAK,MAAQ/B,EAAKoH,SAASpI,KAAO,KAGpCM,EAAK9C,EAAQ,CAClB,OAASlD,EAETwK,KAAKS,mBAAmBvE,EAAKZ,OAAQ3G,EAAW+B,SAhnChD4B,GAinCA0H,KAAK4B,UAAU/B,MAMvB0D,oBAAqB,SAAUrH,EAAM2D,GACjC,IAAInH,EAAQ6E,EAwDZ,OAT+B,OAD/BA,EAAWxC,EAHXrC,EAAS,CAACsH,KAAKS,mBAAmBvE,EAAKiF,WAAYxM,EAAW+B,SAnqC1D4B,KAsqCsC4B,YAC7BlB,WAAW,IA7CxB,SAAyBuE,GACrB,IAAIzE,EACJ,MAA6B,UAAzByE,EAASnD,MAAM,EAAG,KAIN,OADhBtB,EAAOyE,EAASvE,WAAW,KACQjE,EAAQ+D,KAAKkD,aAAalD,IAAS/D,EAAQ+D,KAAKC,iBAAiBD,IAwChG0K,CAAgBjG,IArCxB,SAA4BA,GACxB,IAAIzE,EACJ,MAA6B,aAAzByE,EAASnD,MAAM,EAAG,KAIN,MADhBtB,EAAOyE,EAASvE,WAAW,KACOjE,EAAQ+D,KAAKkD,aAAalD,IAAkB,KAATA,GAA4B/D,EAAQ+D,KAAKC,iBAAiBD,IAgC3H2K,CAAmBlG,IA7B3B,SAAyBA,GACrB,IAAIzE,EAAM4B,EAAGC,EACb,GAA6B,UAAzB4C,EAASnD,MAAM,EAAG,GAClB,OAAO,EAEX,IAAKrF,EAAQ+D,KAAKkD,aAAauB,EAASvE,WAAW,IAC/C,OAAO,EAEX,IAAK0B,EAAI,EAAGC,EAAK4C,EAAS1E,OAAQ6B,EAAIC,GAC7B5F,EAAQ+D,KAAKkD,aAAauB,EAASvE,WAAW0B,MADXA,GAK5C,OAAIA,IAAMC,GAGuB,aAA7B4C,EAASnD,MAAMM,EAAGA,EAAI,KAIV,MADhB5B,EAAOyE,EAASvE,WAAW0B,EAAI,KACG3F,EAAQ+D,KAAKkD,aAAalD,IAAkB,KAATA,GAA4B/D,EAAQ+D,KAAKC,iBAAiBD,IAU3H4K,CAAgBnG,IACf3H,GArrCK,GAqrCSiK,GAA4B3D,EAAKiF,WAAW1K,OAAS/B,EAAOiP,SAA4C,iBAA1BzH,EAAKiF,WAAW1E,MACjH/D,EAAS,CAAC,IAAKA,EAAQ,IAAMsH,KAAK4B,UAAU/B,IAE5CnH,EAAOuF,KAAK+B,KAAK4B,UAAU/B,IAExBnH,GAGXkL,kBAAmB,SAAU1H,EAAM2D,GAI/B,IAAInH,EAAQmL,EAAQ9D,EAAOC,KAK3B,OAA+B,IAA3B9D,EAAKiH,WAAWtK,OAET,CACH,SACArD,EAEAwK,KAAKS,mBAAmBvE,EAAKZ,OAAQ3G,EAAW+B,SAlsCpD4B,GAmsCI0H,KAAK4B,UAAU/B,KAKvBnH,EAAS,CACL,UAEJmL,EAAS,EAGL3H,EAAKiH,WAAWU,GAAQpN,OAAS/B,EAAOoP,yBACxCpL,EAAS8C,EAAK9C,EAAQ,CACdsH,KAAKS,mBAAmBvE,EAAKiH,WAAWU,GAASlP,EAAW+B,SAhtCpE4B,OAktCEuL,GAGF3H,EAAKiH,WAAWU,KACD,IAAXA,GACAnL,EAAOuF,KAAK,KAGZ/B,EAAKiH,WAAWU,GAAQpN,OAAS/B,EAAOqP,yBAExCrL,EAAS8C,EAAK9C,EAAQ,CACdlD,EACAwK,KAAKS,mBAAmBvE,EAAKiH,WAAWU,GAASlP,EAAW+B,SA9tCxE4B,MAkuCII,EAAOuF,KAAKzI,EAAQ,KAEf0G,EAAKiH,WAAWtK,OAASgL,GAAY,GAEtCnL,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK+B,KAAKS,mBAAmBvE,EAAKiH,WAAWU,GAASlP,EAAW+B,SAvuChF4B,IAwuCQI,EAAOuF,KAAKzI,EAAQ,IAAMA,KAM1B2G,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EAEP,IADAjC,EAAOuF,KAAK1I,GACPmF,EAAImJ,EAAQlJ,EAAKuB,EAAKiH,WAAWtK,OAAQ6B,EAAIC,IAAMD,EACpDhC,EAAOuF,KAAKhJ,GACZyD,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKiH,WAAWzI,GAAI/F,EAAW+B,SAnvCnF4B,IAovCoBoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAM1I,MAIzBoD,EAAuBoC,EAAuBrC,GAAQwB,aACvDxB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAKjJ,EAAO,IAAMQ,MAKrCkD,EAAS8C,EAAK9C,EAAQ,CAClB,OAASlD,EAETwK,KAAKS,mBAAmBvE,EAAKZ,OAAQ3G,EAAW+B,SApwChD4B,GAqwCA0H,KAAK4B,UAAU/B,OAKvBmE,mBAAoB,SAAU9H,EAAM2D,GAChC,IAAIoE,EAzxCK,EAyxCQpE,EA3wCbvH,EAFA4L,EA8wCJ,OAAIhI,EAAKiI,KACE,CACHnE,KAAKS,mBAAmBvE,EAAKkG,GAAIzN,EAAWiC,WAAYqN,GACxDzO,EACA,IACAA,EACAwK,KAAKS,mBAAmBvE,EAAKiI,KAAMxP,EAAWiC,WAAYqN,IAG3DjE,KAAKM,gBAAgBpE,EAAKkG,GAAIzN,EAAWiC,WAAYqN,IAGhEzC,oBAAqB,SAAUtF,EAAM2D,GAIjC,IAAInH,EAAQgC,EAAGC,EAAItE,EAAMyL,EAAW/B,EAAOC,KAM3C,SAASoE,IAUL,IATA/N,EAAO6F,EAAKwF,aAAa,GACrB7L,EAAM0G,SAAWlG,EAAKwH,iBACtBnF,EAAOuF,KAAK,MACZvF,EAAOuF,KAAKhC,EAAU8D,EAAKG,kBAAkB7J,EAAMyL,OAEnDpJ,EAAOuF,KAAK1C,KACZ7C,EAAOuF,KAAK8B,EAAKG,kBAAkB7J,EAAMyL,KAGxCpH,EAAI,EAAGC,EAAKuB,EAAKwF,aAAa7I,OAAQ6B,EAAIC,IAAMD,EACjDrE,EAAO6F,EAAKwF,aAAahH,GACrB7E,EAAM0G,SAAWlG,EAAKwH,iBACtBnF,EAAOuF,KAAK,IAAM1I,GAClBmD,EAAOuF,KAAKhC,EAAU8D,EAAKG,kBAAkB7J,EAAMyL,OAEnDpJ,EAAOuF,KAAK,IAAMzI,GAClBkD,EAAOuF,KAAK8B,EAAKG,kBAAkB7J,EAAMyL,KAarD,OAlCApJ,EAAS,CAAEwD,EAAKuF,MAEhBK,EA9yCS,EA8yCIjC,EA9yCJ,EA2BJ,EA2yCD3D,EAAKwF,aAAa7I,OAAS,EAC3BsD,EAAWiI,GAEXA,IAGJ1L,EAAOuF,KAAK+B,KAAK4B,UAAU/B,IAEpBnH,GAGX2L,eAAgB,SAAUnI,EAAM2D,GAC5B,MAAO,CAACrE,EACJ,QACAwE,KAAKS,mBAAmBvE,EAAKoI,SAAU3P,EAAW+B,SAt0ClD4B,IAu0CD0H,KAAK4B,UAAU/B,KAGtB0E,aAAc,SAAUrI,EAAM2D,GAC1B,IAAInH,EAAQgC,EAAGC,EAAI6J,EAKnB,GAHA9L,EAAS,CAAC,MAAOsH,KAAKJ,WAAW1D,EAAKkI,MA31C7B,IA41CT1L,EAASsH,KAAKI,iBAAiBlE,EAAKkI,MAAO1L,GAEvCwD,EAAKuI,SAEL,IAAK/J,EAAI,EAAGC,EAAKuB,EAAKuI,SAAS5L,OAAQ6B,EAAIC,IAAMD,EAC7ChC,EAAS8C,EAAK9C,EAAQsH,KAAKE,kBAAkBhE,EAAKuI,SAAS/J,GAj2C1D,KAk2CGwB,EAAKwI,WAAahK,EAAI,IAAMC,KAC5BjC,EAASsH,KAAKI,iBAAiBlE,EAAKuI,SAAS/J,GAAGyD,KAAMzF,QAG3D,CAGH,IAAKgC,EAAI,EAAGC,GAFZ6J,EAAkBtI,EAAKsI,iBAAmB,IAET3L,OAAQ6B,EAAIC,IAAMD,EAC/ChC,EAAS8C,EAAK9C,EAAQsH,KAAKE,kBAAkBsE,EAAgB9J,GA12C5D,KA22CGwB,EAAKwI,WAAahK,EAAI,IAAMC,KAC5BjC,EAASsH,KAAKI,iBAAiBoE,EAAgB9J,GAAGyD,KAAMzF,IAKhE,GAAIwD,EAAKyI,QACL,GAAI9J,MAAMC,QAAQoB,EAAKyI,SACnB,IAAKjK,EAAI,EAAGC,EAAKuB,EAAKyI,QAAQ9L,OAAQ6B,EAAIC,IAAMD,EAC5ChC,EAAS8C,EAAK9C,EAAQsH,KAAKE,kBAAkBhE,EAAKyI,QAAQjK,GAp3CjE,KAq3CWwB,EAAKwI,WAAahK,EAAI,IAAMC,KAC5BjC,EAASsH,KAAKI,iBAAiBlE,EAAKyI,QAAQjK,GAAGyD,KAAMzF,SAI7DA,EAAS8C,EAAK9C,EAAQsH,KAAKE,kBAAkBhE,EAAKyI,QA13CrD,IA23COzI,EAAKwI,YACLhM,EAASsH,KAAKI,iBAAiBlE,EAAKyI,QAAQxG,KAAMzF,IAQlE,OAHIwD,EAAKwI,YACLhM,EAAS8C,EAAK9C,EAAQ,CAAC,UAAWsH,KAAKJ,WAAW1D,EAAKwI,UAl4ClD,MAo4CFhM,GAGXkM,gBAAiB,SAAU1I,EAAM2D,GAC7B,IAAInH,EAAQ6E,EAAU7C,EAAGC,EAAImH,EAAW/B,EAAOC,KAQ/C,GAPA7D,GAAW,WACPzD,EAAS,CACL,SAAWlD,EAAQ,IACnBuK,EAAKU,mBAAmBvE,EAAK2I,aAAclQ,EAAW+B,SA93C1D4B,GA+3CI,IAAM9C,EAAQ,IAAMD,MAGxB2G,EAAK4I,MAEL,IADAhD,EAj5CK,EAk5CApH,EAAI,EAAGC,EAAKuB,EAAK4I,MAAMjM,OAAQ6B,EAAIC,IAAMD,EACtCA,IAAMC,EAAK,IACXmH,GAAa1J,GAEjBmF,EAAWtB,EAAU+D,KAAKE,kBAAkBhE,EAAK4I,MAAMpK,GAAIoH,IAC3DpJ,EAAOuF,KAAKV,GACP5E,EAAuBoC,EAAuBwC,GAAUrD,aACzDxB,EAAOuF,KAAK1I,GAKxB,OADAmD,EAAOuF,KAAKhC,EAAU,MACfvD,GAGXqM,WAAY,SAAU7I,EAAM2D,GACxB,IAAInH,EAAQ6E,EAAU7C,EAAGC,EAAImH,EAAW/B,EAAOC,KAmC/C,OAlCA7D,GAAW,WAuBP,IArBIzD,EADAwD,EAAKU,KACI,CACLpB,EAAK,OAAQuE,EAAKU,mBAAmBvE,EAAKU,KAAMjI,EAAW+B,SAx5CnE4B,IAy5CQ,KAGK,CAAC,YAGdoC,EAAI,GACJC,EAAKuB,EAAK8I,WAAWnM,SACXqD,EAAK8I,WAAW,GAAGvO,OAAS/B,EAAOuL,iBACzC1C,EAAWwC,EAAKH,WAAW1D,EAAK8I,WAAW,GAh7C1C,GAi7CDtM,EAAOuF,KAAKV,GACZ7C,EAAI,GAGJA,IAAMC,GAAOhC,EAAuBoC,EAAuBrC,GAAQwB,aACnExB,EAAOuF,KAAK1I,GAGhBuM,EAz7CK,EA07CEpH,EAAIC,IAAMD,EACTA,IAAMC,EAAK,GAAKkF,EAAQzH,IACxB0J,GAAa1J,GAEjBmF,EAAWtB,EAAU8D,EAAKG,kBAAkBhE,EAAK8I,WAAWtK,GAAIoH,IAChEpJ,EAAOuF,KAAKV,GACR7C,EAAI,IAAMC,GAAOhC,EAAuBoC,EAAuBwC,GAAUrD,aACzExB,EAAOuF,KAAK1I,MAIjBmD,GAGXuM,YAAa,SAAU/I,EAAM2D,GACzB,IAAInH,EAAQoJ,EAA8B/B,EAAOC,KAwBjD,OAvBA7D,GAAW,WACPzD,EAAS,CACL,KAAOlD,EAAQ,IACfuK,EAAKU,mBAAmBvE,EAAKU,KAAMjI,EAAW+B,SA/7ClD4B,GAg8CI,QAIRwJ,EAl9CS,EAi9CWjC,EAAQzH,IAGxB0J,GAAa1J,GAEb8D,EAAKgJ,WACLxM,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAK8I,WAv9C5B,IAw9CLtM,EAASsH,KAAKI,iBAAiBlE,EAAK8I,WAAYtM,GAE5CA,EADAwD,EAAKgJ,UAAUzO,OAAS/B,EAAOuQ,YACtBzJ,EAAK9C,EAAQ,CAAC,QAASsH,KAAKE,kBAAkBhE,EAAKgJ,UAAWpD,KAE9DtG,EAAK9C,EAAQ8C,EAAK,OAAQwE,KAAKJ,WAAW1D,EAAKgJ,UAAWpD,MAGvEpJ,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAK8I,WAAYlD,IAE1CpJ,GAGXyM,aAAc,SAAUjJ,EAAM2D,GAC1B,IAAInH,EAAQqH,EAAOC,KAiCnB,OAhCA7D,GAAW,WACPzD,EAAS,CAAC,MAAQlD,EAAQ,KACtB0G,EAAKiI,KACDjI,EAAKiI,KAAK1N,OAAS/B,EAAO8M,oBAC1B9I,EAAOuF,KAAK8B,EAAKG,kBAAkBhE,EAAKiI,KA/8C/C,KAk9COzL,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKiI,KAAMxP,EAAW+B,SAj+ClEwN,IAk+CQxL,EAAOuF,KAAK,MAGhBvF,EAAOuF,KAAK,KAGZ/B,EAAKU,MACLlE,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKU,KAAMjI,EAAW+B,SAx+C9D4B,IAy+CII,EAAOuF,KAAK,MAEZvF,EAAOuF,KAAK,KAGZ/B,EAAKkJ,QACL1M,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK8B,EAAKU,mBAAmBvE,EAAKkJ,OAAQzQ,EAAW+B,SAh/ChE4B,IAi/CII,EAAOuF,KAAK,MAEZvF,EAAOuF,KAAK,QAIpBvF,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAKiC,KAAM0B,EAAQzH,EAAkBC,EArgDxD,IAsgDFK,GAGX2M,eAAgB,SAAUnJ,EAAM2D,GAC5B,OAAOG,KAAKqB,8BAA8B,KAAMnF,EAAM2D,EAAQzH,EAAkBC,EA1gDvE,IA6gDbiN,eAAgB,SAAUpJ,EAAM2D,GAC5B,OAAOG,KAAKqB,8BAA8B,KAAMnF,EAAM2D,EAAQzH,EAAkBC,EA9gDvE,IAihDbkN,iBAAkB,SAAUrJ,EAAM2D,GAC9B,MAAO,CAAC3D,EAAK8F,MAAM9G,KAAO,IAAK8E,KAAKJ,WAAW1D,EAAKiC,KAAM0B,EAAQzH,EAAkBC,EAlhD3E,KAqhDb6F,QAAS,SAAUhC,EAAM2D,GACrB,IAAInH,EAAQ6E,EAAU7C,EAAGC,EAAImH,EAI7B,IAHAnH,EAAKuB,EAAKiC,KAAKtF,OACfH,EAAS,CAAC/C,GAAqBgF,EAAK,EAAI,KAAO,IAC/CmH,EA7/CKxJ,GA8/CAoC,EAAI,EAAGA,EAAIC,IAAMD,EACb/E,GAAqB+E,IAAMC,EAAK,IACjCmH,GAAa1J,GAGbnC,IAEU,IAANyE,IACKwB,EAAKiC,KAAK,GAAGN,iBACdS,EAAmBpC,EAAKuB,MAAM,GAAIvB,EAAKiC,KAAKzD,GAAG+C,MAAM,GAAI/E,IAK7DgC,EAAI,IACCwB,EAAKiC,KAAKzD,EAAI,GAAG0D,kBAAqBlC,EAAKiC,KAAKzD,GAAGmD,iBACpDS,EAAmBpC,EAAKiC,KAAKzD,EAAI,GAAG+C,MAAM,GAAIvB,EAAKiC,KAAKzD,GAAG+C,MAAM,GAAI/E,KAKjF6E,EAAWtB,EAAU+D,KAAKE,kBAAkBhE,EAAKiC,KAAKzD,GAAIoH,IAC1DpJ,EAAOuF,KAAKV,GACR7C,EAAI,EAAIC,IAAOhC,EAAuBoC,EAAuBwC,GAAUrD,cACnEjE,GACKiG,EAAKiC,KAAKzD,EAAI,GAAGmD,iBAItBnF,EAAOuF,KAAK1I,IAIhBU,GAEIyE,IAAMC,EAAK,IACNuB,EAAKiC,KAAKzD,GAAG0D,kBACdE,EAAmBpC,EAAKiC,KAAKzD,GAAG+C,MAAM,GAAIvB,EAAKuB,MAAM,GAAI/E,IAKzE,OAAOA,GAGX8M,oBAAqB,SAAUtJ,EAAM2D,GACjC,MAAO,CACHb,EAAoB9C,GAAM,GAC1B,WACAiD,EAAmBjD,IAASX,IAC5BW,EAAKkG,GAAKrD,EAAmB7C,EAAKkG,IAAM,GACxCpC,KAAKiB,qBAAqB/E,KAIlCuJ,gBAAiB,SAAUvJ,EAAM2D,GAC7B,OAAI3D,EAAKoI,SACE,CAAC9I,EACJ,SACAwE,KAAKS,mBAAmBvE,EAAKoI,SAAU3P,EAAW+B,SAvkDtD4B,IAwkDG0H,KAAK4B,UAAU/B,IAEf,CAAC,SAAWG,KAAK4B,UAAU/B,KAGtC6F,eAAgB,SAAUxJ,EAAM2D,GAC5B,IAAInH,EAAQqH,EAAOC,KASnB,OARA7D,GAAW,WACPzD,EAAS,CACL,QAAUlD,EAAQ,IAClBuK,EAAKU,mBAAmBvE,EAAKU,KAAMjI,EAAW+B,SAllDlD4B,GAmlDI,QAGRI,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAKiC,KAAM0B,EAAQzH,EAAkBC,EApmDxD,IAqmDFK,GAGXiN,cAAe,SAAUzJ,EAAM2D,GAC3B,IAAInH,EAAQqH,EAAOC,KASnB,OARA7D,GAAW,WACPzD,EAAS,CACL,OAASlD,EAAQ,IACjBuK,EAAKU,mBAAmBvE,EAAK0J,OAAQjR,EAAW+B,SA/lDpD4B,GAgmDI,QAGRI,EAAOuF,KAAK+B,KAAKJ,WAAW1D,EAAKiC,KAAM0B,EAAQzH,EAAkBC,EAjnDxD,IAknDFK,IAKfO,EAAM3C,EAAcqJ,UAAWrJ,EAAcC,WAI7CD,EAAcuP,WAAa,CAEvBC,mBAAoB,SAAU5E,EAAMX,EAAYV,GAC5C,IAAInH,EAAQgC,EAAGC,EAKf,IAJIhG,EAAW+B,SAAW6J,IACtBV,GAhoDK,GAkoDTnH,EAAS,GACJgC,EAAI,EAAGC,EAAKuG,EAAK6E,YAAYlN,OAAQ6B,EAAIC,IAAMD,EAChDhC,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAK6E,YAAYrL,GAAI/F,EAAWiC,WAAYiJ,IAC5EnF,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAMzI,GAG1B,OAAOiJ,EAAa/F,EAAQ/D,EAAW+B,SAAU6J,IAGrDyF,qBAAsB,SAAU9E,EAAMX,EAAYV,GAC9C,OAAOG,KAAKgB,mBAAmBE,EAAKzF,KAAMyF,EAAKxF,MAAOwF,EAAKI,SAAUf,EAAYV,IAGrFe,wBAAyB,SAAUM,EAAMX,EAAYV,GACjD,OAAOpB,EAAauB,KAAKiB,qBAAqBC,GAAOvM,EAAWmC,cAAeyJ,IAGnF0F,sBAAuB,SAAU/E,EAAMX,EAAYV,GAI/C,OAHIlL,EAAWkC,YAAc0J,IACzBV,GAtpDK,GAwpDFpB,EACH,CACIuB,KAAKS,mBAAmBS,EAAKtE,KAAMjI,EAAWqC,UAAW6I,GACzDrK,EAAQ,IAAMA,EACdwK,KAAKS,mBAAmBS,EAAK8D,WAAYrQ,EAAWiC,WAAYiJ,GAChErK,EAAQ,IAAMA,EACdwK,KAAKS,mBAAmBS,EAAKgE,UAAWvQ,EAAWiC,WAAYiJ,IAEnElL,EAAWkC,YACX0J,IAIR2F,kBAAmB,SAAUhF,EAAMX,EAAYV,GAC3C,OAAOG,KAAKmG,iBAAiBjF,EAAMX,EAAYV,IAGnDsG,iBAAkB,SAAUjF,EAAMX,EAAYV,GAC1C,IAAInH,EAAQ0N,EAAgBC,EAAiBC,EAAmB/I,EAAU5B,EAM1E,OAHAyK,EAFAE,EAAoB1R,EAAiBsM,EAAKI,UAG1C+E,EAAkBC,EAAoB,EAE9BpF,EAAKI,UACT,IAAK,KACD8E,EAAiBzR,EAAWkD,QAC5BwO,EAAkBC,EAClB,MAEJ,IAAK,KACGpF,EAAKzF,KAAKhF,OAAS/B,EAAOwR,mBAA6C,OAAvBhF,EAAKzF,KAAK6F,UAA4C,OAAvBJ,EAAKzF,KAAK6F,WACzF8E,EAAiBxR,EAAiBsM,EAAKzF,KAAK6F,UAAY,GAGxDJ,EAAKxF,MAAMjF,OAAS/B,EAAOwR,mBAA6C,OAAxBhF,EAAKxF,MAAM4F,WAC3D+E,EAAkBzR,EAAiBsM,EAAKxF,MAAM4F,UAAY,GAG9D,MAEJ,IAAK,KACGJ,EAAKzF,KAAKhF,OAAS/B,EAAOwR,mBAA4C,OAAvBhF,EAAKzF,KAAK6F,WACzD8E,EAAiBxR,EAAiBsM,EAAKzF,KAAK6F,UAAY,GA+BpE,OAzBIgF,EAAoB/F,IACpBV,GA1sDK,GAktDLnH,EADiD,MAFrDiD,GAFA4B,EAAWyC,KAAKS,mBAAmBS,EAAKzF,KAAM2K,EAAgBvG,IAExC3F,YAEPlB,WAAW2C,EAAW9C,OAAS,IAAuB9D,EAAQ+D,KAAKiD,oBAAoBmF,EAAKI,SAAStI,WAAW,IAClH,CAACuE,EAAUhC,IAAgB2F,EAAKI,UAEhC9F,EAAK+B,EAAU2D,EAAKI,UAGjC/D,EAAWyC,KAAKS,mBAAmBS,EAAKxF,MAAO2K,EAAiBxG,GAE1C,MAAlBqB,EAAKI,UAAsD,MAAlC/D,EAASrD,WAAWkH,OAAO,IAC5B,MAA5BF,EAAKI,SAASlH,OAAO,IAAkD,QAApCmD,EAASrD,WAAWE,MAAM,EAAG,IAE5D1B,EAAOuF,KAAK1C,KACZ7C,EAAOuF,KAAKV,IAEZ7E,EAAS8C,EAAK9C,EAAQ6E,GAGJ,OAAlB2D,EAAKI,UAluDA,EAkuDuBzB,EAGzBpB,EAAa/F,EAAQ4N,EAAmB/F,GAFpC,CAAC,IAAK7H,EAAQ,MAK7B6N,eAAgB,SAAUrF,EAAMX,EAAYV,GACxC,IAAInH,EAAQgC,EAAGC,EAUf,IAPAjC,EAAS,CAACsH,KAAKS,mBAAmBS,EAAKsF,OAAQ7R,EAAWoD,KA/tDtDO,IAiuDA4I,EAAKuF,UACL/N,EAAOuF,KAAK,MAGhBvF,EAAOuF,KAAK,KACPvD,EAAI,EAAGC,EAAKuG,EAAgB,UAAErI,OAAQ6B,EAAIC,IAAMD,EACjDhC,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAgB,UAAExG,GAAI/F,EAAWiC,WAtuDrE0B,IAuuDIoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAMzI,GAK1B,OAFAkD,EAAOuF,KAAK,KAxvDD,EA0vDL4B,EAICpB,EAAa/F,EAAQ/D,EAAWoD,KAAMwI,GAHlC,CAAC,IAAK7H,EAAQ,MAM7BgO,gBAAiB,SAAUxF,EAAMX,EAAYV,GAOzC,OANIlL,EAAWmD,iBAAmByI,IAC9BV,GAnwDO,GAwwDJpB,EAFMuB,KAAKS,mBAAmBS,EAAKC,WAAYxM,EAAWmD,iBAAkB+H,GAEvDlL,EAAWmD,iBAAkByI,IAG7DoG,cAAe,SAAUzF,EAAMX,EAAYV,GACvC,IAAInH,EAAQG,EAAQ6B,EAAGC,EAAIsJ,EAY3B,GAXApL,EAASqI,EAAgB,UAAErI,OAI3BoL,EAhxDmB,EAgxDNpE,IAAiCpK,GAA0B,IAAXoD,EAjwDzDP,EAjBK,EAoxDTI,EAAS8C,EACL,MACAwE,KAAKS,mBAAmBS,EAAKsF,OAAQ7R,EAAWqD,IAAKiM,MApxDtC,EAuxDbpE,IAAiCpK,GAAeoD,EAAS,EAAG,CAE9D,IADAH,EAAOuF,KAAK,KACPvD,EAAI,EAAGC,EAAK9B,EAAQ6B,EAAIC,IAAMD,EAC/BhC,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAgB,UAAExG,GAAI/F,EAAWiC,WA9wDzE0B,IA+wDQoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAMzI,GAG1BkD,EAAOuF,KAAK,KAGhB,OAAOQ,EAAa/F,EAAQ/D,EAAWqD,IAAKuI,IAGhDqG,iBAAkB,SAAU1F,EAAMX,EAAYV,GAC1C,IAAInH,EAAQ6E,EAmCZ,OAhCA7E,EAAS,CAACsH,KAAKS,mBAAmBS,EAAK0E,OAAQjR,EAAWoD,KA1yD/C,EA0yDsD8H,EA9xD7DvH,EAbK,IA6yDL4I,EAAKxB,UACDwB,EAAKuF,UACL/N,EAAOuF,KAAK,MAGhBvF,EAAOuF,KAAK,KACZvF,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAK2F,SAAUlS,EAAW+B,SAlzDvD,EAkzDiEmJ,EAryDxEvH,EAGAA,IAmyDAI,EAAOuF,KAAK,OAEPiD,EAAKuF,UAAYvF,EAAK0E,OAAOnP,OAAS/B,EAAOiP,SAAwC,iBAAtBzC,EAAK0E,OAAOnJ,QAC5Ec,EAAWxC,EAAuBrC,GAAQwB,YAQzB4M,QAAQ,KAAO,IACvB,SAASlK,KAAKW,IACfxI,EAAQ+D,KAAKuB,eAAekD,EAASvE,WAAWuE,EAAS1E,OAAS,OAChE0E,EAAS1E,QAAU,GAAgC,KAA3B0E,EAASvE,WAAW,KAElDN,EAAOuF,KAAK,KAGpBvF,EAAOuF,KAAKiD,EAAKuF,SAAW,KAAO,KACnC/N,EAAOuF,KAAKc,EAAmBmC,EAAK2F,YAGjCpI,EAAa/F,EAAQ/D,EAAWuD,OAAQqI,IAGnDwG,aAAc,SAAU7F,EAAMX,EAAYV,GACtC,IAAInH,EAKJ,OAJAA,EAAS,IACFuF,KAA0B,iBAAdiD,EAAK8F,KAAoB9F,EAAK8F,KAAOjI,EAAmBmC,EAAK8F,OAChFtO,EAAOuF,KAAK,KACZvF,EAAOuF,KAA8B,iBAAlBiD,EAAK2F,SAAwB3F,EAAK2F,SAAW9H,EAAmBmC,EAAK2F,WACjFpI,EAAa/F,EAAQ/D,EAAWuD,OAAQqI,IAGnD0G,gBAAiB,SAAU/F,EAAMX,EAAYV,GACzC,IAAInH,EAAQ6E,EAAUzB,EAAeH,EAAYE,EA2BjD,OA1BA0B,EAAWyC,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWiD,MA30DzDU,GA60DU,KAAV9C,EACAkD,EAAS8C,EAAK0F,EAAKI,SAAU/D,IAE7B7E,EAAS,CAACwI,EAAKI,UACXJ,EAAKI,SAASzI,OAAS,EAGvBH,EAAS8C,EAAK9C,EAAQ6E,IAKtB1B,GADAF,EAAaZ,EAAuBrC,GAAQwB,YAClBlB,WAAW2C,EAAW9C,OAAS,GACzDiD,EAAgByB,EAASrD,WAAWlB,WAAW,IAExB,KAAjB6C,GAAmD,KAAjBA,IAAmCA,IAAiBC,GACnF/G,EAAQ+D,KAAKiD,oBAAoBF,IAAiB9G,EAAQ+D,KAAKiD,oBAAoBD,IACxFpD,EAAOuF,KAAK1C,KACZ7C,EAAOuF,KAAKV,IAEZ7E,EAAOuF,KAAKV,KAIjBkB,EAAa/F,EAAQ/D,EAAWiD,MAAO2I,IAGlD2G,gBAAiB,SAAUhG,EAAMX,EAAYV,GACzC,IAAInH,EAYJ,OAVIA,EADAwI,EAAKiG,SACI,SAEA,QAETjG,EAAKoD,WACL5L,EAAS8C,EACL9C,EACAsH,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWgC,MAl3DtD2B,KAq3DGmG,EAAa/F,EAAQ/D,EAAWgC,MAAO4J,IAGlD6G,gBAAiB,SAAUlG,EAAMX,EAAYV,GAKzC,OAAOpB,EAJMjD,EACT0F,EAAKmG,IAAM,SAAW,QACtBrH,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWgD,MA33DlDW,IA63DwB3D,EAAWgD,MAAO4I,IAGlD+G,iBAAkB,SAAUpG,EAAMX,EAAYV,GAC1C,OAAIqB,EAAKvD,OACEc,EACH,CACIyC,EAAKI,SACLtB,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWiD,MAr4D1DU,IAu4DI3D,EAAWiD,MACX2I,GAGD9B,EACH,CACIuB,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWkD,QA74DtDS,GA84DI4I,EAAKI,UAET3M,EAAWkD,QACX0I,IAIRgH,mBAAoB,SAAUrG,EAAMX,EAAYV,GAC5C,IAAInH,EAAS,CACTsG,EAAoBkC,GAAM,GAC1B,YASJ,OAPIA,EAAKkB,IACL1J,EAAOuF,KAAKkB,EAAmB+B,IAAS3F,KACxC7C,EAAOuF,KAAKc,EAAmBmC,EAAKkB,MAEpC1J,EAAOuF,KAAKkB,EAAmB+B,IAAS1L,GAE5CkD,EAAOuF,KAAK+B,KAAKiB,qBAAqBC,IAC/BxI,GAGX8O,aAAc,SAAUtG,EAAMX,EAAYV,GACtC,OAAOG,KAAKyH,gBAAgBvG,EAAMX,EAAYV,GAAO,IAGzD4H,gBAAiB,SAAUvG,EAAMX,EAAYV,EAAO6H,GAChD,IAAIhP,EAAQiP,EAAW5H,EAAOC,KAC9B,OAAKkB,EAAK0G,SAAS/O,QAGnB8O,GAAYD,GAAoBxG,EAAK0G,SAAS/O,OAAS,EACvDH,EAAS,CAAC,IAAKiP,EAAYpS,EAAU,IACrC4G,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAKuG,EAAK0G,SAAS/O,OAAQ6B,EAAIC,IAAMD,EACxCwG,EAAK0G,SAASlN,IAQfhC,EAAOuF,KAAK0J,EAAY1S,EAAS,IACjCyD,EAAOuF,KAAK8B,EAAKU,mBAAmBS,EAAK0G,SAASlN,GAAI/F,EAAWiC,WA37DzE0B,MAm7DYqP,GACAjP,EAAOuF,KAAKhJ,GAEZyF,EAAI,IAAMC,GACVjC,EAAOuF,KAAK,MAMhBvD,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,KAAO0J,EAAYpS,EAAUC,OAIjDmS,IAAchP,EAAuBoC,EAAuBrC,GAAQwB,aACpExB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAK0J,EAAY3S,EAAO,IAC/B0D,EAAOuF,KAAK,KACLvF,GA5BI,MA+BfmP,YAAa,SAAS3G,EAAMX,EAAYV,GACpC,MAAO,MAAQG,KAAKM,gBAAgBY,EAAKoD,WAG7CwD,gBAAiB,SAAU5G,EAAMX,EAAYV,GACzC,IAAInH,EAAQ6E,EAWZ,OAVA7E,EAAS,CAAC,SACNwI,EAAKkB,KACL1J,EAAS8C,EAAK9C,EAAQsH,KAAKS,mBAAmBS,EAAKkB,GAAIzN,EAAW+B,SAl9DlE4B,KAo9DA4I,EAAKmB,aACL9E,EAAW/B,EAAK,UAAWwE,KAAKS,mBAAmBS,EAAKmB,WAAY1N,EAAWiD,MAr9D/EU,IAs9DAI,EAAS8C,EAAK9C,EAAQ6E,IAE1B7E,EAAOuF,KAAKzI,GACZkD,EAAOuF,KAAK+B,KAAKE,kBAAkBgB,EAAK/C,KAAM9F,IACvCK,GAGXqP,iBAAkB,SAAU7G,EAAMX,EAAYV,GAC1C,IAAInH,EAAQ6E,EAkBZ,OAhBI7E,EADAwI,EAAa,OACJ,CAAC,SAAW1L,GAEZ,GAGT+H,EADc,QAAd2D,EAAKO,MAAgC,QAAdP,EAAKO,KACjB,CACPjG,EAAK0F,EAAKO,KAAMzB,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,WACxDM,KAAKiB,qBAAqBC,EAAKzE,QAGxB,CACP8C,EAAqB2B,GACrBlB,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,UACxCM,KAAKiB,qBAAqBC,EAAKzE,QAGhCjB,EAAK9C,EAAQ6E,IAGxByK,SAAU,SAAU9G,EAAMX,EAAYV,GAClC,MAAkB,QAAdqB,EAAKO,MAAgC,QAAdP,EAAKO,KACrB,CACHP,EAAKO,KAAMlG,IACXyE,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,UACxCM,KAAKiB,qBAAqBC,EAAKzE,QAInCyE,EAAK+G,UACmB,sBAApB/G,EAAKzE,MAAMhG,KACJuJ,KAAKkI,kBAAkBhH,EAAKzE,MAAO9H,EAAW+B,SA9/DzD4B,GAggEO0H,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,UAG/CwB,EAAKiH,OACE,CACH5I,EAAqB2B,GACrBlB,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,UACxCM,KAAKiB,qBAAqBC,EAAKzE,QAIhC,CACHuD,KAAK2B,oBAAoBT,EAAK9H,IAAK8H,EAAKxB,UACxC,IAAMlK,EACNwK,KAAKS,mBAAmBS,EAAKzE,MAAO9H,EAAWiC,WA9gE/C0B,KAkhER8P,iBAAkB,SAAUlH,EAAMX,EAAYV,GAC1C,IAAI8H,EAAWjP,EAAQ6E,EA98DJ/E,EA88DcuH,EAAOC,KAExC,OAAKkB,EAAKmH,WAAWxP,QAGrB8O,EAAYzG,EAAKmH,WAAWxP,OAAS,EAErCsD,GAAW,WACPoB,EAAWwC,EAAKU,mBAAmBS,EAAKmH,WAAW,GAAI1T,EAAW+B,SA3hElE4B,MA8hECqP,IAz9DcnP,EAk+DQuC,EAAuBwC,GAAUrD,WAj+DzD,UAAY0C,KAAKpE,KAs+DpB2D,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EAGP,GAFAjC,EAAS,CAAE,IAAKnD,EAASN,EAAQsI,GAE7BoK,EAEA,IADAjP,EAAOuF,KAAK,IAAM1I,GACbmF,EAAI,EAAGC,EAAKuG,EAAKmH,WAAWxP,OAAQ6B,EAAIC,IAAMD,EAC/ChC,EAAOuF,KAAKhJ,GACZyD,EAAOuF,KAAK8B,EAAKU,mBAAmBS,EAAKmH,WAAW3N,GAAI/F,EAAW+B,SApjE3E4B,IAqjEYoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,IAAM1I,MAM7BoD,EAAuBoC,EAAuBrC,GAAQwB,aACvDxB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAKjJ,GACZ0D,EAAOuF,KAAK,KACLvF,GAzBQ,CAAE,IAAKlD,EAAO+H,EAAU/H,EAAO,MAlBnC,MA8Cf0S,kBAAmB,SAAShH,EAAMX,EAAYV,GAC1C,OAAOG,KAAKgB,mBAAmBE,EAAKzF,KAAMyF,EAAKxF,MAAO,IAAK6E,EAAYV,IAG3EyI,cAAe,SAAUpH,EAAMX,EAAYV,GACvC,IAAInH,EAAQgC,EAAGC,EAAIgN,EAAWd,EAAU9G,EAAOC,KAC/C,IAAKkB,EAAKmH,WAAWxP,OACjB,MAAO,KAIX,GADA8O,GAAY,EACmB,IAA3BzG,EAAKmH,WAAWxP,QAChBgO,EAAW3F,EAAKmH,WAAW,IAEd5R,OAAS/B,EAAOsT,UACtBnB,EAASpK,MAAMhG,OAAS/B,EAAO8L,aAElCmH,GAAY,QAGhB,IAAKjN,EAAI,EAAGC,EAAKuG,EAAKmH,WAAWxP,OAAQ6B,EAAIC,IAAMD,EAE/C,IADAmM,EAAW3F,EAAKmH,WAAW3N,IAEdjE,OAAS/B,EAAOsT,WACrBnB,EAASoB,UACf,CACEN,GAAY,EACZ,MAsBZ,OAlBAjP,EAAS,CAAC,IAAKiP,EAAYpS,EAAU,IAErC4G,GAAW,SAAUlH,GACjB,IAAIyF,EAAGC,EACP,IAAKD,EAAI,EAAGC,EAAKuG,EAAKmH,WAAWxP,OAAQ6B,EAAIC,IAAMD,EAC/ChC,EAAOuF,KAAK0J,EAAY1S,EAAS,IACjCyD,EAAOuF,KAAK8B,EAAKU,mBAAmBS,EAAKmH,WAAW3N,GAAI/F,EAAW+B,SAzmEvE4B,IA0mEQoC,EAAI,EAAIC,GACRjC,EAAOuF,KAAK,KAAO0J,EAAYpS,EAAUC,OAKjDmS,IAAchP,EAAuBoC,EAAuBrC,GAAQwB,aACpExB,EAAOuF,KAAK1I,GAEhBmD,EAAOuF,KAAK0J,EAAY3S,EAAO,IAC/B0D,EAAOuF,KAAK,KACLvF,GAGX6P,eAAgB,SAAUrH,EAAMX,EAAYV,GACxC,MAAO,QAGX2I,MAAO,SAAUtH,EAAMX,EAAYV,GAC/B,MAAO,SAGXW,WAAY,SAAUU,EAAMX,EAAYV,GACpC,OAAOd,EAAmBmC,IAG9B4C,uBAAwB,SAAU5C,EAAMX,EAAYV,GAChD,OAAOd,EAAmBmC,EAAKkB,IAAMlB,EAAKuH,QAG9C1E,yBAA0B,SAAU7C,EAAMX,EAAYV,GAClD,IAAInH,EAAS,CAAC,KACV0J,EAAKlB,EAAKkB,IAAMlB,EAAKuH,MAIzB,OAHIrG,GACA1J,EAAOuF,KAAKzI,EAAQ,KAAO+F,IAAiBwD,EAAmBqD,IAE5D1J,GAGXgQ,gBAAiB,SAAUxH,EAAMX,EAAYV,GACzC,IAAI8I,EAAWzH,EAAKyH,SAChBjQ,EAAS,CAAEiQ,EAASzN,MACpBuN,EAAQvH,EAAKuH,MAIjB,OAHIA,GAASA,EAAMvN,OAASyN,EAASzN,MACjCxC,EAAOuF,KAAK1C,IAAiB,KAAOA,IAAiBwD,EAAmB0J,IAErE/P,GAGXkQ,gBAAiB,SAAU1H,EAAMX,EAAYV,GACzC,IAAI4I,EAAQvH,EAAKuH,MACb/P,EAAS,CAAE+P,EAAMvN,MACjBoI,EAAWpC,EAAKoC,SAIpB,OAHIA,GAAYA,EAASpI,OAASuN,EAAMvN,MACpCxC,EAAOuF,KAAK1C,IAAiB,KAAOA,IAAiBwD,EAAmBuE,IAErE5K,GAGXiL,QAAS,SAAUzC,EAAMX,EAAYV,GACjC,IAAI0C,EACJ,GAAIrB,EAAK1K,eAAe,QAAUV,GAASD,EAAM0M,IAC7C,IAEI,IADAA,EAAMzM,EAAMoL,EAAKqB,KAAKpE,KAAK,GAAGgD,YACtB1K,OAAS/B,EAAOiP,SAChBpB,EAAI9F,QAAUyE,EAAKzE,MACnB,OAAOyE,EAAKqB,IAGtB,MAAOsG,IAKb,OAAI3H,EAAK4H,MACA,IAAM5H,EAAK4H,MAAMC,QAAU,IAAM7H,EAAK4H,MAAMjJ,MAI1B,iBAAhBqB,EAAK8H,QAAuB9H,EAAKqB,IACjCrB,EAAKqB,IAGG,OAAfrB,EAAKzE,MACE,OAGe,iBAAfyE,EAAKzE,MAt5DxB,SAAsBjE,GAClB,IAAiBkC,EAAG9B,EAAKE,EAA0CmQ,EAAQzG,EAAvE9J,EAAS,GAAkBwQ,EAAe,EAAGC,EAAe,EAEhE,IAAKzO,EAAI,EAAG9B,EAAMJ,EAAIK,OAAQ6B,EAAI9B,IAAO8B,EAAG,CAExC,GAAa,MADb5B,EAAON,EAAIQ,WAAW0B,MAEhBwO,OACC,GAAa,KAATpQ,IACLqQ,OACC,GAAa,KAATrQ,GAA0B5D,EACjCwD,GAAU,SACP,IAAI3D,EAAQ+D,KAAKC,iBAAiBD,IAAkB,KAATA,EAAwB,CACtEJ,GAAU4B,EAA0BxB,GACpC,SACG,IAAK/D,EAAQ+D,KAAKiD,oBAAoBjD,KAAU5D,GAAQ4D,EAAO,KAAmB5D,IAASI,IAAewD,EAAO,IAAkBA,EAAO,MAAiB,CAC9JJ,GAAUqB,EAAuBjB,EAAMN,EAAIQ,WAAW0B,EAAI,IAC1D,UAEJhC,GAAUmB,OAAOC,aAAahB,GAMlC,GAFA0J,GADAyG,IAAsB,WAAX5T,GAAmC,SAAXA,GAAqB8T,EAAeD,IACtD,IAAO,MAElBD,EAASC,EAAeC,GAC1B,OAAO3G,EAAQ9J,EAAS8J,EAM5B,IAHAhK,EAAME,EACNA,EAAS8J,EAEJ9H,EAAI,EAAG9B,EAAMJ,EAAIK,OAAQ6B,EAAI9B,IAAO8B,GAEvB,MADd5B,EAAON,EAAIQ,WAAW0B,KACSuO,GAAqB,KAATnQ,IAA2BmQ,KAClEvQ,GAAU,MAEdA,GAAUmB,OAAOC,aAAahB,GAGlC,OAAOJ,EAAS8J,EAg3DD4G,CAAalI,EAAKzE,OAGH,iBAAfyE,EAAKzE,MAERyE,EAAKqB,MAAkC,IAA3BrB,EAAKqB,IAAIuE,QAAQ,KACtB5F,EAAKqB,IAxlE5B,SAAwB9F,GACpB,IAAI/D,EAAQ2Q,EAAOC,EAAMC,EAAUC,EAEnC,GAAI/M,GAAUA,EACV,MAAM,IAAIlC,MAAM,sCAEpB,GAAIkC,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EACzC,MAAM,IAAIlC,MAAM,2CAGpB,GAAIkC,IAAU,IACV,OAAOvH,EAAO,OAASC,EAAW,QAAU,SAIhD,GADAuD,EAAS,GAAK+D,GACTtH,GAAYuD,EAAOG,OAAS,EAC7B,OAAOH,EAoBX,IAjBA2Q,EAAQ3Q,EAAOoO,QAAQ,KAClB5R,GAAiC,KAAzBwD,EAAOM,WAAW,IAAkC,IAAVqQ,IACnDA,EAAQ,EACR3Q,EAASA,EAAO0B,MAAM,IAE1BkP,EAAO5Q,EACPA,EAASA,EAAO+Q,QAAQ,KAAM,KAC9BF,EAAW,GACNC,EAAMF,EAAKxC,QAAQ,MAAQ,IAC5ByC,GAAYD,EAAKlP,MAAMoP,EAAM,GAC7BF,EAAOA,EAAKlP,MAAM,EAAGoP,IAErBH,GAAS,IACTE,GAAYD,EAAKzQ,OAASwQ,EAAQ,EAClCC,IAASA,EAAKlP,MAAM,EAAGiP,GAASC,EAAKlP,MAAMiP,EAAQ,IAAM,IAE7DG,EAAM,EAC4C,KAA3CF,EAAKtQ,WAAWsQ,EAAKzQ,OAAS2Q,EAAM,MACrCA,EAeN,OAbY,IAARA,IACAD,GAAYC,EACZF,EAAOA,EAAKlP,MAAM,EAAGoP,IAER,IAAbD,IACAD,GAAQ,IAAMC,IAEbD,EAAKzQ,OAASH,EAAOG,QACbzD,GAAeqH,EAAQ,MAAQiN,KAAKC,MAAMlN,KAAWA,IAAU6M,EAAO,KAAO7M,EAAMvC,SAAS,KAAKrB,OAASH,EAAOG,UACrHyQ,IAAS7M,IACd/D,EAAS4Q,GAGN5Q,EAuiEQkR,CAAe1I,EAAKzE,OAGL,kBAAfyE,EAAKzE,MACLyE,EAAKzE,MAAQ,OAAS,QA3hEzC,SAAwBoN,GACpB,IAAI7L,EAAOtF,EAAQmH,EAAOnF,EAAGC,EAAIhB,EAAImQ,EAAkBlQ,EAIvD,GAFAlB,EAASmR,EAAI3P,WAET2P,EAAIvO,OAAQ,CAGZ,KADA0C,EAAQtF,EAAOsF,MAAM,eAEjB,OAAOtF,EAQX,IALAmH,EAAQ7B,EAAM,GACdtF,EAAS,GAEToR,GAAmB,EACnBlQ,GAAsB,EACjBc,EAAI,EAAGC,EAAKkP,EAAIvO,OAAOzC,OAAQ6B,EAAIC,IAAMD,EAC1Cf,EAAKkQ,EAAIvO,OAAOtC,WAAW0B,GAEtBd,GAgBDlB,GAAUgB,EAAsBC,EAAIC,GAEpCA,GAAsB,IAjBlBkQ,EACW,KAAPnQ,IACAmQ,GAAmB,GAGZ,KAAPnQ,EACAjB,GAAU,KACI,KAAPiB,IACPmQ,GAAmB,GAG3BpR,GAAUgB,EAAsBC,EAAIC,GACpCA,EAA6B,KAAPD,GAS9B,MAAO,IAAMjB,EAAS,IAAMmH,EAGhC,OAAOnH,EAi/DIqR,CAAe7I,EAAKzE,QAG/BuN,oBAAqB,SAAU9I,EAAMX,EAAYV,GAC7C,OAAOG,KAAKiK,wBAAwB/I,EAAMX,EAAYV,IAG1DoK,wBAAyB,SAAU/I,EAAMX,EAAYV,GAIjD,IAAInH,EAAQgC,EAAGC,EAAI4C,EAAUwC,EAAOC,KAkCpC,OAjCAtH,EAAUwI,EAAKzK,OAAS/B,EAAOsV,oBAAuB,CAAC,KAAO,CAAC,KAE3DnU,EAAMwJ,IAAI6K,8CACV3M,EAAWyC,KAAKS,mBAAmBS,EAAK/C,KAAMxJ,EAAWiC,WAjuEzD0B,GAkuEAI,EAAOuF,KAAKV,IAGZ2D,EAAKiJ,QACLhO,GAAW,WACP,IAAKzB,EAAI,EAAGC,EAAKuG,EAAKiJ,OAAOtR,OAAQ6B,EAAIC,IAAMD,EAC3C6C,EAAWwC,EAAKU,mBAAmBS,EAAKiJ,OAAOzP,GAAI/F,EAAW+B,SAxuEtE4B,GAyuEYoC,EAAI,GAAK7E,EAAMwJ,IAAI6K,4CACnBxR,EAAS8C,EAAK9C,EAAQ6E,GAEtB7E,EAAOuF,KAAKV,MAMxB2D,EAAKkJ,SACL1R,EAAS8C,EAAK9C,EAAQ,KAAOlD,GAC7B+H,EAAWyC,KAAKS,mBAAmBS,EAAKkJ,OAAQzV,EAAW+B,SApvE3D4B,GAqvEAI,EAAS8C,EAAK9C,EAAQ,CAAE,IAAK6E,EAAU,OAGtC1H,EAAMwJ,IAAI6K,8CACX3M,EAAWyC,KAAKS,mBAAmBS,EAAK/C,KAAMxJ,EAAWiC,WAzvEzD0B,GA2vEAI,EAAS8C,EAAK9C,EAAQ6E,IAG1B7E,EAAOuF,KAAMiD,EAAKzK,OAAS/B,EAAOsV,oBAAuB,IAAM,KACxDtR,GAGX2R,mBAAoB,SAAUnJ,EAAMX,EAAYV,GAC5C,IAAItC,EAaJ,OAHAA,EAAW/B,EARP+B,EADA2D,EAAKzF,KAAKhF,OAAS/B,EAAO8M,oBACf,CACPN,EAAKzF,KAAKgG,KAAMlG,IAChByE,KAAKE,kBAAkBgB,EAAKzF,KAAKiG,aAAa,GA1vEjD,IA6vEU1B,KAAKS,mBAAmBS,EAAKzF,KAAM9G,EAAWoD,KA1wEzDO,GA6wEsB4I,EAAKoJ,GAAK,KAAO,MAC3C/M,EAAW/B,EAAK+B,EAAUyC,KAAKS,mBAAmBS,EAAKxF,MAAO/G,EAAW+B,SA9wErE4B,IAgxEG,CAAE,MAAQ9C,EAAQ,IAAK+H,EAAU,MAG5CgN,cAAe,SAAUrJ,EAAMX,EAAYV,GACvC,MAAO,CACH,MACAG,KAAKS,mBAAmBS,EAAKoD,SAAU3P,EAAWiC,WAtxElD0B,KA0xERkS,yBAA0B,SAAUtJ,EAAMX,EAAYV,GAClD,IAAIoE,EA5xEA3L,EAoyEJ,OAhzEW,EAyyELuH,IACFoE,EA3yEK,GAizEFxF,EAJM,CACTuB,KAAKS,mBAAmBS,EAAKuJ,IAAK9V,EAAWoD,KAAMkM,GACnDjE,KAAKS,mBAAmBS,EAAKwJ,MAAO/V,EAAWwD,QA7yEhC,IA+yESxD,EAAWsD,eAAgBsI,IAG3DoK,gBAAiB,SAAUzJ,EAAMX,EAAYV,GAGzC,OAAOqB,EAAKzE,MAAM8F,KAGtBqI,gBAAiB,SAAU1J,EAAMX,EAAYV,GACzC,IAAInH,EAAQgC,EAAGC,EAEf,IADAjC,EAAS,CAAE,KACNgC,EAAI,EAAGC,EAAKuG,EAAK2J,OAAOhS,OAAQ6B,EAAIC,IAAMD,EAC3ChC,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAK2J,OAAOnQ,GAAI/F,EAAWwD,QAhzE/DG,IAizEIoC,EAAI,EAAIC,IACRjC,EAAOuF,KAAK,KAAOzI,GACnBkD,EAAOuF,KAAK+B,KAAKS,mBAAmBS,EAAK6E,YAAYrL,GAAI/F,EAAW+B,SAnzExE4B,IAozEII,EAAOuF,KAAKzI,EAAQ,MAI5B,OADAkD,EAAOuF,KAAK,KACLvF,GAGXoS,gBAAiB,SAAU5J,EAAMX,EAAYV,GACzC,OAAOG,KAAK2D,QAAQzC,EAAMX,EAAYV,IAG1CkL,iBAAkB,SAAS7J,EAAMX,EAAYyK,GACzC,OAAOvM,EAAa,CAChB,UACAuB,KAAKS,mBAAmBS,EAAK5F,OAAQ3G,EAAWiC,WAl0EhD0B,GAm0EA,KACD3D,EAAWoD,KAAMwI,KAI5BtH,EAAM3C,EAAcqJ,UAAWrJ,EAAcuP,YAE7CvP,EAAcqJ,UAAUc,mBAAqB,SAAUS,EAAMX,EAAYV,GACrE,IAAInH,EAAQjC,EAIZ,OAFAA,EAAOyK,EAAKzK,MAAQ/B,EAAOsT,SAEvBnS,EAAMoV,UAAY/J,EAAK1K,eAAeX,EAAMoV,UApsDpD,SAA0B/J,EAAMX,GAC5B,IAAI0K,EAYJ,OAAOlQ,EATiB,iBAFxBkQ,EAAW/J,EAAKrL,EAAMoV,WAGTxM,EAAaI,EAAuBoM,GAAWtW,EAAW+B,SAAU6J,GAKpE9B,EAFAI,EAAuBoM,EAASpJ,SACV,MAAvBoJ,EAAS1K,WAAsB0K,EAAS1K,WAAa5L,EAAW+B,SACpC6J,GAGFW,GAwrD3BgK,CAAiBhK,EAAMX,IAGlC7H,EAASsH,KAAKvJ,GAAMyK,EAAMX,EAAYV,GAGlChK,EAAM0G,UACN7D,EAAS0E,EAAY8D,EAAMxI,IAExBqC,EAAuBrC,EAAQwI,KAG1C5K,EAAcqJ,UAAUO,kBAAoB,SAAUhE,EAAM2D,GACxD,IAAInH,EACA6E,EAeJ,OAbA7E,EAASsH,KAAK9D,EAAKzF,MAAMyF,EAAM2D,GAI3BhK,EAAM0G,UACN7D,EAAS0E,EAAYlB,EAAMxD,IAG/B6E,EAAWxC,EAAuBrC,GAAQwB,WACtCgC,EAAKzF,OAAS/B,EAAOwJ,SAAYvI,GAAiC,KAAZJ,GAA4D,OAAzCgI,EAAS6D,OAAO7D,EAAS1E,OAAS,KAC3GH,EAAS3C,EAAYgF,EAAuBrC,GAAQyS,aAAa,OAAQ,IAAM5N,EAASkM,QAAQ,OAAQ,KAGrG1O,EAAuBrC,EAAQwD,IAqG1ChG,EAAgB,CACZjB,OAAQ,CACJmW,MAAO,GACPpW,KAAM,GAEVG,UAAU,EACVC,aAAa,EACbC,OAAQ,OACRC,YAAY,EACZ+V,SAAS,EACT5V,aAAa,EACbC,YAAY,GAGhBS,EAx8EgB,CACJlB,OAAQ,CACJmW,MAAO,OACPpW,KAAM,EACN2H,wBAAwB,GAE5BpH,QAAS,KACTC,MAAO,IACPN,MAAM,EACNC,UAAU,EACVC,aAAa,EACbC,OAAQ,SACRC,YAAY,EACZ+V,SAAS,EACT5V,aAAa,EACbC,YAAY,EACZC,mBAAmB,EACnBM,oBAAoB,GAy7EhC5B,EAAQiX,QAAU,EAAlB,cACAjX,EAAQkX,SApGR,SAAkBlV,EAAMmV,GACpB,IAA0C9S,EAAQ+S,EAA9CC,EA72EG,CACHzW,OAAQ,KACRD,KAAM,KACNc,MAAO,KACPyG,SAAS,EACTG,OAAQ,CACJzH,OAAQ,CACJmW,MAAO,OACPpW,KAAM,EACN2H,wBAAwB,GAE5BpH,QAAS,KACTC,MAAO,IACPN,MAAM,EACNC,UAAU,EACVC,aAAa,EACbC,OAAQ,SACRC,YAAY,EACZ+V,SAAS,EACT5V,aAAa,EACbC,YAAY,EACZC,mBAAmB,EACnBM,oBAAoB,GAExBoJ,IAAK,CACD6K,6CAA6C,EAC7C5K,mBAAmB,GAEvBvJ,UAAW,KACX4V,cAAe,KACfC,mBAAmB,EACnBhW,WAAW,EACX2M,KAAK,EACL0I,SAAU,KACVjV,WAAY,MAs4EhB,OAzDe,MAAXwV,GAO8B,iBAAnBA,EAAQvW,SACfyW,EAAehP,OAAOzH,OAAOmW,MAAQI,EAAQvW,QAErB,iBAAjBuW,EAAQxW,OACf0W,EAAehP,OAAOzH,OAAOD,KAAOwW,EAAQxW,MAEhDwW,EAAUnS,EAAaqS,EAAgBF,GACvCvW,EAASuW,EAAQ9O,OAAOzH,OAAOmW,MAE3BpW,EADwB,iBAAjBwW,EAAQxW,KACRwW,EAAQxW,KAERuD,EAAatD,EAAQuW,EAAQ9O,OAAOzH,OAAOD,QAItDC,GADAuW,EAAUE,GACOhP,OAAOzH,OAAOmW,MAC/BpW,EAAOuD,EAAatD,EAAQuW,EAAQ9O,OAAOzH,OAAOD,OAEtDE,EAAOsW,EAAQ9O,OAAOxH,KACtBC,EAAWqW,EAAQ9O,OAAOvH,SAC1BC,GAAcF,GAAesW,EAAQ9O,OAAOtH,YAC5CC,EAASH,EAAO,SAAWsW,EAAQ9O,OAAOrH,OAC1CC,EAAakW,EAAQ9O,OAAOpH,WAC5BC,EAAUiW,EAAQ9O,OAAOnH,QACzBC,EAAQgW,EAAQ9O,OAAOlH,MACnBgW,EAAQ9O,OAAO2O,UACf9V,EAAUC,EAAQP,EAASD,EAAO,IAEtCS,EAAc+V,EAAQ9O,OAAOjH,YAC7BC,EAAa8V,EAAQ9O,OAAOhH,WAC5BC,EAAoB6V,EAAQ9O,OAAO/G,kBACnCC,EAAY4V,EAAQ5V,UACpBE,EAAQZ,EAAO,KAAOsW,EAAQ1V,MAC9BC,EAAYyV,EAAQzV,UACpBC,EAAawV,EAAQxV,WACrBC,EAAqBuV,EAAQ9O,OAAOzG,oBAAqC,OAAfD,EAC1DH,EAAQ2V,EAEJzV,IAMIlB,EALCR,EAAQwX,QAKI,EAAAC,EAAO/V,UAAUlB,WAFjB,oBAMrB6D,EAzEJ,SAA0BrC,GACtB,IAAI0V,EAGJ,GADAA,EAAU,IAAIzV,EACVF,EAAYC,GACZ,OAAO0V,EAAQ7L,kBAAkB7J,EAn4ExB,GAs4Eb,GA38EJ,SAAsBA,GAClB,OAAOC,EAAcuP,WAAWrP,eAAeH,EAAKI,MA08EhDuV,CAAa3V,GACb,OAAO0V,EAAQtL,mBAAmBpK,EAAM1B,EAAW+B,SAz3E/C4B,GA43ER,MAAM,IAAIiC,MAAM,sBAAwBlE,EAAKI,MA6DpCwV,CAAiB5V,GAErBN,GAML0V,EAAO/S,EAAOwT,sBAAsB,CAChCC,KAAMX,EAAQW,KACdC,WAAYZ,EAAQG,gBAGpBH,EAAQa,eACRZ,EAAKa,IAAIC,iBAAiBf,EAAQzV,UACRyV,EAAQa,eAGlCb,EAAQI,kBACDH,EAGJA,EAAKa,IAAIpS,aAnBZuR,EAAO,CAAC3S,KAAMJ,EAAOwB,WAAYoS,IAAK,MAC/Bd,EAAQI,kBAAoBH,EAAOA,EAAK3S,OAuCvDzE,EAAQmY,eAAiB1X,EAAW0X,eACpCnY,EAAQM,WAAa0E,EAAa,GAAI1E,GACtCN,EAAQwX,SAAU,EAClBxX,EAAQ6B,cAAgBA,EACxB7B,EAAQ8B,gBAAkBA,EA/lF9B,I,uEChCQ,SAAW9B,GAAW,aAI5B,IAAIoY,EAAgB,CAClBC,EAAG,sNACHC,EAAG,+CACHC,EAAG,OACHC,OAAQ,yEACRC,WAAY,kBAKVC,EAAuB,8KAEvBC,EAAW,CACbL,EAAGI,EACH,UAAWA,EAAuB,iBAClCH,EAAGG,EAAuB,4CAGxBE,EAA4B,kBAS5BC,EAA+B,w6BAC/BC,EAA0B,kjBAE1BC,EAA0B,IAAI3T,OAAO,IAAMyT,EAA+B,KAC1EG,EAAqB,IAAI5T,OAAO,IAAMyT,EAA+BC,EAA0B,KAEnGD,EAA+BC,EAA0B,KASzD,IAAIG,EAA6B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK,MAGpyCC,EAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE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AS,WAAW,UAAU,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,UAAU,SAAS,WAAW,YAAY,SAAS,QAAQ,SAAS,UAAU,SAAS,UAAU,UAAU,YAAY,SAAS,OAAO,WAAW,UAAU,SAAS,SAAS,QAAQ,SAAS,WAAW,WAAW,WAAW,UAAU,SAAS,UAAU,QAAQ,WAAW,SAAS,UAAU,QAAQ,QAAQ,QAAQ,WAAW,UAAU,UAAU,SAAS,UAAU,QAAQ,UAAU,OAAO,UAAU,UAAU,YAAY,YAAY,SAAS,OAAO,UAAU,UAAU,UAAU,WAAW,YAAY,UAAU,SAAS,UAAU,WAAW,UAAU,cAAc,UAAU,UAAU,SAAS,aAAa,aAAa,WAAW,YAAY,QAAQ,QAAQ,SAAS,WAAW,SAAS,QAAQ,QAAQ,UAAU,SAAS,SAAS,SAAS,UAAU,UAAU,UAAU,SAAS,UAAU,WAAW,QAAQ,WAAW,UAAU,SAAS,SAAS,UAAU,WAAW,SAAS,WAAW,SAAS,UAAU,OAAO,SAAS,UAAU,QAAQ,SAAS,YAAY,WAAW,UAAU,aAAa,WAAW,SAAS,UAAU,WAAW,UAAU,WAAW,SAAS,WAAW,SAAS,UAAU,WAAW,SAAS,MAAM,WAAW,WAAW,QAAQ,SAAS,QAAQ,SAAS,UAAU,WAAW,WAAW,UAAU,YAAY,UAAU,WAAW,WAAW,YAAY,UAAU,SAAS,UAAU,WAAW,SAAS,UAAU,QAAQ,UAAU,cAAc,aAAa,YAAY,WAAW,YAAY,cAAc,aAAa,cAAc,WAAW,SAAS,WAAW,WAAW,UAAU,WAAW,OAAO,YAAY,WAAW,aAAa,WAAW,UAAU,WAAW,UAAU,QAAQ,SAAS,SAAS,QAAQ,UAAU,QAAQ,SAAS,SAAS,YAAY,UAAU,YAAY,SAAS,WAAW,SAAS,SAAS,UAAU,YAAY,OAAO,SAAS,SAAS,QAAQ,UAAU,WAAW,aAAa,WAAW,OAAO,SAAS,SAAS,UAAU,SAAS,QAAQ,SAAS,SAAS,SAAS,WAAW,WAAW,SAAS,SAAS,UAAU,QAAQ,WAAW,QAAQ,YAAY,SAAS,SAAS,SAAS,UAAU,WAAW,UAAU,YAAY,YAAY,UAAU,UAAU,WAAW,aAAa,WAAW,WAAW,aAAa,SAAS,WAAW,UAAU,UAAU,WAAW,QAAQ,UAAU,OAAO,UAAU,SAAS,UAAU,SAAS,OAAO,UAAU,SA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AAU,MAAO,UAAW,QAAS,UAAW,SAAU,SAAU,OAAQ,aAAc,UAAW,OAAQ,UAAW,OAAQ,SAAU,MAAO,QAAS,YAAa,YAAa,SAAU,SAAU,WAAY,UAAW,SAAU,OAAQ,SAAU,SAAU,SAAU,WAAY,SAAU,SAAU,YAAa,OAAQ,UAAW,OAAQ,UAAW,WAAY,UAAW,UAAW,SAAU,aAAc,WAAY,aAAc,WAAY,QAAS,QAAS,SAAU,QAAS,SAAU,UAAW,WAAY,SAAU,YAAa,QAAS,SAAU,SAAU,SAAU,UAAW,SAAU,SAAU,SAAU,OAAQ,MAAO,SAAU,QAAS,OAAQ,UAAW,UAAW,SAAU,QAAS,SAAU,UAAW,QAAS,SAAU,MAAO,UAAW,SAAU,SAAU,SAAU,SAAU,SAAU,UAAW,UAAW,QAAS,UAAW,UAAW,UAAW,UAAW,SAAU,SAAU,OAAQ,WAAY,UAAW,MAAO,QAAS,UAAW,OAAQ,OAAQ,UAAW,SAAU,OAAQ,WAAY,OAAQ,WAAY,UAAW,SAAU,UAAW,SAAU,UAAW,UAAW,SAAU,SAAU,SAAU,UAAW,WAAY,QAAS,QAAS,QAAS,YAAa,WAAY,OAAQ,UAAW,WAAY,QAAS,QAAS,OAAQ,SAAU,OAAQ,OAAQ,SAAU,SAAU,WAAY,SAAU,OAAQ,SAAU,QAAS,SAAU,WAAY,SAAU,QAAS,OAAQ,SAAU,QAAS,SAAU,UAAW,SAAU,SAAU,OAAQ,QAAS,OAAQ,SAAU,WAAY,QAAS,UAAW,QAAS,QAAS,SAAU,QAAS,YAAa,UAAW,SAAU,QAAS,QAAS,SAAU,SAAU,WAAY,QAAS,UAAW,WAAY,SAAU,UAAW,UAAW,SAAU,SAAU,YAAa,UAAW,SAAU,OAAQ,QAAS,SAAU,OAAQ,OAAQ,OAAQ,WAAY,SAAU,QAAS,SAAU,UAAW,UAAW,OAAQ,SAAU,UAAW,QAAS,SAAU,UAAW,UAAW,SAAU,OAAQ,QAAS,UAAW,SAAU,QAAS,SAAU,aAAc,WAAY,SAAU,UAAW,SAAU,OAAQ,UAAW,SAAU,SAAU,UAAW,SAAU,UAAW,UAAW,YAAa,QAAS,SAAU,WAAY,SAAU,OAAQ,SAAU,SAAU,UAAW,SAAU,SAAU,UAAW,UAAW,OAAQ,QAAS,QAAS,QAAS,UAAW,OAAQ,QAAS,UAAW,OAAQ,WAAY,WAAY,UAAW,U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AAW,WAAY,SAAU,UAAW,QAAS,SAAU,OAAQ,OAAQ,UAAW,aAAc,QAAS,UAAW,UAAW,UAAW,SAAU,YAAa,SAAU,UAAW,YAAa,aAAc,WAAY,aAAc,SAAU,UAAW,SAAU,SAAU,aAAc,WAAY,YAAa,cAAe,QAAS,aAAc,UAAW,UAAW,YAAa,UAAW,UAAW,WAAY,OAAQ,SAAU,SAAU,UAAW,SAAU,WAAY,UAAW,QAAS,UAAW,WAAY,QAAS,UAAW,WAAY,QAAS,UAAW,UAAW,SAAU,SAAU,WAAY,UAAW,WAAY,OAAQ,OAAQ,QAAS,WAAY,UAAW,YAAa,OAAQ,SAAU,YAAa,WAAY,UAAW,QAAS,OAAQ,SAAU,QAAS,WAAY,OAAQ,UAAW,YAAa,UAAW,SAAU,WAAY,YAAa,WAAY,OAAQ,OAAQ,SAAU,SAAU,SAAU,WAAY,UAAW,QAAS,UAAW,WAAY,SAAU,YAAa,UAAW,WAAY,UAAW,YAAa,UAAW,WAAY,aAAc,UAAW,UAAW,WAAY,QAAS,UAAW,OAAQ,SAAU,UAAW,UAAW,SAAU,SAAU,QAAS,UAAW,WAAY,UAAW,YAAa,WAAY,aAAc,OAAQ,SAAU,UAAW,UAAW,QAAS,WAAY,QAAS,UAAW,WAAY,UAAW,UAAW,YAAa,QAAS,SAAU,WAAY,WAAY,WAAY,SAAU,UAAW,WAAY,aAAc,cAAe,WAAY,aAAc,QAAS,UAAW,UAAW,WAAY,OAAQ,QAAS,QAAS,UAAW,WAAY,QAAS,SAAU,YAAa,UAAW,QAAS,WAAY,aAAc,OAAQ,YAAa,WAAY,QAAS,aAAc,UAAW,WAAY,UAAW,QAAS,UAAW,WAAY,OAAQ,WAAY,SAAU,SAAU,YAAa,QAAS,OAAQ,YAAa,YAAa,WAAY,UAAW,YAAa,SAAU,UAAW,QAAS,QAAS,UAAW,QAAS,YAAa,OAAQ,UAAW,UAAW,QAAS,UAAW,UAAW,WAAY,UAAW,QAAS,SAAU,WAAY,QAAS,YAAa,YAAa,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,WAAY,UAAW,SAAU,UAAW,OAAQ,WAAY,QAAS,UAAW,QAAS,UAAW,WAAY,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,UAAW,YAAa,UAAW,YAAa,cAAe,QAAS,UAAW,SAAU,OAAQ,QAAS,QAAS,UAAW,UAAW,U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U,WAAW,WAAW,QAAQ,MAAM,OAAO,SAAS,MAAM,SAAS,OAAO,WAAW,OAAO,WAAW,UAAU,UAAU,OAAO,SAAS,OAAO,SAAS,UAAU,QAAQ,OAAO,QAAQ,QAAQ,OAAO,QAAQ,QAAQ,YAAY,UAAU,OAAO,QAAQ,OAAO,SAAS,SAAS,UAAU,UAAU,SAAS,UAAU,OAAO,OAAO,OAAO,QAAQ,QAAQ,OAAO,QAAQ,UAAU,QAAQ,QAAQ,OAAO,UAAU,UAAU,UAAU,SAAS,YAAY,SAAS,SAAS,OAAO,UAAU,aAAa,OAAO,UAAU,OAAO,OAAO,OAAO,QAAQ,QAAQ,YAAY,QAAQ,UAAU,SAAS,SAAS,QAAQ,YAAY,WAAW,OAAO,QAAQ,OAAO,UAAU,SAAS,WAAW,WAAW,QAAQ,SAAS,WAAW,QAAQ,UAAU,SAAS,SAAS,UAAU,WAAW,SAAS,UAAU,UAAU,OAAO,WAAW,WAAW,UAAU,UAAU,QAAQ,QAAQ,UAAU,SAAS,UAAU,WAAW,SAAS,QAAQ,UAAU,SAAS,SAAS,aAAa,OAAO,QAAQ,MAAM,YAAY,UAAU,SAAS,UAAU,OAAO,QAAQ,YAAY,aAAa,UAAU,SAAS,UAAU,UAAU,SAAS,SAAS,SAAS,SAAS,SAAS,WAAW,YAAY,OAAO,QAAQ,UAAU,WAAW,QAAQ,SAAS,QAAQ,UAAU,SAAS,WAAW,UAAU,aAAa,QAAQ,UAAU,SAAS,OAAO,UAAU,OAAO,YAAY,WAAW,OAAO,OAAO,QAAQ,YAAY,OAAO,SAAS,SAAS,WAAW,SAAS,QAAQ,SAAS,YAAY,SAAS,QAAQ,SAAS,UAAU,SAAS,QAAQ,WAAW,UAAU,UAAU,UAAU,YAAY,OAAO,SAAS,SAAS,QAAQ,UAAU,UAAU,OAAO,UAAU,SAAS,YAAY,QAAQ,WAAW,SAAS,WAAW,UAAU,UAAU,WAAW,UAAU,UAAU,SAAS,YAAY,SAAS,YAAY,OAAO,QAAQ,SAAS,UAAU,SAAS,SAAS,YAAY,UAAU,SAAS,SAAS,SAAS,OAAO,SAAS,UAAU,OAAO,QAAQ,SAAS,WAAW,YAAY,UAAU,OAAO,UAAU,QAAQ,SAAS,UAAU,SAAS,SAAS,aAAa,OAAO,YAAY,UAAU,UAAU,OAAO,QAAQ,QAAQ,SAAS,OAAO,OAAO,SAAS,QAAQ,UAAU,OAAO,SAA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O,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,KAAM,CAACA,KAAM,MAAO,CAACA,KAAM,MAAO,CAACA,KAAM,MAA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mBACP,CAACA,KAAM,wBACP,CAACA,KAAM,cACP,CAACA,KAAM,iBACP,CAACA,KAAM,6BACP,CAACA,KAAM,oBACP,CAACA,KAAM,SACP,CAACA,KAAM,YACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,eACP,CAACA,KAAM,iBACP,CAACA,KAAM,oBACP,CAACA,KAAM,sBACP,CAACA,KAAM,iBACP,CAACA,KAAM,WACP,CAACA,KAAM,cACP,CAACA,KAAM,gBACP,CAACA,KAAM,SACP,CAACA,KAAM,cACP,CAACA,KAAM,SACP,CAACA,KAAM,UACP,CAACA,KAAM,yBACP,CAACA,KAAM,UACP,CAACA,KAAM,gBACP,CAACA,KAAM,4BACP,CAACA,KAAM,eACP,CAACA,KAAM,cACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,QACP,CAACA,KAAM,cACP,CAACA,KAAM,mBACP,CAACA,KAAM,kBACP,CAACA,KAAM,sBACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,UACP,CAACA,KAAM,aACP,CAACA,KAAM,cACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,aACP,CAACA,KAAM,QACP,CAACA,KAAM,iBACP,CAACA,KAAM,mBACP,CAACA,KAAM,QACP,CAACA,KAAM,cACP,CAACA,KAAM,aACP,CAACA,KAAM,kBACP,CAACA,KAAM,gBACP,CAACA,KAAM,WACP,CAACA,KAAM,SACP,CAACA,KAAM,UACP,CAACA,KAAM,cACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,2BACP,CAACA,KAAM,sBACP,CAACA,KAAM,kBACP,CAACA,KAAM,mBACP,CAACA,KAAM,oBACP,CAACA,KAAM,kBACP,CAACA,KAAM,cACP,CAACA,KAAM,mBACP,CAACA,KAAM,eACP,CAACA,KAAM,iBACP,CAACA,KAAM,qBACP,CAACA,KAAM,gBACP,CAACA,KAAM,YACP,CAACA,KAAM,SACP,CAACA,KAAM,cACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,wBACP,CAACA,KAAM,WACP,CAACA,KAAM,oBACP,CAACA,KAAM,cACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,mBACP,CAACA,KAAM,yBACP,CAACA,KAAM,mBACP,CAACA,KAAM,eACP,CAACA,KAAM,mBACP,CAACA,KAAM,iBACP,CAACA,KAAM,iBACP,CAACA,KAAM,oBACP,CAACA,KAAM,kBACP,CAACA,KAAM,eACP,CAACA,KAAM,WACP,CAACA,KAAM,UACP,CAACA,KAAM,WACP,CAACA,KAAM,sBACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,iBACP,CAACA,KAAM,cACP,CAACA,KAAM,gBACP,CAACA,KAAM,kBACP,CAACA,KAAM,kBACP,CAACA,KAAM,gBACP,CAACA,KAAM,iBACP,CAACA,KAAM,eACP,CAACA,KAAM,kBACP,CAACA,KAAM,iBACP,CAACA,KAAM,aACP,CAACA,KAAM,0BACP,CAACA,KAAM,aACP,CAACA,KAAM,kBACP,CAACA,KAAM,WACP,CAACA,KAAM,UAEfkuD,UAAW,CACP,GAAM,CACF,CAACluD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,mBAAoBymD,aAAc,MACzC,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CAACzmD,KAAM,gBAAiBymD,aAAc,MACtC,CAACzmD,KAAM,4BAA6BymD,aAAc,MAClD,CAACzmD,KAAM,cAAeymD,aAAc,MACpC,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,uBAAwBymD,aAAc,MAC7C,CAACzmD,KAAM,SAAUymD,aAAc,MAC/B,CAACzmD,KAAM,eAAgBymD,aAAc,MAKrC,CAACzmD,KAAM,wBAAyBymD,aAAc,MAC9C,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,QAASymD,aAAc,OAElC,GAAM,CACF,CAAEzmD,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,cAAeymD,aAAc,KAAM7oD,KAAM,GACjD,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,GAC3C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,GAC1C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,IAC1C,CAAEoC,KAAM,wBAAyBymD,aAAc,KAAM7oD,KAAM,IAC3D,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,aAAcymD,aAAc,KAAM7oD,KAAM,IAChD,CAAEoC,KAAM,oBAAqBymD,aAAc,KAAM7oD,KAAM,IACvD,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,IAC1C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,KAC7C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,GAC3C,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,IAC1C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,eAAgBymD,aAAc,KAAM7oD,KAAM,IAClD,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,GAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,IAC1C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,kBAAmBymD,aAAc,KAAM7oD,KAAM,IACrD,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,GAC5C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,eAAgBymD,aAAc,KAAM7oD,KAAM,IAClD,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,OAAQymD,aAAc,KAAM7oD,KAAM,IAC1C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,YAAaymD,aAAc,KAAM7oD,KAAM,IAC/C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,KAC3C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,kBAAmBymD,aAAc,KAAM7oD,KAAM,IACrD,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,IACnD,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,OAAQymD,aAAc,OAAQ7oD,KAAM,IAC5C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,GAC5C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,GAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,QAASymD,aAAc,KAAM7oD,KAAM,IAC3C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,IAC9C,CAAEoC,KAAM,WAAYymD,aAAc,KAAM7oD,KAAM,GAC9C,CAAEoC,KAAM,SAAUymD,aAAc,KAAM7oD,KAAM,IAC5C,CAAEoC,KAAM,gBAAiBymD,aAAc,KAAM7oD,KAAM,KACnD,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,IAC7C,CAAEoC,KAAM,UAAWymD,aAAc,KAAM7oD,KAAM,MAKrD8pD,cAAe,CACZ,CAAC1nD,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,eACP,CAACA,KAAM,YACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,eACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,eACP,CAACA,KAAM,aACP,CAACA,KAAM,aACP,CAACA,KAAM,YACP,CAACA,KAAM,cACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,aACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,aACP,CAACA,KAAM,eACP,CAACA,KAAM,YACP,CAACA,KAAM,gBACP,CAACA,KAAM,mBACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,eACP,CAACA,KAAM,YACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,SACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,SACP,CAACA,KAAM,iBACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,sBACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,YACP,CAACA,KAAM,SACP,CAACA,KAAM,aACP,CAACA,KAAM,cACP,CAACA,KAAM,mBACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,iBACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,cACP,CAACA,KAAM,aACP,CAACA,KAAM,UACP,CAACA,KAAM,cACP,CAACA,KAAM,WACP,CAACA,KAAM,SACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,eACP,CAACA,KAAM,UACP,CAACA,KAAM,wBACP,CAACA,KAAM,WACP,CAACA,KAAM,UACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,mBACP,CAACA,KAAM,cACP,CAACA,KAAM,gBACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,WACP,CAACA,KAAM,eACP,CAACA,KAAM,eACP,CAACA,KAAM,aACP,CAACA,KAAM,WACP,CAACA,KAAM,eACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,iBACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,YACP,CAACA,KAAM,gBACP,CAACA,KAAM,kBACP,CAACA,KAAM,aACP,CAACA,KAAM,SACP,CAACA,KAAM,aACP,CAACA,KAAM,WACP,CAACA,KAAM,cACP,CAACA,KAAM,qBACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,cACP,CAACA,KAAM,UACP,CAACA,KAAM,UACP,CAACA,KAAM,WACP,CAACA,KAAM,WACP,CAACA,KAAM,gBACP,CAACA,KAAM,cACP,CAACA,KAAM,UACP,CAACA,KAAM,gBACP,CAACA,KAAM,cACP,CAACA,KAAM,SACP,CAACA,KAAM,YACP,CAACA,KAAM,cACP,CAACA,KAAM,WACP,CAACA,KAAM,eACP,CAACA,KAAM,kBACP,CAACA,KAAM,eACP,CAACA,KAAM,aACP,CAACA,KAAM,aACP,CAACA,KAAM,oBACP,CAACA,KAAM,UACP,CAACA,KAAM,iBACP,CAACA,KAAM,gBACP,CAACA,KAAM,WACP,CAACA,KAAM,cACP,CAACA,KAAM,YACP,CAACA,KAAM,aACP,CAACA,KAAM,SACP,CAACA,KAAM,WACP,CAACA,KAAM,SACP,CAACA,KAAM,UACP,CAACA,KAAM,aACP,CAACA,KAAM,SACP,CAACA,KAAM,aACP,CAACA,KAAM,QACP,CAACA,KAAM,YACP,CAACA,KAAM,UACP,CAACA,KAAM,6BACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,WACP,CAACA,KAAM,aACP,CAACA,KAAM,YACP,CAACA,KAAM,eACP,CAACA,KAAM,aACP,CAACA,KAAM,cACP,CAACA,KAAM,QACP,CAACA,KAAM,WACP,CAACA,KAAM,UACP,CAACA,KAAM,aAGVg1D,iBAAkB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAIFC,eAAgB,CACd,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WACA,cACA,WACA,cACA,SACA,SACA,SACA,SACA,WACA,cACA,WACA,cACA,WACA,cACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,UACA,aACA,QACA,QACA,UACA,aACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,UACA,aACA,QACA,QACA,iBACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,cACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,aACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,QACA,UACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,QACA,UACA,aACA,aACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,UACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,aACA,aACA,aACA,UACA,aACA,aACA,aACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,aACA,QACA,QACA,QACA,UACA,aACA,UACA,aACA,UACA,aACA,QACA,SACA,QACA,QACA,UACA,aACA,aACA,aACA,aACA,UACA,aACA,aACA,aACA,SAGF5G,iBAAkB,CACd,CAACruD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,SAAUymD,aAAc,MAC/B,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CAACzmD,KAAM,aAAcymD,aAAc,MACnC,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CAACzmD,KAAM,cAAeymD,aAAc,MACpC,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CAACzmD,KAAM,uBAAwBymD,aAAc,MAC7C,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,SAAUymD,aAAc,MAC/B,CAACzmD,KAAM,QAASymD,aAAc,MAC9B,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CAACzmD,KAAM,UAAWymD,aAAc,MAChC,CAACzmD,KAAM,OAAQymD,aAAc,MAC7B,CAACzmD,KAAM,SAAUymD,aAAc,MAC/B,CAACzmD,KAAM,WAAYymD,aAAc,MACjC,CA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A,qBACA,uBACA,sBACA,wCACA,0BACA,eACA,sBACA,kBACA,iCACA,4BACA,2BACA,0BACA,qBACA,eACA,gCACA,aACA,oBACA,2BACA,uBACA,gBACA,kCACA,mBACA,iBACA,aACA,6BACA,qBACA,cACA,sBACA,4BACA,mBACA,8BACA,qCACA,uBACA,wBACA,oBACA,uBACA,6BACA,4BACA,mBACA,kCACA,yBACA,wBACA,gCACA,yBACA,aACA,0BACA,wBACA,aACA,sBACA,8BACA,0BACA,qBACA,8BACA,4BACA,iBACA,sBACA,4BACA,iCACA,0BACA,qBACA,qBACA,4BACA,sBACA,kBACA,gCACA,uBACA,gCACA,oBACA,8BACA,+BACA,kBACA,2BACA,2BACA,wBACA,qBACA,gDACA,8BACA,2CACA,4BACA,gCACA,2BACA,aACA,+BACA,gBACA,oBACA,8BACA,uBACA,mBACA,qBACA,6BACA,8BACA,mBACA,kBACA,YACA,4BACA,iBACA,eACA,oCACA,eACA,kBACA,iBACA,sBACA,4BACA,uBACA,wBACA,8BACA,6BACA,sBACA,qCACA,aACA,cACA,aACA,6BACA,gBACA,eACA,2BACA,qBACA,iBACA,8BACA,uBACA,oCACA,iBACA,YACA,mBACA,WACA,gBACA,6BACA,wBACA,yBACA,gBACA,gBACA,gBACA,2BACA,wBACA,gCACA,yBACA,yCACA,0BACA,kBACA,2BACA,qBACA,mBACA,gBACA,aACA,eACA,iCACA,2BACA,4BACA,kCACA,4BACA,kBACA,uBACA,yBACA,2BACA,mCACA,eACA,yBACA,qCACA,4BACA,0BACA,YACA,iBACA,6BACA,iBACA,YACA,eACA,YACA,wBACA,iCACA,mBACA,mBACA,sBACA,0BACA,cACA,qBACA,kBACA,qBACA,4BACA,eACA,uBACA,qBACA,2BACA,yBACA,mBACA,uBACA,iBACA,qBACA,0BACA,6BACA,2BACA,2BACA,qBACA,0BACA,uBACA,4BACA,WACA,WACA,iCACA,oBACA,iBACA,sCACA,mBACA,wBACA,+BACA,UACA,cACA,sBACA,uBACA,kBACA,2BACA,wBACA,oBACA,sCACA,cACA,uBACA,WACA,sBACA,uBACA,gCACA,wBACA,kBACA,mBACA,uBACA,iCACA,0BACA,0BACA,wBACA,cACA,sBACA,oCACA,sBACA,eACA,2BACA,iCACA,sCACA,8BACA,qBACA,qBACA,8CACA,uBACA,yBACA,6CACA,4BACA,2BACA,sBACA,mCACA,wBACA,4BACA,cACA,mCACA,sBACA,iCACA,mBACA,kCACA,iCACA,oBACA,cACA,uCACA,4BACA,6BACA,yBACA,qBACA,gBACA,aACA,WACA,2BACA,kBACA,gBACA,gBACA,2BACA,sBACA,sBACA,iBACA,0BACA,sCACA,oBACA,sCACA,oBACA,WACA,eACA,mBACA,sCACA,eACA,4BACA,+BACA,2BACA,oBACA,6BACA,+BACA,cACA,+BACA,wBACA,eACA,sBACA,2BACA,8BACA,mBACA,iBACA,4BACA,oCACA,2BACA,uBACA,qCACA,oCACA,gCACA,mCACA,2BACA,6BACA,0BACA,yBACA,0BACA,sBACA,iBACA,sBACA,qBACA,kBACA,uBACA,uCACA,8BACA,eACA,eACA,yCACA,cACA,oCACA,WACA,oCACA,kBACA,mBACA,oBACA,gBACA,qBACA,sBACA,0BACA,iBACA,8BACA,sBACA,gCACA,kBACA,sBACA,+BACA,qBACA,sBACA,gCACA,6BACA,iBACA,eACA,qBACA,cACA,6BACA,eACA,kBACA,6BACA,2BACA,kBACA,yBACA,kBACA,oBACA,oBACA,2BACA,sCACA,oBACA,0BACA,sCACA,kCACA,wCACA,0CACA,uCACA,cACA,gBACA,sBACA,aACA,oCACA,iBACA,0BACA,qBACA,uBACA,gCACA,qBACA,sBACA,uCACA,oBACA,wBACA,2BACA,UACA,kBACA,mBACA,sBACA,cACA,kBACA,yBACA,UACA,gBACA,6BACA,6BACA,0BACA,yBACA,eACA,qBACA,eACA,uBACA,aACA,mCACA,6CACA,2BACA,mCACA,kBACA,uBACA,gBACA,mBACA,kBACA,uBACA,gCACA,qBACA,4BACA,8BACA,qBACA,6BACA,eACA,+BACA,wBACA,qBACA,qBACA,8BACA,oBACA,gCACA,gCACA,wBACA,wBACA,sBACA,2BACA,2BACA,4BACA,yBACA,gCACA,iBACA,wBACA,kBACA,gBACA,2BACA,2BACA,qBACA,8BACA,kCACA,0BACA,gCACA,iCACA,oBACA,wBACA,cACA,cACA,iCACA,qBACA,cACA,oCACA,qBACA,mBACA,mCACA,yBACA,iCACA,uBACA,yBACA,uBACA,2BACA,2BACA,iBACA,+BACA,2BACA,oBACA,8BACA,2BACA,wBACA,kBACA,eACA,uBACA,8BACA,aACA,uBACA,yBACA,wBACA,gBACA,4BACA,qBACA,yBACA,qBACA,sBACA,mCACA,gBACA,iBACA,yBACA,wBACA,uBACA,qBACA,sBACA,0CACA,4BACA,uBACA,2DACA,qCACA,kCACA,qCACA,kBACA,+BACA,mCACA,yBACA,wBACA,6BACA,4BACA,YACA,WACA,eACA,mBACA,gBACA,+BACA,aACA,gCACA,6BACA,6BACA,+BACA,2BACA,uBACA,QACA,mBACA,aACA,cACA,UACA,0BACA,4BACA,mBACA,oBACA,gBACA,kBACA,yBACA,sBACA,mCACA,aACA,eACA,eACA,gBACA,wBACA,YACA,cACA,qBACA,0BACA,qBACA,gBACA,qBACA,0BACA,aACA,gCACA,6BACA,cACA,YACA,aACA,gCACA,wBACA,uBACA,cACA,yBACA,mBACA,gCACA,cACA,uBACA,iBACA,6BACA,6BACA,4BACA,qBACA,eACA,6BACA,cACA,kBACA,qBACA,6BACA,2BACA,eACA,aACA,+BACA,iBACA,gBACA,qBACA,+BACA,wBACA,4BACA,wBACA,sBACA,8BACA,6BACA,oCACA,oBACA,wBACA,kCACA,oCACA,oBACA,0BACA,yBACA,eACA,cACA,gBACA,qBACA,WACA,cACA,2BACA,eACA,0BACA,eACA,iCACA,uBACA,2BACA,sBACA,0BACA,uBACA,4BACA,4BACA,4BACA,wBACA,uCACA,4BACA,oBACA,kBACA,eACA,uBACA,eACA,yBACA,eACA,0BACA,gCACA,gCACA,gCACA,0BACA,+BACA,mBACA,mCACA,4BACA,0BACA,oBACA,gCACA,sBACA,oBACA,wBACA,aACA,uBACA,gBACA,yBACA,cACA,iCACA,eACA,0BACA,uBACA,kBACA,kBACA,WACA,eACA,mBACA,mBACA,oBACA,sBACA,cACA,6BACA,cACA,WACA,kBACA,gBACA,yBACA,cACA,uBACA,kBACA,mBACA,kCACA,yBACA,iBACA,gBACA,kBACA,qBACA,gBACA,aACA,8BACA,mBACA,iBACA,2BACA,oBACA,qBACA,6BACA,2BACA,uBACA,uBACA,2BACA,kBACA,0BACA,uBACA,+BACA,cACA,iBACA,cACA,wBACA,sBACA,mBACA,yBACA,mBACA,wBACA,qBACA,yBACA,qBACA,gBACA,uBACA,eACA,WACA,uBACA,gBACA,qBACA,+BACA,yBACA,gBACA,cACA,iBACA,0CACA,qBACA,6BACA,gBACA,iBACA,mCACA,oCACA,yBACA,iCACA,eACA,4BACA,wBACA,4BACA,cACA,qBACA,gBACA,iCACA,0BACA,0BACA,aACA,gBACA,eACA,wBACA,kBACA,4BACA,gBACA,wBACA,+BACA,eACA,oBACA,+BACA,0BACA,eACA,aACA,yBACA,wBACA,iCACA,cACA,8BACA,6BACA,eACA,iBACA,oBACA,oBACA,oBACA,wBACA,eACA,wBACA,kBACA,kCACA,qBACA,iBACA,gCACA,sBACA,kBACA,yBACA,yBACA,qCACA,sBACA,UACA,WACA,kBACA,eACA,uBACA,kBACA,kBACA,8BACA,4BACA,sBACA,wBACA,qBACA,wBACA,iCACA,4BACA,qBACA,wBACA,kCACA,kCACA,cACA,wBACA,gCACA,gCACA,qBACA,YACA,4BACA,kBACA,uBACA,kBACA,kBACA,2BACA,kBACA,UACA,4BACA,sBACA,mCACA,0BACA,sBACA,+BACA,6BACA,iBACA,aACA,YACA,uBACA,6BACA,sBACA,gCACA,2BACA,2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ACR,IAAO,CACL,iBAGJ,CACE,KAAQ,wBACR,KAAQ,MACR,OAAU,GACV,OAAS,EACT,KAAQ,sBACR,IAAO,CACL,cACA,iBACA,eACA,uBAGJ,CACE,KAAQ,0BACR,KAAQ,MACR,OAAU,GACV,OAAS,EACT,KAAQ,8CAEV,CACE,KAAQ,sBACR,KAAQ,MACR,OAAU,GACV,OAAS,EACT,KAAQ,yBACR,IAAO,CACL,aACA,oBACA,kBACA,sBAGJ,CACE,KAAQ,sBACR,KAAQ,MACR,OAAU,GACV,OAAS,EACT,KAAQ,oBACR,IAAO,CACL,kBAKdtL,WAAY,CACR,gBACA,gBACA,aACA,oBACA,QACA,UACA,sBACA,uBACA,yBACA,gBACA,uBACA,qBACA,QACA,yBACA,yBACA,yBACA,iBACA,iBACA,YACA,YACA,eACA,SACA,aACA,iBACA,UACA,SACA,QACA,SACA,sBACA,mBACA,YACA,0BACA,sBACA,0BACA,cACA,SACA,mBACA,sBACA,qBACA,mBACA,mBACA,mBACA,QACA,sBACA,mBACA,eACA,mBACA,0BACA,0BACA,OACA,oBACA,UACA,qBACA,wBACA,eACA,kBACA,uBACA,eACA,iBACA,iBACA,8BACA,sBACA,qBACA,cACA,mBACA,oBACA,kCACA,0BACA,0BACA,uBACA,sBACA,wBACA,oBACA,oBACA,+BACA,wBACA,uBACA,aACA,6BACA,yBACA,qBACA,aACA,oBACA,sBACA,gBACA,iBACA,kBACA,4BACA,2BACA,2BACA,eACA,SACA,wBACA,mBACA,sBACA,UACA,WACA,kBACA,oBACA,YACA,sBACA,mBACA,YACA,kBACA,WACA,uBACA,oBACA,YACA,yBACA,SACA,sBACA,sBACA,2BACA,uBACA,qBACA,mBACA,sBACA,eACA,wBACA,yBACA,yBACA,2BACA,iBACA,YACA,sBACA,qBACA,sBACA,qBACA,mBACA,yBACA,uBACA,oBACA,gBACA,4BACA,oBACA,oBACA,YACA,cACA,sBACA,qBACA,mBACA,kBACA,kBACA,2BACA,uBACA,sBACA,uBACA,kBACA,qBACA,mBACA,cACA,kBACA,YACA,kBACA,uBACA,gBACA,uBACA,oBACA,eACA,mBACA,iBACA,0BACA,sBACA,mBACA,+BACA,kBACA,iBACA,iBACA,yBACA,gBACA,0BACA,WACA,sBACA,sBACA,uBACA,eACA,qBACA,qBACA,6BACA,sBACA,wBACA,uBACA,cACA,eACA,oBACA,qBACA,eACA,qBACA,qBACA,UACA,wBACA,aACA,mBACA,kBACA,0BACA,wBACA,iBACA,iBACA,sBACA,0BACA,SACA,yBACA,8BACA,kBACA,kBACA,kBACA,sBACA,eACA,WACA,oBACA,sBACA,wBACA,wBACA,mBACA,yBACA,mBACA,mBACA,sBACA,qBACA,oBACA,gBACA,sBACA,WACA,sBACA,cACA,mBACA,oBACA,qBACA,0BACA,eACA,4BACA,gBACA,iBACA,cACA,0BACA,sBACA,WACA,wBACA,qBACA,mBACA,sBACA,WACA,mBACA,qBACA,eACA,wBACA,yBACA,gBACA,iBACA,qBACA,+BACA,qBACA,cACA,qCACA,0BACA,YACA,cACA,kBACA,qBACA,uBACA,qBACA,aACA,eACA,qBACA,YACA,sBACA,YACA,oBACA,aACA,oBACA,sBACA,aACA,oBACA,uBACA,oBACA,YACA,iBACA,uBACA,oBACA,mBACA,WACA,kBACA,mBACA,sBACA,qBACA,uBACA,qBACA,YACA,mBACA,kBACA,kBACA,mBACA,uBACA,yBACA,gBACA,YACA,mBACA,sBACA,+BACA,2BACA,4BACA,oBACA,oBACA,qBACA,wBACA,YACA,2BACA,6BACA,mBACA,2BACA,qBACA,WACA,sBACA,qBACA,uBACA,eACA,kBACA,iBACA,gBACA,0BACA,uBACA,gBACA,kBACA,sBACA,wBACA,oBACA,qBACA,sBACA,oBACA,oBACA,iBACA,SACA,kBACA,yBACA,kBACA,mBACA,gBACA,cACA,qBACA,oBACA,yBACA,iBACA,yBACA,4BACA,4BACA,qBACA,gBACA,uBACA,eACA,gBACA,8BACA,8BACA,8BACA,cACA,WACA,sBACA,iB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AAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAEh0LmU,SAAU,CACN,OACA,MACA,WACA,QACA,UACA,SAIJC,EAAmBl3D,OAAOmG,UAAUnJ,eACpCm6D,EAAUn3D,OAAOyiB,MAAQ,SAAStI,GACpC,IAAIjb,EAAS,GACb,IAAK,IAAIU,KAAOua,EACV+8C,EAAiB78C,KAAKF,EAAKva,IAC7BV,EAAOuF,KAAK7E,GAIhB,OAAOV,GAoBT,SAASk4D,EAAWt1D,EAAQu1D,GACxB,IAAI/1D,EAAUD,MAAMC,QAAQQ,GACxBpC,EAAS23D,IAAY/1D,EAAU,IAAID,MAAMS,EAAOzC,QAAU,IAQ9D,OANIiC,EAVR,SAAoBQ,EAAQpC,GAC1B,IAAK,IAAIwB,EAAI,EAAGw0B,EAAI5zB,EAAOzC,OAAQ6B,EAAIw0B,EAAGx0B,IACxCxB,EAAOwB,GAAKY,EAAOZ,GASjBo2D,CAAWx1D,EAAQpC,GArBzB,SAAqBoC,EAAQpC,GAI3B,IAHA,IACIE,EADA6iB,EAAO00C,EAAOr1D,GAGTZ,EAAI,EAAGw0B,EAAIjT,EAAKpjB,OAAQ6B,EAAIw0B,EAAGx0B,IAEtCxB,EADAE,EAAM6iB,EAAKvhB,IACGY,EAAOlC,IAAQF,EAAOE,GAiBlC23D,CAAYz1D,EAAQpC,GAGfA,EAIXsgD,EAAO75C,UAAUwZ,IAAM,SAAUje,GAC7B,OAAO01D,EAAW/jC,EAAK3xB,KAI3Bs+C,EAAO75C,UAAUqxD,YAAc,SAASxlD,IAKpCA,EAAUyuC,EAAYzuC,IACVqzC,YACRrzC,EAAQqzC,UAAarzC,EAAQylD,eAAiB,IAAM,KAGxD,IAAIC,EAAS,mBAQb,OANI1lD,EAAQylD,eAGFjxD,KAAKmU,EAAEnU,KAAKlB,OAAQ,EAAG,CAAEk8C,KAAMkW,EAAUr4D,OAAO,IAAK2C,KAAKgQ,EAAQqzC,WAFlE7+C,KAAKmU,EAAEnU,KAAKlB,OAAQ,EAAG,CAAEk8C,KAAMkW,EAAUr4D,OAAO,IAAK2C,KAAKgQ,EAAQqzC,YAQhFrF,EAAO75C,UAAUwxD,OAAS,SAAU3lD,GAkBhC,GAfA0uC,GAFA1uC,EAAUyuC,EAAYzuC,EAAS,CAAC4lD,KAAO,EAAGC,IAAM,EAAGrW,KAAO,MAG9CA,KAAKxiB,cAAgB39B,MAC7B,kDAEJq/C,EAC4B,iBAAjB1uC,EAAQ4lD,KACf,wCAEJlX,EAC2B,iBAAhB1uC,EAAQ6lD,IACf,qDAKA7lD,EAAQwvC,KAAKniD,OAAS,EACtB,OAAOmH,KAAKsxD,YAAY9lD,GAI5B,IAAIyjB,EAAGyoB,EAAG7G,EACNugB,EAAO5lD,EAAQ4lD,KACfC,EAAM7lD,EAAQ6lD,IAElB,GAKIpiC,GAHAyoB,EAAoB,EAAhB13C,KAAK05C,SAAe,GAGhBhC,GAFR7G,EAAoB,EAAhB7wC,KAAK05C,SAAe,GAER7I,QACX5hB,GAAK,GAMd,OAAOoiC,GAHA3Z,EAAIhuC,KAAK+oC,MAAM,EAAI/oC,KAAKk5B,IAAI3T,GAAKA,IAGpBmiC,GAGxB5X,EAAO75C,UAAU2xD,YAAc,SAAS9lD,GACpC,IAAI+lD,EAAqB,EACzB,EAAG,CACC,IAAIxQ,EAAMr3C,KAAKopC,MAAM9yC,KAAKmxD,OAAO,CAAEC,KAAM5lD,EAAQ4lD,KAAMC,IAAK7lD,EAAQ6lD,OACpE,GAAItQ,EAAMv1C,EAAQwvC,KAAKniD,QAAUkoD,GAAO,EACpC,OAAOv1C,EAAQwvC,KAAK+F,GAEpBwQ,UAEAA,EAAqB,KAE7B,MAAM,IAAIrsB,WAAW,6FAGzBsU,EAAO75C,UAAU6xD,MAAQ,SAAUhmD,GAG/B,IAAIimD,EAAK,GACT,QAFAjmD,EAAUyuC,EAAYzuC,EAAS,CAACkmD,KAAO,OAEvBA,KAAKvW,eACrB,IAAK,OACL,IAAK,IACDsW,EAAK,IACL,MACJ,IAAK,OACL,IAAK,IACDA,EAAK,IACL,MACJ,QACIA,EAAKzxD,KAAKq4C,UAAU,CAAC2C,KAAM,OAI/B,OAAOyW,EAAKzxD,KAAKq4C,UAAU,CAACmD,OAAO,EAAMD,OAAQ,UACzCv7C,KAAKq4C,UAAU,CAACmD,OAAO,EAAMD,OAAQ,UACrCv7C,KAAKq4C,UAAU,CAACmD,OAAO,EAAMD,OAAQ,WAIjD/B,EAAO75C,UAAU8N,IAAM,SAAUvS,EAAMy2D,GACf,iBAATz2D,EACP2xB,EAAK3xB,GAAQy2D,EAEb9kC,EAAO+jC,EAAW11D,EAAM2xB,IAIhC2sB,EAAO75C,UAAUiyD,GAAK,SAAUpmD,GAC5B,OAAOxL,KAAKwxD,MAAMhmD,IAItBguC,EAAO75C,UAAUqgD,KAAO,WACpB,IAAI7rC,EAAInU,KAAKmU,EAAEnU,KAAK06C,QAAS,EAAG,CAAEnqB,IAAK,IACnCuvB,EAAK,EAAO,EAAL3rC,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,IAC9D2rC,EAAK,GAAMA,EAAK,KACR,KACJA,EAAK,GAET,IAAIC,EAAQ,EAAHD,EAAK,EAAO,EAAL3rC,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAAU,EAALA,EAAE,GAKnE,OAJA4rC,EAAK,GAAMA,EAAK,KACR,KACJA,EAAK,GAEF,GAAG5rC,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAG,SAAS2rC,EAAGC,GAG1EvG,EAAO75C,UAAUkyD,QAAU,WACvB,OAAO7xD,KAAKo7C,KAAKp7C,KAAKmZ,IAAI,cAK9BqgC,EAAO75C,UAAUm6C,iBAAmB,SAAUL,GAC1C,OAAO,IAAIqY,EAAgBrY,IAG/BD,EAAO75C,UAAUq6C,YAAc,WAC3B,OAAO,IAAI+X,GA8Cf,IAAID,EAAkB,SAAUrY,QACftwB,IAATswB,IAEAA,EAAO/vC,KAAKC,MAAMD,KAAKgwC,SAAShwC,KAAK49B,IAAI,GAAG,MAGhDtnC,KAAKgyD,EAAI,IACThyD,KAAKiyD,EAAI,IACTjyD,KAAKkyD,SAAW,WAChBlyD,KAAKmyD,WAAa,WAClBnyD,KAAKoyD,WAAa,WAElBpyD,KAAK65C,GAAK,IAAIh/C,MAAMmF,KAAKgyD,GACzBhyD,KAAKqyD,IAAMryD,KAAKgyD,EAAI,EAEpBhyD,KAAKsyD,aAAa7Y,IAItBqY,EAAgBnyD,UAAU2yD,aAAe,SAAUrjC,GAE/C,IADAjvB,KAAK65C,GAAG,GAAK5qB,IAAM,EACdjvB,KAAKqyD,IAAM,EAAGryD,KAAKqyD,IAAMryD,KAAKgyD,EAAGhyD,KAAKqyD,MACvCpjC,EAAIjvB,KAAK65C,GAAG75C,KAAKqyD,IAAM,GAAMryD,KAAK65C,GAAG75C,KAAKqyD,IAAM,KAAO,GACvDryD,KAAK65C,GAAG75C,KAAKqyD,MAAsC,aAAtB,WAAJpjC,KAAoB,KAAqB,IAAyB,YAAd,MAAJA,GAAgCjvB,KAAKqyD,IAK9GryD,KAAK65C,GAAG75C,KAAKqyD,QAAU,GAS/BP,EAAgBnyD,UAAU4yD,cAAgB,SAAUC,EAAUC,GAC1D,IAAkBjxC,EAAGyN,EAAjBv0B,EAAI,EAAGoC,EAAI,EAGf,IAFAkD,KAAKsyD,aAAa,UAClB9wC,EAAKxhB,KAAKgyD,EAAIS,EAAazyD,KAAKgyD,EAAIS,EAC7BjxC,EAAGA,IACNyN,EAAIjvB,KAAK65C,GAAGn/C,EAAI,GAAMsF,KAAK65C,GAAGn/C,EAAI,KAAO,GACzCsF,KAAK65C,GAAGn/C,IAAMsF,KAAK65C,GAAGn/C,IAAoC,UAAtB,WAAJu0B,KAAoB,KAAkB,IAA0B,SAAd,MAAJA,IAA+BujC,EAAS11D,GAAKA,EAC3HkD,KAAK65C,GAAGn/C,MAAQ,EAEhBoC,MADApC,GAESsF,KAAKgyD,IAAKhyD,KAAK65C,GAAG,GAAK75C,KAAK65C,GAAG75C,KAAKgyD,EAAI,GAAIt3D,EAAI,GACrDoC,GAAK21D,IAAc31D,EAAI,GAE/B,IAAK0kB,EAAIxhB,KAAKgyD,EAAI,EAAGxwC,EAAGA,IACpByN,EAAIjvB,KAAK65C,GAAGn/C,EAAI,GAAMsF,KAAK65C,GAAGn/C,EAAI,KAAO,GACzCsF,KAAK65C,GAAGn/C,IAAMsF,KAAK65C,GAAGn/C,IAAoC,aAAtB,WAAJu0B,KAAoB,KAAqB,IAAyB,YAAd,MAAJA,IAAiCv0B,EACjHsF,KAAK65C,GAAGn/C,MAAQ,IAChBA,GACSsF,KAAKgyD,IAAKhyD,KAAK65C,GAAG,GAAK75C,KAAK65C,GAAG75C,KAAKgyD,EAAI,GAAIt3D,EAAI,GAG7DsF,KAAK65C,GAAG,GAAK,YAIjBiY,EAAgBnyD,UAAU+yD,cAAgB,WACtC,IAAIhrB,EACAirB,EAAQ,IAAI93D,MAAM,EAAKmF,KAAKkyD,UAGhC,GAAIlyD,KAAKqyD,KAAOryD,KAAKgyD,EAAG,CACpB,IAAIY,EAKJ,IAHI5yD,KAAKqyD,MAAQryD,KAAKgyD,EAAI,GACtBhyD,KAAKsyD,aAAa,MAEjBM,EAAK,EAAGA,EAAK5yD,KAAKgyD,EAAIhyD,KAAKiyD,EAAGW,IAC/BlrB,EAAK1nC,KAAK65C,GAAG+Y,GAAI5yD,KAAKmyD,WAAanyD,KAAK65C,GAAG+Y,EAAK,GAAG5yD,KAAKoyD,WACxDpyD,KAAK65C,GAAG+Y,GAAM5yD,KAAK65C,GAAG+Y,EAAK5yD,KAAKiyD,GAAMvqB,IAAM,EAAKirB,EAAU,EAAJjrB,GAE3D,KAAMkrB,EAAK5yD,KAAKgyD,EAAI,EAAGY,IACnBlrB,EAAK1nC,KAAK65C,GAAG+Y,GAAI5yD,KAAKmyD,WAAanyD,KAAK65C,GAAG+Y,EAAK,GAAG5yD,KAAKoyD,WACxDpyD,KAAK65C,GAAG+Y,GAAM5yD,KAAK65C,GAAG+Y,GAAM5yD,KAAKiyD,EAAIjyD,KAAKgyD,IAAOtqB,IAAM,EAAKirB,EAAU,EAAJjrB,GAEtEA,EAAK1nC,KAAK65C,GAAG75C,KAAKgyD,EAAI,GAAGhyD,KAAKmyD,WAAanyD,KAAK65C,GAAG,GAAG75C,KAAKoyD,WAC3DpyD,KAAK65C,GAAG75C,KAAKgyD,EAAI,GAAKhyD,KAAK65C,GAAG75C,KAAKiyD,EAAI,GAAMvqB,IAAM,EAAKirB,EAAU,EAAJjrB,GAE9D1nC,KAAKqyD,IAAM,EAWf,OARA3qB,EAAI1nC,KAAK65C,GAAG75C,KAAKqyD,OAGjB3qB,GAAMA,IAAM,GACZA,GAAMA,GAAK,EAAK,WAChBA,GAAMA,GAAK,GAAM,YACjBA,GAAMA,IAAM,MAEC,GAIjBoqB,EAAgBnyD,UAAUkzD,cAAgB,WACtC,OAAQ7yD,KAAK0yD,kBAAoB,GAIrCZ,EAAgBnyD,UAAUmzD,cAAgB,WACtC,OAAO9yD,KAAK0yD,iBAAmB,EAAM,aAKzCZ,EAAgBnyD,UAAU+5C,OAAS,WAC/B,OAAO15C,KAAK0yD,iBAAmB,EAAM,aAKzCZ,EAAgBnyD,UAAUozD,cAAgB,WACtC,OAAQ/yD,KAAK0yD,gBAAkB,KAAQ,EAAM,aAKjDZ,EAAgBnyD,UAAUqzD,cAAgB,WAEtC,OAAY,UADJhzD,KAAK0yD,kBAAkB,IAAO1yD,KAAK0yD,kBAAkB,KAC9B,EAAM,mBAIzC,IAAIX,EAAa,aAEjBA,EAAWpyD,UAAUy6C,QAAU,QAM/B2X,EAAWpyD,UAAUszD,SAAW,SAAkBxrB,EAAGC,GACjD,IAAIwrB,GAAW,MAAJzrB,IAAmB,MAAJC,GAE1B,OADWD,GAAK,KAAOC,GAAK,KAAOwrB,GAAO,KAC3B,GAAa,MAANA,GAM1BnB,EAAWpyD,UAAUwzD,SAAW,SAAU16D,EAAK26D,GAC3C,OAAQ36D,GAAO26D,EAAQ36D,IAAS,GAAK26D,GAMzCrB,EAAWpyD,UAAU0zD,QAAU,SAAUzhB,EAAG1V,EAAGC,EAAGsL,EAAGxY,EAAG4iB,GACpD,OAAO7xC,KAAKizD,SAASjzD,KAAKmzD,SAASnzD,KAAKizD,SAASjzD,KAAKizD,SAAS/2B,EAAG0V,GAAI5xC,KAAKizD,SAASxrB,EAAGoK,IAAK5iB,GAAIkN,IAEpG41B,EAAWpyD,UAAU2zD,OAAS,SAAUp3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAGxY,EAAG4iB,GACtD,OAAO7xC,KAAKqzD,QAASl3B,EAAIhN,GAAQgN,EAAKpP,EAAImP,EAAGC,EAAGsL,EAAGxY,EAAG4iB,IAE1DkgB,EAAWpyD,UAAU4zD,OAAS,SAAUr3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAGxY,EAAG4iB,GACtD,OAAO7xC,KAAKqzD,QAASl3B,EAAIpP,EAAMoC,GAAMpC,EAAKmP,EAAGC,EAAGsL,EAAGxY,EAAG4iB,IAE1DkgB,EAAWpyD,UAAU6zD,OAAS,SAAUt3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAGxY,EAAG4iB,GACtD,OAAO7xC,KAAKqzD,QAAQl3B,EAAIhN,EAAIpC,EAAGmP,EAAGC,EAAGsL,EAAGxY,EAAG4iB,IAE/CkgB,EAAWpyD,UAAU8zD,OAAS,SAAUv3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAGxY,EAAG4iB,GACtD,OAAO7xC,KAAKqzD,QAAQlkC,GAAKgN,GAAMpP,GAAKmP,EAAGC,EAAGsL,EAAGxY,EAAG4iB,IAMpDkgB,EAAWpyD,UAAU+zD,SAAW,SAAUjsB,EAAG7uC,GAEzC6uC,EAAE7uC,GAAO,IAAM,KAASA,EAAM,GAC9B6uC,EAA8B,IAAzB7uC,EAAM,KAAQ,GAAM,IAAWA,EAEpC,IAAI8B,EAAGi5D,EAAMC,EAAMC,EAAMC,EACrB53B,EAAK,WACLC,GAAK,UACLhN,GAAK,WACLpC,EAAK,UAET,IAAKryB,EAAI,EAAGA,EAAI+sC,EAAE5uC,OAAQ6B,GAAK,GAC3Bi5D,EAAOz3B,EACP03B,EAAOz3B,EACP03B,EAAO1kC,EACP2kC,EAAO/mC,EAEPmP,EAAIl8B,KAAKszD,OAAOp3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,GAAU,GAAI,WAC5CqyB,EAAI/sB,KAAKszD,OAAOvmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,IAAK,WAC5Cy0B,EAAInvB,KAAKszD,OAAOnkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,GAAK,WAC5CyhC,EAAIn8B,KAAKszD,OAAOn3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,YAC5CwhC,EAAIl8B,KAAKszD,OAAOp3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,WAC5CqyB,EAAI/sB,KAAKszD,OAAOvmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,GAAK,YAC5Cy0B,EAAInvB,KAAKszD,OAAOnkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,IAAK,YAC5CyhC,EAAIn8B,KAAKszD,OAAOn3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,UAC5CwhC,EAAIl8B,KAAKszD,OAAOp3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,EAAI,YAC5CqyB,EAAI/sB,KAAKszD,OAAOvmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,IAAK,YAC5Cy0B,EAAInvB,KAAKszD,OAAOnkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,IAAK,OAC5CyhC,EAAIn8B,KAAKszD,OAAOn3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,IAAK,YAC5CwhC,EAAIl8B,KAAKszD,OAAOp3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAI,IAAM,EAAI,YAC5CqyB,EAAI/sB,KAAKszD,OAAOvmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAK,IAAK,UAC5Cy0B,EAAInvB,KAAKszD,OAAOnkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,IAAK,YAC5CyhC,EAAIn8B,KAAKszD,OAAOn3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,GAAK,YAE5CwhC,EAAIl8B,KAAKuzD,OAAOr3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,WAC5CqyB,EAAI/sB,KAAKuzD,OAAOxmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAK,GAAI,YAC5Cy0B,EAAInvB,KAAKuzD,OAAOpkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,GAAK,WAC5CyhC,EAAIn8B,KAAKuzD,OAAOp3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,GAAS,IAAK,WAC5CwhC,EAAIl8B,KAAKuzD,OAAOr3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,WAC5CqyB,EAAI/sB,KAAKuzD,OAAOxmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAM,EAAI,UAC5Cy0B,EAAInvB,KAAKuzD,OAAOpkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,IAAK,WAC5CyhC,EAAIn8B,KAAKuzD,OAAOp3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,WAC5CwhC,EAAIl8B,KAAKuzD,OAAOr3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,EAAI,WAC5CqyB,EAAI/sB,KAAKuzD,OAAOxmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAM,GAAI,YAC5Cy0B,EAAInvB,KAAKuzD,OAAOpkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,IAAK,WAC5CyhC,EAAIn8B,KAAKuzD,OAAOp3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,GAAK,YAC5CwhC,EAAIl8B,KAAKuzD,OAAOr3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAI,IAAM,GAAI,YAC5CqyB,EAAI/sB,KAAKuzD,OAAOxmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAK,GAAI,UAC5Cy0B,EAAInvB,KAAKuzD,OAAOpkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,GAAK,YAC5CyhC,EAAIn8B,KAAKuzD,OAAOp3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,IAAK,YAE5CwhC,EAAIl8B,KAAKwzD,OAAOt3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,QAC5CqyB,EAAI/sB,KAAKwzD,OAAOzmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,IAAK,YAC5Cy0B,EAAInvB,KAAKwzD,OAAOrkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,GAAK,YAC5CyhC,EAAIn8B,KAAKwzD,OAAOr3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,IAAK,UAC5CwhC,EAAIl8B,KAAKwzD,OAAOt3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,YAC5CqyB,EAAI/sB,KAAKwzD,OAAOzmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,GAAK,YAC5Cy0B,EAAInvB,KAAKwzD,OAAOrkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,IAAK,WAC5CyhC,EAAIn8B,KAAKwzD,OAAOr3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,IAAK,YAC5CwhC,EAAIl8B,KAAKwzD,OAAOt3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAI,IAAM,EAAI,WAC5CqyB,EAAI/sB,KAAKwzD,OAAOzmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,GAAS,IAAK,WAC5Cy0B,EAAInvB,KAAKwzD,OAAOrkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,IAAK,WAC5CyhC,EAAIn8B,KAAKwzD,OAAOr3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,GAAK,UAC5CwhC,EAAIl8B,KAAKwzD,OAAOt3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,WAC5CqyB,EAAI/sB,KAAKwzD,OAAOzmC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAK,IAAK,WAC5Cy0B,EAAInvB,KAAKwzD,OAAOrkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,GAAK,WAC5CyhC,EAAIn8B,KAAKwzD,OAAOr3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,WAE5CwhC,EAAIl8B,KAAKyzD,OAAOv3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,GAAU,GAAI,WAC5CqyB,EAAI/sB,KAAKyzD,OAAO1mC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,GAAK,YAC5Cy0B,EAAInvB,KAAKyzD,OAAOtkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,IAAK,YAC5CyhC,EAAIn8B,KAAKyzD,OAAOt3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,UAC5CwhC,EAAIl8B,KAAKyzD,OAAOv3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAI,IAAM,EAAI,YAC5CqyB,EAAI/sB,KAAKyzD,OAAO1mC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAK,GAAI,IAAK,YAC5Cy0B,EAAInvB,KAAKyzD,OAAOtkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAI,IAAK,IAAK,SAC5CyhC,EAAIn8B,KAAKyzD,OAAOt3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,YAC5CwhC,EAAIl8B,KAAKyzD,OAAOv3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,EAAI,YAC5CqyB,EAAI/sB,KAAKyzD,OAAO1mC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAK,IAAK,UAC5Cy0B,EAAInvB,KAAKyzD,OAAOtkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,IAAK,YAC5CyhC,EAAIn8B,KAAKyzD,OAAOt3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAI,IAAK,GAAK,YAC5CwhC,EAAIl8B,KAAKyzD,OAAOv3B,EAAGC,EAAGhN,EAAGpC,EAAG0a,EAAE/sC,EAAK,GAAK,GAAI,WAC5CqyB,EAAI/sB,KAAKyzD,OAAO1mC,EAAGmP,EAAGC,EAAGhN,EAAGsY,EAAE/sC,EAAI,IAAK,IAAK,YAC5Cy0B,EAAInvB,KAAKyzD,OAAOtkC,EAAGpC,EAAGmP,EAAGC,EAAGsL,EAAE/sC,EAAK,GAAI,GAAK,WAC5CyhC,EAAIn8B,KAAKyzD,OAAOt3B,EAAGhN,EAAGpC,EAAGmP,EAAGuL,EAAE/sC,EAAK,GAAI,IAAK,WAE5CwhC,EAAIl8B,KAAKizD,SAAS/2B,EAAGy3B,GACrBx3B,EAAIn8B,KAAKizD,SAAS92B,EAAGy3B,GACrBzkC,EAAInvB,KAAKizD,SAAS9jC,EAAG0kC,GACrB9mC,EAAI/sB,KAAKizD,SAASlmC,EAAG+mC,GAEzB,MAAO,CAAC53B,EAAGC,EAAGhN,EAAGpC,IAMrBglC,EAAWpyD,UAAUo0D,UAAY,SAAUv/C,GACvC,IAAI9Z,EACAs5D,EAAS,GACb,IAAKt5D,EAAI,EAAGA,EAAmB,GAAf8Z,EAAM3b,OAAa6B,GAAK,EACpCs5D,GAAUn6D,OAAOC,aAAc0a,EAAM9Z,GAAK,KAAQA,EAAI,GAAO,KAEjE,OAAOs5D,GAOXjC,EAAWpyD,UAAUs0D,UAAY,SAAUz/C,GACvC,IAAI9Z,EACAs5D,EAAS,GAEb,IADAA,GAAQx/C,EAAM3b,QAAU,GAAK,QAAKswB,EAC7BzuB,EAAI,EAAGA,EAAIs5D,EAAOn7D,OAAQ6B,GAAK,EAChCs5D,EAAOt5D,GAAK,EAEhB,IAAKA,EAAI,EAAGA,EAAmB,EAAf8Z,EAAM3b,OAAY6B,GAAK,EACnCs5D,EAAOt5D,GAAK,KAAiC,IAA1B8Z,EAAMxb,WAAW0B,EAAI,KAAeA,EAAI,GAE/D,OAAOs5D,GAMXjC,EAAWpyD,UAAUu0D,SAAW,SAAUjlC,GACtC,OAAOjvB,KAAK+zD,UAAU/zD,KAAK0zD,SAAS1zD,KAAKi0D,UAAUhlC,GAAe,EAAXA,EAAEp2B,UAM7Dk5D,EAAWpyD,UAAUw0D,cAAgB,SAAU/6D,EAAKyzB,GAChD,IAAInyB,EAIAk/C,EAHAwa,EAAOp0D,KAAKi0D,UAAU76D,GACtBi7D,EAAO,GACPC,EAAO,GAMX,IAJAD,EAAK,IAAMC,EAAK,SAAMnrC,EAClBirC,EAAKv7D,OAAS,KACdu7D,EAAOp0D,KAAK0zD,SAASU,EAAmB,EAAbh7D,EAAIP,SAE9B6B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrB25D,EAAK35D,GAAe,UAAV05D,EAAK15D,GACf45D,EAAK55D,GAAe,WAAV05D,EAAK15D,GAGnB,OADAk/C,EAAO55C,KAAK0zD,SAASW,EAAKz5B,OAAO56B,KAAKi0D,UAAUpnC,IAAQ,IAAoB,EAAdA,EAAKh0B,QAC5DmH,KAAK+zD,UAAU/zD,KAAK0zD,SAASY,EAAK15B,OAAOgf,GAAO,OAM3DmY,EAAWpyD,UAAU40D,SAAW,SAAU//C,GACtC,IAEIizB,EACA/sC,EAHA85D,EAAU,mBACVR,EAAS,GAGb,IAAKt5D,EAAI,EAAGA,EAAI8Z,EAAM3b,OAAQ6B,GAAK,EAC/B+sC,EAAIjzB,EAAMxb,WAAW0B,GACrBs5D,GAAUQ,EAAQpzD,OAAQqmC,IAAM,EAAK,IACjC+sB,EAAQpzD,OAAW,GAAJqmC,GAEvB,OAAOusB,GAMXjC,EAAWpyD,UAAU80D,cAAgB,SAAUjgD,GAC3C,OAAOijC,SAASid,mBAAmBlgD,KAMvCu9C,EAAWpyD,UAAUg1D,QAAU,SAAU1lC,GACrC,OAAOjvB,KAAKk0D,SAASl0D,KAAKy0D,cAAcxlC,KAE5C8iC,EAAWpyD,UAAUi1D,QAAU,SAAU3lC,GACrC,OAAOjvB,KAAKu0D,SAASv0D,KAAK20D,QAAQ1lC,KAEtC8iC,EAAWpyD,UAAUk1D,aAAe,SAAUrzC,EAAGuL,GAC7C,OAAO/sB,KAAKm0D,cAAcn0D,KAAKy0D,cAAcjzC,GAAIxhB,KAAKy0D,cAAc1nC,KAExEglC,EAAWpyD,UAAUm1D,aAAe,SAAUtzC,EAAGuL,GAC7C,OAAO/sB,KAAKu0D,SAASv0D,KAAK60D,aAAarzC,EAAGuL,KAG9CglC,EAAWpyD,UAAU2kD,IAAM,SAAUxlD,EAAQ1F,EAAKmJ,GAC9C,OAAKnJ,EAQAmJ,EAIEvC,KAAK60D,aAAaz7D,EAAK0F,GAHnBkB,KAAK80D,aAAa17D,EAAK0F,GARzByD,EAIEvC,KAAK20D,QAAQ71D,GAHTkB,KAAK40D,QAAQ91D,IAeSxK,EAAOD,UACxCA,EAAUC,EAAOD,QAAUmlD,GAE/BnlD,EAAQmlD,OAASA,OAOhB,KAFU,EAAF,WACL,OAAOA,GACV,QAFM,OAEN,aAKwB,oBAAlBub,gBACPnY,OAAS,IAAIpD,EACb/kD,KAAK+kD,OAASA,GAKI,iBAAXwb,QAAkD,iBAApBA,OAAOC,WAC5CD,OAAOxb,OAASA,EAChBwb,OAAOpY,OAAS,IAAIpD,GA7nP5B,I,sBCDAllD,EAAOD,QAAU,KAEhB,MAYM6gE,EAAQ,gFACRC,EAAO,2BAEPC,EAAY,qBACZC,EAAW,kCACXC,EAAgB,qCAMhBC,EATW,MAAML,KAASC,MAU1BK,EAAS,oBAETC,EAAMD,EAASD,EADL,gBAAe,CAACH,EAAWC,EAAUC,GAAe95D,KAAK,QAAQg6D,EAASD,MAGpFnQ,EAAS,MAAM,CADE,GAAGgQ,IAAYF,KACAA,EAAOG,EAAUC,EAjBxC,oBASA,uDAQuE95D,KAAK,QAG3F,OAAO,IAAI/B,OAAO,sKAAgB07D,OAAUA,MAAS/P,EAASqQ,IAAO,O,QCrCtE,IAAIC,EAAU,CAEZC,KAAM,CAEJC,cAAe,SAASp9D,GACtB,OAAOk9D,EAAQG,IAAID,cAAcne,SAASid,mBAAmBl8D,MAI/Ds9D,cAAe,SAASC,GACtB,OAAOC,mBAAmB5d,OAAOsd,EAAQG,IAAIC,cAAcC,OAK/DF,IAAK,CAEHD,cAAe,SAASp9D,GACtB,IAAK,IAAIu9D,EAAQ,GAAIr7D,EAAI,EAAGA,EAAIlC,EAAIK,OAAQ6B,IAC1Cq7D,EAAM93D,KAAyB,IAApBzF,EAAIQ,WAAW0B,IAC5B,OAAOq7D,GAITD,cAAe,SAASC,GACtB,IAAK,IAAIv9D,EAAM,GAAIkC,EAAI,EAAGA,EAAIq7D,EAAMl9D,OAAQ6B,IAC1ClC,EAAIyF,KAAKpE,OAAOC,aAAai8D,EAAMr7D,KACrC,OAAOlC,EAAIgD,KAAK,OAKtBlH,EAAOD,QAAUqhE,G,kqLC7BjB,IAAIO,EAIA,SAA4Bx7B,GAIxBz6B,KAAKk2D,OAAS,GAIdl2D,KAAKm2D,QAAS,EAIdn2D,KAAKo2D,MAAO,EAIZp2D,KAAKwX,aAAU2R,EACfnpB,KAAKvJ,KAAOgkC,EAAKhkC,KACjBuJ,KAAK9G,OAASuhC,EAAKvhC,OACnB8G,KAAKq2D,aAAe57B,EAAK47B,aACzBr2D,KAAKs2D,YAAc77B,EAAK67B,YACxBt2D,KAAKu2D,cAAgB97B,EAAK87B,cAC1Bv2D,KAAKw2D,sBAAwB/7B,EAAK+7B,sBAC9B/7B,EAAKg8B,oBACLz2D,KAAKwpB,QAAUiR,EAAKg8B,kBAAkBjtC,QACtCxpB,KAAKk2D,OAASz7B,EAAKg8B,kBAAkBP,OACrCl2D,KAAKm2D,OAAS17B,EAAKg8B,kBAAkBN,OACrCn2D,KAAKo2D,KAAO37B,EAAKg8B,kBAAkBL,KACnCp2D,KAAKwX,QAAUijB,EAAKg8B,kBAAkBj/C,UC/B9Ck/C,EAAuD,WACvD,SAASA,KAyBT,OAvBAA,EAAsC/2D,UAAUg3D,UAAY,SAAUC,GAClE,IAAIC,EAAY,GAoBhB,OAnBAr9D,OAAOyiB,KAAK26C,EAAOvuD,YAAY2zB,SAAQ,SAAUn1B,GAC7C+vD,EAAOvuD,WAAWxB,GAAUm1B,SAAQ,SAAU86B,GAC1C,IAAIL,EAAoB,CACpBjtC,QAASstC,EAAWttC,QACpB0sC,OAAQY,EAAWZ,OACnBC,OAAQW,EAAWX,OACnBC,KAAMU,EAAWV,MAEjB37B,EAAO,CACPhkC,KAAMqgE,EAAWrgE,KACjByC,OAAQ09D,EAAO17D,KACfm7D,aAAcxvD,EACdyvD,YAAaQ,EAAWR,YACxBE,sBAAuBM,EAAWtrD,QAClCirD,kBAAmBA,GAEvBI,EAAU54D,KAAK,IAAIg4D,EAAmBx7B,UAGvCo8B,GAEJH,EA1B+C,GCCnD,SAASK,IAMZ,MALsB,oBAAX/B,SACPA,OAAOgC,OAAShC,QAEf,EAAAlpD,EAAOmrD,gCACR,EAAAnrD,EAAOmrD,8BAAgC,IAAIC,GACxC,EAAAprD,EAAOmrD,8BAKlB,IAAIC,EAAiC,WACjC,SAASA,IAILl3D,KAAKm3D,oBAAsB,GAC3Bn3D,KAAKo3D,oBAAsB,GAyF/B,OAvFA59D,OAAO4+B,eAAe8+B,EAAgBv3D,UAAW,wBAAyB,CACtEwZ,IAAK,WACD,QAASnZ,KAAKm3D,oBAAoBt+D,QAEtC8lC,YAAY,EACZlmB,cAAc,IAQlBy+C,EAAgBv3D,UAAU03D,oBAAsB,SAAUT,GACtD,IAAIvkD,EAAQrS,MACc,IAAI02D,GAAwCC,UAAUC,GAC5D56B,SAAQ,SAAUs7B,GAAsB,OAAOjlD,EAAMklD,sBAAsBD,OAKnGJ,EAAgBv3D,UAAU43D,sBAAwB,SAAUC,GACxDx3D,KAAKm3D,oBAAoBl5D,KAAKu5D,IAKlCN,EAAgBv3D,UAAU83D,sBAAwB,SAAUD,GACxDx3D,KAAKo3D,oBAAoBn5D,KAAKu5D,IAKlCN,EAAgBv3D,UAAU+3D,oBAAsB,SAAUF,GACtD,IAAIG,EAAU,GAMd,OALAH,EAASx7B,SAAQ,SAAUw7B,GAClBG,EAAQH,EAASnB,gBAClBsB,EAAQH,EAASnB,cAAgB,IACrCsB,EAAQH,EAASnB,cAAcp4D,KAAKu5D,MAEjCG,GAKXT,EAAgBv3D,UAAUi4D,6BAA+B,SAAUC,EAAmBC,EAAc5B,GAEhG,IAAI6B,EAAoB/3D,KAAKm3D,oBAAoB/sD,QAAO,SAAUotD,GAC9D,OAAIA,EAASt+D,SAAW2+D,GAAqBL,EAASt+D,SAAW4+D,OAE7DN,EAASrB,UAETD,GAAUA,EAAOr9D,OAAS,IACnB2+D,EAAStB,UAAYsB,EAAStB,OAAO8B,MAAK,SAAU1oB,GAAS,OAAkC,IAA3B4mB,EAAOpvD,QAAQwoC,UAoB9F2oB,EAhBqBj4D,KAAKm3D,oBAAoB/sD,QAAO,SAAUotD,GAE/D,MAA+B,iBAApBA,EAASt+D,QAEhBs+D,EAASt+D,SAAW2+D,MAEpBL,EAASt+D,kBAAkBomC,WACzBu4B,EAAkBl4D,qBAAqB63D,EAASt+D,YAElDs+D,EAASrB,UAETD,GAAUA,EAAOr9D,OAAS,IACnB2+D,EAAStB,UAAYsB,EAAStB,OAAO8B,MAAK,SAAU1oB,GAAS,OAAkC,IAA3B4mB,EAAOpvD,QAAQwoC,UAIhDllC,QAAO,SAAU8tD,GAC/D,OAAQH,EAAkBC,MAAK,SAAUG,GACrC,OAAOA,EAAiB9B,eAAiB6B,EAAkB7B,cACvD8B,EAAiB1hE,OAASyhE,EAAkBzhE,WAGxD,OAAOshE,EAAkBn9B,OAAOq9B,IAKpCf,EAAgBv3D,UAAUy4D,8BAAgC,SAAUl/D,GAChE,OAAO8G,KAAKo3D,oBAAoBhtD,QAAO,SAAUotD,GAAY,OAAOA,EAASt+D,SAAWA,MAErFg+D,EA/FyB,GCazBmB,EAAW,WAQlB,OAPAA,EAAW7+D,OAAOwW,QAAU,SAAkB6hC,GAC1C,IAAK,IAAI5iB,EAAGv0B,EAAI,EAAGyZ,EAAIuF,UAAU7gB,OAAQ6B,EAAIyZ,EAAGzZ,IAE5C,IAAK,IAAI2Z,KADT4a,EAAIvV,UAAUhf,GACOlB,OAAOmG,UAAUnJ,eAAeqd,KAAKob,EAAG5a,KAAIw9B,EAAEx9B,GAAK4a,EAAE5a,IAE9E,OAAOw9B,IAEKlX,MAAM36B,KAAM0Z,YClChC,IAAI4+C,EAAiC,WACjC,SAASA,KAoCT,OA5BAA,EAAgB34D,UAAUzF,SAAW,SAAUq+D,EAAgBC,EAAWC,GACtE,IAAIpmD,EAAQrS,UACW,IAAnBu4D,IAA6BA,GAAiB,QAChC,IAAdC,IAAwBA,GAAY,QACrB,IAAfC,IAAyBA,EAAa,IAC1C,IAAIC,EAAYH,EAAiB,OAAc,GAC3CI,EAAUJ,EAAiB,QAAe,GAC1CK,EAAuB,SAAUvC,GAAgB,MAAO,eAAiBqC,EAAYD,EAAapC,EAAesC,EAAU,0CAA4CD,EAAYl/D,OAAOyiB,KAAK5J,EAAMikD,aAAa96D,KAAK,MAAQm9D,EAAU,OAC7O,GAAKH,EAOA,CAED,IAAIK,EAAsB37D,OAAO04C,WAAW51C,KAAK6G,UAAY,IAAM7G,KAAK6G,SAAW,KAAY4xD,EAAa,IAAM,IAAMz4D,KAAK6G,SAC7H,OAAI7G,KAAKs2D,YACEsC,EAAqBC,GAGrB74D,KAAK84D,SACPxsD,KAAI,SAAUysD,GAAc,OAAOA,EAAW7+D,SAASq+D,GAAgB,EAAM,GAAKE,EAAaI,MAC/Fr9D,KAAK,IAfd,MAAO,kBAAoBk9D,GAAa14D,KAAK9G,OAAS8G,KAAK9G,OAAOs/B,YAAYt9B,KAAO,aAAey9D,EAAU,iCACzG34D,KAAKs2D,YAAcsC,EAAqB54D,KAAK6G,UAAY,IAC1D7G,KAAK84D,SACAxsD,KAAI,SAAUysD,GAAc,OAAOA,EAAW7+D,SAASq+D,GAAgB,EAAMlmD,EAAMxL,aACnFrL,KAAK,KAef88D,EArCyB,GCAhCU,EAAiC,WACjC,SAASA,KAkBT,OAbAA,EAAgBC,QAAU,SAAUxiE,GAChC,IAAI4b,EAAQrS,KACZ,MAAgB,YAATvJ,GACM,eAATA,IACgF,IAAhF+C,OAAOyiB,KAAKjc,MAAMsM,KAAI,SAAUlT,GAAO,OAAOiZ,EAAMjZ,MAAS0N,QAAQrQ,IAG7EuiE,EAAgBE,kBAAoB,mBACpCF,EAAgBG,kBAAoB,mBACpCH,EAAgBI,mBAAqB,oBACrCJ,EAAgBK,uBAAyB,wBACzCL,EAAgBM,UAAY,sBAC5BN,EAAgBO,WAAa,YACtBP,EAnByB,GCHhCQ,EAAiC,WACjC,SAASA,KAuBT,OArBAA,EAAgBC,4BAA8B,SAAUjwC,EAASkwC,GAC7D,IAAIC,EAkBJ,OAjBInwC,aAAmB8V,SACnBq6B,EAAgBnwC,EAAQkwC,GAEA,iBAAZlwC,IACZmwC,EAAgBnwC,GAEhBmwC,GAAiBD,EAAoBpD,uBAAuBz7D,OAC5D6+D,EAAoBpD,YAAYt6B,SAAQ,SAAU49B,EAAYhlD,GAC1D+kD,EAAgBA,EAAclwD,QAAQ,IAAIhQ,OAAO,iBAAmBmb,EAAQ,GAAI,KAAMglD,MAG1FD,QAA+CxwC,IAA9BuwC,EAAoBj9D,OAAqD,OAA9Bi9D,EAAoBj9D,OAAuD,iBAA9Bi9D,EAAoBj9D,QAC7Hk9D,EAAgBA,EAAclwD,QAAQ,WAAYiwD,EAAoBj9D,QACtEk9D,IACAA,EAAgBA,EAAclwD,QAAQ,cAAeiwD,EAAoB7yD,WACzE8yD,IACAA,EAAgBA,EAAclwD,QAAQ,YAAaiwD,EAAoBG,aACpEF,GAEJH,EAxByB,GCC7B,SAASngC,EAAUhlB,GACtB,OAAa,OAANA,GAA2B,iBAANA,GAAoC,mBAAXA,EAAEooB,KCM3D,ICUIq9B,EACAC,EDXAC,EAAoC,WAIpC,SAASA,EAAmBC,EAAWC,GACnCl6D,KAAKi6D,UAAYA,EACjBj6D,KAAKk6D,iBAAmBA,EAIxBl6D,KAAKm6D,iBAAmB,GACxBn6D,KAAKo6D,wBAAyB,EAI9Bp6D,KAAKq6D,gBAAkBtD,IA0S3B,OArSAiD,EAAmBr6D,UAAU26D,QAAU,SAAU10D,EAAQkyD,EAAcyC,GACnE,IAAIloD,EAAQrS,KAOPA,KAAKq6D,gBAAgBG,uBACtBvkD,QAAQC,KAAK,iIAEjB,IAAIggD,EAASl2D,KAAKk6D,iBAAmBl6D,KAAKk6D,iBAAiBhE,YAAS/sC,EAChEsxC,EAAkBz6D,KAAKq6D,gBAAgBzC,6BAA6BhyD,EAAO4yB,YAAas/B,EAAc5B,GACtGwE,EAAmB16D,KAAKq6D,gBAAgB3C,oBAAoB+C,GAChE,GAAIz6D,KAAKk6D,kBAAoBl6D,KAAKk6D,iBAAiBS,sBAAwBF,EAAgB5hE,OAAQ,CAC/F,IAAI+hE,EAAkB,IAAItC,EAW1B,OAVKt4D,KAAKk6D,kBACLl6D,KAAKk6D,iBAAiBU,sBAC0BzxC,IAAjDnpB,KAAKk6D,iBAAiBU,gBAAgB1hE,SACW,IAAjD8G,KAAKk6D,iBAAiBU,gBAAgB1hE,SACtC0hE,EAAgB1hE,OAAS0M,GAC7Bg1D,EAAgBn+D,WAAQ0sB,EACxByxC,EAAgB/zD,cAAWsiB,EAC3ByxC,EAAgB9B,SAAW,GAC3B8B,EAAgBtE,YAAc,CAAEuE,aAAc,6DAC9CN,EAAiBt8D,KAAK28D,GAGtB56D,KAAKk6D,kBAAoBl6D,KAAKk6D,iBAAiBY,WAC/C96D,KAAK86D,UAAUl1D,EAAQ80D,EAAkBH,GAE7C/gE,OAAOyiB,KAAKy+C,GAAkB1+B,SAAQ,SAAUq6B,GAC5C,IAAI55D,EAAQmJ,EAAOywD,GACf0E,EAAmBL,EAAiBrE,GAAcjsD,QAAO,SAAUotD,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBO,cACxH1C,EAAY6D,EAAiBrE,GAAcjsD,QAAO,SAAUotD,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBO,YAAc/B,EAAS/gE,OAASuiE,EAAgBM,aACjK78D,aAAiBogC,SAAWg6B,EAAUmB,MAAK,SAAUR,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBI,sBAC1G/mD,EAAM8nD,iBAAiBl8D,KAAKxB,EAAMggC,MAAK,SAAUu+B,GAC7C3oD,EAAM4oD,mBAAmBr1D,EAAQo1D,EAAe3E,EAAc0E,EAAkBlE,EAAW0D,OAI/FloD,EAAM4oD,mBAAmBr1D,EAAQnJ,EAAO45D,EAAc0E,EAAkBlE,EAAW0D,OAI/FP,EAAmBr6D,UAAUm7D,UAAY,SAAUl1D,EAAQ80D,EAAkBH,GACzE,IAAIloD,EAAQrS,KACRk7D,EAAuB,GAC3B1hE,OAAOyiB,KAAKrW,GAAQo2B,SAAQ,SAAUq6B,GAE7BqE,EAAiBrE,IAA2D,IAA1CqE,EAAiBrE,GAAcx9D,QAClEqiE,EAAqBj9D,KAAKo4D,MAE9B6E,EAAqBriE,OAAS,IAC1BmH,KAAKk6D,kBAAoBl6D,KAAKk6D,iBAAiBiB,qBAE/CD,EAAqBl/B,SAAQ,SAAUn1B,GACnC,IAAIu0D,EACAR,EAAkBvoD,EAAMgpD,wBAAwBz1D,EAAQA,EAAOiB,GAAWA,GAC9E+zD,EAAgBtE,cAAe8E,EAAK,IAAOpC,EAAgBM,WAAa,YAAczyD,EAAW,oBAAqBu0D,GACtHR,EAAgB9B,cAAW3vC,EAC3BoxC,EAAiBt8D,KAAK28D,MAK1BM,EAAqBl/B,SAAQ,SAAUn1B,GAAY,cAAcjB,EAAOiB,QAIpFmzD,EAAmBr6D,UAAU27D,iBAAmB,SAAUC,GACtD,IAAIlpD,EAAQrS,KACZ,OAAOu7D,EAAOnxD,QAAO,SAAU6yB,GAI3B,GAHIA,EAAM67B,WACN77B,EAAM67B,SAAWzmD,EAAMipD,iBAAiBr+B,EAAM67B,WAEJ,IAA1Ct/D,OAAOyiB,KAAKghB,EAAMq5B,aAAaz9D,OAAc,CAC7C,GAA8B,IAA1BokC,EAAM67B,SAASjgE,OACf,OAAO,SAGAokC,EAAMq5B,YAGrB,OAAO,MAMf0D,EAAmBr6D,UAAUs7D,mBAAqB,SAAUr1D,EAAQnJ,EAAO45D,EAAc0E,EAAkBlE,EAAW0D,GAClH,IAAIiB,EAA4B3E,EAAUzsD,QAAO,SAAUotD,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBE,qBAC5GuC,EAA4B5E,EAAUzsD,QAAO,SAAUotD,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBG,qBAC5GuC,EAAiC7E,EAAUzsD,QAAO,SAAUotD,GAAY,OAAOA,EAAS/gE,OAASuiE,EAAgBK,0BACjHuB,EAAkB56D,KAAKq7D,wBAAwBz1D,EAAQnJ,EAAO45D,GAClEkE,EAAiBt8D,KAAK28D,GACJ56D,KAAK27D,uBAAuB/1D,EAAQnJ,EAAOi/D,KAK7D17D,KAAK47D,kBAAkBh2D,EAAQnJ,EAAOs+D,EAAkBH,GACxD56D,KAAK67D,YAAYj2D,EAAQnJ,EAAOs+D,EAAkBH,QACpCzxC,IAAV1sB,GAAuBuD,KAAKk6D,mBAAsE,IAAlDl6D,KAAKk6D,iBAAiB4B,yBAG5D,OAAVr/D,GAAkBuD,KAAKk6D,mBAAiE,IAA7Cl6D,KAAKk6D,iBAAiB6B,oBAGjE,MAACt/D,GAA0CuD,KAAKk6D,mBAAoE,IAAhDl6D,KAAKk6D,iBAAiB8B,wBAG9Fh8D,KAAK47D,kBAAkBh2D,EAAQnJ,EAAO++D,EAA2BZ,GACjE56D,KAAKi8D,kBAAkBx/D,EAAOg/D,EAA2Bb,EAAgB9B,UACzE94D,KAAK67D,YAAYj2D,EAAQnJ,EAAOo6D,EAAW+D,GAC3C56D,KAAK67D,YAAYj2D,EAAQnJ,EAAO++D,EAA2BZ,MAE/DZ,EAAmBr6D,UAAU07D,wBAA0B,SAAUz1D,EAAQnJ,EAAO45D,GAC5E,IAAIuE,EAAkB,IAAItC,EAc1B,OAbKt4D,KAAKk6D,kBACLl6D,KAAKk6D,iBAAiBU,sBAC0BzxC,IAAjDnpB,KAAKk6D,iBAAiBU,gBAAgB1hE,SACW,IAAjD8G,KAAKk6D,iBAAiBU,gBAAgB1hE,SACtC0hE,EAAgB1hE,OAAS0M,GACxB5F,KAAKk6D,kBACLl6D,KAAKk6D,iBAAiBU,sBACyBzxC,IAAhDnpB,KAAKk6D,iBAAiBU,gBAAgBn+D,QACU,IAAhDuD,KAAKk6D,iBAAiBU,gBAAgBn+D,QACtCm+D,EAAgBn+D,MAAQA,GAC5Bm+D,EAAgB/zD,SAAWwvD,EAC3BuE,EAAgB9B,SAAW,GAC3B8B,EAAgBtE,YAAc,GACvBsE,GAEXZ,EAAmBr6D,UAAUg8D,uBAAyB,SAAU/1D,EAAQnJ,EAAOo6D,GAC3E,OAAOA,EACFvqD,KAAI,SAAUkrD,GAAY,OAAOA,EAASlB,YAAY,GAAG1wD,EAAQnJ,MACjEqvD,QAAO,SAAUoQ,EAASC,GAAW,OAAOD,GAAWC,KAAY,IAE5EnC,EAAmBr6D,UAAUi8D,kBAAoB,SAAUh2D,EAAQnJ,EAAOo6D,EAAW55B,GACjF,IAAI5qB,EAAQrS,KACZ62D,EAAU76B,SAAQ,SAAUw7B,GACxBnlD,EAAMgoD,gBACDjC,8BAA8BZ,EAASjB,eACvCv6B,SAAQ,SAAUogC,GACnB,IAAIA,EAAyBl9D,QAASmT,EAAM+nD,uBAA5C,CAEA,IAAIV,EAAsB,CACtBG,WAAYj0D,EAAO4yB,YAAc5yB,EAAO4yB,YAAYt9B,UAAOiuB,EAC3DtiB,SAAU2wD,EAASnB,aACnBzwD,OAAQA,EACRnJ,MAAOA,EACP65D,YAAakB,EAASlB,aAE1B,GAAKkB,EAASpB,OAAU35D,aAAiB5B,OAAS4B,aAAiBkuC,KAAOluC,aAAiBm9B,KAA3F,CA0BA,IDzMetgC,EC2MX+iE,ID3MW/iE,ECyMiBmD,aDxMzBm9B,IACR/+B,MAAMw5C,KAAK/6C,EAAIq4D,UAEnB92D,MAAMC,QAAQxB,GAAOA,EAAMuB,MAAMw5C,KAAK/6C,ICuMGgT,KAAI,SAAUgwD,GAAY,OAAOF,EAAyBvgC,SAAS0gC,SAASD,EAAU5C,MAG1H,GAFwB2C,EACnBG,MAAK,SAAUC,GAAqB,OAAOpjC,EAAUojC,MAC1D,CAEI,IAAIC,EAA0BL,EACzB/vD,KAAI,SAAUmwD,GAAqB,OAAOpjC,EAAUojC,GAAqBA,EAAoB5/B,QAAQC,QAAQ2/B,MAC9GE,EAAmC9/B,QAAQx1B,IAAIq1D,GAC9CjgC,MAAK,SAAUmgC,GAEhB,IADuBA,EAAoBC,OAAM,SAAU5D,GAAW,OAAOA,KACtD,CACnB,IAAImC,EAAK/oD,EAAMyqD,sBAAsBl3D,EAAQnJ,EAAO+6D,EAAU4E,GAA2B3lE,EAAO2kE,EAAG,GAAI5xC,EAAU4xC,EAAG,GACpHn+B,EAAMq5B,YAAY7/D,GAAQ+yB,EACtBguC,EAAShgD,UACJylB,EAAM8/B,WACP9/B,EAAM8/B,SAAW,IAErB9/B,EAAM8/B,SAAStmE,GAAQ+C,OAAOwW,OAAQitB,EAAM8/B,SAAStmE,IAAS,GAAK+gE,EAAShgD,cAIxFnF,EAAM8nD,iBAAiBl8D,KAAK0+D,QAIhC,IADuBN,EAAmBQ,OAAM,SAAU5D,GAAW,OAAOA,KACrD,CACnB,IAAI+D,EAAK3qD,EAAMyqD,sBAAsBl3D,EAAQnJ,EAAO+6D,EAAU4E,GAA2B3lE,EAAOumE,EAAG,GAAIxzC,EAAUwzC,EAAG,GACpH//B,EAAMq5B,YAAY7/D,GAAQ+yB,OAvD9B,CACI,IAAIyzC,EAAiBb,EAAyBvgC,SAAS0gC,SAAS9/D,EAAOi9D,GACvE,GAAIrgC,EAAU4jC,GAAiB,CAC3B,IAAIC,EAAUD,EAAexgC,MAAK,SAAUw8B,GACxC,IAAKA,EAAS,CACV,IAAImC,EAAK/oD,EAAMyqD,sBAAsBl3D,EAAQnJ,EAAO+6D,EAAU4E,GAA2B3lE,EAAO2kE,EAAG,GAAI5xC,EAAU4xC,EAAG,GACpHn+B,EAAMq5B,YAAY7/D,GAAQ+yB,EACtBguC,EAAShgD,UACJylB,EAAM8/B,WACP9/B,EAAM8/B,SAAW,IAErB9/B,EAAM8/B,SAAStmE,GAAQ+C,OAAOwW,OAAQitB,EAAM8/B,SAAStmE,IAAS,GAAK+gE,EAAShgD,cAIxFnF,EAAM8nD,iBAAiBl8D,KAAKi/D,QAG5B,IAAKD,EAAgB,CACjB,IAAI7B,EAAK/oD,EAAMyqD,sBAAsBl3D,EAAQnJ,EAAO+6D,EAAU4E,GAA2B3lE,EAAO2kE,EAAG,GAAI5xC,EAAU4xC,EAAG,GACpHn+B,EAAMq5B,YAAY7/D,GAAQ+yB,YAwClDwwC,EAAmBr6D,UAAUs8D,kBAAoB,SAAUx/D,EAAOo6D,EAAW0E,GACzE,IAAIlpD,EAAQrS,UACE,IAAVvD,GAGJo6D,EAAU76B,SAAQ,SAAUw7B,GACxB,IAAI4D,EACJ,GAAI5D,EAAS/gE,OAASuiE,EAAgBG,mBAClC3B,EAAS/gE,OAASuiE,EAAgBI,mBAGtC,GAAI38D,aAAiB5B,OAAS4B,aAAiBkuC,KAAOluC,aAAiBm9B,KAE9Cn9B,aAAiBkuC,IAAM9vC,MAAMw5C,KAAK53C,GAASA,GACjDu/B,SAAQ,SAAUsgC,EAAU1nD,GACvCvC,EAAM4oD,mBAAmBx+D,EAAO6/D,EAAU1nD,EAAM1a,WAAY,GAAI28D,EAAW0E,WAG9E,GAAI9+D,aAAiBjD,OAAQ,CAC9B,IAAIs+D,EAA0C,iBAApBN,EAASt+D,OAAsBs+D,EAASt+D,OAASs+D,EAASt+D,OAAOgC,KAC3FmX,EAAMioD,QAAQ79D,EAAOq7D,EAAcyD,OAElC,CACD,IAAIt+B,EAAQ,IAAIq7B,EAChBr7B,EAAMxgC,MAAQA,EACdwgC,EAAMp2B,SAAW2wD,EAASnB,aAC1Bp5B,EAAM/jC,OAASs+D,EAASt+D,OACxB,IAAI8jE,EAAK3qD,EAAMyqD,sBAAsBtF,EAASt+D,OAAQuD,EAAO+6D,GAAW/gE,EAAOumE,EAAG,GAAIxzC,EAAUwzC,EAAG,GACnG//B,EAAMq5B,cAAe8E,EAAK,IACnB3kE,GAAQ+yB,EACX4xC,GACJG,EAAOt9D,KAAKg/B,QAIxB+8B,EAAmBr6D,UAAUk8D,YAAc,SAAUj2D,EAAQnJ,EAAOo6D,EAAW55B,GAC3E,IAAI5qB,EAAQrS,KACZ,OAAO62D,EACF76B,SAAQ,SAAUw7B,GACnB,GAAIA,EAAShgD,QAAS,CAClB,IAAI2lD,OAAmB,EACnB3F,EAAS/gE,OAASuiE,EAAgBE,oBAElCiE,EADwB9qD,EAAMgoD,gBAAgBjC,8BAA8BZ,EAASjB,eAChD,IAEzC,IAAI9/D,EAAO4b,EAAM+qD,kBAAkB5F,EAAU2F,GACzClgC,EAAMq5B,YAAY7/D,KACbwmC,EAAM8/B,WACP9/B,EAAM8/B,SAAW,IAErB9/B,EAAM8/B,SAAStmE,GAAQ+C,OAAOwW,OAAQitB,EAAM8/B,SAAStmE,IAAS,GAAK+gE,EAAShgD,eAK5FwiD,EAAmBr6D,UAAUm9D,sBAAwB,SAAUl3D,EAAQnJ,EAAO+6D,EAAU6F,GACpF,IAAIxD,EAAaj0D,EAAO4yB,YAAc5yB,EAAO4yB,YAAYt9B,UAAOiuB,EAC5D1yB,EAAOuJ,KAAKo9D,kBAAkB5F,EAAU6F,GACxC3D,EAAsB,CACtBG,WAAYA,EACZhzD,SAAU2wD,EAASnB,aACnBzwD,OAAQA,EACRnJ,MAAOA,EACP65D,YAAakB,EAASlB,aAEtB9sC,EAAUguC,EAAShuC,SAAW,GAQlC,OAPKguC,EAAShuC,SACRxpB,KAAKk6D,oBAAqBl6D,KAAKk6D,kBAAqBl6D,KAAKk6D,iBAAiBoD,yBACxED,GAA2BA,EAAwBxhC,SAAS0hC,0BAA0Bj+B,WACtF9V,EAAU6zC,EAAwBxhC,SAAS0hC,eAAe7D,IAI3D,CAACjjE,EADY+iE,EAAgBC,4BAA4BjwC,EAASkwC,KAG7EM,EAAmBr6D,UAAUy9D,kBAAoB,SAAU5F,EAAU6F,GAEjE,OADWA,GAA2BA,EAAwBniE,KAAOmiE,EAAwBniE,KAAOs8D,EAAS/gE,MAG1GujE,EAzT4B,GEHnCwD,EAA2B,WAC3B,SAASA,KAyDT,OAhDAA,EAAU79D,UAAU89D,aAAe,SAAUC,EAAoBC,EAA2BC,GACxF,IAAIh4D,EAAuC,iBAAvB83D,EAAkCC,EAA4BD,EAE9E9G,EAAuC,iBAAvB8G,EAAkCA,OAAqBv0C,EACvE00C,EAAW,IAAI7D,EAAmBh6D,KAFM,iBAAvB09D,EAAkCE,EAAwBD,GAG3EpD,EAAmB,GAEvB,OADAsD,EAASvD,QAAQ10D,EAAQgxD,EAAQ2D,GAC1B19B,QAAQx1B,IAAIw2D,EAAS1D,kBAAkB19B,MAAK,WAC/C,OAAOohC,EAASvC,iBAAiBf,OAMzCiD,EAAU79D,UAAU48D,SAAW,SAAUmB,EAAoBC,EAA2BC,GACpF,OAAO59D,KAAKy9D,aAAaC,EAAoBC,EAA2BC,IAK5EJ,EAAU79D,UAAUm+D,iBAAmB,SAAUJ,EAAoBC,EAA2BC,GAC5F,OP+BkBG,EO/BO/9D,KP+BEg+D,OO/BI,EP+BW5+D,EO/BK,WAC3C,IAAIm8D,EACJ,OPuCL,SAAqBwC,EAAS5/D,GACjC,IAAsGioC,EAAGsB,EAAGmK,EAAG/lC,EAA3GiyC,EAAI,CAAE/7C,MAAO,EAAGi8D,KAAM,WAAa,GAAW,EAAPpsB,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOqsB,KAAM,GAAIC,IAAK,IAChG,OAAOryD,EAAI,CAAE9R,KAAMokE,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXlqC,SAA0BpoB,EAAEooB,OAAOC,UAAY,WAAa,OAAOn0B,OAAU8L,EACvJ,SAASsyD,EAAKjqD,GAAK,OAAO,SAAU08B,GAAK,OACzC,SAAc/qB,GACV,GAAIsgB,EAAG,MAAM,IAAI/N,UAAU,mCAC3B,KAAO0lB,OACH,GAAI3X,EAAI,EAAGsB,IAAMmK,EAAY,EAAR/rB,EAAG,GAAS4hB,EAAU,OAAI5hB,EAAG,GAAK4hB,EAAS,SAAOmK,EAAInK,EAAU,SAAMmK,EAAEh+B,KAAK6zB,GAAI,GAAKA,EAAE1tC,SAAW63C,EAAIA,EAAEh+B,KAAK6zB,EAAG5hB,EAAG,KAAKsO,KAAM,OAAOyd,EAE3J,OADInK,EAAI,EAAGmK,IAAG/rB,EAAK,CAAS,EAARA,EAAG,GAAQ+rB,EAAEp1C,QACzBqpB,EAAG,IACP,KAAK,EAAG,KAAK,EAAG+rB,EAAI/rB,EAAI,MACxB,KAAK,EAAc,OAAXi4B,EAAE/7C,QAAgB,CAAEvF,MAAOqpB,EAAG,GAAIsO,MAAM,GAChD,KAAK,EAAG2pB,EAAE/7C,QAAS0lC,EAAI5hB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKi4B,EAAEogB,IAAI9/C,MAAO0/B,EAAEmgB,KAAK7/C,MAAO,SACxC,QACI,MAAkBwzB,GAAZA,EAAIkM,EAAEmgB,MAAYrlE,OAAS,GAAKg5C,EAAEA,EAAEh5C,OAAS,KAAkB,IAAVitB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEi4B,EAAI,EAAG,SACjG,GAAc,IAAVj4B,EAAG,MAAc+rB,GAAM/rB,EAAG,GAAK+rB,EAAE,IAAM/rB,EAAG,GAAK+rB,EAAE,IAAM,CAAEkM,EAAE/7C,MAAQ8jB,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYi4B,EAAE/7C,MAAQ6vC,EAAE,GAAI,CAAEkM,EAAE/7C,MAAQ6vC,EAAE,GAAIA,EAAI/rB,EAAI,MAC7D,GAAI+rB,GAAKkM,EAAE/7C,MAAQ6vC,EAAE,GAAI,CAAEkM,EAAE/7C,MAAQ6vC,EAAE,GAAIkM,EAAEogB,IAAIlgE,KAAK6nB,GAAK,MACvD+rB,EAAE,IAAIkM,EAAEogB,IAAI9/C,MAChB0/B,EAAEmgB,KAAK7/C,MAAO,SAEtByH,EAAK3nB,EAAK0V,KAAKkqD,EAAShgB,GAC1B,MAAOl1C,GAAKid,EAAK,CAAC,EAAGjd,GAAI6+B,EAAI,EAAK,QAAUtB,EAAIyL,EAAI,EACtD,GAAY,EAAR/rB,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAErpB,MAAOqpB,EAAG,GAAKA,EAAG,QAAK,EAAQsO,MAAM,GArB9BiqC,CAAK,CAAClqD,EAAG08B,MO1C1C,CAAoB7wC,MAAM,SAAUo7D,GACvC,OAAQA,EAAGp5D,OACP,KAAK,EAAG,MAAO,CAAC,EAAahC,KAAKy9D,aAAaC,EAAoBC,EAA2BC,IAC9F,KAAK,EAED,OADArC,EAASH,EAAG6C,QACDplE,OACA,CAAC,EAAcgkC,QAAQyhC,OAAO/C,IAClC,CAAC,QPwBrB,KAFoCgD,OO/BA,KPiCzBA,EAAI1hC,WAAU,SAAUC,EAASwhC,GAC/C,SAASE,EAAU/hE,GAAS,IAAM4hE,EAAKj/D,EAAUpF,KAAKyC,IAAW,MAAOoM,GAAKy1D,EAAOz1D,IACpF,SAAS41D,EAAShiE,GAAS,IAAM4hE,EAAKj/D,EAAiB,MAAE3C,IAAW,MAAOoM,GAAKy1D,EAAOz1D,IACvF,SAASw1D,EAAK3lE,GAJlB,IAAe+D,EAIa/D,EAAO07B,KAAO0I,EAAQpkC,EAAO+D,QAJ1CA,EAIyD/D,EAAO+D,MAJhDA,aAAiB8hE,EAAI9hE,EAAQ,IAAI8hE,GAAE,SAAUzhC,GAAWA,EAAQrgC,OAITggC,KAAK+hC,EAAWC,GAClGJ,GAAMj/D,EAAYA,EAAUu7B,MAAMojC,EAASC,GAAc,KAAKhkE,WAN/D,IAAmB+jE,EAASC,EAAYO,EAAGn/D,GOd9Co+D,EAAU79D,UAAU++D,aAAe,SAAUhB,EAAoBC,EAA2BC,GACxF,IAAIh4D,EAAuC,iBAAvB83D,EAAkCC,EAA4BD,EAE9E9G,EAAuC,iBAAvB8G,EAAkCA,OAAqBv0C,EACvE00C,EAAW,IAAI7D,EAAmBh6D,KAFM,iBAAvB09D,EAAkCE,EAAwBD,GAG/EE,EAASzD,wBAAyB,EAClC,IAAIG,EAAmB,GAEvB,OADAsD,EAASvD,QAAQ10D,EAAQgxD,EAAQ2D,GAC1BsD,EAASvC,iBAAiBf,IAE9BiD,EA1DmB,GDD1BmB,EAAmB,IAAoB,WACvC,SAASC,IACL5+D,KAAK6+D,UAAY,GAUrB,OARAD,EAAQj/D,UAAUwZ,IAAM,SAAU2lD,GAC9B,IAAIjjC,EAAW77B,KAAK6+D,UAAU7G,MAAK,SAAUn8B,GAAY,OAAOA,EAASplC,OAASqoE,KAKlF,OAJKjjC,IACDA,EAAW,CAAEplC,KAAMqoE,EAAWl5D,OAAQ,IAAIk5D,GAC1C9+D,KAAK6+D,UAAU5gE,KAAK49B,IAEjBA,EAASj2B,QAEbg5D,EAZgB,IAmBpB,SAASG,EAAaC,EAAcxzD,GACvCsuD,EAAgBkF,EAChBjF,EAAuBvuD,EAKpB,SAASyzD,EAAiBH,GAC7B,GAAIhF,EACA,IACI,IAAIj+B,EAAWi+B,EAAc3gD,IAAI2lD,GACjC,GAAIjjC,EACA,OAAOA,EACX,IAAKk+B,IAAyBA,EAAqBxW,SAC/C,OAAO1nB,EAEf,MAAOoB,GACH,IAAK88B,IAAyBA,EAAqBmF,iBAC/C,MAAMjiC,EAGlB,OAAO0hC,EAAiBxlD,IAAI2lD,GEtCzB,SAASK,EAAM1I,GAClB,OAAO,SAAU7wD,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBM,UACtBpgE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdI,kBAAmBA,GAEvBM,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,KCV1E,IAAI2kC,EAAoC,WAIpC,SAASA,EAAmBlmE,EAAQgC,EAAMgE,QACxB,IAAVA,IAAoBA,GAAQ,GAChCc,KAAK9G,OAASA,EACd8G,KAAK9E,KAAOA,EACZ8E,KAAKd,MAAQA,EAejB,OAbA1F,OAAO4+B,eAAegnC,EAAmBz/D,UAAW,WAAY,CAO5DwZ,IAAK,WACD,OAAO8lD,EAAiBj/D,KAAK9G,SAEjCylC,YAAY,EACZlmB,cAAc,IAEX2mD,EAvB4B,GCIhC,SAASC,EAAkB7zD,GAC9B,IAAI+qD,EACJ,GAAI/qD,EAAQyuD,qBAAqB36B,UAG7B,GAFAi3B,EAAgB/qD,EAAQyuD,UACAgF,EAAiB/H,GAAiBkB,8BAA8B5sD,EAAQyuD,WAC1EphE,OAAS,EAC3B,KAAM,wFAA0F2S,EAAQtS,OAAS,IAAMsS,EAAQ6qD,iBAGlI,CACD,IAAIiJ,EAAc9zD,EAAQyuD,UAC1B1D,EAA+B,WAC3B,SAASgJ,KAWT,OATAA,EAAiB5/D,UAAU48D,SAAW,SAAU9/D,EAAOi9D,GACnD,OAAO4F,EAAY/C,SAAS9/D,EAAOi9D,IAEvC6F,EAAiB5/D,UAAU49D,eAAiB,SAAU7D,GAClD,OAAI4F,EAAY/B,eACL+B,EAAY/B,eAAe7D,GAE/B,IAEJ6F,EAZmB,GAc9BxI,IAAqBU,sBAAsB,IAAI2H,EAAmB7I,EAAe/qD,EAAQtQ,KAAMsQ,EAAQtM,QAE3G,IAAIsgE,EAAyB,CACzB/oE,KAAM+U,EAAQtQ,MAAQ89D,EAAgBC,QAAQztD,EAAQtQ,MAAQsQ,EAAQtQ,KAAO89D,EAAgBE,kBAC7FhgE,OAAQsS,EAAQtS,OAChBm9D,aAAc7qD,EAAQ6qD,aACtBI,kBAAmBjrD,EAAQA,QAC3B+qD,cAAeA,EACfD,YAAa9qD,EAAQ8qD,aAEzBS,IAAqBQ,sBAAsB,IAAItB,EAAmBuJ,IC1C/D,SAASC,EAAaC,EAAMjJ,GAC/B,OAAO,SAAUiD,GACb,IAAIiG,EAAalJ,GAAqBA,EAAkBL,KAClD,iBACA,GACN,OAAOsJ,EAAKC,EAAYjG,IAGzB,SAASkG,EAAWp0D,EAASirD,GAChC,OAAO,SAAU7wD,EAAQywD,GACrBgJ,EAAkB,CACdnkE,KAAMsQ,EAAQtQ,KACdhC,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACd7qD,QAASirD,EACTH,YAAa9qD,EAAQ8qD,YACrB2D,UAAWzuD,EAAQyuD,aCdxB,IAAIV,EAAaP,EAAgBO,WAIjC,SAASsG,EAAUpjE,GACtB,OAAOA,QAKJ,SAASqjE,EAAUrJ,GACtB,OAAOmJ,EAAW,CACd1kE,KAAMq+D,EACNU,UAAW,CACPsC,SAAU,SAAU9/D,GAAS,OAAOojE,EAAUpjE,IAC9C8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8CAAgDlJ,KAE9HA,GCdA,SAASsJ,EAAWtJ,GACvB,OAAO,SAAU7wD,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBK,uBACtBngE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdC,YAAa,CAAC,SAAU1wD,EAAQnJ,GACxB,OAAgC,OAAzBmJ,EAAOywD,SAAmDltC,IAAzBvjB,EAAOywD,KAEvDI,kBAAmBA,GAEvBM,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,KCVnE,SAASulC,EAAoBx0D,GAChC,OAAO,SAAUtS,GACb,IAAI4lB,KAAUtT,IAAWA,EAAQtM,OAC7BhE,EAAOsQ,GAAWA,EAAQtQ,KAAOsQ,EAAQtQ,KAAO,GAC/CA,IACDA,EAAOhC,EAAOgC,QAEVA,EAAOA,EAAKuO,QAAQ,gBAAgB,SAAUg+B,EAAGC,GAAK,MAAO,IAAMA,EAAEyT,iBAAkB1xC,QAAQ,KAAM,KAE7G,IAAI+tD,EAAW,IAAI4H,EAAmBlmE,EAAQgC,EAAM4jB,GACpDi4C,IAAqBU,sBAAsBD,IAG5C,SAASyI,EAASC,EAAiBC,EAAgCC,GACtE,OAAO,SAAUx6D,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBE,kBACtBhgE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdE,cAAe2J,EACf5J,YAAa6J,aAA0CtlE,MAAQslE,OAAiCh3C,EAChGstC,kBAAqB0J,aAA0CtlE,MAA0CulE,EAAjCD,GAE5EpJ,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,KCxBnE,SAAS4lC,EAAWC,EAAW7J,GAClC,OAAO,SAAU7wD,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBK,uBACtBngE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdC,YAAa,CAACgK,GACd7J,kBAAmBA,GAEvBM,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,KCRnE,SAAS8lC,EAAe9J,GAC3B,IAAI1gD,EAAO,EAAiB,GAAI0gD,GAC5BkJ,EAAa5pD,EAAKqgD,KAAO,iBAAmB,GAEhD,OADArgD,EAAKyT,QAAUzT,EAAKyT,SAAWm2C,EAAa,2DACrC,SAAU/5D,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBG,kBACtBjgE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdI,kBAAmB1gD,GAEvBghD,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,KCZnE,SAAS+lC,EAAgB/J,GAC5B,OAAO,SAAU7wD,EAAQywD,GACrB,IAAI57B,EAAO,CACPhkC,KAAMuiE,EAAgBI,mBACtBlgE,OAAQ0M,EAAO4yB,YACf69B,aAAcA,EACdI,kBAAmBA,GAEvBM,IAAqBQ,sBAAsB,IAAItB,EAAmBx7B,K,uBCZ/DgmC,EAAa,YAIjB,SAASC,EAAUjkE,GACtB,MAAwB,iBAAVA,GAAsB,cAAoBA,GAKrD,SAASkkE,EAAUlK,GACtB,OAAOmJ,EAAW,CACd1kE,KAAMulE,EACNxG,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOimC,EAAUjkE,IACpD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kDAAoDlJ,KAElIA,GCjBA,IAAImK,EAAc,aAIlB,SAASC,EAAWpkE,GACvB,OAAyB,iBAAVA,GAAuC,iBAAVA,IAAuBikE,EAAUjkE,EAAQ,MAKlF,SAASqkE,EAAWrK,GACvB,OAAOmJ,EAAW,CACd1kE,KAAM0lE,EACN3G,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOomC,EAAWpkE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kDAAoDlJ,KAElIA,GCjBA,IAAIsK,EAAe,cAInB,SAASC,EAAYvkE,GACxB,OAAyB,iBAAVA,GAAuC,iBAAVA,IAAuBikE,EAAU,KAAOjkE,GAKjF,SAASwkE,EAAYxK,GACxB,OAAOmJ,EAAW,CACd1kE,KAAM6lE,EACN9G,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOumC,EAAYvkE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GClBA,IAAIyK,EAAS,SAIb,SAASC,EAAO1kE,EAAOk9B,GAC1B,OAAOl9B,IAAUk9B,EAKd,SAASynC,EAAOznC,EAAY88B,GAC/B,OAAOmJ,EAAW,CACd1kE,KAAMgmE,EACN5K,YAAa,CAAC38B,GACdsgC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO0mC,EAAO1kE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,4CAA8ClJ,KAE5HA,GClBA,IAAI4K,EAAa,YAIjB,SAASC,EAAU7kE,EAAOk9B,GAC7B,OAAOl9B,IAAUk9B,EAKd,SAAS4nC,EAAU5nC,EAAY88B,GAClC,OAAOmJ,EAAW,CACd1kE,KAAMmmE,EACN/K,YAAa,CAAC38B,GACdsgC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO6mC,EAAU7kE,EAAOg+B,EAAK67B,YAAY,KAC5EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kDAAoDlJ,KAElIA,GClBA,IAAI+K,EAAW,UAIf,SAASC,EAAQhlE,GACpB,MAAiB,KAAVA,SAAgBA,EAKpB,SAASilE,EAAQjL,GACpB,OAAOmJ,EAAW,CACd1kE,KAAMsmE,EACNvH,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgnC,EAAQhlE,IAClD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,4BAA8BlJ,KAE5GA,GCjBA,IAAIkL,EAAe,aAInB,SAASC,GAAWnlE,GACvB,MAAiB,KAAVA,SAAgBA,EAKpB,SAASolE,GAAWpL,GACvB,OAAOmJ,EAAW,CACd1kE,KAAMymE,EACN1H,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOmnC,GAAWnlE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kCAAoClJ,KAElHA,GCjBA,IAAIqL,GAAQ,OAIZ,SAASC,GAAKtlE,EAAOulE,GACxB,QAASA,aAA0BnnE,QAAUmnE,EAAexF,MAAK,SAAUyF,GAAiB,OAAOA,IAAkBxlE,KAKlH,SAASylE,GAAKvQ,EAAQ8E,GACzB,OAAOmJ,EAAW,CACd1kE,KAAM4mE,GACNxL,YAAa,CAAC3E,GACdsI,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOsnC,GAAKtlE,EAAOg+B,EAAK67B,YAAY,KACvEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,gEAAkElJ,KAEhJA,GClBA,IAAI0L,GAAY,UAIhB,SAASC,GAAQ3lE,EAAOulE,GAC3B,QAASA,aAA0BnnE,OAAWmnE,EAAexF,MAAK,SAAUyF,GAAiB,OAAOA,IAAkBxlE,MAKnH,SAAS4lE,GAAQ1Q,EAAQ8E,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAMinE,GACN7L,YAAa,CAAC3E,GACdsI,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO2nC,GAAQ3lE,EAAOg+B,EAAK67B,YAAY,KAC1EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,sEAAwElJ,KAEtJA,GCjBA,IAAI6L,GAAkB,gBAItB,SAASC,GAAc9lE,EAAOhE,GACjC,MAAwB,iBAAVgE,GACK,iBAARhE,GACP,kBAAwBoB,OAAO4C,GAAQhE,GAKxC,SAAS+pE,GAAc/pE,EAAKg+D,GAC/B,OAAOmJ,EAAW,CACd1kE,KAAMonE,GACNhM,YAAa,CAAC79D,GACdwhE,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO8nC,GAAc9lE,EAAOg+B,EAAK67B,YAAY,KAChFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,gDAAkDlJ,KAEhIA,GCrBA,IAAIgM,GAAc,aAIlB,SAASC,GAAWjmE,GACvB,MAAwB,iBAAVA,GAAsBA,EAAQ,EAKzC,SAASkmE,GAAWlM,GACvB,OAAOmJ,EAAW,CACd1kE,KAAMunE,GACNxI,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOioC,GAAWjmE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,wCAA0ClJ,KAExHA,GCjBA,IAAImM,GAAc,aAIlB,SAASC,GAAWpmE,GACvB,MAAwB,iBAAVA,GAAsBA,EAAQ,EAKzC,SAASqmE,GAAWrM,GACvB,OAAOmJ,EAAW,CACd1kE,KAAM0nE,GACN3I,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOooC,GAAWpmE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,wCAA0ClJ,KAExHA,GCjBA,IAAIsM,GAAM,MAIV,SAASxyC,GAAI93B,EAAK83B,GACrB,MAAsB,iBAAR93B,GAAmC,iBAAR83B,GAAoB93B,GAAO83B,EAKjE,SAASyyC,GAAIC,EAAUxM,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAM6nE,GACNzM,YAAa,CAAC2M,GACdhJ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOlK,GAAI9zB,EAAOg+B,EAAK67B,YAAY,KACtEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oDAAsDlJ,KAEpIA,GClBA,IAAIyM,GAAM,MAIV,SAAS5yC,GAAI73B,EAAK63B,GACrB,MAAsB,iBAAR73B,GAAmC,iBAAR63B,GAAoB73B,GAAO63B,EAKjE,SAAS6yC,GAAIC,EAAU3M,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAMgoE,GACN5M,YAAa,CAAC8M,GACdnJ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOnK,GAAI7zB,EAAOg+B,EAAK67B,YAAY,KACtEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,iDAAmDlJ,KAEjIA,GClBA,IAAI4M,GAAW,UAIf,SAASC,GAAQ3jB,EAAM2jB,GAC1B,OAAO3jB,aAAgB1f,MAAQ0f,EAAKtX,WAAai7B,EAAQj7B,UAKtD,SAASk7B,GAAQ5jB,EAAM8W,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAMmoE,GACN/M,YAAa,CAAC3W,GACdsa,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO6oC,GAAQ7mE,EAAOg+B,EAAK67B,YAAY,KAC1EiH,eAAgBkC,GAAa,SAAUE,GAAc,MAAO,4BAA8BA,EAAa,8BAAgClJ,KAE5IA,GClBA,IAAI+M,GAAW,UAIf,SAASC,GAAQ9jB,EAAM8jB,GAC1B,OAAO9jB,aAAgB1f,MAAQ0f,EAAKtX,WAAao7B,EAAQp7B,UAKtD,SAASq7B,GAAQ/jB,EAAM8W,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAMsoE,GACNlN,YAAa,CAAC3W,GACdsa,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgpC,GAAQhnE,EAAOg+B,EAAK67B,YAAY,KAC1EiH,eAAgBkC,GAAa,SAAUE,GAAc,MAAO,4BAA8BA,EAAa,8BAAgClJ,KAE5IA,GCjBA,IAAIkN,GAAW,WAKf,SAASC,GAASnnE,EAAOg9C,GAC5B,MAAwB,iBAAVh9C,GAAsB,aAAmBA,EAAOg9C,GAM3D,SAASoqB,GAASpqB,EAAMgd,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAMyoE,GACNrN,YAAa,CAAC7c,GACdwgB,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOmpC,GAASnnE,EAAOg+B,EAAK67B,YAAY,KAC3EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,iDAAmDlJ,KAEjIA,GCpBA,IAAIqN,GAAe,cAKnB,SAASC,GAAYtnE,EAAOg9C,GAC/B,MAAwB,iBAAVh9C,IAAuB,aAAmBA,EAAOg9C,GAM5D,SAASuqB,GAAYvqB,EAAMgd,GAC9B,OAAOmJ,EAAW,CACd1kE,KAAM4oE,GACNxN,YAAa,CAAC7c,GACdwgB,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOspC,GAAYtnE,EAAOg+B,EAAK67B,YAAY,KAC9EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uDAAyDlJ,KAEvIA,GCpBA,IAAIwN,GAAW,UAKf,SAASC,GAAQznE,EAAOoqD,GAC3B,MAAwB,iBAAVpqD,GAAsB,YAAoBA,EAAOoqD,GAM5D,SAASsd,GAAQtd,EAAQ4P,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAM+oE,GACN3N,YAAa,CAACzP,GACdoT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOypC,GAAQznE,EAAOg+B,EAAK67B,YAAY,KAC1EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,iDAAmDlJ,KAEjIA,GCpBA,IAAI2N,GAAkB,iBAKtB,SAASC,GAAe5nE,EAAOoqD,GAClC,MAAwB,iBAAVpqD,GAAsB,mBAA2BA,EAAOoqD,GAMnE,SAASyd,GAAezd,EAAQ4P,GACnC,OAAOmJ,EAAW,CACd1kE,KAAMkpE,GACN9N,YAAa,CAACzP,GACdoT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO4pC,GAAe5nE,EAAOg+B,EAAK67B,YAAY,KACjFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oDAAsDlJ,KAEpIA,GCpBA,IAAI8N,GAAa,YAKjB,SAASC,GAAU/nE,EAAO+O,GAC7B,MAAwB,iBAAV/O,GAAsB,cAAsBA,EAAO+O,GAM9D,SAASi5D,GAAUj5D,EAASirD,GAC/B,OAAOmJ,EAAW,CACd1kE,KAAMqpE,GACNjO,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO+pC,GAAU/nE,EAAOg+B,EAAK67B,YAAY,KAC5EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,6CAA+ClJ,KAE7HA,GCpBA,IAAIiO,GAAW,UAKf,SAASC,GAAQloE,GACpB,MAAwB,iBAAVA,GAAsB,YAAkBA,GAMnD,SAASmoE,GAAQnO,GACpB,OAAOmJ,EAAW,CACd1kE,KAAMwpE,GACNzK,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOkqC,GAAQloE,IAClD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,iDAAmDlJ,KAEjIA,GCnBA,IAAIoO,GAAY,WAKhB,SAASC,GAASroE,GACrB,MAAwB,iBAAVA,GAAsB,aAAmBA,GAMpD,SAASsoE,GAAStO,GACrB,OAAOmJ,EAAW,CACd1kE,KAAM2pE,GACN5K,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOqqC,GAASroE,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qCAAuClJ,KAErHA,GCnBA,IAAIuO,GAAiB,eAKrB,SAASC,GAAaxoE,EAAO6zB,EAAKC,GACrC,MAAwB,iBAAV9zB,GAAsB,iBAAuBA,EAAO,CAAE6zB,IAAKA,EAAKC,IAAKA,IAMhF,SAAS20C,GAAa50C,EAAKC,EAAKkmC,GACnC,OAAOmJ,EAAW,CACd1kE,KAAM8pE,GACN1O,YAAa,CAAChmC,EAAKC,GACnB0pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOwqC,GAAaxoE,EAAOg+B,EAAK67B,YAAY,GAAI77B,EAAK67B,YAAY,KACpGiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8EAAgFlJ,KAE9JA,GCpBA,IAAI0O,GAAiB,eAKrB,SAASC,GAAa3oE,GACzB,MAAwB,iBAAVA,GAAsB,iBAAuBA,GAMxD,SAAS4oE,GAAa5O,GACzB,OAAOmJ,EAAW,CACd1kE,KAAMiqE,GACNlL,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO2qC,GAAa3oE,IACvD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCnBA,IAAI6O,GAAc,aAKlB,SAASC,GAAW9oE,EAAO+O,GAC9B,MAAwB,iBAAV/O,GAAsB,eAAuBA,EAAO+O,GAM/D,SAASg6D,GAAWh6D,EAASirD,GAChC,OAAOmJ,EAAW,CACd1kE,KAAMoqE,GACNhP,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO8qC,GAAW9oE,EAAOg+B,EAAK67B,YAAY,KAC7EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,iCAAmClJ,KAEjHA,GCpBA,IAAIgP,GAAW,UAKf,SAASC,GAAQjpE,EAAO+O,GAC3B,MAAwB,iBAAV/O,GAAsB,YAAoBA,EAAO+O,GAM5D,SAASm6D,GAAQn6D,EAASirD,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAMuqE,GACNnP,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOirC,GAAQjpE,EAAOg+B,EAAK67B,YAAY,KAC1EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,+BAAiClJ,KAE/GA,GCpBA,IAAImP,GAAU,SAKd,SAASC,GAAOppE,EAAO+O,GAC1B,MAAwB,iBAAV/O,GAAsB,WAAmBA,EAAO+O,GAM3D,SAASs6D,GAAOt6D,EAASirD,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAM0qE,GACNtP,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOorC,GAAOppE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0CAA4ClJ,KAE1HA,GCpBA,IAAIsP,GAAgB,cAKpB,SAASC,GAAYvpE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAASwpE,GAAYxP,GACxB,OAAOmJ,EAAW,CACd1kE,KAAM6qE,GACN9L,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOurC,GAAYvpE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GCnBA,IAAIyP,GAAgB,cAKpB,SAASC,GAAY1pE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAAS2pE,GAAY3P,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMgrE,GACNjM,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO0rC,GAAY1pE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GCnBA,IAAI4P,GAAoB,kBAKxB,SAASC,GAAgB7pE,GAC5B,MAAwB,iBAAVA,GAAsB,oBAA0BA,GAM3D,SAAS8pE,GAAgB9P,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAMmrE,GACNpM,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO6rC,GAAgB7pE,IAC1D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kEAAoElJ,KAElJA,GCnBA,IAAI+P,GAAe,aAKnB,SAASC,GAAWhqE,GACvB,MAAwB,iBAAVA,GAAsB,eAAqBA,GAMtD,SAASiqE,GAAWjQ,GACvB,OAAOmJ,EAAW,CACd1kE,KAAMsrE,GACNvM,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgsC,GAAWhqE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0CAA4ClJ,KAE1HA,GCnBA,IAAIkQ,GAAiB,gBAKrB,SAASC,GAAcnqE,GAC1B,MAAwB,iBAAVA,GAAsB,kBAAwBA,GAMzD,SAASoqE,GAAcpQ,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAMyrE,GACN1M,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOmsC,GAAcnqE,IACxD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,2CAA6ClJ,KAE3HA,GCrBA,SAASqQ,GAAoBxtE,GAChC,QAAKA,IAGE,SAAUA,GACV,YAAaA,GACb,WAAYA,GACZ,WAAYA,GACZ,YAAaA,GCLjB,IAAIytE,GAAiB,eAKrB,SAASC,GAAavqE,EAAO+O,GAChC,MAAwB,iBAAV/O,GAAsB,iBAAyBA,EAAO+O,GAEjE,SAASy7D,GAAaC,EAA+BC,GACxD,IAAI37D,EAAWs7D,GAAoBI,QAAiE/9C,EAAhC+9C,EAChEzQ,EAAoBqQ,GAAoBI,GAAiCA,EAAgCC,EAC7G,OAAOvH,EAAW,CACd1kE,KAAM6rE,GACNzQ,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOusC,GAAavqE,EAAO+O,IAC9D+xD,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCnBA,IAAI2Q,GAAQ,OAKZ,SAASC,GAAK5qE,EAAO6O,GACxB,IAAIg8D,EAAah8D,EAAU,GAAKA,OAAU6d,EAC1C,MAAwB,iBAAV1sB,GAAsB,SAAiBA,EAAO6qE,GAMzD,SAASC,GAAKj8D,EAASmrD,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAMksE,GACN9Q,YAAa,CAAChrD,GACd2uD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO4sC,GAAK5qE,EAAOg+B,EAAK67B,YAAY,KACvEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCrBA,IAAI+Q,GAAU,SAId,SAASC,GAAOhrE,GACnB,MAAwB,iBAAVA,GAAsB,WAAiBA,GAKlD,SAASirE,GAAOjR,GACnB,OAAOmJ,EAAW,CACd1kE,KAAMssE,GACNvN,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgtC,GAAOhrE,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,6BAA+BlJ,KAE7GA,GCjBA,IAAIkR,GAAU,SAKd,SAASC,GAAOnrE,EAAO6O,GAC1B,IAAIg8D,EAAah8D,EAAU,GAAKA,OAAU6d,EAC1C,MAAwB,iBAAV1sB,GAAsB,WAAmBA,EAAO6qE,GAM3D,SAASO,GAAOv8D,EAASmrD,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAMysE,GACNrR,YAAa,CAAChrD,GACd2uD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOmtC,GAAOnrE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8BAAgClJ,KAE9GA,GCrBA,IAAIqR,GAAU,SAKd,SAASC,GAAOtrE,GACnB,MAAwB,iBAAVA,GAAsB,WAAiBA,GAMlD,SAASurE,GAAOvR,GACnB,OAAOmJ,EAAW,CACd1kE,KAAM4sE,GACN7N,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOstC,GAAOtrE,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0DAA4DlJ,KAE1IA,GCnBA,IAAIwR,GAAa,YAMjB,SAASC,GAAUzrE,EAAO+O,GAC7B,MAAwB,iBAAV/O,GAAsB,cAAsBA,EAAO+O,GAO9D,SAAS28D,GAAU38D,EAASirD,GAC/B,OAAOmJ,EAAW,CACd1kE,KAAM+sE,GACN3R,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOytC,GAAUzrE,EAAOg+B,EAAK67B,YAAY,KAC5EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GCtBA,IAAI2R,GAAU,SAKd,SAASC,GAAO5rE,GACnB,MAAwB,iBAAVA,GAAsB,WAAiBA,GAMlD,SAAS6rE,GAAO7R,GACnB,OAAOmJ,EAAW,CACd1kE,KAAMktE,GACNnO,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO4tC,GAAO5rE,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCnBA,IAAI8R,GAAS,QAKb,SAASC,GAAM/rE,GAClB,MAAwB,iBAAVA,GAAsB,UAAgBA,GAMjD,SAASgsE,GAAMhS,GAClB,OAAOmJ,EAAW,CACd1kE,KAAMqtE,GACNtO,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO+tC,GAAM/rE,IAChD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mCAAqClJ,KAEnHA,GCnBA,IAAIiS,GAAe,cAKnB,SAASC,GAAYlsE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAASmsE,GAAYnS,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMwtE,GACNzO,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOkuC,GAAYlsE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,yCAA2ClJ,KAEzHA,GCnBA,IAAIoS,GAAkB,gBAatB,SAASC,GAAcrsE,EAAOoqD,EAAQr7C,GACzC,MAAwB,iBAAV/O,GAAsB,kBAAwBA,EAAOoqD,EAAQr7C,GAcxE,SAASu9D,GAAcliB,EAAQr7C,EAASirD,GAC3C,OAAOmJ,EAAW,CACd1kE,KAAM2tE,GACNvS,YAAa,CAACzP,EAAQr7C,GACtByuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOquC,GAAcrsE,EAAOg+B,EAAK67B,YAAY,GAAI77B,EAAK67B,YAAY,KACrGiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qCAAuClJ,KAErHA,GCpCA,IAAIuS,GAAsB,mBAI1B,SAASC,GAAiBxsE,GAC7B,MAAwB,iBAAVA,GAAsB,qBAA2BA,GAK5D,SAASysE,GAAiBzS,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAM8tE,GACN/O,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOwuC,GAAiBxsE,IAC3D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GCjBA,IAAI0S,GAAsB,mBAI1B,SAASC,GAAiB3sE,GAC7B,MAAwB,iBAAVA,GAAsB,qBAA2BA,GAK5D,SAAS4sE,GAAiB5S,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAMiuE,GACNlP,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO2uC,GAAiB3sE,IAC3D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mDAAqDlJ,KAEnIA,GCjBA,IAAI6S,GAAc,YAKlB,SAASC,GAAU9sE,GACtB,MAAwB,iBAAVA,GAAsB,cAAoBA,GAMrD,SAAS+sE,GAAU/S,GACtB,OAAOmJ,EAAW,CACd1kE,KAAMouE,GACNrP,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO8uC,GAAU9sE,IACpD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,mCAAqClJ,KAEnHA,GCnBA,IAAIgT,GAAe,cAKnB,SAASC,GAAYjtE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAASktE,GAAYlT,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMuuE,GACNxP,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOivC,GAAYjtE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uDAAyDlJ,KAEvIA,GCnBA,IAAImT,GAAoB,kBAKxB,SAASC,GAAgBptE,GAC5B,MAAwB,iBAAVA,GAAsB,oBAA0BA,GAM3D,SAASqtE,GAAgBrT,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAM0uE,GACN3P,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOovC,GAAgBptE,IAC1D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qDAAuDlJ,KAErIA,GCnBA,IAAIsT,GAAS,QAKb,SAASC,GAAMvtE,EAAO+O,GACzB,MAAwB,iBAAV/O,GAAsB,UAAkBA,EAAO+O,GAM1D,SAASy+D,GAAMz+D,EAASirD,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAM6uE,GACNzT,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOuvC,GAAMvtE,EAAOg+B,EAAK67B,YAAY,KACxEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qCAAuClJ,KAErHA,GCpBA,IAAIyT,GAAU,SAKd,SAASC,GAAO1tE,EAAO6O,GAC1B,MAAwB,iBAAV7O,GAAsB,WAAiBA,EAAO6O,GAMzD,SAAS8+D,GAAO9+D,EAASmrD,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAMgvE,GACN5T,YAAa,CAAChrD,GACd2uD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO0vC,GAAO1tE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8BAAgClJ,KAE9GA,GCrBA,IAAI4T,GAAsB,mBAK1B,SAASC,GAAiB7tE,GAE7B,MAAwB,iBAAVA,GAAuC,KAAjBA,EAAM5D,QADvB,mBACqD+D,KAAKH,GAM1E,SAAS8tE,GAAiB9T,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAMmvE,GACNpQ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO6vC,GAAiB7tE,IAC3D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,yCAA2ClJ,KAEzHA,GCnBA,IAAI+T,GAAe,cAKnB,SAASC,GAAYhuE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAASiuE,GAAYjU,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMsvE,GACNvQ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgwC,GAAYhuE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,gCAAkClJ,KAEhHA,GCnBA,IAAIkU,GAAS,SAKb,SAAS,GAAOluE,EAAO6zB,EAAKC,GAC/B,MAAwB,iBAAV9zB,GAAsB,aAAmBA,EAAO,CAAE6zB,IAAKA,EAAKC,IAAKA,IAM5E,SAASq6C,GAAOt6C,EAAKC,EAAKkmC,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAMyvE,GACNrU,YAAa,CAAChmC,EAAKC,GACnB0pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO,GAAOh+B,EAAOg+B,EAAK67B,YAAY,GAAI77B,EAAK67B,YAAY,KAC9FiH,eAAgBkC,GAAa,SAAUE,EAAYllC,GAC/C,IAAIowC,EAAsC,OAAxBpwC,EAAK67B,YAAY,SAAuCntC,IAAxBsR,EAAK67B,YAAY,GAC/DwU,EAAsC,OAAxBrwC,EAAK67B,YAAY,SAAuCntC,IAAxBsR,EAAK67B,YAAY,GACnE,OAAIuU,KAAiBpwC,EAAKh+B,OAASg+B,EAAKh+B,MAAM5D,OAAS4hC,EAAK67B,YAAY,IAC7DqJ,EAAa,oEAEfmL,GAAgBrwC,EAAKh+B,MAAM5D,OAAS4hC,EAAK67B,YAAY,GACnDqJ,EAAa,qEAEjBA,EAAa,gHACrBlJ,KAERA,GC9BA,IAAIsU,GAAa,YAKjB,SAASC,GAAUvuE,EAAO8zB,GAC7B,MAAwB,iBAAV9zB,GAAsB,aAAmBA,EAAO,CAAE6zB,IAAK,EAAGC,IAAKA,IAM1E,SAAS06C,GAAU16C,EAAKkmC,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAM6vE,GACNzU,YAAa,CAAC/lC,GACd0pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOuwC,GAAUvuE,EAAOg+B,EAAK67B,YAAY,KAC5EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uEAAyElJ,KAEvJA,GCpBA,IAAIyU,GAAa,YAKjB,SAASC,GAAU1uE,EAAO6zB,GAC7B,MAAwB,iBAAV7zB,GAAsB,aAAmBA,EAAO,CAAE6zB,IAAKA,IAMlE,SAAS86C,GAAU96C,EAAKmmC,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAMgwE,GACN5U,YAAa,CAAChmC,GACd2pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO0wC,GAAU1uE,EAAOg+B,EAAK67B,YAAY,KAC5EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,sEAAwElJ,KAEtJA,GCpBA,IAAI4U,GAAU,UACd,SAASpzB,GAAQx7C,EAAOsM,EAASuiE,GACpC,MAAwB,iBAAV7uE,GAAsB,YAAkBA,EAAOsM,EAASuiE,GAEnE,SAASC,GAAQxiE,EAASyiE,EAA8B/U,GAC3D,IAAI6U,EAOJ,OANIE,GAAgCA,aAAwChyE,SAAWi9D,EACnFA,EAAoB+U,EAGpBF,EAAYE,EAET5L,EAAW,CACd1kE,KAAMmwE,GACN/U,YAAa,CAACvtD,EAASuiE,GACvBrR,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOwd,GAAQx7C,EAAOg+B,EAAK67B,YAAY,GAAI77B,EAAK67B,YAAY,KAC/FiH,eAAgBkC,GAAa,SAAUE,EAAYllC,GAAQ,OAAOklC,EAAa,yDAA2DlJ,KAE/IA,G,eCnBIgV,GAAkB,gBAQtB,SAASC,GAAcjvE,EAAOqqD,GACjC,IAAI6kB,EAAY,GAAAC,gBAAA,cAChB,IACI,IAAIC,EAAWF,EAAUG,qBAAqBrvE,EAAOqqD,GAErD,OADa6kB,EAAUI,cAAcF,GAGzC,MAAO5uC,GAEH,OAAO,GASR,SAAS+uC,GAAcllB,EAAQ2P,GAClC,OAAOmJ,EAAW,CACd1kE,KAAMuwE,GACNnV,YAAa,CAACxP,GACdmT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOixC,GAAcjvE,EAAOg+B,EAAK67B,YAAY,KAChFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,2CAA6ClJ,KAE3HA,GClCA,IAAIwV,GAAmB,iBAKvB,SAASC,GAAezvE,GAE3B,MAAwB,iBAAVA,GAAsB,YAAkBA,EAD9B,gCAOrB,SAAS0vE,GAAe1V,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAM+wE,GACNhS,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOyxC,GAAezvE,IACzD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kFAAoFlJ,KAElKA,GCpBA,IAAI2V,GAAU,SAMd,SAASC,GAAO5vE,EAAO6vE,GAC1B,MAAwB,iBAAV7vE,GAAsB,WAAmBA,EAAO6vE,GAO3D,SAASC,GAAOD,EAAW7V,GAC9B,OAAOmJ,EAAW,CACd1kE,KAAMkxE,GACN9V,YAAa,CAACgW,GACdrS,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO4xC,GAAO5vE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kDAAoDlJ,KAElIA,GCtBA,IAAI+V,GAAU,SAKd,SAASC,GAAOhwE,EAAO+O,GAC1B,MAAwB,iBAAV/O,GAAsB,WAAmBA,EAAO+O,GAM3D,SAASkhE,GAAOlhE,EAASirD,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAMsxE,GACNlW,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgyC,GAAOhwE,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,6BAA+BlJ,KAE7GA,GCrBA,IAAIkW,GAAiB,eAIrB,SAASC,GAAanwE,GAEzB,MAAwB,iBAAVA,GADF,8FAC8BG,KAAKH,GAK5C,SAASowE,GAAapW,GACzB,OAAOmJ,EAAW,CACd1kE,KAAMyxE,GACN1S,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOmyC,GAAanwE,IACvD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kCAAoClJ,KAElHA,GCjBA,IAAIqW,GAAoB,kBAKxB,SAASC,GAAgBtwE,GAC5B,MAAwB,iBAAVA,GAAsB,cAAoBA,GAMrD,SAASuwE,GAAgBvW,GAC5B,OAAOmJ,EAAW,CACd1kE,KAAM4xE,GACN7S,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOsyC,GAAgBtwE,IAC1D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uCAAyClJ,KAEvHA,GCnBA,IAAIwW,GAAmB,iBAKvB,SAASC,GAAezwE,EAAO+O,GAClC,MAAwB,iBAAV/O,GAAsB,cAAsBA,EAAO+O,GAM9D,SAAS2hE,GAAe3hE,EAASirD,GACpC,OAAOmJ,EAAW,CACd1kE,KAAM+xE,GACN3W,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOyyC,GAAezwE,EAAOg+B,EAAK67B,YAAY,KACjFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,sCAAwClJ,KAEtHA,GCpBA,IAAI2W,GAAY,WAKhB,SAASC,GAAS5wE,GACrB,MAAwB,iBAAVA,GAAsB,aAAmBA,GAMpD,SAAS6wE,GAAS7W,GACrB,OAAOmJ,EAAW,CACd1kE,KAAMkyE,GACNnT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO4yC,GAAS5wE,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qCAAuClJ,KAErHA,GCnBA,IAAI8W,GAAS,QAKb,SAASC,GAAM/wE,GAClB,MAAwB,iBAAVA,GAAsB,UAAgBA,GAMjD,SAASgxE,GAAMhX,GAClB,OAAOmJ,EAAW,CACd1kE,KAAMqyE,GACNtT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO+yC,GAAM/wE,IAChD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0CAA4ClJ,KAE1HA,GCnBA,IAAIiX,GAAiB,eAKrB,SAASC,GAAalxE,GACzB,MAAwB,iBAAVA,GAAsB,iBAAuBA,GAMxD,SAASmxE,GAAanX,GACzB,OAAOmJ,EAAW,CACd1kE,KAAMwyE,GACNzT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOkzC,GAAalxE,IACvD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCnBA,IAAIoX,GAAc,YAKlB,SAASC,GAAUrxE,GACtB,MAAwB,iBAAVA,GAAsB,cAAoBA,GAMrD,SAASsxE,GAAUtX,GACtB,OAAOmJ,EAAW,CACd1kE,KAAM2yE,GACN5T,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOqzC,GAAUrxE,IACpD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,wCAA0ClJ,KAExHA,GCnBA,IAAIuX,GAAS,QAKb,SAASC,GAAMxxE,GAClB,MAAwB,iBAAVA,GAAsB,UAAgBA,GAMjD,SAASyxE,GAAMzX,GAClB,OAAOmJ,EAAW,CACd1kE,KAAM8yE,GACN/T,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOwzC,GAAMxxE,IAChD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uDAAyDlJ,KAEvIA,GCnBA,IAAI0X,GAAsB,oBAK1B,SAASC,GAAkB3xE,GAC9B,MAAwB,iBAAVA,GAAsB,sBAA4BA,GAM7D,SAAS4xE,GAAkB5X,GAC9B,OAAOmJ,EAAW,CACd1kE,KAAMizE,GACNlU,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO2zC,GAAkB3xE,IAC5D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0CAA4ClJ,KAE1HA,GCnBA,IAAI6X,GAAS,QAMb,SAASC,GAAM9xE,GAClB,MAAwB,iBAAVA,GAAsB,UAAgBA,GAOjD,SAAS+xE,GAAM/X,GAClB,OAAOmJ,EAAW,CACd1kE,KAAMozE,GACNrU,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO8zC,GAAM9xE,IAChD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kCAAoClJ,KAElHA,GCrBA,IAAIgY,GAAU,SAKd,SAASC,GAAOjyE,GACnB,MAAwB,iBAAVA,GAAsB,WAAiBA,GAMlD,SAASkyE,GAAOlY,GACnB,OAAOmJ,EAAW,CACd1kE,KAAMuzE,GACNxU,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOi0C,GAAOjyE,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8BAAgClJ,KAE9GA,GCnBA,IAAImY,GAAmB,iBAOvB,SAASC,GAAepyE,EAAOoqD,GAClC,MAAwB,iBAAVpqD,GAAsB,mBAA2BA,EAAOoqD,GAQnE,SAASioB,GAAejoB,EAAQ4P,GACnC,OAAOmJ,EAAW,CACd1kE,KAAM0zE,GACNtY,YAAa,CAACzP,GACdoT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOo0C,GAAepyE,EAAOg+B,EAAK67B,YAAY,KACjFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,6CAA+ClJ,KAE7HA,GCxBA,IAAIsY,GAAU,SAKd,SAASC,GAAOvyE,GACnB,MAAwB,iBAAVA,GAAsB,WAAiBA,GAMlD,SAASwyE,GAAOxY,GACnB,OAAOmJ,EAAW,CACd1kE,KAAM6zE,GACN9U,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOu0C,GAAOvyE,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,8BAAgClJ,KAE9GA,GCnBA,IAAIyY,GAAY,WAKhB,SAASC,GAAS1yE,GACrB,MAAwB,iBAAVA,GAAsB,aAAmBA,GAMpD,SAAS2yE,GAAS3Y,GACrB,OAAOmJ,EAAW,CACd1kE,KAAMg0E,GACNjV,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO00C,GAAS1yE,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,6BAA+BlJ,KAE7GA,GCnBA,IAAI4Y,GAAgB,cAKpB,SAASC,GAAY7yE,GACxB,MAAwB,iBAAVA,GAAsB,gBAAsBA,GAMvD,SAAS8yE,GAAY9Y,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMm0E,GACNpV,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO60C,GAAY7yE,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,wCAA0ClJ,KAExHA,GCnBA,IAAI+Y,GAAe,aAKnB,SAASC,GAAWhzE,GACvB,MAAwB,iBAAVA,GAAsB,eAAqBA,GAMtD,SAASizE,GAAWjZ,GACvB,OAAOmJ,EAAW,CACd1kE,KAAMs0E,GACNvV,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOg1C,GAAWhzE,IACrD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uCAAyClJ,KAEvHA,GCnBA,IAAIkZ,GAAW,UAKf,SAASC,GAAQnzE,GACpB,MAAwB,iBAAVA,GAAsB,YAAkBA,GAMnD,SAASozE,GAAQpZ,GACpB,OAAOmJ,EAAW,CACd1kE,KAAMy0E,GACN1V,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOm1C,GAAQnzE,IAClD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,yCAA2ClJ,KAEzHA,GCnBA,IAAIqZ,GAAqB,mBAKzB,SAASC,GAAiBtzE,EAAOuzE,GACpC,MAAwB,iBAAVvzE,GAAsB,qBAA2BA,EAAOuzE,GAMnE,SAASC,GAAiBD,EAAavZ,GAC1C,OAAOmJ,EAAW,CACd1kE,KAAM40E,GACNxZ,YAAa,CAAC0Z,GACd/V,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOs1C,GAAiBtzE,EAAOg+B,EAAK67B,YAAY,KACnFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,4CAA8ClJ,KAE5HA,GCpBA,IAAIyZ,GAAiB,eAMrB,SAASC,GAAa1zE,EAAOoqD,GAChC,MAAwB,iBAAVpqD,GAAsB,iBAAuBA,EAAOoqD,GAO/D,SAASupB,GAAavpB,EAAQ4P,GACjC,OAAOmJ,EAAW,CACd1kE,KAAMg1E,GACN5Z,YAAa,CAACzP,GACdoT,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO01C,GAAa1zE,EAAOg+B,EAAK67B,YAAY,KAC/EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCtBA,IAAI4Z,GAAc,YAKlB,SAASC,GAAU7zE,GACtB,MAAwB,iBAAVA,GAAsB,cAAoBA,GAMrD,SAAS8zE,GAAU9Z,GACtB,OAAOmJ,EAAW,CACd1kE,KAAMm1E,GACNpW,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO61C,GAAU7zE,IACpD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,oCAAsClJ,KAEpHA,GCnBA,IAAI+Z,GAAe,aAMnB,SAASC,GAAWh0E,EAAOi0E,GAC9B,MAAwB,iBAAVj0E,GAAsB,eAAqBA,EAAOi0E,GAO7D,SAASC,GAAWD,EAAsBja,GAC7C,OAAOmJ,EAAW,CACd1kE,KAAMs1E,GACNla,YAAa,CAACoa,GACdzW,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOg2C,GAAWh0E,EAAOg+B,EAAK67B,YAAY,KAC7EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,gCAAkClJ,KAEhHA,GCtBA,IAAIma,GAAa,WAKjB,SAASC,GAASp0E,GACrB,MAAwB,iBAAVA,GAAsB,aAAmBA,GAMpD,SAASq0E,GAASra,GACrB,OAAOmJ,EAAW,CACd1kE,KAAM01E,GACN3W,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOo2C,GAASp0E,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0DAA4DlJ,KAE1IA,GCpBA,IAAIsa,GAAa,YAIjB,SAASC,GAAUv0E,GACtB,OAAOA,aAAiBssC,SAA4B,kBAAVtsC,EAKvC,SAASw0E,GAAUxa,GACtB,OAAOmJ,EAAW,CACd1kE,KAAM61E,GACN9W,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOu2C,GAAUv0E,IACpD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,sCAAwClJ,KAEtHA,GCjBA,IAAIya,GAAU,SAId,SAASzqC,GAAOhqC,GACnB,OAAOA,aAAiBwjC,OAASiG,MAAMzpC,EAAM4rC,WAK1C,SAAS8oC,GAAO1a,GACnB,OAAOmJ,EAAW,CACd1kE,KAAMg2E,GACNjX,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOgM,GAAOhqC,IACjD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,sCAAwClJ,KAEtHA,GCjBA,IAAI2a,GAAY,WAIhB,SAASC,GAAS50E,EAAO+O,GAE5B,QADgB,IAAZA,IAAsBA,EAAU,IACf,iBAAV/O,EACP,OAAO,EAEX,GAAIA,IAAUg6B,KAAYh6B,KAAU,IAChC,OAAO+O,EAAQ8lE,cAEnB,GAAIp0E,OAAOgpC,MAAMzpC,GACb,OAAO+O,EAAQ+lE,SAEnB,QAAiCpoD,IAA7B3d,EAAQgmE,iBAAgC,CACxC,IAAIC,EAAgB,EAIpB,GAHKh1E,EAAQ,GAAO,IAChBg1E,EAAgBh1E,EAAMvC,WAAW+C,MAAM,KAAK,GAAGpE,QAE/C44E,EAAgBjmE,EAAQgmE,iBACxB,OAAO,EAGf,OAAOt0E,OAAOw0E,SAASj1E,GAKpB,SAASk1E,GAASnmE,EAASirD,GAE9B,YADgB,IAAZjrD,IAAsBA,EAAU,IAC7Bo0D,EAAW,CACd1kE,KAAMk2E,GACN9a,YAAa,CAAC9qD,GACdyuD,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO42C,GAAS50E,EAAOg+B,EAAK67B,YAAY,KAC3EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,uEAAyElJ,KAEvJA,GCtCA,IAAImb,GAAU,SAId,SAASC,GAAOp1E,EAAOq1E,GAG1B,OAFiBt4E,OAAOyiB,KAAK61D,GACxBxlE,KAAI,SAAUkV,GAAK,OAAOswD,EAAOtwD,MACpB1a,QAAQrK,IAAU,EAKjC,SAASs1E,GAAOD,EAAQrb,GAC3B,OAAOmJ,EAAW,CACd1kE,KAAM02E,GACNtb,YAAa,CAACwb,GACd7X,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOo3C,GAAOp1E,EAAOg+B,EAAK67B,YAAY,KACzEiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,yCAA2ClJ,KAEzHA,GCpBA,IAAIub,GAAS,QAIb,SAASC,GAAM34E,GAClB,MAAsB,iBAARA,GAAoB4D,OAAO04C,UAAUt8C,GAKhD,SAAS44E,GAAMzb,GAClB,OAAOmJ,EAAW,CACd1kE,KAAM82E,GACN/X,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOw3C,GAAMx1E,IAChD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,wCAA0ClJ,KAExHA,GCjBA,IAAI0b,GAAY,WAIhB,SAASC,GAAS31E,GACrB,OAAOA,aAAiB5C,QAA2B,iBAAV4C,EAKtC,SAAS41E,GAAS5b,GACrB,OAAOmJ,EAAW,CACd1kE,KAAMi3E,GACNlY,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO23C,GAAS31E,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,+BAAiClJ,KAE/GA,GCjBA,IAAI6b,GAAW,UAIf,SAASx3E,GAAQ2B,GACpB,OAAOA,aAAiB5B,MAKrB,SAAS03E,GAAQ9b,GACpB,OAAOmJ,EAAW,CACd1kE,KAAMo3E,GACNrY,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO3/B,GAAQ2B,IAClD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,+BAAiClJ,KAE/GA,GCjBA,IAAI+b,GAAY,WAKhB,SAASC,GAASh2E,GACrB,OAAgB,MAATA,IAAmC,iBAAVA,GAAuC,mBAAVA,KAA0B5B,MAAMC,QAAQ2B,GAMlG,SAASi2E,GAASjc,GACrB,OAAOmJ,EAAW,CACd1kE,KAAMs3E,GACNvY,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOg4C,GAASh2E,IACnD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,gCAAkClJ,KAEhHA,GCnBA,IAAIkc,GAAiB,gBAKrB,SAASC,GAAc/1E,EAAO80D,GACjC,OAAM90D,aAAiBhC,OAEhB82D,EAAOkL,OAAM,SAAUpgE,GAAS,OAAiC,IAA1BI,EAAMiK,QAAQrK,MAMzD,SAASo2E,GAAclhB,EAAQ8E,GAClC,OAAOmJ,EAAW,CACd1kE,KAAMy3E,GACNrc,YAAa,CAAC3E,GACdsI,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOm4C,GAAcn2E,EAAOg+B,EAAK67B,YAAY,KAChFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,+CAAiDlJ,KAE/HA,GCtBA,IAAIqc,GAAqB,mBAKzB,SAASC,GAAiBl2E,EAAO80D,GACpC,OAAM90D,aAAiBhC,OAEhB82D,EAAOkL,OAAM,SAAUpgE,GAAS,OAAiC,IAA1BI,EAAMiK,QAAQrK,MAMzD,SAASu2E,GAAiBrhB,EAAQ8E,GACrC,OAAOmJ,EAAW,CACd1kE,KAAM43E,GACNxc,YAAa,CAAC3E,GACdsI,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOs4C,GAAiBt2E,EAAOg+B,EAAK67B,YAAY,KACnFiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,qDAAuDlJ,KAErIA,GCtBA,IAAIwc,GAAkB,gBAKtB,SAASC,GAAcr2E,GAC1B,OAAOA,aAAiBhC,OAASgC,EAAMhE,OAAS,EAM7C,SAASs6E,GAAc1c,GAC1B,OAAOmJ,EAAW,CACd1kE,KAAM+3E,GACNhZ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOy4C,GAAcz2E,IACxD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,kCAAoClJ,KAElHA,GCnBA,IAAI2c,GAAiB,eAKrB,SAASC,GAAax2E,EAAOyzB,GAChC,OAAOzzB,aAAiBhC,OAASgC,EAAMhE,QAAUy3B,EAM9C,SAASgjD,GAAahjD,EAAKmmC,GAC9B,OAAOmJ,EAAW,CACd1kE,KAAMk4E,GACN9c,YAAa,CAAChmC,GACd2pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO44C,GAAa52E,EAAOg+B,EAAK67B,YAAY,KAC/EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,0DAA4DlJ,KAE1IA,GCpBA,IAAI8c,GAAiB,eAKrB,SAASC,GAAa32E,EAAO0zB,GAChC,OAAO1zB,aAAiBhC,OAASgC,EAAMhE,QAAU03B,EAM9C,SAASkjD,GAAaljD,EAAKkmC,GAC9B,OAAOmJ,EAAW,CACd1kE,KAAMq4E,GACNjd,YAAa,CAAC/lC,GACd0pC,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAO+4C,GAAa/2E,EAAOg+B,EAAK67B,YAAY,KAC/EiH,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,+DAAiElJ,KAE/IA,GCpBA,IAAIid,GAAe,cAKnB,SAASC,GAAY92E,GACxB,KAAMA,aAAiBhC,OACnB,OAAO,EACX,IAAI+4E,EAAc/2E,EAAMuN,QAAO,SAAU8xB,EAAGC,EAAGhN,GAAK,OAAOA,EAAEroB,QAAQo1B,KAAOC,KAC5E,OAAOt/B,EAAMhE,SAAW+6E,EAAY/6E,OAMjC,SAASg7E,GAAYpd,GACxB,OAAOmJ,EAAW,CACd1kE,KAAMw4E,GACNzZ,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOk5C,GAAYl3E,IACtD8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,4CAA8ClJ,KAE5HA,GCrBA,IAAIqd,GAAsB,mBAK1B,SAASC,GAAiBt3E,GAC7B,IAAKg2E,GAASh2E,GACV,OAAO,EAEX,IAAK,IAAIrD,KAAOqD,EACZ,GAAIA,EAAMjG,eAAe4C,GACrB,OAAO,EAGf,OAAO,EAMJ,SAAS46E,GAAiBvd,GAC7B,OAAOmJ,EAAW,CACd1kE,KAAM44E,GACN7Z,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOs5C,GAAiBt3E,IAC3D8gE,eAAgBkC,GAAa,SAAUE,GAAc,OAAOA,EAAa,yCAA2ClJ,KAEzHA,GC5BA,IAAIwd,GAAc,aAIlB,SAASC,GAAWtuE,EAAQuuE,GAC/B,OAAOA,GACiC,mBAA1BA,GACPvuE,aAAkBuuE,EAKtB,SAASC,GAAWC,EAAY5d,GACnC,OAAOmJ,EAAW,CACd1kE,KAAM+4E,GACN3d,YAAa,CAAC+d,GACdpa,UAAW,CACPsC,SAAU,SAAU9/D,EAAOg+B,GAAQ,OAAOy5C,GAAWz3E,EAAOg+B,EAAK67B,YAAY,KAC7EiH,eAAgBkC,GAAa,SAAUE,EAAYllC,GAC/C,OAAIA,EAAK67B,YAAY,GACVqJ,EAAc,oCAAsCllC,EAAK67B,YAAY,GAAGp7D,KAGxEykE,GAAcsU,GAAc,kEAExCxd,KAERA,GCXA,SAAS8F,GAAS+X,EAAoB3W,EAA2BC,GACpE,MAAkC,iBAAvB0W,EACArV,EAAiBzB,GAAWjB,SAAS+X,EAAoB3W,EAA2BC,GAGpFqB,EAAiBzB,GAAWjB,SAAS+X,EAAoB3W,GAMjE,SAASG,GAAiBwW,EAAoB3W,EAA2BC,GAC5E,MAAkC,iBAAvB0W,EACArV,EAAiBzB,GAAWM,iBAAiBwW,EAAoB3W,EAA2BC,GAG5FqB,EAAiBzB,GAAWM,iBAAiBwW,EAAoB3W,GAQzE,SAASe,GAAa4V,EAAoB3W,EAA2BC,GACxE,MAAkC,iBAAvB0W,EACArV,EAAiBzB,GAAWkB,aAAa4V,EAAoB3W,EAA2BC,GAGxFqB,EAAiBzB,GAAWkB,aAAa4V,EAAoB3W,GAMrE,SAAS4W,GAAe3d,GAC3BG,IAAqBM,oBAAoBT,K,SCrD7C,IACM4d,EAGJC,EAHID,EACE,mEAENC,EAAQ,CAENC,KAAM,SAASvgE,EAAGgoB,GAChB,OAAQhoB,GAAKgoB,EAAMhoB,IAAO,GAAKgoB,GAIjCw4C,KAAM,SAASxgE,EAAGgoB,GAChB,OAAQhoB,GAAM,GAAKgoB,EAAOhoB,IAAMgoB,GAIlCy4C,OAAQ,SAASzgE,GAEf,GAAIA,EAAEqkB,aAAet7B,OACnB,OAA0B,SAAnBu3E,EAAMC,KAAKvgE,EAAG,GAAsC,WAApBsgE,EAAMC,KAAKvgE,EAAG,IAIvD,IAAK,IAAIzZ,EAAI,EAAGA,EAAIyZ,EAAEtb,OAAQ6B,IAC5ByZ,EAAEzZ,GAAK+5E,EAAMG,OAAOzgE,EAAEzZ,IACxB,OAAOyZ,GAIT0gE,YAAa,SAAS1gE,GACpB,IAAK,IAAI4hD,EAAQ,GAAI5hD,EAAI,EAAGA,IAC1B4hD,EAAM93D,KAAKyL,KAAKC,MAAsB,IAAhBD,KAAKgwC,WAC7B,OAAOqc,GAIT+e,aAAc,SAAS/e,GACrB,IAAK,IAAIhiD,EAAQ,GAAIrZ,EAAI,EAAGyhC,EAAI,EAAGzhC,EAAIq7D,EAAMl9D,OAAQ6B,IAAKyhC,GAAK,EAC7DpoB,EAAMooB,IAAM,IAAM45B,EAAMr7D,IAAO,GAAKyhC,EAAI,GAC1C,OAAOpoB,GAITghE,aAAc,SAAShhE,GACrB,IAAK,IAAIgiD,EAAQ,GAAI55B,EAAI,EAAGA,EAAmB,GAAfpoB,EAAMlb,OAAasjC,GAAK,EACtD45B,EAAM93D,KAAM8V,EAAMooB,IAAM,KAAQ,GAAKA,EAAI,GAAO,KAClD,OAAO45B,GAITif,WAAY,SAASjf,GACnB,IAAK,IAAI97D,EAAM,GAAIS,EAAI,EAAGA,EAAIq7D,EAAMl9D,OAAQ6B,IAC1CT,EAAIgE,MAAM83D,EAAMr7D,KAAO,GAAGR,SAAS,KACnCD,EAAIgE,MAAiB,GAAX83D,EAAMr7D,IAAUR,SAAS,KAErC,OAAOD,EAAIuB,KAAK,KAIlBy5E,WAAY,SAASh7E,GACnB,IAAK,IAAI87D,EAAQ,GAAI5mC,EAAI,EAAGA,EAAIl1B,EAAIpB,OAAQs2B,GAAK,EAC/C4mC,EAAM93D,KAAK44B,SAAS58B,EAAI29B,OAAOzI,EAAG,GAAI,KACxC,OAAO4mC,GAITmf,cAAe,SAASnf,GACtB,IAAK,IAAI1b,EAAS,GAAI3/C,EAAI,EAAGA,EAAIq7D,EAAMl9D,OAAQ6B,GAAK,EAElD,IADA,IAAIy6E,EAAWpf,EAAMr7D,IAAM,GAAOq7D,EAAMr7D,EAAI,IAAM,EAAKq7D,EAAMr7D,EAAI,GACxDoC,EAAI,EAAGA,EAAI,EAAGA,IACb,EAAJpC,EAAY,EAAJoC,GAAwB,EAAfi5D,EAAMl9D,OACzBwhD,EAAOp8C,KAAKu2E,EAAUpzE,OAAQ+zE,IAAY,GAAK,EAAIr4E,GAAM,KAEzDu9C,EAAOp8C,KAAK,KAElB,OAAOo8C,EAAO7+C,KAAK,KAIrB45E,cAAe,SAAS/6B,GAEtBA,EAASA,EAAO5wC,QAAQ,iBAAkB,IAE1C,IAAK,IAAIssD,EAAQ,GAAIr7D,EAAI,EAAG26E,EAAQ,EAAG36E,EAAI2/C,EAAOxhD,OAC9Cw8E,IAAU36E,EAAI,EACH,GAAT26E,GACJtf,EAAM93D,MAAOu2E,EAAU1tE,QAAQuzC,EAAOj5C,OAAO1G,EAAI,IAC1CgP,KAAK49B,IAAI,GAAI,EAAI+tC,EAAQ,GAAK,IAAgB,EAARA,EACtCb,EAAU1tE,QAAQuzC,EAAOj5C,OAAO1G,MAAS,EAAY,EAAR26E,GAEtD,OAAOtf,IAIXzhE,EAAOD,QAAUogF,G,4BC5FnB,IAAIx4D,EAAO,EAAQ,MACfq5D,EAA+B,mBAAXphD,QAAkD,iBAAlBA,OAAO,OAE3DqhD,EAAQ/7E,OAAOmG,UAAUzF,SACzB0gC,EAAS//B,MAAM8E,UAAUi7B,OACzB46C,EAAqBh8E,OAAO4+B,eAmB5Bq9C,EAAsBD,GAbY,WACrC,IAAI7hE,EAAM,GACV,IAGC,IAAK,IAAIoqC,KAFTy3B,EAAmB7hE,EAAK,IAAK,CAAEgrB,YAAY,EAAOliC,MAAOkX,IAE3CA,EACb,OAAO,EAER,OAAOA,EAAI8zB,IAAM9zB,EAChB,MAAO9K,GACR,OAAO,GAGuC6sE,GAE5Ct9C,EAAiB,SAAUxyB,EAAQ1K,EAAMuB,EAAOk5E,GAnBnC,IAAUv5E,KAoBtBlB,KAAQ0K,IAnBS,mBADKxJ,EAoBSu5E,IAnBmB,sBAAnBJ,EAAM1hE,KAAKzX,IAmBIu5E,OAG9CF,EACHD,EAAmB5vE,EAAQ1K,EAAM,CAChCud,cAAc,EACdkmB,YAAY,EACZliC,MAAOA,EACPmiC,UAAU,IAGXh5B,EAAO1K,GAAQuB,IAIbud,EAAmB,SAAUpU,EAAQ0G,GACxC,IAAIspE,EAAal8D,UAAU7gB,OAAS,EAAI6gB,UAAU,GAAK,GACnDolB,EAAQ7iB,EAAK3P,GACbgpE,IACHx2C,EAAQlE,EAAO/mB,KAAKirB,EAAOtlC,OAAOwqC,sBAAsB13B,KAEzD,IAAK,IAAI5R,EAAI,EAAGA,EAAIokC,EAAMjmC,OAAQ6B,GAAK,EACtC09B,EAAexyB,EAAQk5B,EAAMpkC,GAAI4R,EAAIwyB,EAAMpkC,IAAKk7E,EAAW92C,EAAMpkC,MAInEsf,EAAiBy7D,sBAAwBA,EAEzCnhF,EAAOD,QAAU2lB,G,sBClDjB,SAAShK,EAAO9W,EAAQ28E,GACtB,GAAI38E,QACF,MAAM,IAAIm/B,UAAU,2CAItB,IADA,IAAIic,EAAK96C,OAAON,GACPwB,EAAI,EAAGA,EAAIgf,UAAU7gB,OAAQ6B,IAAK,CACzC,IAAIo7E,EAAap8D,UAAUhf,GAC3B,GAAIo7E,QAKJ,IADA,IAAIC,EAAYv8E,OAAOyiB,KAAKziB,OAAOs8E,IAC1B1mD,EAAY,EAAGx2B,EAAMm9E,EAAUl9E,OAAQu2B,EAAYx2B,EAAKw2B,IAAa,CAC5E,IAAI4mD,EAAUD,EAAU3mD,GACpB6mD,EAAOz8E,OAAO0qC,yBAAyB4xC,EAAYE,QAC1C7sD,IAAT8sD,GAAsBA,EAAKt3C,aAC7B2V,EAAG0hC,GAAWF,EAAWE,KAI/B,OAAO1hC,EAcThgD,EAAOD,QAAU,CACf2b,OAAQA,EACRkmE,SAbF,WACO18E,OAAOwW,QACVxW,OAAO4+B,eAAe5+B,OAAQ,SAAU,CACtCmlC,YAAY,EACZlmB,cAAc,EACdmmB,UAAU,EACVniC,MAAOuT,O,4BCZb,MAAMmmE,EAAW,EAAQ,MAKzB,MAAMC,EACF,YAAY3/E,EAAMyE,EAAM7E,EAAMs1B,EAAQ/W,EAAOnT,GAKzCzB,KAAKvJ,KAAOA,EAKZuJ,KAAK9E,KAAOA,EAKZ8E,KAAK3J,KAAOA,EAKZ2J,KAAK2rB,OAASA,EAKd3rB,KAAK4U,MAAQA,EAKb5U,KAAKyB,KAAOA,GAmBpBnN,EAAOD,QAAU,CACbgiF,oBAbJ,cAAkCD,EAC9B,YAAYl7E,EAAM7E,EAAMue,EAAO/T,GAC3By1E,MAAMH,EAASI,UAAWr7E,EAAM7E,EAAM,KAAMue,EAAO,MAMnD5U,KAAKa,KAAOA,IAMhBu1E,e,4BC/BJ,MAAMt8C,EAAS,EAAQ,MAEjB08C,EAAe,EAAQ,MACvBC,EAAa,EAAQ,MACrBC,EAAY,EAAQ,MACpBP,EAAW,EAAQ,MACnBtsD,EAAQ,cACRve,EAAU,WAyBhB,SAASjS,EAAaH,EAAQC,GAO1B,SAASI,EAAakD,GAClB,MAAwB,iBAAVA,GAAsBA,aAAiBjD,UAAYiD,aAAiB5B,UAAY4B,aAAiBhD,QAGnH,IAAK,MAAML,KAAOD,EACd,GAAIK,OAAOmG,UAAUnJ,eAAeqd,KAAK1a,EAAUC,GAAM,CACrD,MAAME,EAAMH,EAASC,GAEjBG,EAAaD,GACTC,EAAaL,EAAOE,IACpBC,EAAaH,EAAOE,GAAME,GAE1BJ,EAAOE,GAAOC,EAAa,GAAIC,GAGnCJ,EAAOE,GAAOE,EAI1B,OAAOJ,EAmCX5E,EAAOD,QAAU,CAGbiX,UAGAorE,YAGAP,WAGAtsD,QAGA2sD,eACAG,QA5BJ,SAAiBC,EAAMC,GACnB,MAAMrrE,EAAUnS,EApET,CACHy9E,YAAY,EACZlhF,WAAW,EACXmhF,aAAa,EACbC,eAAe,EACfliE,WAAY,SACZD,YAAa,EACboiE,iBAAkB,KAClB1zB,SAAU,aA4DiCszB,GACzCK,EAAe,IAAIV,EAAahrE,GAOtC,OANmB,IAAIirE,EAAWjrE,EAAS0rE,GAEhCC,MAAMP,GAEjB98C,EAAuC,OAAhCo9C,EAAaE,eAAyB,gCAEtCF,K,4BClHX,MAAMxiF,EAAS,eACT2iF,EAAY,EAAQ,MAW1B,MAAMC,UAAuBD,EAAUE,QACnC,iBAAiBlhF,GACb,MAAMmhF,EAAWnhF,EAAKI,KAEtB,OACI+gF,IAAa9iF,EAAO8L,YACpBg3E,IAAa9iF,EAAO4T,eACpBkvE,IAAa9iF,EAAO8S,cACpBgwE,IAAa9iF,EAAO6V,eACpBitE,IAAa9iF,EAAOmT,aACpB2vE,IAAa9iF,EAAOwT,kBAI5B,YAAYsD,EAASisE,EAAaC,GAC9BpB,MAAM,KAAM9qE,GACZxL,KAAKy3E,YAAcA,EACnBz3E,KAAK03E,SAAWA,EAChB13E,KAAK23E,YAAc,GACnB33E,KAAK43E,eAAiB,GACtB53E,KAAK63E,aAAe,GAGxB,WAAW9uE,GACP,MAAM+uE,GA5BGC,EA4BuB/3E,KAAK63E,cA3B/BE,EAAGl/E,OAAS,IAAM,KADhC,IAAiBk/E,EA8BT/3E,KAAK03E,SAAS3uE,EAAS,CACnB4T,SAAU5T,IAAY/I,KAAKy3E,YAC3B52E,KAAMi3E,SAA6DA,EAAgBxzE,WAAayE,EAChG4uE,YAAa33E,KAAK23E,cAI1B,SAAS9wE,GAGDA,EAASnH,UACTM,KAAK43E,eAAe35E,KAAK4I,EAASzN,KAMtC4G,KAAKm3E,MAAMtwE,EAASpK,OAGxB,aAAasM,GACT,IAAK,IAAIrO,EAAI,EAAGC,EAAKoO,EAAQnB,SAAS/O,OAAQ6B,EAAIC,IAAMD,EAAG,CACvD,MAAMymB,EAAUpY,EAAQnB,SAASlN,GAEjCsF,KAAKm3E,MAAMh2D,IAInB,kBAAkBpY,GACd/I,KAAK23E,YAAY15E,KAAK8K,GACtB/I,KAAKm3E,MAAMpuE,EAAQtN,MACnBuE,KAAK43E,eAAe35E,KAAK8K,EAAQrN,OACjCsE,KAAK23E,YAAYt5D,MAGrB,YAAYtV,GACR/I,KAAK63E,aAAa55E,KAAK8K,GACvB/I,KAAKm3E,MAAMpuE,EAAQzE,UACnBtE,KAAK63E,aAAax5D,MAGtB,iBAAiBhoB,GAGTA,EAAKqJ,UACLM,KAAK43E,eAAe35E,KAAK5H,EAAKwQ,UAIlC7G,KAAK43E,eAAe35E,KAAK5H,EAAKuP,QAUlC,cAAcvP,GACV2J,KAAKm3E,MAAM9gF,EAAKiO,UAGpB,gBAAgBjO,GACZA,EAAKuR,SAASo0B,QAAQh8B,KAAKm3E,MAAOn3E,MAGtC,qBAAqB3J,GACjB2J,KAAK23E,YAAY15E,KAAK5H,GACtB2J,KAAKm3E,MAAM9gF,EAAKoF,MAChBuE,KAAK43E,eAAe35E,KAAK5H,EAAKqF,OAC9BsE,KAAK23E,YAAYt5D,MAGrB,eAAehoB,GAGXA,EAAKqjB,UAAUsiB,SAAQE,IACnBl8B,KAAK43E,eAAe35E,KAAKi+B,MAE7Bl8B,KAAKm3E,MAAM9gF,EAAKmQ,SAIxBlS,EAAOD,QAAUijF,G,sBCpHjB,MAAMZ,EACF,YAAYj6D,EAAOwN,EAAOjf,EAAMgtE,EAAWC,EAAqBC,EAAS/zE,GAMrEnE,KAAKm4E,WAAa17D,EAMlBzc,KAAKq0C,KAAOpqB,EAOZjqB,KAAKo4E,SAAU,EAMfp4E,KAAKq4E,SAAW,KAQhBr4E,KAAKgL,KAAOA,EACRhL,KAAKs4E,YAMLt4E,KAAKg4E,UAAYA,EAMjBh4E,KAAKk4E,QAAUA,EAMfl4E,KAAKmE,KAAOA,GAEhBnE,KAAKu4E,sBAAwBN,EAQjC,WACI,OAAQj4E,KAAKo4E,SAAWp4E,KAAKq4E,UAAYr4E,KAAKq4E,SAASpuD,MAAMuuD,WAQjE,UACI,SAAUx4E,KAAKgL,KAAO0rE,EAAU+B,OAQpC,SACI,SAAUz4E,KAAKgL,KAAO0rE,EAAUgC,MAQpC,aACI,OAAO14E,KAAKgL,OAAS0rE,EAAUgC,KAQnC,cACI,OAAO14E,KAAKgL,OAAS0rE,EAAU+B,MAQnC,cACI,OAAOz4E,KAAKgL,OAAS0rE,EAAUiC,IAQvCjC,EAAUgC,KA7HG,EAmIbhC,EAAU+B,MAlII,EAwId/B,EAAUiC,GAvICD,EAyIXpkF,EAAOD,QAAUqiF,G,4BCxIjB,MAAMhiF,EAAS,eACT2iF,EAAY,EAAQ,MACpBX,EAAY,EAAQ,MACpBP,EAAW,EAAQ,MACnBmB,EAAiB,EAAQ,MACzBsB,EAAa,EAAQ,MACrB9+C,EAAS,EAAQ,MAEjBu8C,EAAsBuC,EAAWvC,oBACjCD,EAAawC,EAAWxC,WA6B9B,MAAMyC,UAAiBxB,EAAUE,QAC7B,YAAYt0E,EAAa61E,GACrBxC,MAAM,KAAMwC,EAAWttE,SACvBxL,KAAKiD,YAAcA,EACnBjD,KAAK84E,WAAaA,EAGtB,YAAY12E,EAAI22E,GACZ/4E,KAAK84E,WAAWE,aAAa52E,GAAI2G,IAC7B/I,KAAK84E,WAAWv/D,eAAe0/D,SAASlwE,EACpC,IAAIqtE,EACAD,EAAS+C,cACTnwE,EACAgwE,EACA/4E,KAAKiD,YACL,KACA,UAKhB,yBAAyB5M,GACrB,MAAMoS,EAASpS,EAAKoS,OAASpS,EAAK+L,GAE9BqG,GACAzI,KAAKm5E,YAAY1wE,EAAOpS,GAIhC,uBAAuBA,GACnB,MAAMoS,EAASpS,EAAKoS,OAASpS,EAAK+L,GAElCpC,KAAKm5E,YAAY1wE,EAAOpS,GAG5B,gBAAgBA,GACZ,MAAMoS,EAASpS,EAAKoS,OAASpS,EAAK+L,GAE9B/L,EAAK6E,KACL8E,KAAKm5E,YAAY9iF,EAAK6E,KAAM7E,GAE5B2J,KAAKm5E,YAAY1wE,EAAOpS,IAMpC,MAAMogF,UAAmBY,EAAUE,QAC/B,YAAY/rE,EAAS0rE,GACjBZ,MAAM,KAAM9qE,GACZxL,KAAKwL,QAAUA,EACfxL,KAAKk3E,aAAeA,EACpBl3E,KAAK2rB,OAAS,KACd3rB,KAAKo5E,yBAA0B,EAGnC,eACI,OAAOp5E,KAAKk3E,aAAaE,eAG7B,MAAM/gF,GACF,KAAO2J,KAAKuZ,gBAAkBljB,IAAS2J,KAAKuZ,eAAenV,OACvDpE,KAAKk3E,aAAaE,eAAiBp3E,KAAKuZ,eAAe8/D,QAAQr5E,KAAKk3E,cAI5E,0BAA0BkC,GACtB,MAAME,EAAWt5E,KAAKo5E,wBAGtB,OADAp5E,KAAKo5E,wBAA0BA,EACxBE,EAGX,yBAAyBF,GACrBp5E,KAAKo5E,wBAA0BA,EAGnC,wBAAwBrwE,EAAS4uE,EAAaM,EAAqB9zE,GAC/D,MAAM8lB,EAAQjqB,KAAKuZ,eAEnBo+D,EAAY37C,SAAQu9C,IAChBtvD,EAAMuvD,cACFzwE,EACA2tE,EAAU+B,MACVc,EAAW79E,MACXu8E,EACAlvE,IAAYwwE,EAAW99E,KACvB0I,MAKZ,aAAa9N,EAAMmV,EAASksE,GACxB,IAAI+B,EAAsBjuE,EACtBkuE,EAAuBhC,EAEJ,mBAAZlsE,IACPkuE,EAAuBluE,EACvBiuE,EAAsB,CAAEE,uBAAuB,IArH3D,SAAqCnuE,EAASisE,EAAaqB,EAAYpB,GAGnE,MAAMkC,EAAU,IAAItC,EAAe9rE,EAASisE,EAAaC,GAEzDkC,EAAQzC,MAAMM,GAGVqB,SACAc,EAAQhC,eAAe57C,QAAQ88C,EAAW3B,MAAO2B,GA+GjDe,CACI75E,KAAKwL,QACLnV,EACAojF,EAAoBE,sBAAwB35E,KAAO,KACnD05E,GAIR,cAAcrjF,GACV,IAAIqE,EAAGC,EAQHtE,EAAKI,OAAS/B,EAAO8Q,qBAGrBxF,KAAKuZ,eAAe0/D,SAAS5iF,EAAK+L,GAC9B,IAAIg0E,EACAD,EAAS2D,aACTzjF,EAAK+L,GACL/L,EACA,KACA,KACA,OAMRA,EAAKI,OAAS/B,EAAO6S,oBAAsBlR,EAAK+L,IAChDpC,KAAKk3E,aAAa6C,kCAAkC1jF,GAIxD2J,KAAKk3E,aAAa8C,oBAAoB3jF,EAAM2J,KAAKo5E,yBAEjD,MAAMr5E,EAAOC,KAQb,SAAS05E,EAAqB3wE,EAASkxE,GACnCl6E,EAAKwZ,eAAe0/D,SAASlwE,EACzB,IAAIstE,EACAttE,EACA1S,EACAqE,EACAu/E,EAAKp5E,OAGbd,EAAKm6E,wBAAwBnxE,EAASkxE,EAAKtC,YAAa,MAAM,GAIlE,IAAKj9E,EAAI,EAAGC,EAAKtE,EAAK0K,OAAOlI,OAAQ6B,EAAIC,IAAMD,EAC3CsF,KAAKg5E,aAAa3iF,EAAK0K,OAAOrG,GAAI,CAAEi/E,uBAAuB,GAAQD,GAInErjF,EAAKwK,MACLb,KAAKg5E,aAAa,CACdviF,KAAM,cACN6N,SAAUjO,EAAKwK,OAChBkI,IACC/I,KAAKuZ,eAAe0/D,SAASlwE,EACzB,IAAIstE,EACAttE,EACA1S,EACAA,EAAK0K,OAAOlI,QACZ,OAOZxC,EAAK8H,OAGD9H,EAAK8H,KAAK1H,OAAS/B,EAAOuL,eAC1BD,KAAKm6E,cAAc9jF,EAAK8H,MAExB6B,KAAKm3E,MAAM9gF,EAAK8H,OAIxB6B,KAAKgkB,MAAM3tB,GAGf,WAAWA,GACHA,EAAKI,OAAS/B,EAAOyN,kBACrBnC,KAAKuZ,eAAe0/D,SAAS5iF,EAAK+L,GAC9B,IAAIg0E,EACAD,EAASiE,UACT/jF,EAAK+L,GACL/L,EACA,KACA,KACA,OAIZ2J,KAAKm3E,MAAM9gF,EAAKgM,YAEhBrC,KAAKk3E,aAAamD,iBAAiBhkF,GAE/BA,EAAK+L,IACLpC,KAAKuZ,eAAe0/D,SAAS5iF,EAAK+L,GAC9B,IAAIg0E,EACAD,EAASiE,UACT/jF,EAAK+L,GACL/L,IAGZ2J,KAAKm3E,MAAM9gF,EAAK8H,MAEhB6B,KAAKgkB,MAAM3tB,GAGf,cAAcA,GACV,IAAIijF,EAEAjjF,EAAKqJ,UACLM,KAAKm3E,MAAM9gF,EAAK+C,KAGpB,MAAMkhF,EAAqBjkF,EAAKI,OAAS/B,EAAOqT,iBAE5CuyE,IACAhB,EAAWt5E,KAAKu6E,2BAA0B,IAE9Cv6E,KAAKm3E,MAAM9gF,EAAKoG,OACZ69E,GACAt6E,KAAKw6E,yBAAyBlB,GAItC,WAAWjjF,GACHA,EAAKoF,KAAKhF,OAAS/B,EAAO8M,qBAA0C,QAAnBnL,EAAKoF,KAAKgG,MAC3DzB,KAAKk3E,aAAauD,eAAepkF,GAGjCA,EAAKoF,KAAKhF,OAAS/B,EAAO8M,qBAC1BxB,KAAKm3E,MAAM9gF,EAAKoF,MAChBuE,KAAKg5E,aAAa3iF,EAAKoF,KAAKiG,aAAa,GAAGU,IAAI2G,IAC5C/I,KAAKuZ,eAAeigE,cAAczwE,EAAS2tE,EAAU+B,MAAOpiF,EAAKqF,MAAO,MAAM,GAAM,OAGxFsE,KAAKg5E,aAAa3iF,EAAKoF,KAAM,CAAEk+E,uBAAuB,IAAQ,CAAC5wE,EAASkxE,KACpE,IAAIhC,EAAsB,KAErBj4E,KAAKuZ,eAAemhE,WACrBzC,EAAsB,CAClBlvE,UACA1S,SAGR2J,KAAKk6E,wBAAwBnxE,EAASkxE,EAAKtC,YAAaM,GAAqB,GAC7Ej4E,KAAKuZ,eAAeigE,cAAczwE,EAAS2tE,EAAU+B,MAAOpiF,EAAKqF,MAAOu8E,GAAqB,GAAM,MAG3Gj4E,KAAKm3E,MAAM9gF,EAAKqF,OAChBsE,KAAKm3E,MAAM9gF,EAAK8H,MAEhB6B,KAAKgkB,MAAM3tB,GAGf,yBAAyBskF,EAAqBlkF,EAAMJ,EAAMue,GAEtD,MAAMsL,EAAO7pB,EAAKqL,aAAakT,GACzBzQ,EAAO+b,EAAK/b,KAElBnE,KAAKg5E,aAAa94D,EAAK9d,GAAI,CAAEu3E,uBAAuB,IAAQ,CAAC5wE,EAASkxE,KAClEU,EAAoB1B,SAChBlwE,EACA,IAAIqtE,EACA3/E,EACAsS,EACAmX,EACA7pB,EACAue,EACAve,EAAKoL,OAIbzB,KAAKk6E,wBAAwBnxE,EAASkxE,EAAKtC,YAAa,MAAM,GAC1DxzE,GACAnE,KAAKuZ,eAAeigE,cAAczwE,EAAS2tE,EAAU+B,MAAOt0E,EAAM,MAAO81E,EAAKt9D,UAAU,MAKpG,qBAAqBtmB,GACbihF,EAAe5vE,UAAUrR,EAAKoF,MACR,MAAlBpF,EAAKiL,SACLtB,KAAKg5E,aAAa3iF,EAAKoF,KAAM,CAAEk+E,uBAAuB,IAAQ,CAAC5wE,EAASkxE,KACpE,IAAIhC,EAAsB,KAErBj4E,KAAKuZ,eAAemhE,WACrBzC,EAAsB,CAClBlvE,UACA1S,SAGR2J,KAAKk6E,wBAAwBnxE,EAASkxE,EAAKtC,YAAaM,GAAqB,GAC7Ej4E,KAAKuZ,eAAeigE,cAAczwE,EAAS2tE,EAAU+B,MAAOpiF,EAAKqF,MAAOu8E,GAAsBgC,EAAKt9D,UAAU,MAGjH3c,KAAKuZ,eAAeigE,cAAcnjF,EAAKoF,KAAMi7E,EAAUiC,GAAItiF,EAAKqF,OAGpEsE,KAAKm3E,MAAM9gF,EAAKoF,MAEpBuE,KAAKm3E,MAAM9gF,EAAKqF,OAGpB,YAAYrF,GACR2J,KAAKk3E,aAAa0D,iBAAiBvkF,GAEnC2J,KAAKg5E,aAAa3iF,EAAKwM,MAAO,CAAE82E,uBAAuB,IAAQ,CAAC5wE,EAASkxE,KACrEj6E,KAAKuZ,eAAe0/D,SAASlwE,EACzB,IAAIqtE,EACAD,EAASxzE,YACTtM,EAAKwM,MACLxM,EACA,KACA,KACA,OAER2J,KAAKk6E,wBAAwBnxE,EAASkxE,EAAKtC,YAAa,MAAM,MAElE33E,KAAKm3E,MAAM9gF,EAAK8H,MAEhB6B,KAAKgkB,MAAM3tB,GAGf,QAAQA,GACJ2J,KAAKk3E,aAAa2D,kBAAkBxkF,GAEhC2J,KAAKk3E,aAAa4D,oBAGlB96E,KAAKuZ,eAAemhE,UAAW,EAC/B16E,KAAKk3E,aAAa8C,oBAAoB3jF,GAAM,IAG5C2J,KAAKk3E,aAAa6D,WAAa/6E,KAAKk3E,aAAa8D,YACjDh7E,KAAKk3E,aAAa+D,kBAAkB5kF,GAGpC2J,KAAKk3E,aAAagE,yBAA2Bl7E,KAAKk3E,aAAaiE,oBAC/Dn7E,KAAKuZ,eAAemhE,UAAW,GAGnC16E,KAAKm6E,cAAc9jF,GACnB2J,KAAKgkB,MAAM3tB,GAGf,WAAWA,GACP2J,KAAKuZ,eAAeigE,cAAcnjF,GAGtC,iBAAiBA,GACTihF,EAAe5vE,UAAUrR,EAAKiO,UAC9BtE,KAAKuZ,eAAeigE,cAAcnjF,EAAKiO,SAAUoyE,EAAUiC,GAAI,MAE/D34E,KAAKm6E,cAAc9jF,GAI3B,iBAAiBA,GACb2J,KAAKm3E,MAAM9gF,EAAKuP,QACZvP,EAAKqJ,UACLM,KAAKm3E,MAAM9gF,EAAKwQ,UAIxB,SAASxQ,GACL2J,KAAKo7E,cAAc/kF,GAGvB,iBAAiBA,GACb2J,KAAKo7E,cAAc/kF,GAGvB,kBAEA,qBAEA,iBAAiBA,GACb2J,KAAKm3E,MAAM9gF,EAAK8H,MAGpB,aAAa9H,GAMLA,EAAK8N,MAAQ9N,EAAK8N,KAAK1N,OAAS/B,EAAO8M,qBAA0C,QAAnBnL,EAAK8N,KAAK1C,MACxEzB,KAAKk3E,aAAauD,eAAepkF,GAGrC2J,KAAKm6E,cAAc9jF,GAEnB2J,KAAKgkB,MAAM3tB,GAGf,gBAAgBA,GACZ2J,KAAKq7E,WAAWhlF,GAGpB,iBAAiBA,GACb2J,KAAKq7E,WAAWhlF,GAGpB,eAAeA,GAGN2J,KAAKk3E,aAAaoE,gBAAkBjlF,EAAKmQ,OAAO/P,OAAS/B,EAAO8L,YAAmC,SAArBnK,EAAKmQ,OAAOtL,MAI3F8E,KAAKuZ,eAAegiE,cAAcC,eAEtCx7E,KAAKm6E,cAAc9jF,GAGvB,eAAeA,GACP2J,KAAKk3E,aAAa6D,WAClB/6E,KAAKk3E,aAAauE,iBAAiBplF,GAGvC2J,KAAKm6E,cAAc9jF,GAEnB2J,KAAKgkB,MAAM3tB,GAGf,iBACI2J,KAAKuZ,eAAegiE,cAAcG,eAGtC,cAAcrlF,GACV2J,KAAKm3E,MAAM9gF,EAAKuP,QAGhB5F,KAAKk3E,aAAayE,gBAAgBtlF,GAElC2J,KAAKm3E,MAAM9gF,EAAK8H,MAEhB6B,KAAKgkB,MAAM3tB,GAGf,oBAAoBA,GAChB,MAAMskF,EAAqC,QAAdtkF,EAAKoL,KAAkBzB,KAAKuZ,eAAegiE,cAAgBv7E,KAAKuZ,eAE7F,IAAK,IAAI7e,EAAI,EAAGC,EAAKtE,EAAKqL,aAAa7I,OAAQ6B,EAAIC,IAAMD,EAAG,CACxD,MAAMwlB,EAAO7pB,EAAKqL,aAAahH,GAE/BsF,KAAK47E,yBAAyBjB,EAAqBxE,EAASA,SAAU9/E,EAAMqE,GACxEwlB,EAAK/b,MACLnE,KAAKm3E,MAAMj3D,EAAK/b,OAM5B,gBAAgB9N,GACZ2J,KAAKm3E,MAAM9gF,EAAKwO,cAEZ7E,KAAKk3E,aAAa6D,WAClB/6E,KAAKk3E,aAAa2E,kBAAkBxlF,GAGxC,IAAK,IAAIqE,EAAI,EAAGC,EAAKtE,EAAKyO,MAAMjM,OAAQ6B,EAAIC,IAAMD,EAC9CsF,KAAKm3E,MAAM9gF,EAAKyO,MAAMpK,IAG1BsF,KAAKgkB,MAAM3tB,GAGf,oBAAoBA,GAChB2J,KAAK87E,cAAczlF,GAGvB,mBAAmBA,GACf2J,KAAK87E,cAAczlF,GAGvB,eAAeA,GACX2J,KAAK+7E,WAAW1lF,GAGpB,eAAeA,GACX2J,KAAK+7E,WAAW1lF,GAGpB,wBAAwBA,GACpB2J,KAAK87E,cAAczlF,GAGvB,kBAAkBA,GACdyjC,EAAO95B,KAAKk3E,aAAa6D,WAAa/6E,KAAKk3E,aAAa8D,WAAY,mFAEnD,IAAInC,EAASxiF,EAAM2J,MAE3Bm3E,MAAM9gF,GAGnB,uBAAuBA,GACfA,EAAKiF,SAGLjF,EAAK4M,YACLjD,KAAKm3E,MAAM9gF,EAAK4M,aAIpBjD,KAAKm6E,cAAc9jF,IAIvB,kBAAkBA,GACd2J,KAAKg8E,uBAAuB3lF,GAGhC,qBAAqBA,GACjB2J,KAAKg8E,uBAAuB3lF,GAGhC,yBAAyBA,GACrB2J,KAAKg8E,uBAAuB3lF,GAGhC,uBAAuBA,GACnB2J,KAAKg8E,uBAAuB3lF,GAGhC,gBAAgBA,GAGZ,MAAMoS,EAASpS,EAAK+L,IAAM/L,EAAKoS,MAE/BzI,KAAKm3E,MAAM1uE,GAGf,iBAMJnU,EAAOD,QAAUoiF,G,4BCvlBjB,MAAM5sD,EAAQ,EAAQ,MAChBiQ,EAAS,EAAQ,MAEjBmiD,EAAcpyD,EAAMoyD,YACpBC,EAAaryD,EAAMqyD,WACnBC,EAAYtyD,EAAMsyD,UAClBC,EAAcvyD,EAAMuyD,YACpBC,EAAaxyD,EAAMwyD,WACnBC,EAAczyD,EAAMyyD,YACpBC,EAAgB1yD,EAAM0yD,cACtBC,EAAW3yD,EAAM2yD,SACjBC,EAA8B5yD,EAAM4yD,4BACpCC,EAAa7yD,EAAM6yD,WA6MzBpoF,EAAOD,QAxMP,MACI,YAAYmX,GACRxL,KAAK28E,OAAS,GACd38E,KAAK48E,YAAc,KACnB58E,KAAK68E,cAAgB,IAAIC,QACzB98E,KAAKo3E,eAAiB,KACtBp3E,KAAK+8E,UAAYvxE,EACjBxL,KAAKg9E,oBAAsB,IAAIF,QAGnC,iBACI,OAAO98E,KAAK+8E,UAAUnnF,UAG1B,iBACI,OAAOoK,KAAK+8E,UAAUjG,WAG1B,eACI,OAAO92E,KAAK+8E,UAAUE,WAG1B,kBACI,OAAOj9E,KAAK+8E,UAAUhG,YAG1B,WACI,MAAqC,WAA9B/2E,KAAK+8E,UAAUjoE,WAG1B,kBACI,OAAO9U,KAAK+8E,UAAU/F,cAG1B,wBACI,OAAOh3E,KAAK+8E,UAAUloE,aAAe,EAIzC,MAAMxe,GACF,OAAO2J,KAAK68E,cAAc1jE,IAAI9iB,GAalC,qBAAqBA,GACjB,OAAO2J,KAAKg9E,oBAAoB7jE,IAAI9iB,IAAS,GAUjD,QAAQA,EAAM6mF,GAOV,SAASvH,EAAUwH,GACf,MAAuB,aAAnBA,EAAU1mF,OAAuB0mF,EAAUC,wBAMnD,MAAMT,EAAS38E,KAAKq9E,MAAMhnF,GAE1B,IAAKsmF,GAA4B,IAAlBA,EAAO9jF,OAClB,OAAO,KAKX,GAAsB,IAAlB8jF,EAAO9jF,OACP,OAAO8jF,EAAO,GAGlB,GAAIO,EACA,IAAK,IAAIxiF,EAAIiiF,EAAO9jF,OAAS,EAAG6B,GAAK,IAAKA,EAAG,CACzC,MAAMuvB,EAAQ0yD,EAAOjiF,GAErB,GAAIi7E,EAAU1rD,GACV,OAAOA,OAIf,IAAK,IAAIvvB,EAAI,EAAGC,EAAKgiF,EAAO9jF,OAAQ6B,EAAIC,IAAMD,EAAG,CAC7C,MAAMuvB,EAAQ0yD,EAAOjiF,GAErB,GAAIi7E,EAAU1rD,GACV,OAAOA,EAKnB,OAAO,KASX,WAAW5zB,GACP,OAAO2J,KAAKq9E,MAAMhnF,GAUtB,QAAQA,EAAM6mF,GACV,MAAMP,EAAS38E,KAAKq9E,MAAMhnF,GAE1B,GAAIsmF,GAAUA,EAAO9jF,OAAQ,CACzB,MAAMoxB,EAAQ0yD,EAAO,GAAGW,MAExB,OAAKrzD,EAGEjqB,KAAKu9E,QAAQtzD,EAAM7lB,MAAO84E,GAFtB,KAIf,OAAO,KAGX,UAEA,UAEA,YAAYjzD,GAMR,OALIA,aAAiBgyD,IACjBniD,EAA+B,OAAxB95B,KAAKo3E,gBACZp3E,KAAK48E,YAAc3yD,GAEvBjqB,KAAKo3E,eAAiBntD,EACfA,EAGX,kBAAkB5zB,GACd,OAAO2J,KAAKw9E,YAAY,IAAIvB,EAAYj8E,KAAM3J,IAGlD,iBAAiBA,GACb,OAAO2J,KAAKw9E,YAAY,IAAId,EAAW18E,KAAMA,KAAKo3E,eAAgB/gF,IAGtE,oBAAoBA,EAAMikF,GACtB,OAAOt6E,KAAKw9E,YAAY,IAAIjB,EAAcv8E,KAAMA,KAAKo3E,eAAgB/gF,EAAMikF,IAG/E,eAAejkF,GACX,OAAO2J,KAAKw9E,YAAY,IAAIhB,EAASx8E,KAAMA,KAAKo3E,eAAgB/gF,IAGpE,iBAAiBA,GACb,OAAO2J,KAAKw9E,YAAY,IAAItB,EAAWl8E,KAAMA,KAAKo3E,eAAgB/gF,IAGtE,gBAAgBA,GACZ,OAAO2J,KAAKw9E,YAAY,IAAIrB,EAAUn8E,KAAMA,KAAKo3E,eAAgB/gF,IAGrE,iBAAiBA,GACb,OAAO2J,KAAKw9E,YAAY,IAAInB,EAAWr8E,KAAMA,KAAKo3E,eAAgB/gF,IAGtE,kBAAkBA,GACd,OAAO2J,KAAKw9E,YAAY,IAAIlB,EAAYt8E,KAAMA,KAAKo3E,eAAgB/gF,IAGvE,kBAAkBA,GACd,OAAO2J,KAAKw9E,YAAY,IAAIpB,EAAYp8E,KAAMA,KAAKo3E,eAAgB/gF,IAGvE,kCAAkCA,GAC9B,OAAO2J,KAAKw9E,YAAY,IAAIf,EAA4Bz8E,KAAMA,KAAKo3E,eAAgB/gF,IAGvF,UACI,OAAO2J,KAAK+8E,UAAUloE,aAAe,K,4BCpN7C,MAAMngB,EAAS,eAETgiF,EAAY,EAAQ,MACpBP,EAAW,EAAQ,MACnBC,EAAa,mBACbt8C,EAAS,EAAQ,MA+GvB,SAAS2jD,EAAmBC,GACxB,OACKA,EAAIjnF,OAAS0/E,EAASiE,WACtBsD,EAAIjnF,OAAS0/E,EAASA,UAAgC,QAApBuH,EAAI/xD,OAAOlqB,KAOtD,MAAMooB,EACF,YAAYqtD,EAAczgF,EAAMknF,EAAYv5E,EAAOk2E,GAM/Ct6E,KAAKvJ,KAAOA,EAOZuJ,KAAKyN,IAAM,IAAImsB,IAMf55B,KAAK49E,OAAS,IAAIhkD,IAYlB55B,KAAK69E,QAAwB,WAAd79E,KAAKvJ,MAAmC,SAAduJ,KAAKvJ,KAM9CuJ,KAAKoE,MAAQA,EAMbpE,KAAK89E,QAAU,GAQf99E,KAAK+9E,UAAY,GAWjB/9E,KAAKg+E,WAAa,GAQlBh+E,KAAKu7E,cACc,WAAdv7E,KAAKvJ,MAAmC,aAAduJ,KAAKvJ,MAAqC,WAAduJ,KAAKvJ,KAAqBuJ,KAAO29E,EAAWpC,cAMvGv7E,KAAKo9E,yBAA0B,EAM/Bp9E,KAAKi+E,uBAAwB,EAK7Bj+E,KAAKk+E,WAAY,EAEjBl+E,KAAKm+E,OAAS,GAMdn+E,KAAKs9E,MAAQK,EAMb39E,KAAK06E,SAtNb,SAAuBzwD,EAAO7lB,EAAOk2E,EAAoB8D,GACrD,IAAIjgF,EAGJ,GAAI8rB,EAAMqzD,OAASrzD,EAAMqzD,MAAM5C,SAC3B,OAAO,EAGX,GAAIJ,EACA,OAAO,EAGX,GAAmB,UAAfrwD,EAAMxzB,MAAmC,WAAfwzB,EAAMxzB,KAChC,OAAO,EAGX,GAAmB,UAAfwzB,EAAMxzB,MAAmC,WAAfwzB,EAAMxzB,KAChC,OAAO,EAGX,GAAmB,aAAfwzB,EAAMxzB,KAAqB,CAC3B,GAAI2N,EAAM3N,OAAS/B,EAAOkM,yBAA2BwD,EAAMjG,KAAK1H,OAAS/B,EAAOuL,eAC5E,OAAO,EASX,GALI9B,EADAiG,EAAM3N,OAAS/B,EAAOwJ,QACfkG,EAEAA,EAAMjG,MAGZA,EACD,OAAO,MAER,IAAmB,WAAf8rB,EAAMxzB,KAGb,OAAO,EAFP0H,EAAOiG,EAMX,GAAIg6E,EACA,IAAK,IAAI1jF,EAAI,EAAGC,EAAKwD,EAAKA,KAAKtF,OAAQ6B,EAAIC,IAAMD,EAAG,CAChD,MAAMwB,EAAOiC,EAAKA,KAAKzD,GAEvB,GAAIwB,EAAKzF,OAAS/B,EAAO4N,mBACrB,MAEJ,GAAiB,iBAAbpG,EAAKqG,KAAyC,iBAAbrG,EAAKqG,IACtC,OAAO,OAIf,IAAK,IAAI7H,EAAI,EAAGC,EAAKwD,EAAKA,KAAKtF,OAAQ6B,EAAIC,IAAMD,EAAG,CAChD,MAAMwB,EAAOiC,EAAKA,KAAKzD,GAEvB,GAAIwB,EAAKzF,OAAS/B,EAAO6O,oBACrB,MAEJ,MAAMrC,EAAOhF,EAAKiF,WAElB,GAAID,EAAKzK,OAAS/B,EAAOiP,SAAiC,iBAAfzC,EAAKzE,MAC5C,MAEJ,GAAiB,OAAbyE,EAAKqB,UAA6B4mB,IAAbjoB,EAAKqB,KAC1B,GAAiB,iBAAbrB,EAAKqB,KAAyC,iBAAbrB,EAAKqB,IACtC,OAAO,OAGX,GAAmB,eAAfrB,EAAKzE,MACL,OAAO,EAKvB,OAAO,EA2Ia4hF,CAAcr+E,KAAMoE,EAAOk2E,EAAoBpD,EAAaoH,kBAM5Et+E,KAAKu+E,YAAc,GACfv+E,KAAKs9E,OACLt9E,KAAKs9E,MAAMiB,YAAYtgF,KAAK+B,MAGhCA,KAAKg9E,oBAAsB9F,EAAa8F,oBA7IhD,SAAuB9F,EAAcjtD,GACjCitD,EAAayF,OAAO1+E,KAAKgsB,GAEzB,MAAM0yD,EAASzF,EAAa2F,cAAc1jE,IAAI8Q,EAAM7lB,OAEhDu4E,EACAA,EAAO1+E,KAAKgsB,GAEZitD,EAAa2F,cAAcpvE,IAAIwc,EAAM7lB,MAAO,CAAC6lB,IAuI7Cu0D,CAActH,EAAcl3E,MAGhC,wBAAwBk3E,GACpB,OAASl3E,KAAK69E,SAAW3G,EAAauH,iBAG1C,iCAAiChrE,GAG7B,MAAMvY,EAAOuY,EAAI0kE,WAAWj9E,KAE5B,IAAK8E,KAAKyN,IAAIiG,IAAIxY,GACd,OAAO,EAGX,MACMwjF,EADW1+E,KAAKyN,IAAI0L,IAAIje,GACRwjF,KAEtB,OAAOA,EAAK7lF,OAAS,GAAK6lF,EAAK7hB,MAAM4gB,GAGzC,iBAAiBhqE,GACRzT,KAAK2+E,UAAUlrE,IAChBzT,KAAK4+E,uBAAuBnrE,GAIpC,kBAAkBA,GAGd,IAAI9U,EAAUqB,KAEd,GACIrB,EAAQm/E,QAAQ7/E,KAAKwV,GACrB9U,EAAUA,EAAQ2+E,YACb3+E,GAGb,iBAAiB8U,GAITzT,KAAK6+E,iCAAiCprE,GACtCzT,KAAK8+E,iBAAiBrrE,GAEtBzT,KAAK++E,kBAAkBtrE,GAI/B,QAAQyjE,GACJ,IAAI8H,EAGAA,EADAh/E,KAAKi/E,wBAAwB/H,GAClBl3E,KAAK8+E,iBACK,WAAd9+E,KAAKvJ,KACDuJ,KAAK++E,kBAEL/+E,KAAKk/E,iBAIpB,IAAK,IAAIxkF,EAAI,EAAGC,EAAKqF,KAAKm+E,OAAOtlF,OAAQ6B,EAAIC,IAAMD,EAAG,CAClD,MAAM+Y,EAAMzT,KAAKm+E,OAAOzjF,GAExBskF,EAASnrE,KAAK7T,KAAMyT,GAIxB,OAFAzT,KAAKm+E,OAAS,KAEPn+E,KAAKs9E,MAKhB,oBAAoB7pE,EAAK0rE,GACrB,OAAO,EAGX,UAAU1rE,GACN,MAAMvY,EAAOuY,EAAI0kE,WAAWj9E,KAE5B,IAAK8E,KAAKyN,IAAIiG,IAAIxY,GACd,OAAO,EAEX,MAAMikF,EAAWn/E,KAAKyN,IAAI0L,IAAIje,GAE9B,QAAK8E,KAAKo/E,oBAAoB3rE,EAAK0rE,KAGnCA,EAASnB,WAAW//E,KAAKwV,GACzB0rE,EAAS7gD,MAAQ6gD,EAAS7gD,OAAS7qB,EAAI4gC,KAAKknC,gBAAkBv7E,KAAKu7E,cAC/D9nE,EAAI2kE,UACJ+G,EAAS/G,SAAU,EACnBp4E,KAAK49E,OAAOnwE,IAAI0xE,EAASjkF,MAAM,IAEnCuY,EAAI4kE,SAAW8G,GAER,GAGX,uBAAuB1rE,GACfzT,KAAKs9E,OACLt9E,KAAKs9E,MAAMa,OAAOlgF,KAAKwV,GAE3BzT,KAAK89E,QAAQ7/E,KAAKwV,GAGtB,6BAA6B0rE,EAAU9oF,GACnC,GAAIA,QACA,OAGJ,IAAI0nF,EAAY/9E,KAAKg9E,oBAAoB7jE,IAAI9iB,GAEzC0nF,UACAA,EAAY,GACZ/9E,KAAKg9E,oBAAoBvvE,IAAIpX,EAAM0nF,KAEF,IAAjCA,EAAUj3E,QAAQq4E,IAClBpB,EAAU9/E,KAAKkhF,GAIvB,gBAAgBjkF,EAAMuS,EAAKswE,EAAW1nF,EAAMqnF,GACxC,IAAIyB,EAEJA,EAAW1xE,EAAI0L,IAAIje,GACdikF,IACDA,EAAW,IAAIhJ,EAASj7E,EAAM8E,MAC9ByN,EAAIA,IAAIvS,EAAMikF,GACdpB,EAAU9/E,KAAKkhF,IAGfzB,IACAyB,EAAST,KAAKzgF,KAAKy/E,GACnB19E,KAAKq/E,6BAA6BF,EAAUzB,EAAIrnF,MAChD2J,KAAKq/E,6BAA6BF,EAAUzB,EAAI/xD,SAEhDt1B,GACA8oF,EAASG,YAAYrhF,KAAK5H,GAIlC,SAASA,EAAMqnF,GACPrnF,GAAQA,EAAKI,OAAS/B,EAAO8L,YAC7BR,KAAKu/E,gBACDlpF,EAAK6E,KACL8E,KAAKyN,IACLzN,KAAK+9E,UACL1nF,EACAqnF,GAKZ,cAAcrnF,EAAM2Z,EAAQgoE,EAAWC,EAAqBC,EAAS/zE,GAGjE,IAAK9N,GAAQA,EAAKI,OAAS/B,EAAO8L,WAC9B,OAIJ,GAAkB,UAAdnK,EAAK6E,KACL,OAGJ,MAAMuY,EAAM,IAAIijE,EAAUrgF,EAAM2J,KAAMgQ,GAAU0mE,EAAUgC,KAAMV,EAAWC,IAAuBC,IAAW/zE,GAE7GnE,KAAKg+E,WAAW//E,KAAKwV,GACrBzT,KAAKm+E,OAAOlgF,KAAKwV,GAGrB,eACI,IAAI9U,EAAUqB,KAEdA,KAAKi+E,uBAAwB,EAC7B,GACIt/E,EAAQk/E,SAAU,EAClBl/E,EAAUA,EAAQ2+E,YACb3+E,GAGb,eACIqB,KAAKk+E,WAAY,EAGrB,aACI,OAAuB,OAAhBl+E,KAAKm+E,OAShB,QAAQ1hE,GACJ,IAAIhJ,EAAK/Y,EAAGC,EAIZ,IAFAm/B,EAAO95B,KAAKw/E,aAAc,2BAC1B1lD,EAAOrd,EAAMhmB,OAAS/B,EAAO8L,WAAY,gCACpC9F,EAAI,EAAGC,EAAKqF,KAAKg+E,WAAWnlF,OAAQ6B,EAAIC,IAAMD,EAE/C,GADA+Y,EAAMzT,KAAKg+E,WAAWtjF,GAClB+Y,EAAI0kE,aAAe17D,EACnB,OAAOhJ,EAGf,OAAO,KAQX,WACI,OAAQzT,KAAK69E,QAQjB,0BACI,OAAO,EAQX,qBACI,OAAO,EAGX,WAAW3iF,GACP,GAAI8E,KAAKyN,IAAIiG,IAAIxY,GACb,OAAO,EAEX,IAAK,IAAIR,EAAI,EAAGC,EAAKqF,KAAK89E,QAAQjlF,OAAQ6B,EAAIC,IAAMD,EAChD,GAAIsF,KAAK89E,QAAQpjF,GAAGy9E,WAAWj9E,OAASA,EACpC,OAAO,EAGf,OAAO,GAwNf5G,EAAOD,QAAU,CACbw1B,QACAoyD,YAtNJ,cAA0BpyD,EACtB,YAAYqtD,EAAc9yE,GACtBkyE,MAAMY,EAAc,SAAU,KAAM9yE,GAAO,GAC3CpE,KAAKy/E,SAAW,CACZhyE,IAAK,IAAImsB,IACTmkD,UAAW,GAOXtiF,KAAM,IAId,QAAQy7E,GACJ,MAAMuI,EAAW,GAEjB,IAAK,IAAI/kF,EAAI,EAAGC,EAAKqF,KAAKm+E,OAAOtlF,OAAQ6B,EAAIC,IAAMD,EAAG,CAClD,MAAM+Y,EAAMzT,KAAKm+E,OAAOzjF,GAEpB+Y,EAAI8kE,wBAA0Bv4E,KAAKyN,IAAIiG,IAAID,EAAI0kE,WAAWj9E,OAC1DukF,EAASxhF,KAAKwV,EAAI8kE,uBAK1B,IAAK,IAAI79E,EAAI,EAAGC,EAAK8kF,EAAS5mF,OAAQ6B,EAAIC,IAAMD,EAAG,CAC/C,MAAMu/E,EAAOwF,EAAS/kF,GAEtBsF,KAAK0/E,iBAAiBzF,EAAKlxE,QACvB,IAAIqtE,EACAD,EAASwJ,uBACT1F,EAAKlxE,QACLkxE,EAAK5jF,KACL,KACA,KACA,OAOZ,OAFA2J,KAAKy/E,SAAShkF,KAAOuE,KAAKm+E,OAEnB7H,MAAM+C,QAAQnC,GAGzB,iBAAiB7gF,EAAMqnF,GACfrnF,GAAQA,EAAKI,OAAS/B,EAAO8L,YAC7BR,KAAKu/E,gBACDlpF,EAAK6E,KACL8E,KAAKy/E,SAAShyE,IACdzN,KAAKy/E,SAAS1B,UACd1nF,EACAqnF,KAgKZtB,YA1JJ,cAA0BvyD,EACtB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,SAAUyG,EAAYv5E,GAAO,KAyJrDq4E,4BArJJ,cAA0C5yD,EACtC,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,2BAA4ByG,EAAYv5E,GAAO,GACnEpE,KAAKi5E,SAAS70E,EAAMhC,GAChB,IAAIg0E,EACAD,EAAS2D,aACT11E,EAAMhC,GACNgC,EACA,KACA,KACA,OAERpE,KAAKo9E,yBAA0B,IA0InClB,WAtIJ,cAAyBryD,EACrB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,QAASyG,EAAYv5E,GAAO,KAqIpD+3E,UAjIJ,cAAwBtyD,EACpB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,OAAQyG,EAAYv5E,GAAO,GAGnD,QAAQ8yE,GACJ,GAAIl3E,KAAKi/E,wBAAwB/H,GAC7B,OAAOZ,MAAM+C,QAAQnC,GAGzB,IAAK,IAAIx8E,EAAI,EAAGC,EAAKqF,KAAKm+E,OAAOtlF,OAAQ6B,EAAIC,IAAMD,EAAG,CAClD,MAAM+Y,EAAMzT,KAAKm+E,OAAOzjF,GAExB+Y,EAAI2kE,SAAU,EACdp4E,KAAK4+E,uBAAuBnrE,GAIhC,OAFAzT,KAAKm+E,OAAS,KAEPn+E,KAAKs9E,QAgHhBZ,WA5GJ,cAAyB7yD,EACrB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,QAASyG,EAAYv5E,GAAO,KA2GpDk4E,YAvGJ,cAA0BzyD,EACtB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,SAAUyG,EAAYv5E,GAAO,KAsGrDm4E,cAlGJ,cAA4B1yD,EACxB,YAAYqtD,EAAcyG,EAAYv5E,EAAOk2E,GACzChE,MAAMY,EAAc,WAAYyG,EAAYv5E,EAAOk2E,GAI/Ct6E,KAAKoE,MAAM3N,OAAS/B,EAAOkM,yBAC3BZ,KAAK4/E,oBAIb,0BAUI,GAAI5/E,KAAKoE,MAAM3N,OAAS/B,EAAOkM,wBAC3B,OAAO,EAGX,IAAKZ,KAAKw4E,WACN,OAAO,EAGX,MAAM2G,EAAWn/E,KAAKyN,IAAI0L,IAAI,aAG9B,OADA2gB,EAAOqlD,EAAU,mCACVA,EAAS/G,SAA0C,IAA/B+G,EAASnB,WAAWnlF,OAGnD,qBACI,OAAKmH,KAAKw4E,YAGHx4E,KAAKk+E,UAGhB,oBACIl+E,KAAKu/E,gBACD,YACAv/E,KAAKyN,IACLzN,KAAK+9E,UACL,KACA,MAEJ/9E,KAAK49E,OAAOnwE,IAAI,aAAa,GASjC,oBAAoBgG,EAAK0rE,GAGrB,GAAwB,YAApBn/E,KAAKoE,MAAM3N,KACX,OAAO,EAGX,MAAMopF,EAAY7/E,KAAKoE,MAAMjG,KAAKV,MAAM,GAGxC,QACI0hF,EAASl1D,QAAUjqB,MACnByT,EAAI0kE,WAAW16E,MAAM,GAAKoiF,GAC1BV,EAAST,KAAK7hB,OAAM9vC,GAAKA,EAAE7xB,KAAKuC,MAAM,IAAMoiF,OA2BpDrD,SAtBJ,cAAuB3yD,EACnB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,MAAOyG,EAAYv5E,GAAO,KAqBlDi4E,WAjBJ,cAAyBxyD,EACrB,YAAYqtD,EAAcyG,EAAYv5E,GAClCkyE,MAAMY,EAAc,QAASyG,EAAYv5E,GAAO,O,sBC3rBxD,MAAM+xE,EACF,YAAYj7E,EAAM+uB,GAMdjqB,KAAK9E,KAAOA,EAOZ8E,KAAKs/E,YAAc,GAQnBt/E,KAAKg+E,WAAa,GAOlBh+E,KAAK0+E,KAAO,GAEZ1+E,KAAKo4E,SAAU,EAMfp4E,KAAKs+B,OAAQ,EAMbt+B,KAAKiqB,MAAQA,GAIrBksD,EAASxzE,YAAc,cACvBwzE,EAASI,UAAY,YACrBJ,EAAS2D,aAAe,eACxB3D,EAASiE,UAAY,YACrBjE,EAASA,SAAW,WACpBA,EAAS+C,cAAgB,gBACzB/C,EAASwJ,uBAAyB,yBAElCrrF,EAAOD,QAAU8hF,G,gBC1DhB,SAAS2J,EAAMzrF,GACZ,aAEA,IAAIK,EACAqrF,EACAC,EACAC,EACAC,EACAC,EAEJ,SAASC,EAASzsE,GACd,IAAcva,EAAKE,EAAfg/B,EAAM,GACV,IAAKl/B,KAAOua,EACJA,EAAInd,eAAe4C,KACnBE,EAAMqa,EAAIva,GAENk/B,EAAIl/B,GADW,iBAARE,GAA4B,OAARA,EAChB8mF,EAAS9mF,GAETA,GAIvB,OAAOg/B,EA0LX,SAASo+C,EAAU/qD,EAAQvyB,GACvB4G,KAAK2rB,OAASA,EACd3rB,KAAK5G,IAAMA,EAiBf,SAASinF,EAAQhqF,EAAMo+C,EAAMtI,EAAM14B,GAC/BzT,KAAK3J,KAAOA,EACZ2J,KAAKy0C,KAAOA,EACZz0C,KAAKmsC,KAAOA,EACZnsC,KAAKyT,IAAMA,EAGf,SAAS6sE,KAuHT,SAASC,EAAOlqF,GACZ,OAAY,MAARA,GAGmB,iBAATA,GAA0C,iBAAdA,EAAKI,KAGnD,SAAS+pF,EAAWhJ,EAAUp+E,GAC1B,OAAQo+E,IAAa9iF,EAAO0T,kBAAoBovE,IAAa9iF,EAAO4T,gBAAkB,eAAiBlP,EA+P3G,SAASqnF,EAAStsF,EAAMylF,GAEpB,OADiB,IAAI0G,GACHG,SAAStsF,EAAMylF,GAQrC,SAAS8G,EAAmBnkF,EAAS4Z,GACjC,IAAIjd,EAiBJ,OAfAA,EAzlBJ,SAAoB2D,EAAO4C,GACvB,IAAIqxC,EAAMl4C,EAAK8B,EAAGiE,EAKlB,IAHA/F,EAAMiE,EAAMhE,OACZ6B,EAAI,EAEG9B,GAGMiE,EADT8B,EAAUjE,GADVo2C,EAAOl4C,IAAQ,IAmlBF6E,MAAM,GAAKlB,EAAQkB,MAAM,GAhlBlC7E,EAAMk4C,GAENp2C,EAAIiE,EAAU,EACd/F,GAAOk4C,EAAO,GAGtB,OAAOp2C,EAykBEimF,CAAWxqE,GAIpB5Z,EAAQuB,cAAgB,CAACvB,EAAQkB,MAAM,GAAIlB,EAAQkB,MAAM,IAErDvE,IAAWid,EAAOtd,SAClB0D,EAAQuB,cAAc,GAAKqY,EAAOjd,GAAQuE,MAAM,KAGpDvE,GAAU,IACI,IACVqD,EAAQuB,cAAc,GAAKqY,EAAOjd,GAAQuE,MAAM,IAG7ClB,EA4GX,OAjsBA7H,EAAS,CACLsR,qBAAsB,uBACtBkC,kBAAmB,oBACnBT,gBAAiB,kBACjBD,aAAc,eACd5G,wBAAyB,0BACzBwG,gBAAiB,kBACjBnH,eAAgB,iBAChBkG,iBAAkB,mBAClBpE,eAAgB,iBAChBwE,eAAgB,iBAChB5D,YAAa,cACbT,UAAW,YACXC,iBAAkB,mBAClB2F,gBAAiB,kBACjBuC,mBAAoB,qBACpBJ,wBAAyB,0BACzBhE,sBAAuB,wBACvBhE,kBAAmB,oBACnBc,kBAAmB,oBACnBT,mBAAoB,qBACpBI,iBAAkB,mBAClBvC,eAAgB,iBAChBkD,qBAAsB,uBACtBL,yBAA0B,2BAC1BE,uBAAwB,yBACxB0F,gBAAiB,kBACjBrF,oBAAqB,sBACrB4B,aAAc,eACdE,eAAgB,iBAChBC,eAAgB,iBAChBE,oBAAqB,sBACrB+B,mBAAoB,qBACpByC,oBAAqB,sBACrBxJ,WAAY,aACZyE,YAAa,cACb8F,iBAAkB,mBAClBnH,kBAAmB,oBACnBE,uBAAwB,yBACxBC,yBAA0B,2BAC1B2E,gBAAiB,kBACjB/E,QAAS,UACT4B,iBAAkB,mBAClBW,kBAAmB,oBACnBU,iBAAkB,mBAClBG,aAAc,eACdgB,iBAAkB,mBAClB+C,gBAAiB,kBACjBnE,cAAe,gBACfyB,iBAAkB,mBAClBE,cAAe,gBACfpK,QAAS,UACT8J,SAAU,WACVH,YAAa,cACbpC,gBAAiB,kBACjBK,mBAAoB,qBACpByE,cAAe,gBACf/B,MAAO,QACP5D,gBAAiB,kBACjBG,WAAY,aACZyF,yBAA0B,2BAC1BG,gBAAiB,kBACjBC,gBAAiB,kBACjBrC,eAAgB,iBAChBlE,eAAgB,iBAChBE,aAAc,eACd0C,gBAAiB,kBACjBK,iBAAkB,mBAClB9F,oBAAqB,sBACrBwC,mBAAoB,qBACpB0B,eAAgB,iBAChBC,cAAe,gBACfuB,gBAAiB,mBAGrB84E,EAAc,CACVh6E,qBAAsB,CAAC,OAAQ,SAC/BkC,kBAAmB,CAAC,OAAQ,SAC5BT,gBAAiB,CAAC,YAClBD,aAAc,CAAC,YACf5G,wBAAyB,CAAC,SAAU,QACpCwG,gBAAiB,CAAC,YAClBnH,eAAgB,CAAC,QACjBkG,iBAAkB,CAAC,OAAQ,SAC3BpE,eAAgB,CAAC,SACjBwE,eAAgB,CAAC,SAAU,aAC3B5D,YAAa,CAAC,QAAS,QACvBT,UAAW,CAAC,QACZC,iBAAkB,CAAC,KAAM,aAAc,QACvC2F,gBAAiB,CAAC,KAAM,aAAc,QACtCuC,mBAAoB,CAAC,OAAQ,SAC7BJ,wBAAyB,CAAC,SAAU,SAAU,QAC9ChE,sBAAuB,CAAC,OAAQ,aAAc,aAC9ChE,kBAAmB,CAAC,SACpBc,kBAAmB,GACnBT,mBAAoB,GACpBI,iBAAkB,CAAC,OAAQ,QAC3BvC,eAAgB,GAChBkD,qBAAsB,CAAC,UACvBL,yBAA0B,CAAC,eAC3BE,uBAAwB,CAAC,cAAe,aAAc,UACtD0F,gBAAiB,CAAC,WAAY,SAC9BrF,oBAAqB,CAAC,cACtB4B,aAAc,CAAC,OAAQ,OAAQ,SAAU,QACzCE,eAAgB,CAAC,OAAQ,QAAS,QAClCC,eAAgB,CAAC,OAAQ,QAAS,QAClCE,oBAAqB,CAAC,KAAM,SAAU,QACtC+B,mBAAoB,CAAC,KAAM,SAAU,QACrCyC,oBAAqB,CAAC,SAAU,SAAU,QAC1CxJ,WAAY,GACZyE,YAAa,CAAC,OAAQ,aAAc,aACpC8F,iBAAkB,CAAC,UACnBnH,kBAAmB,CAAC,aAAc,UAClCE,uBAAwB,CAAC,SACzBC,yBAA0B,CAAC,SAC3B2E,gBAAiB,CAAC,WAAY,SAC9B/E,QAAS,GACT4B,iBAAkB,CAAC,QAAS,QAC5BW,kBAAmB,CAAC,OAAQ,SAC5BU,iBAAkB,CAAC,SAAU,YAC7BG,aAAc,CAAC,OAAQ,YACvBgB,iBAAkB,CAAC,MAAO,SAC1B+C,gBAAiB,GACjBnE,cAAe,CAAC,SAAU,aAC1ByB,iBAAkB,CAAC,cACnBE,cAAe,CAAC,cAChBpK,QAAS,CAAC,QACV8J,SAAU,CAAC,MAAO,SAClBH,YAAa,CAAE,YACfpC,gBAAiB,CAAC,YAClBK,mBAAoB,CAAC,eACrByE,cAAe,CAAC,YAChB/B,MAAO,GACP5D,gBAAiB,CAAC,eAAgB,SAClCG,WAAY,CAAC,OAAQ,cACrByF,yBAA0B,CAAC,MAAO,SAClCG,gBAAiB,GACjBC,gBAAiB,CAAC,SAAU,eAC5BrC,eAAgB,GAChBlE,eAAgB,CAAC,YACjBE,aAAc,CAAC,QAAS,UAAW,aACnC0C,gBAAiB,CAAC,YAClBK,iBAAkB,CAAC,YACnB9F,oBAAqB,CAAC,gBACtBwC,mBAAoB,CAAC,KAAM,QAC3B0B,eAAgB,CAAC,OAAQ,QACzBC,cAAe,CAAC,SAAU,QAC1BuB,gBAAiB,CAAC,aAQtB64E,EAAgB,CACZa,MALJX,EAAQ,GAMJY,KALJX,EAAO,GAMHY,OALJX,EAAS,IAaTzJ,EAAU/2E,UAAU8J,QAAU,SAAiBpT,GAC3C2J,KAAK2rB,OAAO3rB,KAAK5G,KAAO/C,GAG5BqgF,EAAU/2E,UAAUohF,OAAS,WACzB,OAAIlmF,MAAMC,QAAQkF,KAAK2rB,SACnB3rB,KAAK2rB,OAAO7oB,OAAO9C,KAAK5G,IAAK,IACtB,IAEP4G,KAAKyJ,QAAQ,OACN,IAef62E,EAAW3gF,UAAU80C,KAAO,WACxB,IAAI/5C,EAAGC,EAAImC,EAAGkkF,EAAItoF,EAElB,SAASuoF,EAAUvoF,EAAQ+7C,GACvB,GAAI55C,MAAMC,QAAQ25C,GACd,IAAK33C,EAAI,EAAGkkF,EAAKvsC,EAAK57C,OAAQiE,EAAIkkF,IAAMlkF,EACpCpE,EAAOuF,KAAKw2C,EAAK33C,SAGrBpE,EAAOuF,KAAKw2C,GAKpB,IAAKz0C,KAAKkhF,UAAUzsC,KAChB,OAAO,KAKX,IADA/7C,EAAS,GACJgC,EAAI,EAAGC,EAAKqF,KAAKmhF,YAAYtoF,OAAQ6B,EAAIC,IAAMD,EAEhDumF,EAAUvoF,EADAsH,KAAKmhF,YAAYzmF,GACD+5C,MAG9B,OADAwsC,EAAUvoF,EAAQsH,KAAKkhF,UAAUzsC,MAC1B/7C,GAKX4nF,EAAW3gF,UAAUlJ,KAAO,WAExB,OADWuJ,KAAKrB,UACJlI,MAAQuJ,KAAKkhF,UAAU/0C,MAKvCm0C,EAAW3gF,UAAUyhF,QAAU,WAC3B,IAAI1mF,EAAGC,EAAIjC,EAIX,IADAA,EAAS,GACJgC,EAAI,EAAGC,EAAKqF,KAAKmhF,YAAYtoF,OAAQ6B,EAAIC,IAAMD,EAChDhC,EAAOuF,KAAK+B,KAAKmhF,YAAYzmF,GAAGrE,MAGpC,OAAOqC,GAKX4nF,EAAW3gF,UAAUhB,QAAU,WAC3B,OAAOqB,KAAKkhF,UAAU7qF,MAG1BiqF,EAAW3gF,UAAU0hF,UAAY,SAAmB3J,EAAUv2D,GAC1D,IAAIm4D,EAAU5gF,EAYd,OAVAA,OAASywB,EAETmwD,EAAYt5E,KAAKkhF,UACjBlhF,KAAKkhF,UAAY//D,EACjBnhB,KAAKshF,QAAU,KACX5J,IACAh/E,EAASg/E,EAAS7jE,KAAK7T,KAAMmhB,EAAQ9qB,KAAM2J,KAAKmhF,YAAYnhF,KAAKmhF,YAAYtoF,OAAS,GAAGxC,OAE7F2J,KAAKkhF,UAAY5H,EAEV5gF,GAKX4nF,EAAW3gF,UAAU4hF,OAAS,SAAgBv2E,GAC1ChL,KAAKshF,QAAUt2E,GAKnBs1E,EAAW3gF,UAAU4c,KAAO,WACxBvc,KAAKuhF,OAAOrB,IAKhBI,EAAW3gF,UAAiB,MAAI,WAC5BK,KAAKuhF,OAAOtB,IAKhBK,EAAW3gF,UAAUohF,OAAS,WAC1B/gF,KAAKuhF,OAAOpB,IAGhBG,EAAW3gF,UAAU6hF,aAAe,SAASrtF,EAAMylF,GAC/C55E,KAAK45E,QAAUA,EACf55E,KAAK7L,KAAOA,EACZ6L,KAAKyhF,WAAa,GAClBzhF,KAAKmhF,YAAc,GACnBnhF,KAAKkhF,UAAY,KACjBlhF,KAAKshF,QAAU,KACfthF,KAAK0hF,WAAa,KACO,cAArB9H,EAAQr2B,SACRvjD,KAAK0hF,WAAaloF,OAAOyiB,KACU,mBAArB29D,EAAQr2B,WACtBvjD,KAAK0hF,WAAa9H,EAAQr2B,UAG9BvjD,KAAK2hF,OAAS3B,EACVpG,EAAQ39D,OACRjc,KAAK2hF,OAASnoF,OAAOwW,OAAOxW,OAAOkmC,OAAO1/B,KAAK2hF,QAAS/H,EAAQ39D,QAexEqkE,EAAW3gF,UAAU8gF,SAAW,SAAkBtsF,EAAMylF,GACpD,IAAIgI,EACAC,EACA1gE,EACA9qB,EACAmhF,EACAl/C,EACAl/B,EACAuF,EACAmjF,EACAC,EACAC,EACAC,EAcJ,IAZAjiF,KAAKwhF,aAAartF,EAAMylF,GAExBqI,EAAW,GAGXL,EAAW5hF,KAAKyhF,WAChBI,EAAY7hF,KAAKmhF,YAGjBS,EAAS3jF,KAAK,IAAIoiF,EAAQlsF,EAAM,KAAM,KAAM,OAC5C0tF,EAAU5jF,KAAK,IAAIoiF,EAAQ,KAAM,KAAM,KAAM,OAEtCuB,EAAS/oF,QAGZ,IAFAsoB,EAAUygE,EAASvjE,SAEH4jE,GAWhB,GAAI9gE,EAAQ9qB,KAAM,CAId,GAFAiiC,EAAMt4B,KAAKqhF,UAAUzH,EAAQsI,MAAO/gE,GAEhCnhB,KAAKshF,UAAYrB,GAAS3nD,IAAQ2nD,EAClC,OAMJ,GAHA2B,EAAS3jF,KAAKgkF,GACdJ,EAAU5jF,KAAKkjB,GAEXnhB,KAAKshF,UAAYpB,GAAQ5nD,IAAQ4nD,EACjC,SAMJ,GAFA1I,GADAnhF,EAAO8qB,EAAQ9qB,MACCI,MAAQ0qB,EAAQgrB,OAChC41C,EAAa/hF,KAAK2hF,OAAOnK,IACR,CACb,IAAIx3E,KAAK0hF,WAGL,MAAM,IAAInnF,MAAM,qBAAuBi9E,EAAW,KAFlDuK,EAAa/hF,KAAK0hF,WAAWrrF,GAOrC,IADAsI,EAAUojF,EAAWlpF,QACb8F,GAAW,IAAM,GAGrB,GADAqjF,EAAY3rF,EADZ+C,EAAM2oF,EAAWpjF,IAMjB,GAAI9D,MAAMC,QAAQknF,IAEd,IADAF,EAAWE,EAAUnpF,QACbipF,GAAY,IAAM,GACtB,GAAKE,EAAUF,GAAf,CAGA,GAAItB,EAAWhJ,EAAUuK,EAAWpjF,IAChCwiB,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,WAAY,UACrE,KAAIvB,EAAOyB,EAAUF,IAGxB,SAFA3gE,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,KAAM,MAItEF,EAAS3jF,KAAKkjB,SAEXo/D,EAAOyB,IACdJ,EAAS3jF,KAAK,IAAIoiF,EAAQ2B,EAAW5oF,EAAK,KAAM,aAxDxD,GAJA+nB,EAAU0gE,EAAUxjE,MAEpBia,EAAMt4B,KAAKqhF,UAAUzH,EAAQuI,MAAOhhE,GAEhCnhB,KAAKshF,UAAYrB,GAAS3nD,IAAQ2nD,EAClC,QA8DhBK,EAAW3gF,UAAU8J,QAAU,SAAiBtV,EAAMylF,GAClD,IAAIgI,EACAC,EACAxrF,EACAmhF,EACAt+E,EACAioB,EACAxiB,EACAmjF,EACAC,EACAC,EACAC,EACAG,EACAhpF,EAEJ,SAASipF,EAAWlhE,GAChB,IAAIzmB,EACAtB,EACAkpF,EACA32D,EAEJ,GAAIxK,EAAQ1N,IAAIstE,SAOZ,IALA3nF,EAAM+nB,EAAQ1N,IAAIra,IAClBuyB,EAASxK,EAAQ1N,IAAIkY,OAGrBjxB,EAAIknF,EAAS/oF,OACN6B,KAEH,IADA4nF,EAAWV,EAASlnF,IACP+Y,KAAO6uE,EAAS7uE,IAAIkY,SAAWA,EAAQ,CAChD,GAAK22D,EAAS7uE,IAAIra,IAAMA,EACpB,QAEFkpF,EAAS7uE,IAAIra,KAsB/B,IAhBA4G,KAAKwhF,aAAartF,EAAMylF,GAExBqI,EAAW,GAGXL,EAAW5hF,KAAKyhF,WAChBI,EAAY7hF,KAAKmhF,YAMjBhgE,EAAU,IAAIk/D,EAAQlsF,EAAM,KAAM,KAAM,IAAIuiF,EAH5C0L,EAAQ,CACJjuF,KAAMA,GAEmD,SAC7DytF,EAAS3jF,KAAKkjB,GACd0gE,EAAU5jF,KAAKkjB,GAERygE,EAAS/oF,QAGZ,IAFAsoB,EAAUygE,EAASvjE,SAEH4jE,EAAhB,CAqCA,QAXe94D,KAJfjwB,EAAS8G,KAAKqhF,UAAUzH,EAAQsI,MAAO/gE,KAIXjoB,IAAW+mF,GAAS/mF,IAAWgnF,GAAQhnF,IAAWinF,IAE1Eh/D,EAAQ1N,IAAIhK,QAAQvQ,GACpBioB,EAAQ9qB,KAAO6C,GAGf8G,KAAKshF,UAAYnB,GAAUjnF,IAAWinF,IACtCkC,EAAWlhE,GACXA,EAAQ9qB,KAAO,MAGf2J,KAAKshF,UAAYrB,GAAS/mF,IAAW+mF,EACrC,OAAOmC,EAAMjuF,KAKjB,IADAkC,EAAO8qB,EAAQ9qB,QAKfurF,EAAS3jF,KAAKgkF,GACdJ,EAAU5jF,KAAKkjB,GAEXnhB,KAAKshF,UAAYpB,GAAQhnF,IAAWgnF,GAAxC,CAMA,GAFA1I,EAAWnhF,EAAKI,MAAQ0qB,EAAQgrB,OAChC41C,EAAa/hF,KAAK2hF,OAAOnK,IACR,CACb,IAAIx3E,KAAK0hF,WAGL,MAAM,IAAInnF,MAAM,qBAAuBi9E,EAAW,KAFlDuK,EAAa/hF,KAAK0hF,WAAWrrF,GAOrC,IADAsI,EAAUojF,EAAWlpF,QACb8F,GAAW,IAAM,GAGrB,GADAqjF,EAAY3rF,EADZ+C,EAAM2oF,EAAWpjF,IAMjB,GAAI9D,MAAMC,QAAQknF,IAEd,IADAF,EAAWE,EAAUnpF,QACbipF,GAAY,IAAM,GACtB,GAAKE,EAAUF,GAAf,CAGA,GAAItB,EAAWhJ,EAAUuK,EAAWpjF,IAChCwiB,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,WAAY,IAAIpL,EAAUsL,EAAWF,QAC9F,KAAIvB,EAAOyB,EAAUF,IAGxB,SAFA3gE,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,KAAM,IAAIpL,EAAUsL,EAAWF,IAI/FF,EAAS3jF,KAAKkjB,SAEXo/D,EAAOyB,IACdJ,EAAS3jF,KAAK,IAAIoiF,EAAQ2B,EAAW5oF,EAAK,KAAM,IAAIs9E,EAAUrgF,EAAM+C,WAxExE,GAfA+nB,EAAU0gE,EAAUxjE,WAML8K,KAJfjwB,EAAS8G,KAAKqhF,UAAUzH,EAAQuI,MAAOhhE,KAIXjoB,IAAW+mF,GAAS/mF,IAAWgnF,GAAQhnF,IAAWinF,GAE1Eh/D,EAAQ1N,IAAIhK,QAAQvQ,GAGpB8G,KAAKshF,UAAYnB,GAAUjnF,IAAWinF,GACtCkC,EAAWlhE,GAGXnhB,KAAKshF,UAAYrB,GAAS/mF,IAAW+mF,EACrC,OAAOmC,EAAMjuF,KA4EzB,OAAOiuF,EAAMjuF,MAiIjBE,EAAQiX,QAAU,WAClBjX,EAAQK,OAASA,EACjBL,EAAQosF,SAAWA,EACnBpsF,EAAQoV,QA5HR,SAAiBtV,EAAMylF,GAEnB,OADiB,IAAI0G,GACH72E,QAAQtV,EAAMylF,IA2HpCvlF,EAAQmY,eAnGR,SAAwBoqE,EAAM2L,EAAkBpsE,GAE5C,IAAmB5Z,EAAS3D,EAAK8B,EAAGmJ,EAAhC2+E,EAAW,GAEf,IAAK5L,EAAKn5E,MACN,MAAM,IAAIlD,MAAM,0CAIpB,IAAK4b,EAAOtd,OAAQ,CAChB,GAAI0pF,EAAiB1pF,OAAQ,CACzB,IAAK6B,EAAI,EAAG9B,EAAM2pF,EAAiB1pF,OAAQ6B,EAAI9B,EAAK8B,GAAK,GACrD6B,EAAU6jF,EAASmC,EAAiB7nF,KAC5BoD,cAAgB,CAAC,EAAG84E,EAAKn5E,MAAM,IACvC+kF,EAASvkF,KAAK1B,GAElBq6E,EAAK/4E,gBAAkB2kF,EAE3B,OAAO5L,EAGX,IAAKl8E,EAAI,EAAG9B,EAAM2pF,EAAiB1pF,OAAQ6B,EAAI9B,EAAK8B,GAAK,EACrD8nF,EAASvkF,KAAKyiF,EAAmBN,EAASmC,EAAiB7nF,IAAKyb,IAsEpE,OAlEAtS,EAAS,EACT48E,EAAS7J,EAAM,CACXsL,MAAO,SAAU7rF,GAGb,IAFA,IAAIkG,EAEGsH,EAAS2+E,EAAS3pF,WACrB0D,EAAUimF,EAAS3+E,IACP/F,cAAc,GAAKzH,EAAKoH,MAAM,KAItClB,EAAQuB,cAAc,KAAOzH,EAAKoH,MAAM,IACnCpH,EAAKwH,kBACNxH,EAAKwH,gBAAkB,IAE3BxH,EAAKwH,gBAAgBI,KAAK1B,GAC1BimF,EAAS1/E,OAAOe,EAAQ,IAExBA,GAAU,EAKlB,OAAIA,IAAW2+E,EAAS3pF,OACbknF,EAAca,MAGrB4B,EAAS3+E,GAAQ/F,cAAc,GAAKzH,EAAKoH,MAAM,GACxCsiF,EAAcc,UADzB,KAMRh9E,EAAS,EACT48E,EAAS7J,EAAM,CACXuL,MAAO,SAAU9rF,GAGb,IAFA,IAAIkG,EAEGsH,EAAS2+E,EAAS3pF,SACrB0D,EAAUimF,EAAS3+E,KACfxN,EAAKoH,MAAM,GAAKlB,EAAQuB,cAAc,MAItCzH,EAAKoH,MAAM,KAAOlB,EAAQuB,cAAc,IACnCzH,EAAK+H,mBACN/H,EAAK+H,iBAAmB,IAE5B/H,EAAK+H,iBAAiBH,KAAK1B,GAC3BimF,EAAS1/E,OAAOe,EAAQ,IAExBA,GAAU,EAKlB,OAAIA,IAAW2+E,EAAS3pF,OACbknF,EAAca,MAGrB4B,EAAS3+E,GAAQ/F,cAAc,GAAKzH,EAAKoH,MAAM,GACxCsiF,EAAcc,UADzB,KAMDjK,GAQXviF,EAAQ2rF,YAAcA,EACtB3rF,EAAQ0rF,cAAgBA,EACxB1rF,EAAQisF,WAAaA,EACrBjsF,EAAQouF,iBAAmB,WAAc,OAAO3C,EAAM,KAE/CzrF,EAhvBX,CAivBEA,I,4GCrvBD,WACG,aAEA,IAAIS,EAAa,EAAQ,MAEzB,SAASyrF,EAAOlqF,GACZ,OAAY,MAARA,GAGmB,iBAATA,GAA0C,iBAAdA,EAAKI,KAOnD,SAAS8gF,EAAQqC,EAASpuE,GACtBA,EAAUA,GAAW,GAErBxL,KAAK0iF,UAAY9I,GAAY55E,KAC7BA,KAAK2iF,mBAAqBn3E,EAAQyrE,iBAC5Bz9E,OAAOwW,OAAO,GAAIlb,EAAWkrF,YAAax0E,EAAQyrE,kBAClDniF,EAAWkrF,YACQ,cAArBx0E,EAAQ+3C,SACRvjD,KAAK0hF,WAAaloF,OAAOyiB,KACU,mBAArBzQ,EAAQ+3C,WACtBvjD,KAAK0hF,WAAal2E,EAAQ+3C,UAQlCg0B,EAAQ53E,UAAUw6E,cAAgB,SAAU9jF,GACxC,IAAII,EAAMqiE,EAAUp+D,EAAGC,EAAImC,EAAGkkF,EAAI4B,EAElC,GAAY,MAARvsF,EAAJ,CAOA,GAHAI,EAAOJ,EAAKI,MAAQ3B,EAAWJ,OAAOsT,WAEtC8wD,EAAW94D,KAAK2iF,mBAAmBlsF,IACpB,CACX,IAAIuJ,KAAK0hF,WAGL,MAAM,IAAInnF,MAAM,qBAAuB9D,EAAO,KAF9CqiE,EAAW94D,KAAK0hF,WAAWrrF,GAMnC,IAAKqE,EAAI,EAAGC,EAAKm+D,EAASjgE,OAAQ6B,EAAIC,IAAMD,EAExC,GADAkoF,EAAQvsF,EAAKyiE,EAASp+D,IAElB,GAAIG,MAAMC,QAAQ8nF,GACd,IAAK9lF,EAAI,EAAGkkF,EAAK4B,EAAM/pF,OAAQiE,EAAIkkF,IAAMlkF,EACjC8lF,EAAM9lF,MACFyjF,EAAOqC,EAAM9lF,MA9CrB06E,EA8CuC/gF,EA9C7B2C,EA8CmC0/D,EAASp+D,GA7C9D88E,IAAa1iF,EAAWJ,OAAO0T,kBAAoBovE,IAAa1iF,EAAWJ,OAAO4T,eAA0B,eAARlP,IA8CpF4G,KAAKm3E,MAAMyL,EAAM9lF,UAItByjF,EAAOqC,IACd5iF,KAAKm3E,MAAMyL,GApD3B,IAAoBpL,EAAUp+E,IA2D9Bm+E,EAAQ53E,UAAUw3E,MAAQ,SAAU9gF,GAChC,IAAII,EAEQ,MAARJ,IAIJI,EAAOJ,EAAKI,MAAQ3B,EAAWJ,OAAOsT,SAClChI,KAAK0iF,UAAUjsF,GACfuJ,KAAK0iF,UAAUjsF,GAAMod,KAAK7T,KAAM3J,GAGpC2J,KAAKm6E,cAAc9jF,KAGvBhC,EAAQiX,QAAU,EAAlB,cACAjX,EAAQkjF,QAAUA,EAClBljF,EAAQ8iF,MAAQ,SAAU9gF,EAAMujF,EAASpuE,GAC7B,IAAI+rE,EAAQqC,EAASpuE,GAC3B2rE,MAAM9gF,IA1FhB,I,iECIC,SAASypF,EAAMzrF,GACZ,aAEA,IAAIK,EACAqrF,EACAC,EACAC,EACAC,EACAC,EAEJ,SAASC,EAASzsE,GACd,IAAcva,EAAKE,EAAfg/B,EAAM,GACV,IAAKl/B,KAAOua,EACJA,EAAInd,eAAe4C,KACnBE,EAAMqa,EAAIva,GAENk/B,EAAIl/B,GADW,iBAARE,GAA4B,OAARA,EAChB8mF,EAAS9mF,GAETA,GAIvB,OAAOg/B,EA4LX,SAASo+C,EAAU/qD,EAAQvyB,GACvB4G,KAAK2rB,OAASA,EACd3rB,KAAK5G,IAAMA,EAiBf,SAASinF,EAAQhqF,EAAMo+C,EAAMtI,EAAM14B,GAC/BzT,KAAK3J,KAAOA,EACZ2J,KAAKy0C,KAAOA,EACZz0C,KAAKmsC,KAAOA,EACZnsC,KAAKyT,IAAMA,EAGf,SAAS6sE,KAuHT,SAASC,EAAOlqF,GACZ,OAAY,MAARA,GAGmB,iBAATA,GAA0C,iBAAdA,EAAKI,KAGnD,SAAS+pF,EAAWhJ,EAAUp+E,GAC1B,OAAQo+E,IAAa9iF,EAAO0T,kBAAoBovE,IAAa9iF,EAAO4T,gBAAkB,eAAiBlP,EAG3G,SAASypF,EAA2BhB,EAAWG,GAC3C,IAAK,IAAItnF,EAAImnF,EAAUhpF,OAAS,EAAG6B,GAAK,IAAKA,EACzC,GAAImnF,EAAUnnF,GAAGrE,OAAS2rF,EACtB,OAAO,EAGf,OAAO,EAwQX,SAASvB,EAAStsF,EAAMylF,GAEpB,OADiB,IAAI0G,GACHG,SAAStsF,EAAMylF,GAQrC,SAAS8G,EAAmBnkF,EAAS4Z,GACjC,IAAIjd,EAiBJ,OAfAA,EA7mBJ,SAAoB2D,EAAO4C,GACvB,IAAIqxC,EAAMl4C,EAAK8B,EAAGiE,EAKlB,IAHA/F,EAAMiE,EAAMhE,OACZ6B,EAAI,EAEG9B,GAGMiE,EADT8B,EAAUjE,GADVo2C,EAAOl4C,IAAQ,IAumBF6E,MAAM,GAAKlB,EAAQkB,MAAM,GApmBlC7E,EAAMk4C,GAENp2C,EAAIiE,EAAU,EACd/F,GAAOk4C,EAAO,GAGtB,OAAOp2C,EA6lBEimF,CAAWxqE,GAIpB5Z,EAAQuB,cAAgB,CAACvB,EAAQkB,MAAM,GAAIlB,EAAQkB,MAAM,IAErDvE,IAAWid,EAAOtd,SAClB0D,EAAQuB,cAAc,GAAKqY,EAAOjd,GAAQuE,MAAM,KAGpDvE,GAAU,IACI,IACVqD,EAAQuB,cAAc,GAAKqY,EAAOjd,GAAQuE,MAAM,IAG7ClB,EA2GX,OAptBA7H,EAAS,CACLsR,qBAAsB,uBACtBkC,kBAAmB,oBACnBT,gBAAiB,kBACjBD,aAAc,eACd5G,wBAAyB,0BACzBwG,gBAAiB,kBACjBnH,eAAgB,iBAChBkG,iBAAkB,mBAClBpE,eAAgB,iBAChBwE,eAAgB,iBAChB5D,YAAa,cACb+D,gBAAiB,kBACjBxE,UAAW,YACXC,iBAAkB,mBAClB2F,gBAAiB,kBACjBuC,mBAAoB,qBACpBJ,wBAAyB,0BACzBhE,sBAAuB,wBACvBhE,kBAAmB,oBACnBc,kBAAmB,oBACnBT,mBAAoB,qBACpBI,iBAAkB,mBAClBvC,eAAgB,iBAChBkD,qBAAsB,uBACtBL,yBAA0B,2BAC1BE,uBAAwB,yBACxB0F,gBAAiB,kBACjBrF,oBAAqB,sBACrB4B,aAAc,eACdE,eAAgB,iBAChBC,eAAgB,iBAChBE,oBAAqB,sBACrB+B,mBAAoB,qBACpByC,oBAAqB,sBACrBxJ,WAAY,aACZyE,YAAa,cACb8F,iBAAkB,mBAClBnH,kBAAmB,oBACnBE,uBAAwB,yBACxBC,yBAA0B,2BAC1B2E,gBAAiB,kBACjB/E,QAAS,UACT4B,iBAAkB,mBAClBW,kBAAmB,oBACnBU,iBAAkB,mBAClBG,aAAc,eACdgB,iBAAkB,mBAClB+C,gBAAiB,kBACjBnE,cAAe,gBACfyB,iBAAkB,mBAClBE,cAAe,gBACfpK,QAAS,UACT8J,SAAU,WACVH,YAAa,cACbpC,gBAAiB,kBACjBK,mBAAoB,qBACpByE,cAAe,gBACf/B,MAAO,QACP5D,gBAAiB,kBACjBG,WAAY,aACZyF,yBAA0B,2BAC1BG,gBAAiB,kBACjBC,gBAAiB,kBACjBrC,eAAgB,iBAChBlE,eAAgB,iBAChBE,aAAc,eACd0C,gBAAiB,kBACjBK,iBAAkB,mBAClB9F,oBAAqB,sBACrBwC,mBAAoB,qBACpB0B,eAAgB,iBAChBC,cAAe,gBACfuB,gBAAiB,mBAGrB84E,EAAc,CACVh6E,qBAAsB,CAAC,OAAQ,SAC/BkC,kBAAmB,CAAC,OAAQ,SAC5BT,gBAAiB,CAAC,YAClBD,aAAc,CAAC,YACf5G,wBAAyB,CAAC,SAAU,QACpCwG,gBAAiB,CAAC,YAClBnH,eAAgB,CAAC,QACjBkG,iBAAkB,CAAC,OAAQ,SAC3BpE,eAAgB,CAAC,SACjBwE,eAAgB,CAAC,SAAU,aAC3B5D,YAAa,CAAC,QAAS,QACvB+D,gBAAiB,CAAC,cAClBxE,UAAW,CAAC,QACZC,iBAAkB,CAAC,KAAM,aAAc,QACvC2F,gBAAiB,CAAC,KAAM,aAAc,QACtCuC,mBAAoB,CAAC,OAAQ,SAC7BJ,wBAAyB,CAAC,SAAU,SAAU,QAC9ChE,sBAAuB,CAAC,OAAQ,aAAc,aAC9ChE,kBAAmB,CAAC,SACpBc,kBAAmB,GACnBT,mBAAoB,GACpBI,iBAAkB,CAAC,OAAQ,QAC3BvC,eAAgB,GAChBkD,qBAAsB,CAAC,UACvBL,yBAA0B,CAAC,eAC3BE,uBAAwB,CAAC,cAAe,aAAc,UACtD0F,gBAAiB,CAAC,WAAY,SAC9BrF,oBAAqB,CAAC,cACtB4B,aAAc,CAAC,OAAQ,OAAQ,SAAU,QACzCE,eAAgB,CAAC,OAAQ,QAAS,QAClCC,eAAgB,CAAC,OAAQ,QAAS,QAClCE,oBAAqB,CAAC,KAAM,SAAU,QACtC+B,mBAAoB,CAAC,KAAM,SAAU,QACrCyC,oBAAqB,CAAC,SAAU,SAAU,QAC1CxJ,WAAY,GACZyE,YAAa,CAAC,OAAQ,aAAc,aACpC8F,iBAAkB,CAAC,UACnBnH,kBAAmB,CAAC,aAAc,UAClCE,uBAAwB,CAAC,SACzBC,yBAA0B,CAAC,SAC3B2E,gBAAiB,CAAC,WAAY,SAC9B/E,QAAS,GACT4B,iBAAkB,CAAC,QAAS,QAC5BW,kBAAmB,CAAC,OAAQ,SAC5BU,iBAAkB,CAAC,SAAU,YAC7BG,aAAc,CAAC,OAAQ,YACvBgB,iBAAkB,CAAC,MAAO,SAC1B+C,gBAAiB,GACjBnE,cAAe,CAAC,SAAU,aAC1ByB,iBAAkB,CAAC,cACnBE,cAAe,CAAC,cAChBpK,QAAS,CAAC,QACV8J,SAAU,CAAC,MAAO,SAClBH,YAAa,CAAE,YACfpC,gBAAiB,CAAC,YAClBK,mBAAoB,CAAC,eACrByE,cAAe,CAAC,YAChB/B,MAAO,GACP5D,gBAAiB,CAAC,eAAgB,SAClCG,WAAY,CAAC,OAAQ,cACrByF,yBAA0B,CAAC,MAAO,SAClCG,gBAAiB,GACjBC,gBAAiB,CAAC,SAAU,eAC5BrC,eAAgB,GAChBlE,eAAgB,CAAC,YACjBE,aAAc,CAAC,QAAS,UAAW,aACnC0C,gBAAiB,CAAC,YAClBK,iBAAkB,CAAC,YACnB9F,oBAAqB,CAAC,gBACtBwC,mBAAoB,CAAC,KAAM,QAC3B0B,eAAgB,CAAC,OAAQ,QACzBC,cAAe,CAAC,SAAU,QAC1BuB,gBAAiB,CAAC,aAQtB64E,EAAgB,CACZa,MALJX,EAAQ,GAMJY,KALJX,EAAO,GAMHY,OALJX,EAAS,IAaTzJ,EAAU/2E,UAAU8J,QAAU,SAAiBpT,GAC3C2J,KAAK2rB,OAAO3rB,KAAK5G,KAAO/C,GAG5BqgF,EAAU/2E,UAAUohF,OAAS,WACzB,OAAIlmF,MAAMC,QAAQkF,KAAK2rB,SACnB3rB,KAAK2rB,OAAO7oB,OAAO9C,KAAK5G,IAAK,IACtB,IAEP4G,KAAKyJ,QAAQ,OACN,IAef62E,EAAW3gF,UAAU80C,KAAO,WACxB,IAAI/5C,EAAGC,EAAImC,EAAGkkF,EAAItoF,EAElB,SAASuoF,EAAUvoF,EAAQ+7C,GACvB,GAAI55C,MAAMC,QAAQ25C,GACd,IAAK33C,EAAI,EAAGkkF,EAAKvsC,EAAK57C,OAAQiE,EAAIkkF,IAAMlkF,EACpCpE,EAAOuF,KAAKw2C,EAAK33C,SAGrBpE,EAAOuF,KAAKw2C,GAKpB,IAAKz0C,KAAKkhF,UAAUzsC,KAChB,OAAO,KAKX,IADA/7C,EAAS,GACJgC,EAAI,EAAGC,EAAKqF,KAAKmhF,YAAYtoF,OAAQ6B,EAAIC,IAAMD,EAEhDumF,EAAUvoF,EADAsH,KAAKmhF,YAAYzmF,GACD+5C,MAG9B,OADAwsC,EAAUvoF,EAAQsH,KAAKkhF,UAAUzsC,MAC1B/7C,GAKX4nF,EAAW3gF,UAAUlJ,KAAO,WAExB,OADWuJ,KAAKrB,UACJlI,MAAQuJ,KAAKkhF,UAAU/0C,MAKvCm0C,EAAW3gF,UAAUyhF,QAAU,WAC3B,IAAI1mF,EAAGC,EAAIjC,EAIX,IADAA,EAAS,GACJgC,EAAI,EAAGC,EAAKqF,KAAKmhF,YAAYtoF,OAAQ6B,EAAIC,IAAMD,EAChDhC,EAAOuF,KAAK+B,KAAKmhF,YAAYzmF,GAAGrE,MAGpC,OAAOqC,GAKX4nF,EAAW3gF,UAAUhB,QAAU,WAC3B,OAAOqB,KAAKkhF,UAAU7qF,MAG1BiqF,EAAW3gF,UAAU0hF,UAAY,SAAmB3J,EAAUv2D,GAC1D,IAAIm4D,EAAU5gF,EAYd,OAVAA,OAASywB,EAETmwD,EAAYt5E,KAAKkhF,UACjBlhF,KAAKkhF,UAAY//D,EACjBnhB,KAAKshF,QAAU,KACX5J,IACAh/E,EAASg/E,EAAS7jE,KAAK7T,KAAMmhB,EAAQ9qB,KAAM2J,KAAKmhF,YAAYnhF,KAAKmhF,YAAYtoF,OAAS,GAAGxC,OAE7F2J,KAAKkhF,UAAY5H,EAEV5gF,GAKX4nF,EAAW3gF,UAAU4hF,OAAS,SAAgBv2E,GAC1ChL,KAAKshF,QAAUt2E,GAKnBs1E,EAAW3gF,UAAU4c,KAAO,WACxBvc,KAAKuhF,OAAOrB,IAKhBI,EAAW3gF,UAAiB,MAAI,WAC5BK,KAAKuhF,OAAOtB,IAKhBK,EAAW3gF,UAAUohF,OAAS,WAC1B/gF,KAAKuhF,OAAOpB,IAGhBG,EAAW3gF,UAAU6hF,aAAe,SAASrtF,EAAMylF,GAC/C55E,KAAK45E,QAAUA,EACf55E,KAAK7L,KAAOA,EACZ6L,KAAKyhF,WAAa,GAClBzhF,KAAKmhF,YAAc,GACnBnhF,KAAKkhF,UAAY,KACjBlhF,KAAKshF,QAAU,KACfthF,KAAK0hF,WAAa,KACO,cAArB9H,EAAQr2B,SACRvjD,KAAK0hF,WAAaloF,OAAOyiB,KACU,mBAArB29D,EAAQr2B,WACtBvjD,KAAK0hF,WAAa9H,EAAQr2B,UAG9BvjD,KAAK2hF,OAAS3B,EACVpG,EAAQ39D,OACRjc,KAAK2hF,OAASnoF,OAAOwW,OAAOxW,OAAOkmC,OAAO1/B,KAAK2hF,QAAS/H,EAAQ39D,QAwBxEqkE,EAAW3gF,UAAU8gF,SAAW,SAAkBtsF,EAAMylF,GACpD,IAAIgI,EACAC,EACA1gE,EACA9qB,EACAmhF,EACAl/C,EACAl/B,EACAuF,EACAmjF,EACAC,EACAC,EACAC,EAcJ,IAZAjiF,KAAKwhF,aAAartF,EAAMylF,GAExBqI,EAAW,GAGXL,EAAW5hF,KAAKyhF,WAChBI,EAAY7hF,KAAKmhF,YAGjBS,EAAS3jF,KAAK,IAAIoiF,EAAQlsF,EAAM,KAAM,KAAM,OAC5C0tF,EAAU5jF,KAAK,IAAIoiF,EAAQ,KAAM,KAAM,KAAM,OAEtCuB,EAAS/oF,QAGZ,IAFAsoB,EAAUygE,EAASvjE,SAEH4jE,GAWhB,GAAI9gE,EAAQ9qB,KAAM,CAId,GAFAiiC,EAAMt4B,KAAKqhF,UAAUzH,EAAQsI,MAAO/gE,GAEhCnhB,KAAKshF,UAAYrB,GAAS3nD,IAAQ2nD,EAClC,OAMJ,GAHA2B,EAAS3jF,KAAKgkF,GACdJ,EAAU5jF,KAAKkjB,GAEXnhB,KAAKshF,UAAYpB,GAAQ5nD,IAAQ4nD,EACjC,SAMJ,GAFA1I,GADAnhF,EAAO8qB,EAAQ9qB,MACCI,MAAQ0qB,EAAQgrB,OAChC41C,EAAa/hF,KAAK2hF,OAAOnK,IACR,CACb,IAAIx3E,KAAK0hF,WAGL,MAAM,IAAInnF,MAAM,qBAAuBi9E,EAAW,KAFlDuK,EAAa/hF,KAAK0hF,WAAWrrF,GAOrC,IADAsI,EAAUojF,EAAWlpF,QACb8F,GAAW,IAAM,GAGrB,GADAqjF,EAAY3rF,EADZ+C,EAAM2oF,EAAWpjF,IAMjB,GAAI9D,MAAMC,QAAQknF,IAEd,IADAF,EAAWE,EAAUnpF,QACbipF,GAAY,IAAM,GACtB,GAAKE,EAAUF,KAIXe,EAA2BhB,EAAWG,EAAUF,IAApD,CAIA,GAAItB,EAAWhJ,EAAUuK,EAAWpjF,IAChCwiB,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,WAAY,UACrE,KAAIvB,EAAOyB,EAAUF,IAGxB,SAFA3gE,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,KAAM,MAItEF,EAAS3jF,KAAKkjB,SAEf,GAAIo/D,EAAOyB,GAAY,CAC1B,GAAIa,EAA2BhB,EAAWG,GACxC,SAGFJ,EAAS3jF,KAAK,IAAIoiF,EAAQ2B,EAAW5oF,EAAK,KAAM,cAjExD,GAJA+nB,EAAU0gE,EAAUxjE,MAEpBia,EAAMt4B,KAAKqhF,UAAUzH,EAAQuI,MAAOhhE,GAEhCnhB,KAAKshF,UAAYrB,GAAS3nD,IAAQ2nD,EAClC,QAuEhBK,EAAW3gF,UAAU8J,QAAU,SAAiBtV,EAAMylF,GAClD,IAAIgI,EACAC,EACAxrF,EACAmhF,EACAt+E,EACAioB,EACAxiB,EACAmjF,EACAC,EACAC,EACAC,EACAG,EACAhpF,EAEJ,SAASipF,EAAWlhE,GAChB,IAAIzmB,EACAtB,EACAkpF,EACA32D,EAEJ,GAAIxK,EAAQ1N,IAAIstE,SAOZ,IALA3nF,EAAM+nB,EAAQ1N,IAAIra,IAClBuyB,EAASxK,EAAQ1N,IAAIkY,OAGrBjxB,EAAIknF,EAAS/oF,OACN6B,KAEH,IADA4nF,EAAWV,EAASlnF,IACP+Y,KAAO6uE,EAAS7uE,IAAIkY,SAAWA,EAAQ,CAChD,GAAK22D,EAAS7uE,IAAIra,IAAMA,EACpB,QAEFkpF,EAAS7uE,IAAIra,KAsB/B,IAhBA4G,KAAKwhF,aAAartF,EAAMylF,GAExBqI,EAAW,GAGXL,EAAW5hF,KAAKyhF,WAChBI,EAAY7hF,KAAKmhF,YAMjBhgE,EAAU,IAAIk/D,EAAQlsF,EAAM,KAAM,KAAM,IAAIuiF,EAH5C0L,EAAQ,CACJjuF,KAAMA,GAEmD,SAC7DytF,EAAS3jF,KAAKkjB,GACd0gE,EAAU5jF,KAAKkjB,GAERygE,EAAS/oF,QAGZ,IAFAsoB,EAAUygE,EAASvjE,SAEH4jE,EAAhB,CAqCA,QAXe94D,KAJfjwB,EAAS8G,KAAKqhF,UAAUzH,EAAQsI,MAAO/gE,KAIXjoB,IAAW+mF,GAAS/mF,IAAWgnF,GAAQhnF,IAAWinF,IAE1Eh/D,EAAQ1N,IAAIhK,QAAQvQ,GACpBioB,EAAQ9qB,KAAO6C,GAGf8G,KAAKshF,UAAYnB,GAAUjnF,IAAWinF,IACtCkC,EAAWlhE,GACXA,EAAQ9qB,KAAO,MAGf2J,KAAKshF,UAAYrB,GAAS/mF,IAAW+mF,EACrC,OAAOmC,EAAMjuF,KAKjB,IADAkC,EAAO8qB,EAAQ9qB,QAKfurF,EAAS3jF,KAAKgkF,GACdJ,EAAU5jF,KAAKkjB,GAEXnhB,KAAKshF,UAAYpB,GAAQhnF,IAAWgnF,GAAxC,CAMA,GAFA1I,EAAWnhF,EAAKI,MAAQ0qB,EAAQgrB,OAChC41C,EAAa/hF,KAAK2hF,OAAOnK,IACR,CACb,IAAIx3E,KAAK0hF,WAGL,MAAM,IAAInnF,MAAM,qBAAuBi9E,EAAW,KAFlDuK,EAAa/hF,KAAK0hF,WAAWrrF,GAOrC,IADAsI,EAAUojF,EAAWlpF,QACb8F,GAAW,IAAM,GAGrB,GADAqjF,EAAY3rF,EADZ+C,EAAM2oF,EAAWpjF,IAMjB,GAAI9D,MAAMC,QAAQknF,IAEd,IADAF,EAAWE,EAAUnpF,QACbipF,GAAY,IAAM,GACtB,GAAKE,EAAUF,GAAf,CAGA,GAAItB,EAAWhJ,EAAUuK,EAAWpjF,IAChCwiB,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,WAAY,IAAIpL,EAAUsL,EAAWF,QAC9F,KAAIvB,EAAOyB,EAAUF,IAGxB,SAFA3gE,EAAU,IAAIk/D,EAAQ2B,EAAUF,GAAW,CAAC1oF,EAAK0oF,GAAW,KAAM,IAAIpL,EAAUsL,EAAWF,IAI/FF,EAAS3jF,KAAKkjB,SAEXo/D,EAAOyB,IACdJ,EAAS3jF,KAAK,IAAIoiF,EAAQ2B,EAAW5oF,EAAK,KAAM,IAAIs9E,EAAUrgF,EAAM+C,WAxExE,GAfA+nB,EAAU0gE,EAAUxjE,WAML8K,KAJfjwB,EAAS8G,KAAKqhF,UAAUzH,EAAQuI,MAAOhhE,KAIXjoB,IAAW+mF,GAAS/mF,IAAWgnF,GAAQhnF,IAAWinF,GAE1Eh/D,EAAQ1N,IAAIhK,QAAQvQ,GAGpB8G,KAAKshF,UAAYnB,GAAUjnF,IAAWinF,GACtCkC,EAAWlhE,GAGXnhB,KAAKshF,UAAYrB,GAAS/mF,IAAW+mF,EACrC,OAAOmC,EAAMjuF,KA4EzB,OAAOiuF,EAAMjuF,MAiIjBE,EAAQK,OAASA,EACjBL,EAAQosF,SAAWA,EACnBpsF,EAAQoV,QA3HR,SAAiBtV,EAAMylF,GAEnB,OADiB,IAAI0G,GACH72E,QAAQtV,EAAMylF,IA0HpCvlF,EAAQmY,eAlGR,SAAwBoqE,EAAM2L,EAAkBpsE,GAE5C,IAAmB5Z,EAAS3D,EAAK8B,EAAGmJ,EAAhC2+E,EAAW,GAEf,IAAK5L,EAAKn5E,MACN,MAAM,IAAIlD,MAAM,0CAIpB,IAAK4b,EAAOtd,OAAQ,CAChB,GAAI0pF,EAAiB1pF,OAAQ,CACzB,IAAK6B,EAAI,EAAG9B,EAAM2pF,EAAiB1pF,OAAQ6B,EAAI9B,EAAK8B,GAAK,GACrD6B,EAAU6jF,EAASmC,EAAiB7nF,KAC5BoD,cAAgB,CAAC,EAAG84E,EAAKn5E,MAAM,IACvC+kF,EAASvkF,KAAK1B,GAElBq6E,EAAK/4E,gBAAkB2kF,EAE3B,OAAO5L,EAGX,IAAKl8E,EAAI,EAAG9B,EAAM2pF,EAAiB1pF,OAAQ6B,EAAI9B,EAAK8B,GAAK,EACrD8nF,EAASvkF,KAAKyiF,EAAmBN,EAASmC,EAAiB7nF,IAAKyb,IAsEpE,OAlEAtS,EAAS,EACT48E,EAAS7J,EAAM,CACXsL,MAAO,SAAU7rF,GAGb,IAFA,IAAIkG,EAEGsH,EAAS2+E,EAAS3pF,WACrB0D,EAAUimF,EAAS3+E,IACP/F,cAAc,GAAKzH,EAAKoH,MAAM,KAItClB,EAAQuB,cAAc,KAAOzH,EAAKoH,MAAM,IACnCpH,EAAKwH,kBACNxH,EAAKwH,gBAAkB,IAE3BxH,EAAKwH,gBAAgBI,KAAK1B,GAC1BimF,EAAS1/E,OAAOe,EAAQ,IAExBA,GAAU,EAKlB,OAAIA,IAAW2+E,EAAS3pF,OACbknF,EAAca,MAGrB4B,EAAS3+E,GAAQ/F,cAAc,GAAKzH,EAAKoH,MAAM,GACxCsiF,EAAcc,UADzB,KAMRh9E,EAAS,EACT48E,EAAS7J,EAAM,CACXuL,MAAO,SAAU9rF,GAGb,IAFA,IAAIkG,EAEGsH,EAAS2+E,EAAS3pF,SACrB0D,EAAUimF,EAAS3+E,KACfxN,EAAKoH,MAAM,GAAKlB,EAAQuB,cAAc,MAItCzH,EAAKoH,MAAM,KAAOlB,EAAQuB,cAAc,IACnCzH,EAAK+H,mBACN/H,EAAK+H,iBAAmB,IAE5B/H,EAAK+H,iBAAiBH,KAAK1B,GAC3BimF,EAAS1/E,OAAOe,EAAQ,IAExBA,GAAU,EAKlB,OAAIA,IAAW2+E,EAAS3pF,OACbknF,EAAca,MAGrB4B,EAAS3+E,GAAQ/F,cAAc,GAAKzH,EAAKoH,MAAM,GACxCsiF,EAAcc,UADzB,KAMDjK,GAOXviF,EAAQ2rF,YAAcA,EACtB3rF,EAAQ0rF,cAAgBA,EACxB1rF,EAAQisF,WAAaA,EACrBjsF,EAAQouF,iBAAmB,WAAc,OAAO3C,EAAM,KAE/CzrF,EAnwBX,CAowBEA,I,UCvwBD,WACG,aAsCA,SAAS+B,EAAYC,GACjB,GAAY,MAARA,EAAgB,OAAO,EAC3B,OAAQA,EAAKI,MACT,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,oBACL,IAAK,mBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,mBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,eACL,IAAK,sBACL,IAAK,iBACL,IAAK,gBACD,OAAO,EAEf,OAAO,EAOX,SAASqsF,EAAkBzsF,GACvB,OAAQA,EAAKI,MACb,IAAK,cACD,OAAsB,MAAlBJ,EAAK6O,UACE7O,EAAK6O,UAET7O,EAAK2O,WAEhB,IAAK,mBACL,IAAK,eACL,IAAK,iBACL,IAAK,iBACL,IAAK,gBACD,OAAO3O,EAAK8H,KAEhB,OAAO,KAyBX7J,EAAOD,QAAU,CACb2X,aA3GJ,SAAsB3V,GAClB,GAAY,MAARA,EAAgB,OAAO,EAC3B,OAAQA,EAAKI,MACT,IAAK,kBACL,IAAK,uBACL,IAAK,mBACL,IAAK,iBACL,IAAK,wBACL,IAAK,qBACL,IAAK,aACL,IAAK,UACL,IAAK,oBACL,IAAK,mBACL,IAAK,gBACL,IAAK,mBACL,IAAK,qBACL,IAAK,iBACL,IAAK,kBACL,IAAK,mBACD,OAAO,EAEf,OAAO,GAuFPL,YAAaA,EACb2sF,qBArFJ,SAA8B1sF,GAC1B,GAAY,MAARA,EAAgB,OAAO,EAC3B,OAAQA,EAAKI,MACT,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,iBACD,OAAO,EAEf,OAAO,GA6EPusF,gBAhDJ,SAAyB3sF,GACvB,OAAOD,EAAYC,IAAiB,MAARA,GAA8B,wBAAdA,EAAKI,MAgD/CwsF,yBA3BJ,SAAkC5sF,GAC9B,IAAIsI,EAEJ,GAAkB,gBAAdtI,EAAKI,KACL,OAAO,EAEX,GAAsB,MAAlBJ,EAAK6O,UACL,OAAO,EAEXvG,EAAUtI,EAAK2O,WACf,EAAG,CACC,GAAqB,gBAAjBrG,EAAQlI,MACiB,MAArBkI,EAAQuG,UACR,OAAO,EAGfvG,EAAUmkF,EAAkBnkF,SACvBA,GAET,OAAO,GAUPmkF,kBAAmBA,GApH3B,I,UCCC,WACG,aAEA,IAAII,EAAUC,EAAUC,EAAuBC,EAAkBC,EAAiB3pF,EAsDlF,SAASi+C,EAAc2rC,GACnB,OAAIA,GAAM,MAAiB1pF,OAAOC,aAAaypF,GACrC1pF,OAAOC,aAAa4P,KAAKC,OAAO45E,EAAK,OAAW,MAAS,OACzD1pF,OAAOC,cAAeypF,EAAK,OAAW,KAAS,OAK7D,IA3DAJ,EAAW,CAEPK,wBAAyB,wtIAEzBC,uBAAwB,++JAG5BP,EAAW,CAEPM,wBAAyB,0tNAEzBC,uBAAwB,0pQAmB5BL,EAAwB,CACpB,KACA,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAChF,KAAQ,KACR,MACA,OAuBJC,EAAmB,IAAIxoF,MAAM,KACzBlB,EAAK,EAAGA,EAAK,MAAQA,EACrB0pF,EAAiB1pF,GACbA,GAAM,IAAQA,GAAM,KACpBA,GAAM,IAAQA,GAAM,IACb,KAAPA,GAAsB,KAAPA,EAIvB,IADA2pF,EAAkB,IAAIzoF,MAAM,KACxBlB,EAAK,EAAGA,EAAK,MAAQA,EACrB2pF,EAAgB3pF,GACZA,GAAM,IAAQA,GAAM,KACpBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,IACb,KAAPA,GAAsB,KAAPA,EAmBvBrF,EAAOD,QAAU,CACbgG,eA9EJ,SAAwBV,GACpB,OAAO,IAAQA,GAAMA,GAAM,IA8E3B+0B,WA3EJ,SAAoB/0B,GAChB,OAAO,IAAQA,GAAMA,GAAM,IACvB,IAAQA,GAAMA,GAAM,KACpB,IAAQA,GAAMA,GAAM,IAyExBi1B,aAtEJ,SAAsBj1B,GAClB,OAAOA,GAAM,IAAQA,GAAM,IAsE3BqC,aAzDJ,SAAsBrC,GAClB,OAAc,KAAPA,GAAsB,IAAPA,GAAsB,KAAPA,GAAsB,KAAPA,GAAsB,MAAPA,GAC/DA,GAAM,MAAUypF,EAAsBt8E,QAAQnN,IAAO,GAwDzDZ,iBAnDJ,SAA0BY,GACtB,OAAc,KAAPA,GAAsB,KAAPA,GAAsB,OAAPA,GAAwB,OAAPA,GAmDtD+pF,qBAtBJ,SAA8B/pF,GAC1B,OAAOA,EAAK,IAAO0pF,EAAiB1pF,GAAMwpF,EAASK,wBAAwB5mF,KAAKg7C,EAAcj+C,KAsB9FoC,oBAnBJ,SAA6BpC,GACzB,OAAOA,EAAK,IAAO2pF,EAAgB3pF,GAAMwpF,EAASM,uBAAuB7mF,KAAKg7C,EAAcj+C,KAmB5FgqF,qBAhBJ,SAA8BhqF,GAC1B,OAAOA,EAAK,IAAO0pF,EAAiB1pF,GAAMupF,EAASM,wBAAwB5mF,KAAKg7C,EAAcj+C,KAgB9FiqF,oBAbJ,SAA6BjqF,GACzB,OAAOA,EAAK,IAAO2pF,EAAgB3pF,GAAMupF,EAASO,uBAAuB7mF,KAAKg7C,EAAcj+C,MA9FpG,I,eCDC,WACG,aAEA,IAAIb,EAAO,EAAQ,MAkBnB,SAAS+qF,EAAazhF,EAAIyK,GAEtB,SAAKA,GAAiB,UAAPzK,IAGR0hF,EAAa1hF,EAAIyK,GAG5B,SAASi3E,EAAa1hF,EAAIyK,GACtB,GAAIA,GAzBR,SAAqCzK,GACjC,OAAQA,GACR,IAAK,aACL,IAAK,YACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,MACD,OAAO,EACX,QACI,OAAO,GAaG2hF,CAA4B3hF,GACtC,OAAO,EAGX,OAAQA,EAAGvJ,QACX,KAAK,EACD,MAAe,OAAPuJ,GAAwB,OAAPA,GAAwB,OAAPA,EAC9C,KAAK,EACD,MAAe,QAAPA,GAAyB,QAAPA,GAAyB,QAAPA,GAAyB,QAAPA,EAClE,KAAK,EACD,MAAe,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,GAClC,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,EAC/C,KAAK,EACD,MAAe,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACpC,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACjC,UAAPA,GAA2B,UAAPA,EAC7B,KAAK,EACD,MAAe,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,GACtC,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,EACnD,KAAK,EACD,MAAe,YAAPA,GAA6B,YAAPA,GAA6B,YAAPA,EACxD,KAAK,EACD,MAAe,aAAPA,GAA8B,aAAPA,GAA8B,aAAPA,EAC1D,KAAK,GACD,MAAe,eAAPA,EACZ,QACI,OAAO,GAIf,SAAS4hF,EAAkB5hF,EAAIyK,GAC3B,MAAc,SAAPzK,GAAwB,SAAPA,GAAwB,UAAPA,GAAkByhF,EAAazhF,EAAIyK,GAGhF,SAASo3E,EAAkB7hF,EAAIyK,GAC3B,MAAc,SAAPzK,GAAwB,SAAPA,GAAwB,UAAPA,GAAkB0hF,EAAa1hF,EAAIyK,GAOhF,SAASq3E,EAAoB9hF,GACzB,IAAI1H,EAAGC,EAAIhB,EAEX,GAAkB,IAAdyI,EAAGvJ,OAAgB,OAAO,EAG9B,GADAc,EAAKyI,EAAGpJ,WAAW,IACdF,EAAK4qF,qBAAqB/pF,GAC3B,OAAO,EAGX,IAAKe,EAAI,EAAGC,EAAKyH,EAAGvJ,OAAQ6B,EAAIC,IAAMD,EAElC,GADAf,EAAKyI,EAAGpJ,WAAW0B,IACd5B,EAAKiD,oBAAoBpC,GAC1B,OAAO,EAGf,OAAO,EAOX,SAASwqF,EAAoB/hF,GACzB,IAAI1H,EAAGC,EAAIhB,EAAIyqF,EAAOC,EAEtB,GAAkB,IAAdjiF,EAAGvJ,OAAgB,OAAO,EAG9B,IADAwrF,EAAQvrF,EAAK6qF,qBACRjpF,EAAI,EAAGC,EAAKyH,EAAGvJ,OAAQ6B,EAAIC,IAAMD,EAAG,CAErC,GAAI,QADJf,EAAKyI,EAAGpJ,WAAW0B,KACCf,GAAM,MAAQ,CAE9B,KADEe,GACOC,EAAM,OAAO,EAEtB,KAAM,QADNypF,EAAQhiF,EAAGpJ,WAAW0B,KACG0pF,GAAS,OAC9B,OAAO,EAEXzqF,EAlBiB,MAkBAA,EAlBV,QAkBcyqF,EAlBa,OAAU,MAoBhD,IAAKC,EAAM1qF,GACP,OAAO,EAEX0qF,EAAQvrF,EAAK8qF,oBAEjB,OAAO,EAWXtvF,EAAOD,QAAU,CACbwvF,aAAcA,EACdC,aAAcA,EACdE,kBAAmBA,EACnBC,kBAAmBA,EACnBK,iBAjEJ,SAA0BliF,GACtB,MAAc,SAAPA,GAAwB,cAAPA,GAiExB8hF,oBAAqBA,EACrBC,oBAAqBA,EACrBI,gBAhBJ,SAAyBniF,EAAIyK,GACzB,OAAOq3E,EAAoB9hF,KAAQ4hF,EAAkB5hF,EAAIyK,IAgBzD23E,gBAbJ,SAAyBpiF,EAAIyK,GACzB,OAAOs3E,EAAoB/hF,KAAQ6hF,EAAkB7hF,EAAIyK,KA7HjE,I,eCCC,WACG,aAEAxY,EAAQowF,IAAM,EAAd,MACApwF,EAAQyE,KAAO,EAAf,MACAzE,EAAQ0Z,QAAU,EAAlB,KALJ,I,sBCvBA,IAAI2F,EAAMla,OAAOmG,UAAUnJ,eACvBmH,EAAS,IASb,SAAS+mF,KA4BT,SAASC,EAAGvoF,EAAIob,EAASotE,GACvB5kF,KAAK5D,GAAKA,EACV4D,KAAKwX,QAAUA,EACfxX,KAAK4kF,KAAOA,IAAQ,EActB,SAASC,EAAYC,EAASC,EAAO3oF,EAAIob,EAASotE,GAChD,GAAkB,mBAAPxoF,EACT,MAAM,IAAIi8B,UAAU,mCAGtB,IAAI2sD,EAAW,IAAIL,EAAGvoF,EAAIob,GAAWstE,EAASF,GAC1CK,EAAMtnF,EAASA,EAASonF,EAAQA,EAMpC,OAJKD,EAAQI,QAAQD,GACXH,EAAQI,QAAQD,GAAK7oF,GAC1B0oF,EAAQI,QAAQD,GAAO,CAACH,EAAQI,QAAQD,GAAMD,GADhBF,EAAQI,QAAQD,GAAKhnF,KAAK+mF,IADlCF,EAAQI,QAAQD,GAAOD,EAAUF,EAAQK,gBAI7DL,EAUT,SAASM,EAAWN,EAASG,GACI,KAAzBH,EAAQK,aAAoBL,EAAQI,QAAU,IAAIR,SAC5CI,EAAQI,QAAQD,GAU9B,SAASI,IACPrlF,KAAKklF,QAAU,IAAIR,EACnB1kF,KAAKmlF,aAAe,EAxElB3rF,OAAOkmC,SACTglD,EAAO/kF,UAAYnG,OAAOkmC,OAAO,OAM5B,IAAIglD,GAASrkD,YAAW1iC,GAAS,IA2ExC0nF,EAAa1lF,UAAU2lF,WAAa,WAClC,IACIC,EACArqF,EAFAsqF,EAAQ,GAIZ,GAA0B,IAAtBxlF,KAAKmlF,aAAoB,OAAOK,EAEpC,IAAKtqF,KAASqqF,EAASvlF,KAAKklF,QACtBxxE,EAAIG,KAAK0xE,EAAQrqF,IAAOsqF,EAAMvnF,KAAKN,EAASzC,EAAKd,MAAM,GAAKc,GAGlE,OAAI1B,OAAOwqC,sBACFwhD,EAAM5qD,OAAOphC,OAAOwqC,sBAAsBuhD,IAG5CC,GAUTH,EAAa1lF,UAAU8lF,UAAY,SAAmBV,GACpD,IAAIE,EAAMtnF,EAASA,EAASonF,EAAQA,EAChCtgF,EAAWzE,KAAKklF,QAAQD,GAE5B,IAAKxgF,EAAU,MAAO,GACtB,GAAIA,EAASrI,GAAI,MAAO,CAACqI,EAASrI,IAElC,IAAK,IAAI1B,EAAI,EAAGw0B,EAAIzqB,EAAS5L,OAAQ6sF,EAAK,IAAI7qF,MAAMq0B,GAAIx0B,EAAIw0B,EAAGx0B,IAC7DgrF,EAAGhrF,GAAK+J,EAAS/J,GAAG0B,GAGtB,OAAOspF,GAUTL,EAAa1lF,UAAUgmF,cAAgB,SAAuBZ,GAC5D,IAAIE,EAAMtnF,EAASA,EAASonF,EAAQA,EAChCU,EAAYzlF,KAAKklF,QAAQD,GAE7B,OAAKQ,EACDA,EAAUrpF,GAAW,EAClBqpF,EAAU5sF,OAFM,GAYzBwsF,EAAa1lF,UAAUimF,KAAO,SAAcb,EAAOc,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIhB,EAAMtnF,EAASA,EAASonF,EAAQA,EAEpC,IAAK/kF,KAAKklF,QAAQD,GAAM,OAAO,EAE/B,IAEIxqD,EACA//B,EAHA+qF,EAAYzlF,KAAKklF,QAAQD,GACzBrsF,EAAM8gB,UAAU7gB,OAIpB,GAAI4sF,EAAUrpF,GAAI,CAGhB,OAFIqpF,EAAUb,MAAM5kF,KAAKkmF,eAAenB,EAAOU,EAAUrpF,QAAI+sB,GAAW,GAEhEvwB,GACN,KAAK,EAAG,OAAO6sF,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,UAAU,EACrD,KAAK,EAAG,OAAOiuE,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,QAASquE,IAAK,EACzD,KAAK,EAAG,OAAOJ,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,QAASquE,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOL,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,QAASquE,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAON,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,QAASquE,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOP,EAAUrpF,GAAGyX,KAAK4xE,EAAUjuE,QAASquE,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKvrF,EAAI,EAAG+/B,EAAO,IAAI5/B,MAAMjC,EAAK,GAAI8B,EAAI9B,EAAK8B,IAC7C+/B,EAAK//B,EAAI,GAAKgf,UAAUhf,GAG1B+qF,EAAUrpF,GAAGu+B,MAAM8qD,EAAUjuE,QAASijB,OACjC,CACL,IACI39B,EADAjE,EAAS4sF,EAAU5sF,OAGvB,IAAK6B,EAAI,EAAGA,EAAI7B,EAAQ6B,IAGtB,OAFI+qF,EAAU/qF,GAAGkqF,MAAM5kF,KAAKkmF,eAAenB,EAAOU,EAAU/qF,GAAG0B,QAAI+sB,GAAW,GAEtEvwB,GACN,KAAK,EAAG6sF,EAAU/qF,GAAG0B,GAAGyX,KAAK4xE,EAAU/qF,GAAG8c,SAAU,MACpD,KAAK,EAAGiuE,EAAU/qF,GAAG0B,GAAGyX,KAAK4xE,EAAU/qF,GAAG8c,QAASquE,GAAK,MACxD,KAAK,EAAGJ,EAAU/qF,GAAG0B,GAAGyX,KAAK4xE,EAAU/qF,GAAG8c,QAASquE,EAAIC,GAAK,MAC5D,KAAK,EAAGL,EAAU/qF,GAAG0B,GAAGyX,KAAK4xE,EAAU/qF,GAAG8c,QAASquE,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKtrD,EAAM,IAAK39B,EAAI,EAAG29B,EAAO,IAAI5/B,MAAMjC,EAAK,GAAIkE,EAAIlE,EAAKkE,IACxD29B,EAAK39B,EAAI,GAAK4c,UAAU5c,GAG1B2oF,EAAU/qF,GAAG0B,GAAGu+B,MAAM8qD,EAAU/qF,GAAG8c,QAASijB,IAKpD,OAAO,GAYT4qD,EAAa1lF,UAAUwmF,GAAK,SAAYpB,EAAO3oF,EAAIob,GACjD,OAAOqtE,EAAY7kF,KAAM+kF,EAAO3oF,EAAIob,GAAS,IAY/C6tE,EAAa1lF,UAAUilF,KAAO,SAAcG,EAAO3oF,EAAIob,GACrD,OAAOqtE,EAAY7kF,KAAM+kF,EAAO3oF,EAAIob,GAAS,IAa/C6tE,EAAa1lF,UAAUumF,eAAiB,SAAwBnB,EAAO3oF,EAAIob,EAASotE,GAClF,IAAIK,EAAMtnF,EAASA,EAASonF,EAAQA,EAEpC,IAAK/kF,KAAKklF,QAAQD,GAAM,OAAOjlF,KAC/B,IAAK5D,EAEH,OADAgpF,EAAWplF,KAAMilF,GACVjlF,KAGT,IAAIylF,EAAYzlF,KAAKklF,QAAQD,GAE7B,GAAIQ,EAAUrpF,GAEVqpF,EAAUrpF,KAAOA,GACfwoF,IAAQa,EAAUb,MAClBptE,GAAWiuE,EAAUjuE,UAAYA,GAEnC4tE,EAAWplF,KAAMilF,OAEd,CACL,IAAK,IAAIvqF,EAAI,EAAG6qF,EAAS,GAAI1sF,EAAS4sF,EAAU5sF,OAAQ6B,EAAI7B,EAAQ6B,KAEhE+qF,EAAU/qF,GAAG0B,KAAOA,GACnBwoF,IAASa,EAAU/qF,GAAGkqF,MACtBptE,GAAWiuE,EAAU/qF,GAAG8c,UAAYA,IAErC+tE,EAAOtnF,KAAKwnF,EAAU/qF,IAOtB6qF,EAAO1sF,OAAQmH,KAAKklF,QAAQD,GAAyB,IAAlBM,EAAO1sF,OAAe0sF,EAAO,GAAKA,EACpEH,EAAWplF,KAAMilF,GAGxB,OAAOjlF,MAUTqlF,EAAa1lF,UAAUymF,mBAAqB,SAA4BrB,GACtE,IAAIE,EAUJ,OARIF,GACFE,EAAMtnF,EAASA,EAASonF,EAAQA,EAC5B/kF,KAAKklF,QAAQD,IAAMG,EAAWplF,KAAMilF,KAExCjlF,KAAKklF,QAAU,IAAIR,EACnB1kF,KAAKmlF,aAAe,GAGfnlF,MAMTqlF,EAAa1lF,UAAU0mF,IAAMhB,EAAa1lF,UAAUumF,eACpDb,EAAa1lF,UAAUklF,YAAcQ,EAAa1lF,UAAUwmF,GAK5Dd,EAAaiB,SAAW3oF,EAKxB0nF,EAAaA,aAAeA,EAM1B/wF,EAAOD,QAAUgxF,G,sBCxUnB/wF,EAAOD,QAAU,SAAS+mC,EAAMc,EAAGC,GACjC,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAE1D,cAAgB2D,EAAE3D,YAAa,OAAO,EAE5C,IAAI3/B,EAAQ6B,EAAGuhB,EACf,GAAIphB,MAAMC,QAAQohC,GAAI,CAEpB,IADArjC,EAASqjC,EAAErjC,SACGsjC,EAAEtjC,OAAQ,OAAO,EAC/B,IAAK6B,EAAI7B,EAAgB,GAAR6B,KACf,IAAK0gC,EAAMc,EAAExhC,GAAIyhC,EAAEzhC,IAAK,OAAO,EACjC,OAAO,EAKT,GAAIwhC,EAAE1D,cAAgB/+B,OAAQ,OAAOyiC,EAAE5gC,SAAW6gC,EAAE7gC,QAAU4gC,EAAEr8B,QAAUs8B,EAAEt8B,MAC5E,GAAIq8B,EAAE4M,UAAYtvC,OAAOmG,UAAUmpC,QAAS,OAAO5M,EAAE4M,YAAc3M,EAAE2M,UACrE,GAAI5M,EAAEhiC,WAAaV,OAAOmG,UAAUzF,SAAU,OAAOgiC,EAAEhiC,aAAeiiC,EAAEjiC,WAIxE,IADArB,GADAojB,EAAOziB,OAAOyiB,KAAKigB,IACLrjC,UACCW,OAAOyiB,KAAKkgB,GAAGtjC,OAAQ,OAAO,EAE7C,IAAK6B,EAAI7B,EAAgB,GAAR6B,KACf,IAAKlB,OAAOmG,UAAUnJ,eAAeqd,KAAKsoB,EAAGlgB,EAAKvhB,IAAK,OAAO,EAEhE,IAAKA,EAAI7B,EAAgB,GAAR6B,KAAY,CAC3B,IAAItB,EAAM6iB,EAAKvhB,GAEf,IAAK0gC,EAAMc,EAAE9iC,GAAM+iC,EAAE/iC,IAAO,OAAO,EAGrC,OAAO,EAIT,OAAO8iC,GAAIA,GAAKC,GAAIA,I,SC3CtB,IAAI5D,EAAS/+B,OAAOmG,UAAUnJ,eAC1B0D,EAAWV,OAAOmG,UAAUzF,SAEhC5F,EAAOD,QAAU,SAAkBsf,EAAKvX,EAAI0nC,GACxC,GAA0B,sBAAtB5pC,EAAS2Z,KAAKzX,GACd,MAAM,IAAIi8B,UAAU,+BAExB,IAAInJ,EAAIvb,EAAI9a,OACZ,GAAIq2B,KAAOA,EACP,IAAK,IAAIx0B,EAAI,EAAGA,EAAIw0B,EAAGx0B,IACnB0B,EAAGyX,KAAKiwB,EAAKnwB,EAAIjZ,GAAIA,EAAGiZ,QAG5B,IAAK,IAAI6N,KAAK7N,EACN4kB,EAAO1kB,KAAKF,EAAK6N,IACjBplB,EAAGyX,KAAKiwB,EAAKnwB,EAAI6N,GAAIA,EAAG7N,K,sBCZxC,IAAI4yE,EAAgB,kDAChBnsF,EAAQS,MAAM8E,UAAUvF,MACxBm7E,EAAQ/7E,OAAOmG,UAAUzF,SACzBssF,EAAW,oBAEflyF,EAAOD,QAAU,SAAc0L,GAC3B,IAAI7G,EAAS8G,KACb,GAAsB,mBAAX9G,GAAyBq8E,EAAM1hE,KAAK3a,KAAYstF,EACvD,MAAM,IAAInuD,UAAUkuD,EAAgBrtF,GAyBxC,IAvBA,IAEIutF,EAFAhsD,EAAOrgC,EAAMyZ,KAAK6F,UAAW,GAG7BgtE,EAAS,WACT,GAAI1mF,gBAAgBymF,EAAO,CACvB,IAAI/tF,EAASQ,EAAOyhC,MAChB36B,KACAy6B,EAAKG,OAAOxgC,EAAMyZ,KAAK6F,aAE3B,OAAIlgB,OAAOd,KAAYA,EACZA,EAEJsH,KAEP,OAAO9G,EAAOyhC,MACV56B,EACA06B,EAAKG,OAAOxgC,EAAMyZ,KAAK6F,cAK/BitE,EAAcj9E,KAAK6mB,IAAI,EAAGr3B,EAAOL,OAAS4hC,EAAK5hC,QAC/C+tF,EAAY,GACPlsF,EAAI,EAAGA,EAAIisF,EAAajsF,IAC7BksF,EAAU3oF,KAAK,IAAMvD,GAKzB,GAFA+rF,EAAQnnD,SAAS,SAAU,oBAAsBsnD,EAAUprF,KAAK,KAAO,4CAA/D8jC,CAA4GonD,GAEhHxtF,EAAOyG,UAAW,CAClB,IAAIknF,EAAQ,aACZA,EAAMlnF,UAAYzG,EAAOyG,UACzB8mF,EAAM9mF,UAAY,IAAIknF,EACtBA,EAAMlnF,UAAY,KAGtB,OAAO8mF,I,4BChDX,IAAIK,EAAiB,EAAQ,MAE7BxyF,EAAOD,QAAUirC,SAAS3/B,UAAUu7B,MAAQ4rD,G,cCJ5C,IAAU1gD,IAAgU,WAAW,IAAI7xC,OAAOD,OAAOD,QAAQ,OAAmB,SAAS03C,EAAEljC,EAAEsL,EAAE09B,GAAG,SAAS1R,EAAEzlC,EAAE0rC,GAAG,IAAIjyB,EAAEzZ,GAAG,CAAC,IAAImO,EAAEnO,GAAG,CAAmE,GAAGg9C,EAAE,OAAOA,EAAEh9C,GAAE,GAAI,IAAIwhC,EAAE,IAAI3hC,MAAM,uBAAuBG,EAAE,KAAK,MAAMwhC,EAAEpjC,KAAK,mBAAmBojC,EAAE,IAAI7nB,EAAEF,EAAEzZ,GAAG,CAACrG,QAAQ,IAAIwU,EAAEnO,GAAG,GAAGmZ,KAAKQ,EAAEhgB,SAAQ,SAAS03C,GAAoB,OAAO5L,EAAlBt3B,EAAEnO,GAAG,GAAGqxC,IAAeA,KAAI13B,EAAEA,EAAEhgB,QAAQ03C,EAAEljC,EAAEsL,EAAE09B,GAAG,OAAO19B,EAAEzZ,GAAGrG,QAAQ,IAAI,IAAIqjD,OAAE,EAAoCh9C,EAAE,EAAEA,EAAEm3C,EAAEh5C,OAAO6B,IAAIylC,EAAE0R,EAAEn3C,IAAI,OAAOylC,EAA7b,CAA4c,CAAC4mD,EAAE,CAAC,SAASC,QAAQ1yF,OAAOD,SAM91B,IAAI4yF,UAAW,EAAIC,KAAOA,MAAQ,GAClCA,KAAKlwB,OAASh3D,MAAQvL,KACtByyF,KAAKC,YAAc,SAASjrD,EAAGC,EAAGhN,GAChC+M,EAAIA,EAAEj/B,MAAM,KACZkyB,EAAIA,GAAK+3D,KAAKlwB,OACd96B,EAAE,KAAM/M,QAAK,IAAsBA,EAAEi4D,YAAcj4D,EAAEi4D,WAAW,OAASlrD,EAAE,IAC3E,IAAK,IAAInP,EAAGmP,EAAErjC,SAAWk0B,EAAImP,EAAEsC,UAC7BtC,EAAErjC,aAAU,IAAWsjC,EAAIhN,EAAIA,EAAEpC,IAAMoC,EAAEpC,KAAOvzB,OAAOmG,UAAUotB,GAAKoC,EAAEpC,GAAKoC,EAAEpC,GAAK,GAAKoC,EAAEpC,GAAKoP,GAGpG+qD,KAAK3yF,OAAS,SAAS2nC,EAAGC,GACxB,IAAIhN,EAAIgN,EACR,IAAK8qD,SAAU,CACb,IAAIl6D,EAAIm6D,KAAKlwB,OAAOqwB,2BAA4Bx+E,EAAIq+E,KAAKlwB,OAAOswB,gBAChEv6D,QAAK,IAAWA,EAAEyqD,UAAYh+E,OAAOmG,UAAUnJ,eAAeqd,KAAKkZ,EAAGmP,GAAK/M,EAAIpC,EAAEmP,GAAKrzB,QAAK,IAAWA,EAAE2uE,UAAYh+E,OAAOmG,UAAUnJ,eAAeqd,KAAKhL,EAAGqzB,KAAO/M,EAAItmB,EAAEqzB,IAE3K,OAAO/M,GAET+3D,KAAKK,gBAAkB,KACvBL,KAAKM,OAAQ,EACbN,KAAKO,OAAS,KACdP,KAAKQ,cAAe,EACpBR,KAAKS,wBAAyB,EAC9BT,KAAKU,wBAA0BX,WAAaC,KAAKM,MACjDN,KAAKW,uCAAwC,EAC7CX,KAAKY,QAAU,SAAS5rD,GACtB,GAAIgrD,KAAKa,oBACP,MAAMxtF,MAAM,gDAEd,IAAK0sF,UAAYC,KAAKc,YAAY9rD,GAChC,MAAM3hC,MAAM,cAAgB2hC,EAAI,uBAElCgrD,KAAKe,oBAAoB/rD,IAE3BgrD,KAAKe,oBAAsB,SAAS/rD,EAAGC,GACrC,IAAK8qD,SAAU,QACNC,KAAKgB,oBAAoBhsD,GAChC,IAAK,IAAI/M,EAAI+M,GAAI/M,EAAIA,EAAEpxB,UAAU,EAAGoxB,EAAElY,YAAY,SAAWiwE,KAAKiB,gBAAgBh5D,IAChF+3D,KAAKgB,oBAAoB/4D,IAAK,EAGlC+3D,KAAKC,YAAYjrD,EAAGC,IAEtB+qD,KAAKkB,eAAiB,SAASlsD,GAC7B,OAAIA,GAAKA,GAAKgrD,KAAKlwB,OACVkwB,KAAKmB,gBAAgBnsD,EAAE+4B,WAEhC,OAASiyB,KAAKoB,YAAcpB,KAAKoB,UAAYpB,KAAKmB,gBAAgBnB,KAAKlwB,OAAO/B,WACvEiyB,KAAKoB,YAEdpB,KAAKqB,eAAiB,sBACtBrB,KAAKoB,UAAY,KACjBpB,KAAKmB,gBAAkB,SAASnsD,GAC9B,OAAQA,EAAIA,EAAEssD,eAAiBtsD,EAAEssD,cAAc,oBAAsBtsD,EAAIA,EAAEusD,OAASvsD,EAAEwsD,aAAa,WAAaxB,KAAKqB,eAAe3rF,KAAKs/B,GAAKA,EAAI,IAEpJgrD,KAAKyB,iBAAmB,8BACxBzB,KAAK5yF,OAAS,SAAS4nC,GACrB,GAAI,iBAAoBA,IAAMA,IAAM,GAAKA,EAAEsE,OAAO0mD,KAAKyB,kBACrD,MAAMpuF,MAAM,6BAEd,IAAK2sF,KAAK0B,wBACR,MAAMruF,MAAM,UAAY2hC,EAAI,4XAE9B,GAAIgrD,KAAK2B,mBAAmBC,WAC1B,MAAMvuF,MAAM,mDAGd,GADA2sF,KAAK2B,mBAAmBC,WAAa5sD,GAChC+qD,SAAU,CACb,GAAIC,KAAKc,YAAY9rD,GACnB,MAAM3hC,MAAM,cAAgB2hC,EAAI,8BAE3BgrD,KAAKgB,oBAAoBhsD,KAGpCgrD,KAAK5yF,OAAO6kB,IAAM,SAAS+iB,GACzB,OAAOgrD,KAAK5yF,OAAOy0F,aAAa7sD,IAElCgrD,KAAK5yF,OAAOy0F,aAAe,SAAS7sD,GAClC,IAAK+qD,SAAU,CACb,GAAI/qD,KAAKgrD,KAAK8B,eACZ,OAAO9B,KAAK8B,eAAe9sD,GAAG7nC,QAEhC,IAAK6yF,KAAKgB,oBAAoBhsD,GAC5B,OAAoC,OAA7BA,EAAIgrD,KAAKiB,gBAAgBjsD,IAAgBA,EAAI,KAGxD,OAAO,MAETgrD,KAAK+B,WAAa,CAACC,IAAI,MAAOC,KAAK,QACnCjC,KAAK2B,mBAAqB,KAC1B3B,KAAKa,kBAAoB,WACvB,OAAOb,KAAK0B,yBAA2B1B,KAAKkC,wBAE9ClC,KAAK0B,sBAAwB,WAC3B,QAAS1B,KAAK2B,oBAAsB3B,KAAK2B,mBAAmBpyF,MAAQywF,KAAK+B,WAAWE,MAEtFjC,KAAKkC,qBAAuB,WAC1B,GAAIlC,KAAK2B,oBAAsB3B,KAAK2B,mBAAmBpyF,MAAQywF,KAAK+B,WAAWC,IAC7E,OAAO,EAET,IAAIhtD,EAAIgrD,KAAKlwB,OAAOqyB,QACpB,QAAOntD,GAAI,mBAAqBA,EAAEotD,wBAA8BptD,EAAEotD,wBAEpEpC,KAAK5yF,OAAOi1F,uBAAyB,WACnC,IAAKtC,WAAaC,KAAK0B,wBACrB,MAAMruF,MAAM,+EAEd,IAAK0sF,WAAaC,KAAK2B,mBAAmBC,WACxC,MAAMvuF,MAAM,2EAEd2sF,KAAK2B,mBAAmBU,wBAAyB,GAEnDrC,KAAKsC,gBAAkB,SAASttD,GAC9B,IAAK+qD,SAAU,CACb,IAAKC,KAAKkC,uBACR,MAAM7uF,MAAM,qEAEd,GAAI2sF,KAAK2B,oBAAsB3B,KAAK2B,mBAAmBC,WACrD,MAAMvuF,MAAM,4DAEd,GAAI2hC,KAAKgrD,KAAK8B,eACZ,MAAMzuF,MAAM,0BAA4B2hC,EAAI,qBAGhD,GAAIgrD,KAAK2B,mBACP3B,KAAK2B,mBAAmBC,WAAa5sD,MAChC,CACL,IAAIC,EAAI+qD,KAAKlwB,OAAOqyB,QACpB,IAAKltD,GAAK,mBAAqBA,EAAEmtD,qBAC/B,MAAM/uF,MAAM,0BAA4B2hC,EAAI,kCAE9CC,EAAIA,EAAE6qD,QAAQ7qD,EAAEmtD,wBAChBpC,KAAK8B,eAAe9sD,GAAK,CAAC7nC,QAAQ8nC,EAAG1lC,KAAKywF,KAAK+B,WAAWC,IAAKO,SAASvtD,KAG5EgrD,KAAKwC,YAAc,SAASxtD,GAC1B,GAAIgrD,KAAKU,wBACP,MAAM1rD,EAAIA,GAAK,GAAI3hC,MAAM,uDAAyD2hC,EAAI,KAAOA,EAAI,OAGrGgrD,KAAKyC,eAAiB,SAASztD,KAE/B+qD,WAAaC,KAAKc,YAAc,SAAS9rD,GACvC,OAAOA,KAAKgrD,KAAK8B,iBAAmB9B,KAAKgB,oBAAoBhsD,IAAM,MAAQgrD,KAAKiB,gBAAgBjsD,IAC/FgrD,KAAKgB,oBAAsB,CAAC,eAAc,IAC7ChB,KAAKiB,gBAAkB,SAASjsD,EAAGC,GACjC,IAAK,IAAIhN,EAAI+M,EAAEj/B,MAAM,KAAM8vB,EAAIoP,GAAK+qD,KAAKlwB,OAAQnuD,EAAI,EAAGA,EAAIsmB,EAAEt2B,OAAQgQ,IACpE,GAAiB,OAAbkkB,EAAIA,EAAEoC,EAAEtmB,KACV,OAAO,KAGX,OAAOkkB,GAETm6D,KAAK0C,UAAY,SAAS1tD,EAAGC,GAC3B,IAA0BpP,EAAtBoC,EAAIgN,GAAK+qD,KAAKlwB,OAClB,IAAKjqC,KAAKmP,EACR/M,EAAEpC,GAAKmP,EAAEnP,IAGbm6D,KAAK2C,cAAgB,SAAS3tD,EAAGC,EAAGhN,EAAGpC,IACpCk6D,UAAYC,KAAK4C,sBAAwB5C,KAAK6C,aAAaF,cAAc3tD,EAAGC,EAAGhN,EAAGpC,IAErFm6D,KAAK8C,qBAAsB,EAC3B9C,KAAK+C,cAAgB,SAAS/tD,GAC5BgrD,KAAKlwB,OAAO/gD,SAAWixE,KAAKlwB,OAAO/gD,QAAQgnB,MAAMf,IAEnDgrD,KAAKF,QAAU,SAAS9qD,GACtB,IAAK+qD,SAAU,CAEb,GADAC,KAAK8C,qBAAuB9C,KAAK6C,aAAaG,UAAUhuD,GACpDgrD,KAAKc,YAAY9rD,IACnB,GAAIgrD,KAAKa,oBACP,OAAOb,KAAK5yF,OAAOy0F,aAAa7sD,QAGlC,GAAIgrD,KAAK8C,oBAAqB,CAC5B,IAAI7tD,EAAI+qD,KAAK2B,mBACb3B,KAAK2B,mBAAqB,KAC1B,IACE3B,KAAK6C,aAAaI,MAAMjuD,GACxB,QACAgrD,KAAK2B,mBAAqB1sD,GAIhC,OAAO,OAGX+qD,KAAKkD,YAAc,SAASluD,GAC1B,MAAO,IAETgrD,KAAKmD,SAAW,GAChBnD,KAAKoD,aAAe,aAEpBpD,KAAKqD,eAAiB,WACpB,MAAMhwF,MAAM,kCAEd2sF,KAAKsD,mBAAqB,SAAStuD,GACjCA,EAAEuuD,eAAY,EACdvuD,EAAEwuD,YAAc,WACd,OAAIxuD,EAAEuuD,UACGvuD,EAAEuuD,WAEXvD,KAAKM,QAAUN,KAAKyD,wBAAwBzD,KAAKyD,wBAAwB9xF,QAAUqjC,GAC5EA,EAAEuuD,UAAY,IAAIvuD,KAG7BgrD,KAAKyD,wBAA0B,GAC/BzD,KAAK0D,wBAAyB,EAC9B1D,KAAK2D,oBAAsB3D,KAAKM,MAChCN,KAAK8B,eAAiB,GACtB9B,KAAK4C,sBAAwB7C,UAAYC,KAAK8C,oBAC9C9C,KAAK4D,UAAY,SACjB5D,KAAK6D,8BAA+B,EACpC7D,KAAK8D,sBAAwB,GAC7B9D,KAAK+D,WAAa,eAClB/D,KAAKgE,iBAAmB,KACxBhE,KAAKiE,sBAAwB,WAC3B,GAAI,MAAQjE,KAAKgE,iBAAkB,CACjC,IACE,IAAIhvD,GAAKkvD,KAAK,8EACd,MAAOjvD,GACPD,GAAI,EAENgrD,KAAKgE,iBAAmBhvD,EAE1B,OAAOgrD,KAAKgE,kBAEdhE,KAAKmE,0BAA4B,SAASnvD,GACxC,MAAO,eAAiBA,EAAI,cAE9BgrD,KAAKoE,WAAa,SAASpvD,GACzB,IAAIC,EAAI+qD,KAAK2B,mBACb,IAEE,GADA3B,KAAK2B,mBAAqB,CAACC,WAAW,GAAIS,wBAAuB,EAAI9yF,KAAKywF,KAAK+B,WAAWE,MACtFjC,KAAKqE,WAAWrvD,GAClB,IAAI/M,EAAI+M,EAAEroB,UAAK,EAAQ,QAClB,CACL,GAAI,iBAAoBqoB,EAGtB,MAAM3hC,MAAM,6BAFZ2sF,KAAKiE,0BAA4BjvD,EAAIgrD,KAAKmE,0BAA0BnvD,IAAK/M,EAAI+3D,KAAKsE,sBAAsB33E,UAAK,EAAQqoB,GAKzH,IAAInP,EAAIm6D,KAAK2B,mBAAmBC,WAChC,GAAI,iBAAoB/7D,IAAKA,EAG3B,MAAMxyB,MAAM,wBAA0BwyB,EAAI,KAF1Cm6D,KAAK2B,mBAAmBU,uBAAyBrC,KAAKe,oBAAoBl7D,EAAGoC,GAAK+3D,KAAK2D,qBAAuBrxF,OAAOiyF,MAAQ,iBAAmBt8D,GAAK,MAAQA,GAAK31B,OAAOiyF,KAAKt8D,GAAI+3D,KAAK8B,eAAej8D,GAAK,CAAC14B,QAAQ86B,EAAG14B,KAAKywF,KAAK+B,WAAWE,KAAMM,SAASvC,KAAK2B,mBAAmBC,YAIrR,QACA5B,KAAK2B,mBAAqB1sD,IAG9B+qD,KAAKsE,sBAAwB,SAAStvD,GAEpC,OADAkvD,KAAKlvD,GACE,IAETgrD,KAAKwE,eAAiB,SAASxvD,GAC7BA,EAAIA,EAAEj/B,MAAM,KACZ,IAAK,IAAIk/B,EAAI,EAAGA,EAAID,EAAErjC,QACpB,KAAOqjC,EAAEC,GAAKD,EAAEp5B,OAAOq5B,EAAG,GAAKA,GAAK,MAAQD,EAAEC,IAAMD,EAAEC,EAAI,IAAM,MAAQD,EAAEC,EAAI,GAAKD,EAAEp5B,SAASq5B,EAAG,GAAKA,IAExG,OAAOD,EAAE1gC,KAAK,MAEhB0rF,KAAKyE,cAAgB,SAASzvD,GAC5B,GAAIgrD,KAAKlwB,OAAO40B,uBACd,OAAO1E,KAAKlwB,OAAO40B,uBAAuB1vD,GAE5C,IACE,IAAIC,EAAI,IAAI+qD,KAAKlwB,OAAO60B,eAGxB,OAFA1vD,EAAEqT,KAAK,MAAOtT,GAAG,GACjBC,EAAE2vD,OACK,GAAK3vD,EAAE4vD,QAAU,KAAO5vD,EAAE4vD,OAAS5vD,EAAE6vD,aAAe,KAC3D,MAAO78D,GACP,OAAO,OAGX+3D,KAAK+E,WAAa,SAAS/vD,EAAGC,EAAGhN,GAC/B,IAAIpC,EAAIm6D,KAAKlwB,OAAOqyB,QACpBt8D,IAAMm6D,KAAKlwB,OAAOqyB,QAAUt8D,EAAI,IAChC,IAAIlkB,EAAIkkB,EAAEm/D,UACV,IAAKrjF,EAAG,CACN,IAAIu9B,EAAI8gD,KAAKmD,SAAWnD,KAAK+D,WAAYn/E,EAAIo7E,KAAKyE,cAAcvlD,GAChE,GAAIt6B,EAAG,CAIL,GAHA,YACE,EAAGs/E,MAAMt/E,EAAI,mBAAqBs6B,IACjCvyB,KAAKqzE,KAAKlwB,QACTkwB,KAAKlwB,OAAOm1B,YAAcjF,KAAKlwB,OAAOm1B,WAAW9C,UAAYnC,KAAKlwB,OAAOm1B,WAAW9C,QAAQ6C,UAC9F,MAAM3xF,MAAM,8EAAgF8iD,KAAKC,UAAU4pC,KAAKlwB,OAAOm1B,aAEzHjF,KAAKlwB,OAAOqyB,QAAQ6C,UAAYhF,KAAKlwB,OAAOm1B,WAAW9C,QAAQ6C,UAE/DrjF,GADAkkB,EAAIm6D,KAAKlwB,OAAOqyB,SACV6C,WAOV,OAJArjF,IAAMA,EAAIkkB,EAAEm/D,UAAY,SAAShwD,EAAGC,GAElC,OADA+qD,KAAK+C,cAAc9tD,EAAI,wDAChBD,IAEFrzB,EAAEqzB,EAAGC,EAAGhN,IAEjB+3D,KAAKkF,OAAS,SAASlwD,GACrB,IAAIC,SAAWD,EACf,GAAI,UAAYC,EAAG,CACjB,IAAID,EAkBF,MAAO,OAjBP,GAAIA,aAAarhC,MACf,MAAO,QAET,GAAIqhC,aAAa1iC,OACf,OAAO2iC,EAET,IAAIhN,EAAI31B,OAAOmG,UAAUzF,SAAS2Z,KAAKqoB,GACvC,GAAI,mBAAqB/M,EACvB,MAAO,SAET,GAAI,kBAAoBA,GAAK,iBAAmB+M,EAAErjC,aAAU,IAAsBqjC,EAAEp5B,aAAU,IAAsBo5B,EAAEmK,uBAAyBnK,EAAEmK,qBAAqB,UACpK,MAAO,QAET,GAAI,qBAAuBlX,QAAK,IAAsB+M,EAAEroB,WAAQ,IAAsBqoB,EAAEmK,uBAAyBnK,EAAEmK,qBAAqB,QACtI,MAAO,gBAMX,GAAI,YAAclK,QAAK,IAAsBD,EAAEroB,KAC7C,MAAO,SAGX,OAAOsoB,GAET+qD,KAAKpsF,QAAU,SAASohC,GACtB,MAAO,SAAWgrD,KAAKkF,OAAOlwD,IAEhCgrD,KAAKmF,YAAc,SAASnwD,GAC1B,IAAIC,EAAI+qD,KAAKkF,OAAOlwD,GACpB,MAAO,SAAWC,GAAK,UAAYA,GAAK,iBAAmBD,EAAErjC,QAE/DquF,KAAKoF,WAAa,SAASpwD,GACzB,OAAOgrD,KAAKzU,SAASv2C,IAAM,mBAAqBA,EAAEsjB,aAEpD0nC,KAAKqE,WAAa,SAASrvD,GACzB,MAAO,YAAcgrD,KAAKkF,OAAOlwD,IAEnCgrD,KAAKzU,SAAW,SAASv2C,GACvB,IAAIC,SAAWD,EACf,MAAO,UAAYC,GAAK,MAAQD,GAAK,YAAcC,GAErD+qD,KAAKqF,OAAS,SAASrwD,GACrB,OAAO1iC,OAAOmG,UAAUnJ,eAAeqd,KAAKqoB,EAAGgrD,KAAKsF,gBAAkBtwD,EAAEgrD,KAAKsF,iBAAmBtwD,EAAEgrD,KAAKsF,iBAAmBtF,KAAKuF,cAEjIvF,KAAKwF,OAAS,SAASxwD,GACrB,QAASA,EAAEgrD,KAAKsF,gBAElBtF,KAAKyF,UAAY,SAASzwD,GACxB,OAASA,GAAK,oBAAqBA,GAAKA,EAAE0wD,gBAAgB1F,KAAKsF,eAC/D,WACStwD,EAAEgrD,KAAKsF,eACd,MAAOrwD,MAGX+qD,KAAKsF,cAAgB,gBAAkB,IAAM9iF,KAAKgwC,WAAa,GAC/DwtC,KAAKuF,YAAc,EACnBvF,KAAK2F,YAAc3F,KAAKqF,OACxBrF,KAAK4F,eAAiB5F,KAAKyF,UAC3BzF,KAAK6F,YAAc,SAAS7wD,GAC1B,IAAIC,EAAI+qD,KAAKkF,OAAOlwD,GACpB,GAAI,UAAYC,GAAK,SAAWA,EAAG,CACjC,GAAI,mBAAsBD,EAAE4jD,MAC1B,OAAO5jD,EAAE4jD,QAGX,IAAK,IAAI3wD,KADTgN,EAAI,SAAWA,EAAI,GAAK,GACVD,EACZC,EAAEhN,GAAK+3D,KAAK6F,YAAY7wD,EAAE/M,IAE5B,OAAOgN,EAET,OAAOD,GAETgrD,KAAK8F,YAAc,SAAS9wD,EAAGC,EAAGhN,GAChC,OAAO+M,EAAEroB,KAAK8mB,MAAMuB,EAAEhB,KAAMxhB,YAE9BwtE,KAAK+F,QAAU,SAAS/wD,EAAGC,EAAGhN,GAC5B,IAAK+M,EACH,MAAM3hC,QAER,GAAI,EAAImf,UAAU7gB,OAAQ,CACxB,IAAIk0B,EAAIlyB,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,GAC9C,OAAO,WACL,IAAIyV,EAAIt0B,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,WAEnC,OADA7e,MAAM8E,UAAU+0C,QAAQ/Z,MAAMxL,EAAGpC,GAC1BmP,EAAEvB,MAAMwB,EAAGhN,IAGtB,OAAO,WACL,OAAO+M,EAAEvB,MAAMwB,EAAGziB,aAGtBwtE,KAAKhsD,KAAO,SAASgB,EAAGC,EAAGhN,GAEzB,OADAmQ,SAAS3/B,UAAUu7B,OAAS,GAAKoE,SAAS3/B,UAAUu7B,KAAKhhC,WAAW4M,QAAQ,eAAiBogF,KAAKhsD,KAAOgsD,KAAK8F,YAAc9F,KAAKhsD,KAAOgsD,KAAK+F,QACtI/F,KAAKhsD,KAAKP,MAAM,KAAMjhB,YAE/BwtE,KAAKhP,QAAU,SAASh8C,EAAGC,GACzB,IAAIhN,EAAIt0B,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,GAC9C,OAAO,WACL,IAAIyiB,EAAIhN,EAAE/0B,QAEV,OADA+hC,EAAEl+B,KAAK08B,MAAMwB,EAAGziB,WACTwiB,EAAEvB,MAAM36B,KAAMm8B,KAGzB+qD,KAAKnqC,MAAQ,SAAS7gB,EAAGC,GACvB,IAAK,IAAIhN,KAAKgN,EACZD,EAAE/M,GAAKgN,EAAEhN,IAGb+3D,KAAKgG,IAAMhG,KAAKQ,cAAgBznD,KAAKitD,KAAO,WAC1C,OAAQ,IAAIjtD,MAEdinD,KAAKiG,WAAa,SAASjxD,GACzB,GAAIgrD,KAAKlwB,OAAOowB,WACdF,KAAKlwB,OAAOowB,WAAWlrD,EAAG,kBACrB,CACL,IAAIgrD,KAAKlwB,OAAOo0B,KA2Bd,MAAM7wF,MAAM,iCA1BZ,GAAI,MAAQ2sF,KAAKkG,qBAAsB,CACrC,IACElG,KAAKlwB,OAAOo0B,KAAK,uBACjB,MAAOr+D,IAET,QAAI,IAAsBm6D,KAAKlwB,OAAOq2B,WAAY,CAChD,WACSnG,KAAKlwB,OAAOq2B,WACnB,MAAOtgE,IAETm6D,KAAKkG,sBAAuB,OAE5BlG,KAAKkG,sBAAuB,EAGhC,GAAIlG,KAAKkG,qBACPlG,KAAKlwB,OAAOo0B,KAAKlvD,OACZ,CACL,IAAIC,EAAI+qD,KAAKlwB,OAAO/B,SAAU9lC,EAAIgN,EAAEmxD,cAAc,UAClDn+D,EAAE14B,KAAO,kBACT04B,EAAEo+D,OAAQ,EACVp+D,EAAEq+D,YAAYrxD,EAAEsxD,eAAevxD,IAC/BC,EAAEuxD,KAAKF,YAAYr+D,GACnBgN,EAAEuxD,KAAKC,YAAYx+D,MAO3B+3D,KAAKkG,qBAAuB,KAC5BlG,KAAK0G,WAAa,SAAS1xD,EAAGC,GAC5B,GAAI,KAAOtiC,OAAOqiC,GAAG96B,OAAO,GAC1B,MAAM7G,MAAM,4EAA8E2hC,GAE5F,IAAI/M,EAAI,SAAS+M,GACf,OAAOgrD,KAAK2G,gBAAgB3xD,IAAMA,GACjCnP,EAAI,SAASmP,GACdA,EAAIA,EAAEj/B,MAAM,KACZ,IAAK,IAAIk/B,EAAI,GAAIpP,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IACpCoP,EAAEl+B,KAAKkxB,EAAE+M,EAAEnP,KAEb,OAAOoP,EAAE3gC,KAAK,MAMhB,OAJAuxB,EAAIm6D,KAAK2G,gBAAkB,YAAc3G,KAAK4G,qBAAuB3+D,EAAIpC,EAAI,SAASmP,GACpF,OAAOA,GAETnP,EAAIoP,EAAID,EAAI,IAAMnP,EAAEoP,GAAKpP,EAAEmP,GACpBgrD,KAAKlwB,OAAO+2B,wBAA0B7G,KAAKlwB,OAAO+2B,wBAAwBhhE,GAAKA,GAExFm6D,KAAK8G,kBAAoB,SAAS9xD,EAAGC,GACnC+qD,KAAK2G,gBAAkB3xD,EACvBgrD,KAAK4G,qBAAuB3xD,IAE7B8qD,UAAYC,KAAKlwB,OAAOi3B,2BAA6B/G,KAAK2G,gBAAkB3G,KAAKlwB,OAAOi3B,0BACzF/G,KAAKgH,OAAS,SAAShyD,EAAGC,EAAGhN,GAK3B,OAJAA,GAAKA,EAAEg/D,OAASjyD,EAAIA,EAAEzyB,QAAQ,KAAM,SACpC0yB,IAAMD,EAAIA,EAAEzyB,QAAQ,iBAAiB,SAASyyB,EAAG/M,GAC/C,OAAO,MAAQgN,GAAKhN,KAAKgN,EAAIA,EAAEhN,GAAK+M,MAE/BA,GAETgrD,KAAKkH,mBAAqB,SAASlyD,EAAGC,GACpC,OAAOD,GAETgrD,KAAKmH,aAAe,SAASnyD,EAAGC,EAAGhN,GACjC+3D,KAAKC,YAAYjrD,EAAGC,EAAGhN,IAEzB+3D,KAAKoH,eAAiB,SAASpyD,EAAGC,EAAGhN,GACnC+M,EAAEC,GAAKhN,GAET+3D,KAAKqH,SAAW,SAASryD,EAAGC,GAC1B,SAAShN,KAETA,EAAExvB,UAAYw8B,EAAEx8B,UAChBu8B,EAAEsyD,YAAcryD,EAAEx8B,UAClBu8B,EAAEv8B,UAAY,IAAIwvB,EAClB+M,EAAEv8B,UAAU64B,YAAc0D,EAC1BA,EAAElnC,KAAO,SAASknC,EAAG/M,EAAGiX,GACtB,IAAK,IAAIrZ,EAAIlyB,MAAM6e,UAAU7gB,OAAS,GAAIgQ,EAAI,EAAGA,EAAI6Q,UAAU7gB,OAAQgQ,IACrEkkB,EAAElkB,EAAI,GAAK6Q,UAAU7Q,GAEvB,OAAOszB,EAAEx8B,UAAUwvB,GAAGwL,MAAMuB,EAAGnP,KAGnCm6D,KAAKj9D,MAAQ,SAASiS,GACpB,GAAIgrD,KAAKa,oBACP,MAAMxtF,MAAM,gDAEd2hC,EAAEroB,KAAKqzE,KAAKlwB,SAEdiwB,WAAaC,KAAKlwB,OAAOiwB,SAAWA,UACpCC,KAAKuH,YAAc,SAASvyD,EAAGC,GAC7B,IAAIhN,EAAIgN,EAAE3D,YAAazL,EAAIoP,EAAEuyD,QAU7B,OATAv/D,GAAKA,GAAK31B,OAAOmG,UAAU64B,cAAgBrJ,EAAI,WAC7C,MAAM50B,MAAM,+DAEd40B,EAAI+3D,KAAKuH,YAAYE,0BAA0Bx/D,EAAG+M,GAClDA,GAAKgrD,KAAKqH,SAASp/D,EAAG+M,UACfC,EAAE3D,mBACF2D,EAAEuyD,QACTxH,KAAKuH,YAAYG,iBAAiBz/D,EAAExvB,UAAWw8B,GAC/C,MAAQpP,IAAMA,aAAauS,SAAWvS,EAAEoC,GAAK+3D,KAAKuH,YAAYG,iBAAiBz/D,EAAGpC,IAC3EoC,GAET+3D,KAAKuH,YAAYI,qBAAuB3H,KAAKM,MAC7CN,KAAKuH,YAAYE,0BAA4B,SAASzyD,EAAGC,GACvD,IAAK+qD,KAAKuH,YAAYI,qBACpB,OAAO3yD,EAET,IAAI/M,GAAK+3D,KAAKuH,YAAYK,cAAc3yD,GAAIpP,EAAI,WAC9C,IAAIoP,EAAID,EAAEvB,MAAM36B,KAAM0Z,YAAc1Z,KAGpC,OAFAm8B,EAAE+qD,KAAKsF,eAAiBrwD,EAAE+qD,KAAKsF,eAC/BxsF,KAAKw4B,cAAgBzL,GAAKoC,GAAK31B,OAAOiyF,gBAAgBnsD,UAAY9lC,OAAOiyF,KAAKtvD,GACvEA,GAET,OAAOpP,GAETm6D,KAAKuH,YAAYK,cAAgB,SAAS5yD,GACxC,OAAOA,GAAKA,EAAEv8B,WAAau8B,EAAEv8B,UAAUunF,KAAK6H,mCAE9C7H,KAAKuH,YAAYO,yBAA2B,gGAAgG/xF,MAAM,KAClJiqF,KAAKuH,YAAYG,iBAAmB,SAAS1yD,EAAGC,GAC9C,IAAK,IAAIhN,KAAKgN,EACZ3iC,OAAOmG,UAAUnJ,eAAeqd,KAAKsoB,EAAGhN,KAAO+M,EAAE/M,GAAKgN,EAAEhN,IAE1D,IAAK,IAAIpC,EAAI,EAAGA,EAAIm6D,KAAKuH,YAAYO,yBAAyBn2F,OAAQk0B,IACpEoC,EAAI+3D,KAAKuH,YAAYO,yBAAyBjiE,GAAIvzB,OAAOmG,UAAUnJ,eAAeqd,KAAKsoB,EAAGhN,KAAO+M,EAAE/M,GAAKgN,EAAEhN,KAG9G+3D,KAAK+H,mBAAqB,SAAS/yD,IAChC+qD,UAAYC,KAAKuH,YAAYI,uBAAyB3yD,EAAEv8B,UAAUunF,KAAK6H,mCAAoC,IAE9G7H,KAAK6H,iCAAmC,sCACvC9H,UAAYC,KAAK4C,uBAAyB5C,KAAKgI,gBAAkB,WAChE,IAAIhzD,EAAIgrD,KAAKlwB,OAAO/B,SACpB,OAAO,MAAQ/4B,GAAK,UAAWA,GAC9BgrD,KAAKiI,mBAAqB,WAC3B,IAAIjzD,EAAIgrD,KAAKlwB,OAAO/B,SACpB,OAAO/4B,EAAEkzD,YAAc,YAAclzD,EAAEmzD,WAAa,WAAanzD,EAAEmzD,YAClEnI,KAAKoI,cAAgB,WACtB,GAAI,MAAUpI,KAAKlwB,OAAOu4B,mBAAqB,iBAAoBrI,KAAKlwB,OAAOu4B,kBAC7ErI,KAAKmD,SAAWnD,KAAKlwB,OAAOu4B,uBAE5B,GAAIrI,KAAKgI,kBAAmB,CAC1B,IAAIhzD,EAAIgrD,KAAKlwB,OAAO/B,SAAU94B,EAAID,EAAEszD,cAEpC,IAAKrzD,GADLD,EAAIC,EAAI,CAACA,GAAKD,EAAEuzD,qBAAqB,WAC1B52F,OAAS,EAAG,GAAKsjC,IAAKA,EAAG,CAClC,IAAIhN,EAAI+M,EAAEC,GAAGuzD,IAAK3iE,EAAIoC,EAAElY,YAAY,KAEpC,GADA8V,GAAK,GAAKA,EAAIoC,EAAEt2B,OAASk0B,EACrB,WAAaoC,EAAEyI,OAAO7K,EAAI,EAAG,GAAI,CACnCm6D,KAAKmD,SAAWl7D,EAAEyI,OAAO,EAAG7K,EAAI,GAChC,UAKPm6D,KAAKoI,gBAAiBpI,KAAKyI,WAAa,WACzC3vF,KAAK4vF,uBAAyB,KAC9B5vF,KAAK6vF,qBAAuB3I,KAAK8D,uBAChC9D,KAAKyI,WAAWhwF,UAAUmwF,6BAA+B,WAC1D,SAAS5zD,EAAEA,EAAGC,GACZtzB,EAAIkkB,EAAEmP,IAAK,EAAKC,KAAOhN,EAAI+M,EAAGnP,EAAEmP,IAAK,GAAMrzB,EAAIkkB,EAAEmP,IAAK,EAExD,SAASC,EAAED,GACT,IACE,QAASkvD,KAAKlvD,GACd,MAAOuU,GACP,OAAO,GAGX,IAAIthB,EAAI,MAAOpC,EAAI,CAACgjE,KAAI,GAAKlnF,GAAI,EAAIu9B,EAAI8gD,KAAKlwB,OAAOg5B,WAAa9I,KAAKlwB,OAAOg5B,UAAUC,UAAY/I,KAAKlwB,OAAOg5B,UAAUC,UAAY,GAmBtI,OAlBA/zD,EAAE,OAAO,WACP,OAAOC,EAAE,qBAEXD,EAAE,OAAO,WACP,OAAOkK,EAAEpoC,MAAM,wBAA8Bm+B,EAAE,+RAEjDD,EAAE,OAAO,WACP,OAAOC,EAAE,kBAEXD,EAAE,OAAO,WACP,OAAOC,EAAE,0BAEXD,EAAE,OAAO,WACP,OAAOC,EAAE,6BAEXD,EAAE,WAAW,WACX,OAAO,KAEF,CAAChjC,OAAOi2B,EAAG7iB,IAAIygB,IACrBm6D,KAAKyI,WAAWhwF,UAAUuwF,eAAiB,SAASh0D,EAAGC,GACxD,GAAI,UAAY+qD,KAAK4D,UACnB,OAAO,EAET,GAAI,SAAW5D,KAAK4D,UAClB,OAAO,EAET,IAAK9qF,KAAK4vF,uBAAwB,CAChC,IAAIzgE,EAAInvB,KAAK8vF,+BACb9vF,KAAK4vF,uBAAyBzgE,EAAE7iB,IAChCtM,KAAK6vF,qBAAuB7vF,KAAK6vF,sBAAwB1gE,EAAEj2B,OAE7D,GAAIgjC,KAAKl8B,KAAK4vF,uBACZ,QAAO5vF,KAAK4vF,uBAAuB1zD,OAAWgrD,KAAKgI,mBAAqB,OAAS/yD,GAAK,aAAc+qD,KAAKlwB,OAAO/B,SAASq4B,cAAc,WAEzI,MAAM/yF,MAAM,0BAA4B2hC,IACvCgrD,KAAKyI,WAAWhwF,UAAUusF,UAAY,SAAShwD,EAAGC,GACnD,OAAO+qD,KAAK+E,WAAW/vD,EAAGC,EAAGn8B,KAAK6vF,uBACjC3I,KAAKiJ,YAAc,IAAIjJ,KAAKyI,WAAYzI,KAAKkJ,kBAAoB,SAASl0D,GAC3E,OAAOA,EAAEzyB,QAAQ,gBAAiB,aACjCy9E,KAAKmJ,aAAe,WACrBrwF,KAAKswF,cAAgB,GACrBtwF,KAAKuwF,UAAY,GACjBvwF,KAAKwwF,SAAW,GAChBxwF,KAAKywF,aAAe,GACpBzwF,KAAK0wF,YAAc,GACnB1wF,KAAK2wF,SAAU,EACf3wF,KAAK4wF,SAAW,IAAI1J,KAAK2J,kBAAkB3J,KAAKiJ,aAChDnwF,KAAK8wF,mBAAqB,GAC1B9wF,KAAK+wF,eAAiB,IACrB7J,KAAKmJ,aAAa1wF,UAAUqxF,UAAY,SAAS90D,EAAGC,GACrD,SAAShN,IACPpC,IAAMm6D,KAAKlwB,OAAOi6B,WAAWlkE,EAAG,GAAIA,EAAI,MAE1C,IAAIA,EAAIoP,EACR,GAAID,EAAErjC,OAAQ,CACZ,IAAK,IAAIgQ,EAAI,GAAIu9B,EAAI,EAAGA,EAAIlK,EAAErjC,OAAQutC,IAAK,CACzC,IAAIt6B,EAAI9L,KAAKkxF,iBAAiBh1D,EAAEkK,IAChC,IAAKt6B,EACH,MAAMvR,MAAM,0BAA4B2hC,EAAEkK,IAE5Cv9B,EAAE5K,KAAK+B,KAAKswF,cAAcxkF,IAE5BA,EAAIo7E,KAAKF,QACT,IAAIv2C,EAAI,EACR,IAAKrK,EAAI,EAAGA,EAAIlK,EAAErjC,OAAQutC,IACxBt6B,EAAEowB,EAAEkK,IAAKv9B,EAAEu9B,GAAG+qD,QAAO,aACjB1gD,GAAKvU,EAAErjC,QAAUs2B,YAIvBA,KAED+3D,KAAKmJ,aAAa1wF,UAAUyxF,gBAAkB,WAC/CpxF,KAAK0wF,YAAYzyF,KAAK+B,KAAK4wF,SAASS,iBAAiBnK,KAAKwE,eAAexE,KAAKmD,SAAW,WAAY,UAAW,GAAI,GAAI,IAAI,IAC5HrqF,KAAKsxF,aACJpK,KAAKmJ,aAAa1wF,UAAUuqF,UAAY,SAAShuD,EAAGC,GACrD,IAAIhN,EAAInvB,KAAKkxF,iBAAiBh1D,GAC9B,GAAI/M,IAAMgN,GAAKn8B,KAAKuxF,eAAevxF,KAAKswF,cAAcnhE,GAAGqiE,WAAY,CACnE,IAAIzkE,EAAI/sB,KAAK8wF,mBAAmB3hE,GAChCpC,WAAa/sB,KAAK8wF,mBAAmB3hE,GAAIpC,OAE1Cm6D,KAAKmJ,aAAa1wF,UAAU8xF,qBAAuB,SAASv1D,GAC7Dl8B,KAAK4wF,SAAW10D,GACfgrD,KAAKmJ,aAAa1wF,UAAUwqF,MAAQ,SAASjuD,GAC9C,IAAIl8B,KAAKkxF,iBAAiBh1D,GAoBxB,MAAMA,EAAI,gCAAkCA,EAAGgrD,KAAK+C,cAAc/tD,GAAI3hC,MAAM2hC,GAnB5E,IAAIC,EAAIn8B,KAAMmvB,EAAI,GAAIpC,EAAI,SAASmP,GACjC,IAAIrzB,EAAIszB,EAAE+0D,iBAAiBh1D,GAC3B,IAAKrzB,EACH,MAAMtO,MAAM,kCAAoC2hC,GAElD,IAAKC,EAAEq0D,SAAS3nF,GAAI,CAGlB,IAFAszB,EAAEq0D,SAAS3nF,IAAK,EAChBqzB,EAAIC,EAAEm0D,cAAcznF,GACfA,EAAI,EAAGA,EAAIqzB,EAAEs1D,SAAS34F,OAAQgQ,IACjCq+E,KAAKc,YAAY9rD,EAAEs1D,SAAS3oF,KAAOkkB,EAAEmP,EAAEs1D,SAAS3oF,IAElDsmB,EAAElxB,KAAKi+B,KAGXnP,EAAEmP,GACFA,IAAMl8B,KAAK0wF,YAAY73F,OACvBmH,KAAK0wF,YAAc1wF,KAAK0wF,YAAY91D,OAAOzL,GAC3CnvB,KAAK2wF,SAAWz0D,GAAKl8B,KAAKsxF,aAI3BpK,KAAKmJ,aAAa1wF,UAAU2xF,UAAY,WACzC,IAAK,IAAIp1D,EAAIl8B,KAAMm8B,EAAIn8B,KAAK2wF,QAAS3wF,KAAK0wF,YAAY73F,SAAWsjC,IAC/D,WACE,IAAIhN,GAAI,EAAIpC,EAAImP,EAAEw0D,YAAYlyD,QAAS31B,GAAI,EAC3CqzB,EAAEw1D,SAAS3kE,GACX,IAAIqZ,EAAI,CAACurD,MAAM,WACb,GAAIxiE,EACF,MAAM50B,MAAM,6CAEd4hC,GAAI,GACHy1D,OAAO,WACRziE,EAAI+M,EAAE21D,UAAY11D,GAAI,GACrB21D,OAAO,WACR,GAAIjpF,EACF,MAAMtO,MAAM,0BAEdsO,GAAI,EACJqzB,EAAE61D,QAAQhlE,IACTilE,QAAQ,WACT,IAAK,IAAI71D,EAAI,GAAIhN,EAAI,EAAGA,EAAI+M,EAAEu0D,aAAa53F,OAAQs2B,IACjDgN,EAAEl+B,KAAKi+B,EAAEu0D,aAAathE,IAExB,OAAOgN,GACN81D,eAAe,SAAS/1D,GACzBgrD,KAAK2B,mBAAqB,CAACpyF,KAAKylC,EAAG4sD,WAAW,GAAIS,wBAAuB,IACxE2I,yBAAyB,SAASh2D,EAAGC,EAAGhN,GACzCA,IAAM+3D,KAAK8B,eAAe75D,GAAK,CAAC96B,QAAQ8nC,EAAG1lC,KAAKywF,KAAK+B,WAAWC,IAAKO,SAASt6D,GAAK,MAClFgjE,0BAA0B,SAASj2D,EAAGC,GACvC+qD,KAAK8B,eAAe9sD,GAAK,CAAC7nC,QAAQ8nC,EAAG1lC,KAAKywF,KAAK+B,WAAWE,KAAMM,SAASvtD,IACxEk2D,iBAAiB,WAClBlL,KAAK2B,mBAAqB,MACzB0E,MAAM,SAASpxD,GAChB,GAAIhN,EACF,MAAM50B,MAAM,sDAEd2hC,EAAEm2D,OAAOtlE,EAAGoP,IACXm2D,cAAc,WACf,OAAOp2D,EAAEq1D,eAAexkE,EAAEykE,YAE5B,IACEzkE,EAAEwlE,KAAKnsD,GACP,QACAjX,GAAI,GAxCR,GA4CFgN,GAAKn8B,KAAKwyF,UACTtL,KAAKmJ,aAAa1wF,UAAU6yF,OAAS,WACtCxyF,KAAK2wF,SAAU,GACdzJ,KAAKmJ,aAAa1wF,UAAUkyF,QAAU,WACvC7xF,KAAK2wF,UAAY3wF,KAAK2wF,SAAU,EAAI3wF,KAAKsxF,cACxCpK,KAAKmJ,aAAa1wF,UAAU+xF,SAAW,SAASx1D,GACjDl8B,KAAKywF,aAAaxyF,KAAKi+B,IACtBgrD,KAAKmJ,aAAa1wF,UAAUoyF,QAAU,SAAS71D,GAChD,IAAK,IAAIC,EAAI,EAAGA,EAAIn8B,KAAKywF,aAAa53F,OAAQsjC,IAC5C,GAAIn8B,KAAKywF,aAAat0D,IAAMD,EAAG,CAC7Bl8B,KAAKywF,aAAa3tF,OAAOq5B,EAAG,GAC5B,MAGJ,IAAKA,EAAI,EAAGA,EAAIn8B,KAAK+wF,eAAel4F,OAAQsjC,IAC1C,GAAIn8B,KAAK+wF,eAAe50D,IAAMD,EAAEuY,KAAM,CACpCz0C,KAAK+wF,eAAejuF,OAAOq5B,EAAG,GAC9B,MAGJ,GAAIn8B,KAAKywF,aAAa53F,QAAUmH,KAAK+wF,eAAel4F,SAAWmH,KAAK0wF,YAAY73F,OAC9E,KAAOmH,KAAK+wF,eAAel4F,QACzBmH,KAAKkqF,UAAUlqF,KAAK+wF,eAAevyD,SAAS,GAGhDtC,EAAE41D,UACD5K,KAAKmJ,aAAa1wF,UAAU4xF,eAAiB,SAASr1D,GACvD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAErjC,OAAQsjC,IAAK,CACjC,IAAIhN,EAAInvB,KAAKkxF,iBAAiBh1D,EAAEC,IAChC,IAAKhN,KAAOA,KAAKnvB,KAAK8wF,sBAAsB5J,KAAKc,YAAY9rD,EAAEC,IAC7D,OAAO,EAGX,OAAO,GACN+qD,KAAKmJ,aAAa1wF,UAAUuxF,iBAAmB,SAASh1D,GACzD,OAAOA,KAAKl8B,KAAKuwF,UAAYvwF,KAAKuwF,UAAUr0D,GAAKA,KAAKl8B,KAAKswF,cAAgBp0D,EAAI,MAC9EgrD,KAAKmJ,aAAa1wF,UAAU0yF,OAAS,SAASn2D,EAAGC,GAClDn8B,KAAK8wF,mBAAmB50D,EAAEuY,MAAQtY,EAClCn8B,KAAK+wF,eAAe9yF,KAAKi+B,EAAEuY,OAC1ByyC,KAAKuL,eAAiB,aACtBvL,KAAKuL,eAAe9yF,UAAUgyF,MAAQ,aACtCzK,KAAKuL,eAAe9yF,UAAUiyF,OAAS,aACvC1K,KAAKuL,eAAe9yF,UAAUmyF,OAAS,aACvC5K,KAAKuL,eAAe9yF,UAAUqyF,QAAU,aACxC9K,KAAKuL,eAAe9yF,UAAUuyF,yBAA2B,SAASh2D,EAAGC,EAAGhN,KACxE+3D,KAAKuL,eAAe9yF,UAAUsyF,eAAiB,SAAS/1D,KACxDgrD,KAAKuL,eAAe9yF,UAAUyyF,iBAAmB,aACjDlL,KAAKuL,eAAe9yF,UAAU4tF,MAAQ,SAASrxD,KAC/CgrD,KAAKuL,eAAe9yF,UAAU2yF,cAAgB,aAC9CpL,KAAKwL,WAAa,SAASx2D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GACxC7I,KAAKy0C,KAAOvY,EACZl8B,KAAK2yF,aAAex2D,EACpBn8B,KAAK4yF,SAAWzjE,EAChBnvB,KAAKwxF,SAAWzkE,EAChB/sB,KAAK6yF,UAAYhqF,EACjB7I,KAAK+xF,SAAU,EACf/xF,KAAK8yF,eAAiB,IACrB5L,KAAKwL,WAAW/yF,UAAUozF,YAAc,WACzC,IAAI72D,EAAIl8B,KAAKy0C,KAAMtY,EAAID,EAAEp1B,QAAQ,OAEjC,OADA,GAAKq1B,GAAkD,IAApBA,GAAxBD,EAAIA,EAAEn+B,UAAUo+B,EAAI,IAAUr1B,QAAQ,QAAiBo1B,EAAIA,EAAEn+B,UAAUo+B,EAAI,IAC/ED,GACNgrD,KAAKwL,WAAW/yF,UAAUwxF,OAAS,SAASj1D,GAC7Cl8B,KAAK+xF,QAAU71D,IAAMl8B,KAAK8yF,eAAe70F,KAAKi+B,IAC7CgrD,KAAKwL,WAAW/yF,UAAUmyF,OAAS,WACpC9xF,KAAK+xF,SAAU,EACf,IAAI71D,EAAIl8B,KAAK8yF,eACb9yF,KAAK8yF,eAAiB,GACtB,IAAK,IAAI32D,EAAI,EAAGA,EAAID,EAAErjC,OAAQsjC,IAC5BD,EAAEC,MAEH+qD,KAAKwL,WAAWL,QAAS,EAAInL,KAAKwL,WAAWM,aAAe,GAAI9L,KAAKwL,WAAWO,kBAAoB,SAAS/2D,GAC9G,IAAIC,EAAIzyB,KAAKgwC,SAASx/C,SAAS,IAE/B,OADAgtF,KAAKwL,WAAWM,aAAa72D,GAAKD,EAC3BC,GACN+qD,KAAKwL,WAAWQ,oBAAsB,SAASh3D,UACzCgrD,KAAKwL,WAAWM,aAAa92D,IACnCgrD,KAAKwL,WAAWS,UAAY,SAASj3D,EAAGC,GACzC,KAAID,KAAKgrD,KAAKwL,WAAWM,cAMvB,MAAMz4F,MAAM,gBAAkB2hC,EAAI,yDALlC,IAAK,IAAI/M,EAAI+3D,KAAKwL,WAAWM,aAAa92D,GAAInP,EAAI,GAAIlkB,EAAI,EAAGA,EAAI6Q,UAAU7gB,OAAQgQ,IACjFkkB,EAAE9uB,KAAKyb,UAAU7Q,IAEnBsmB,EAAEwL,WAAM,EAAQ5N,IAIjBm6D,KAAKwL,WAAW/yF,UAAU4yF,KAAO,SAASr2D,GAC3C,GAAIgrD,KAAKlwB,OAAOo8B,sBACdlM,KAAKlwB,OAAOo8B,sBAAsBpzF,KAAKy0C,MAAQvY,EAAE41D,SAAW51D,EAAEy1D,aAE9D,GAAIzK,KAAKgI,kBAAmB,CAC1B,IAAI/yD,EAAI+qD,KAAKlwB,OAAO/B,SACpB,GAAI,YAAc94B,EAAEkzD,aAAenI,KAAKW,sCAAuC,CAC7E,GAAI,aAAajrF,KAAKoD,KAAKy0C,MAEzB,YADAvY,EAAE41D,SAGJ,MAAMv3F,MAAM,iBAAmByF,KAAKy0C,KAAO,yBAE7C,IAAKyyC,KAAKW,uCAAyCX,KAAKiI,qBAAsB,CAC5E,IAAIhgE,EAAI+3D,KAAKwL,WAAWO,mBAAkB,SAAS92D,GACjD+qD,KAAKmJ,aAAagD,YAAc,YAAcl3D,EAAEkzD,aAAenI,KAAKwL,WAAWQ,oBAAoB/jE,GAAI+M,EAAE41D,aACvG/kE,GAAKm6D,KAAKmJ,aAAagD,YAAcnM,KAAKkB,iBAAmB,WAAalB,KAAKkB,iBAAmB,IAAM,GAC5Gr7D,EAAI,gBAAkB/sB,KAAKy0C,KAAO,MAAQyyC,KAAKmJ,aAAagD,WAAa,qBAAuB,UAAY,iCAAmClkE,EAAI,sCAAwC+3D,KAAKwL,WAAWL,OAAS,QAAU,IAAMtlE,EAAI,cACxOoP,EAAEm3D,MAAMpM,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBC,WAAWzmE,GAAKA,OAC3E,CACL,IAAIlkB,EAAIszB,EAAEmxD,cAAc,UACxBzkF,EAAE0kF,MAAQrG,KAAKwL,WAAWL,OAC1BxpF,EAAE3J,OAAQ,EACV2J,EAAEpS,KAAO,mBACRs2B,EAAIm6D,KAAKkB,mBAAqBv/E,EAAE4qF,aAAa,QAAS1mE,GACvDm6D,KAAKmJ,aAAagD,YAAcn3D,EAAEy1D,QAAS9oF,EAAE6qF,mBAAqB,WAC5D,UAAY7qF,EAAEwmF,YAAc,YAAcxmF,EAAEwmF,aAC9CnzD,EAAE41D,SAAU51D,EAAE01D,YAEb/oF,EAAE8qF,OAAS,WACd9qF,EAAE8qF,OAAS,KACXz3D,EAAE41D,UAEJjpF,EAAE6mF,IAAMxI,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBK,gBAAgB5zF,KAAKy0C,MAAQz0C,KAAKy0C,KAClGtY,EAAEuxD,KAAKF,YAAY3kF,SAGrBq+E,KAAK+C,cAAc,8DAA+D,WAAajqF,KAAK2yF,cAAgBzL,KAAK+C,cAAc,sGAAuG/tD,EAAE41D,UAAY51D,EAAEy1D,SAGjQzK,KAAK2M,oBAAsB,SAAS33D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GACjDq+E,KAAKwL,WAAW7+E,KAAK7T,KAAMk8B,EAAGC,EAAGhN,EAAGpC,EAAGlkB,IACtCq+E,KAAKqH,SAASrH,KAAK2M,oBAAqB3M,KAAKwL,YAAaxL,KAAK2M,oBAAoBl0F,UAAU4yF,KAAO,SAASr2D,GAgB9G,GAAIgrD,KAAKlwB,OAAOo8B,sBACdlM,KAAKlwB,OAAOo8B,sBAAsBpzF,KAAKy0C,MAAQvY,EAAE41D,SAAW51D,EAAEy1D,aAE9D,GAAIzK,KAAKgI,kBAAmB,CAC1B,IAAIniE,EAAIm6D,KAAKlwB,OAAO/B,SAAUpsD,EAAI7I,KAClC,GAAIknF,KAAKiI,qBAAsB,CAC7B,IAAI/oD,EArBV,SAAWlK,EAAGC,GACZ,IAAIhN,EAAIgN,EAAI,qCAAuCA,EAAI,aAAiB,0CAA4CD,EAAI,eACxHnP,EAAEumE,MAAMpM,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBC,WAAWrkE,GAAKA,IAoB5E+3D,KAAKwL,WAAWL,QAAS,OAEzBjsD,EApBN,SAAWlK,EAAGC,GACZ,IAAIhN,EAAIpC,EAAEugE,cAAc,UACxBn+D,EAAEo+D,OAAQ,EACVp+D,EAAEjwB,OAAQ,EACViwB,EAAE14B,KAAO,SACT04B,EAAEskE,aAAa,eAAe,GAC9B,IAAI5qF,EAAIq+E,KAAKkB,iBACbv/E,GAAKsmB,EAAEskE,aAAa,QAAS5qF,GAC7BszB,EAAIhN,EAAE2kE,YAAc5M,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBQ,aAAa53D,GAAKA,EAAIhN,EAAEugE,IAAMxI,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBK,gBAAgB13D,GAAKA,EACvLnP,EAAE2gE,KAAKF,YAAYr+D,IAajB,IAAIrjB,EAAIo7E,KAAKwL,WAAWO,mBAAkB,WACxC/L,KAAKwL,WAAWQ,oBAAoBpnF,GACpCowB,EAAE+1D,eAAe/K,KAAK+B,WAAWC,QAEnC9iD,OAAE,EAAQ,8BAAgCt6B,EAAI,MAC9Cs6B,EAAEpmC,KAAKy0C,UAAM,GACb,IAAIhE,EAAIy2C,KAAKwL,WAAWO,mBAAkB,SAAS92D,GACjD+qD,KAAKwL,WAAWQ,oBAAoBziD,GACpCvU,EAAEg2D,yBAAyBrpF,EAAE4rC,KAAMtY,EAAG+qD,KAAK2B,mBAAmBC,eAEhE1iD,OAAE,EAAQ,uBAAyBpmC,KAAKy0C,KAAO,iCAAmChE,EAAI,SACtF,IAAIjvB,EAAI0lE,KAAKwL,WAAWO,mBAAkB,WACxC/L,KAAKwL,WAAWQ,oBAAoB1xE,GACpC0a,EAAEk2D,mBACFl2D,EAAE41D,YAEJ1rD,OAAE,EAAQ,8BAAgC5kB,EAAI,WAE9C0lE,KAAK+C,cAAc,8DAA+D/tD,EAAEy1D,SAGvFzK,KAAK8M,sBAAwB,SAAS93D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GACnDq+E,KAAKwL,WAAW7+E,KAAK7T,KAAMk8B,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GACvC7I,KAAKi0F,UAAY,KACjBj0F,KAAKk0F,YAAchN,KAAKgI,qBAAuB,aAAchI,KAAKlwB,OAAO/B,SAASq4B,cAAc,YAC/FpG,KAAKqH,SAASrH,KAAK8M,sBAAuB9M,KAAKwL,YAAaxL,KAAK8M,sBAAsBr0F,UAAU4yF,KAAO,SAASr2D,GAClH,SAASC,IACPtzB,EAAEorF,UAAY/M,KAAKyE,cAAc9iF,EAAE4rC,MACnC5rC,EAAEorF,YAAcprF,EAAEorF,UAAYprF,EAAE8tD,UAAU9tD,EAAEorF,WAAYprF,EAAEorF,YAAcprF,EAAEorF,WAAa,mBAAqBprF,EAAE4rC,OAEhH,SAAStlB,IAEP,GADAtmB,EAAEqrF,YAAc/3D,IACZtzB,EAAEorF,UAAW,CACf7tD,GAAKlK,EAAE+1D,eAAe/K,KAAK+B,WAAWC,KACtC,IACE,IAAI/5D,EAAItmB,EAAEorF,UAGV,GAFAprF,EAAEorF,UAAY,KACd/M,KAAKiG,WAAWh+D,GACZiX,EACF,IAAIrZ,EAAIm6D,KAAK2B,mBAAmBC,WAElC,QACA1iD,GAAKlK,EAAEk2D,mBAEThsD,GAAK8gD,KAAKlwB,OAAOqyB,QAAQrC,QAAQmN,OAAO,CAACtrF,EAAEkqF,gBAAgB,WACzD72D,EAAEg2D,yBAAyBrpF,EAAE4rC,KAAMyyC,KAAKlwB,OAAOqyB,QAAQrC,QAAQn+E,EAAEkqF,eAAgBhmE,MAEnFmP,EAAE41D,UAUN,IAAIjpF,EAAI7I,KACR,GAAIknF,KAAKlwB,OAAOo8B,sBACdj3D,IAAKn8B,KAAKi0F,WAAa/M,KAAKlwB,OAAOo8B,sBAAsB,GAAIpzF,KAAKi0F,YAAcj0F,KAAKi0F,UAAY,KAAM/3D,EAAE41D,UAAY51D,EAAEy1D,YAClH,CACL,IAAIvrD,EAAIpmC,KAAK6yF,UAAUv+F,QAAU4yF,KAAK+B,WAAWC,IACjDlpF,KAAKk0F,YAAc/3D,IACnB,IAAIrwB,EAAI,EAAIowB,EAAE81D,UAAUn5F,OAAQ43C,EAAI3kC,GAAKo7E,KAAKmJ,aAAagD,WAE3D,GADAvnF,EAAIo7E,KAAKwL,WAAWL,SAAWvmF,GAAKo7E,KAAKiI,sBACrC1+C,GAAK3kC,EACPowB,EAAEqxD,OAAM,WACNp+D,WAEG,CACL,IAAI3N,EAAI0lE,KAAKlwB,OAAO/B,SAEpB,GADAxkB,EAAIy2C,KAAKgI,mBAAqB,kBAAmBhI,KAAKlwB,OAClD5wB,GAAK8gD,KAAKgI,mBAAqBhI,KAAKiI,uBAAyB1+C,EAAG,CAClEy2C,KAAKwL,WAAWL,QAAS,EACzBn2D,EAAEy1D,QACF,IAAIziE,EAAI1N,EAAEkyE,mBACVlyE,EAAEkyE,mBAAqB,WACrB,eAAiBlyE,EAAE6tE,aAAe7tE,EAAEkyE,mBAAqBxkE,EAAGC,IAAK+M,EAAE01D,UACnE1K,KAAKqE,WAAWr8D,IAAMA,EAAEyL,WAAM,EAAQjhB,iBAGvCwtE,KAAKmJ,aAAagD,YAAcnM,KAAKgI,mBAAqBhI,KAAKiI,qBA/BtE,WACE,IAAIjzD,EAAIgrD,KAAKlwB,OAAO/B,SAAU94B,EAAI+qD,KAAKwL,WAAWO,mBAAkB,WAClE/L,KAAKwL,WAAWQ,oBAAoB/2D,GACpChN,OACEpC,EAAI,kCAAoCm6D,KAAKkJ,kBAAkB,8BAAgCj0D,EAAI,OAAS,aAChHD,EAAEo3D,MAAMpM,KAAKqM,sBAAwBrM,KAAKqM,sBAAsBC,WAAWzmE,GAAKA,GA0BWA,GAAMoC,OAIlG+3D,KAAK8M,sBAAsBr0F,UAAUg3D,UAAY,SAASz6B,KAC1DgrD,KAAKkN,qBAAuB,SAASl4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,EAAGu9B,GACrD8gD,KAAK8M,sBAAsBngF,KAAK7T,KAAMk8B,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAClD7I,KAAKq0F,WAAajuD,GACjB8gD,KAAKqH,SAASrH,KAAKkN,qBAAsBlN,KAAK8M,uBAAwB9M,KAAKkN,qBAAqBz0F,UAAUg3D,UAAY,SAASz6B,GAChI,OAAOl8B,KAAKq0F,WAAWnI,UAAUhwD,EAAGl8B,KAAK+yF,gBACxC7L,KAAKoN,iCAAmC,SAASp4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAC9Dq+E,KAAK8M,sBAAsBngF,KAAK7T,KAAMk8B,EAAGC,EAAGhN,EAAGpC,EAAGlkB,IACjDq+E,KAAKqH,SAASrH,KAAKoN,iCAAkCpN,KAAK8M,uBAAwB9M,KAAKoN,iCAAiC30F,UAAUg3D,UAAY,SAASz6B,GACxJ,OAAOA,GACNgrD,KAAKqN,qBAAuB,SAASr4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,EAAGu9B,EAAGt6B,GACxDo7E,KAAK8M,sBAAsBngF,KAAK7T,KAAMk8B,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAClD7I,KAAKw0F,gBAAkBpuD,EACvBpmC,KAAKmwF,YAAcrkF,GAClBo7E,KAAKqH,SAASrH,KAAKqN,qBAAsBrN,KAAK8M,uBAAwB9M,KAAKqN,qBAAqB50F,UAAUg3D,UAAY,SAASz6B,GAEhI,OADAl8B,KAAKw0F,kBAAoBt4D,EAAIl8B,KAAKmwF,YAAYjE,UAAUhwD,EAAGl8B,KAAK+yF,gBACzD7L,KAAK0D,6BAA0B,IAAW1D,KAAKlwB,OAAO3Z,KAAO,mBAAqB6pC,KAAKlwB,OAAO3Z,KAAKC,UAAUphB,EAAI,mBAAqBl8B,KAAKy0C,KAAO,MAAQ,KAAO,mDAAqDvY,EAAI,uCAAyCl8B,KAAKy0C,KAAO,MACrRyyC,KAAKmJ,aAAagD,aAAenM,KAAKlwB,OAAOy9B,OAASvN,KAAKlwB,OAAO/B,WAAaiyB,KAAKlwB,OAAO/B,SAAS5tD,KAAM6/E,KAAKmJ,aAAa1wF,UAAUkqF,cAAgB,SAAS3tD,EAAGC,EAAGhN,EAAGpC,GACzKoP,EAAIA,GAAK,GACTD,EAAIA,EAAEzyB,QAAQ,MAAO,KACrB,IAAIZ,EAAIq+E,KAAKwE,eAAexE,KAAKmD,SAAWnuD,GAI5C,IAHAnP,GAAK,kBAAqBA,IAAMA,EAAIA,EAAI,CAACz4B,OAAO4yF,KAAK+B,WAAWE,MAAQ,IACxEh6D,EAAInvB,KAAK4wF,SAASS,iBAAiBxoF,EAAGqzB,EAAGC,EAAGhN,EAAGpC,EAAGm6D,KAAKiJ,YAAYD,eAAenjE,EAAE2nE,MAAQ,MAAO3nE,EAAEz4B,SACrG0L,KAAKswF,cAAcznF,GAAKsmB,EACnBA,EAAI,EAAGA,EAAIgN,EAAEtjC,OAAQs2B,IACxBnvB,KAAKuwF,UAAUp0D,EAAEhN,IAAMtmB,EAEzB7I,KAAKuwF,UAAUr0D,GAAKrzB,GACnBq+E,KAAK2J,kBAAoB,SAAS30D,GACnCl8B,KAAKq0F,WAAan4D,GACjBgrD,KAAK2J,kBAAkBlxF,UAAU0xF,iBAAmB,SAASn1D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,EAAGu9B,GAC7E,OAAOv9B,EAAEvU,QAAU4yF,KAAK+B,WAAWE,KAAO,IAAIjC,KAAKqN,qBAAqBr4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,EAAGu9B,EAAGpmC,KAAKq0F,YAAcjuD,EAAI,IAAI8gD,KAAKkN,qBAAqBl4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,EAAG7I,KAAKq0F,YAAcxrF,EAAEvU,QAAU4yF,KAAK+B,WAAWC,IAAM,SAAWhC,KAAK4D,WAAa5D,KAAK6D,6BAA+B,IAAI7D,KAAKoN,iCAAiCp4D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAAK,IAAIq+E,KAAK2M,oBAAoB33D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAAK,IAAIq+E,KAAKwL,WAAWx2D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,IAC5Zq+E,KAAK6C,aAAe,IAAI7C,KAAKmJ,aAAcnJ,KAAKkK,gBAAkB,WACnElK,KAAK6C,aAAaqH,mBACjBlK,KAAKuK,qBAAuB,SAASv1D,GACtCgrD,KAAK6C,aAAa0H,qBAAqBv1D,IACtCgrD,KAAKlwB,OAAO29B,iBAAmBzN,KAAK6C,aAAaqH,kBAAmBlK,KAAK8J,UAAY,SAAS90D,EAAGC,GAClG+qD,KAAK6C,aAAaiH,UAAU90D,EAAGC,KAEjC+qD,KAAK0N,0BAA4B,GACjC1N,KAAK2N,UAAY,SAAS34D,GACxB,OAAOA,GAETgrD,KAAK4N,yBAA2B,SAAS54D,GACvC,IAAIC,EAAI,KAAMhN,EAAI+3D,KAAKlwB,OAAO+9B,cAAgB7N,KAAKlwB,OAAOg+B,aAC1D,IAAK7lE,IAAMA,EAAE8lE,aACX,OAAO94D,EAET,IACEA,EAAIhN,EAAE8lE,aAAa/4D,EAAG,CAACs3D,WAAWtM,KAAK2N,UAAWd,aAAa7M,KAAK2N,UAAWjB,gBAAgB1M,KAAK2N,UAAWK,UAAUhO,KAAK2N,YAC9H,MAAO9nE,GACPm6D,KAAK+C,cAAcl9D,EAAEvD,SAEvB,OAAO2S,GAET+qD,KAAKqM,sBAAwBrM,KAAK0N,0BAA4B1N,KAAK4N,yBAAyB5N,KAAK0N,0BAA4B,SAAW,KACxI1N,KAAKpoF,OAAS,GACdooF,KAAKpoF,OAAOq2F,aAAe,SAASj5D,EAAGC,GACrC,MAAQD,GAAKl8B,KAAKo1F,OAAOz6D,MAAM36B,KAAM0Z,YAEvCwtE,KAAKpoF,OAAOq2F,aAAax1F,UAAU01F,QAAU,GAC7CnO,KAAKpoF,OAAOq2F,aAAax1F,UAAU8N,IAAM,SAASyuB,GAChDl8B,KAAKq1F,QAAU,GAAKn5D,GAEtBgrD,KAAKpoF,OAAOq2F,aAAax1F,UAAUy1F,OAAS,SAASl5D,EAAGC,EAAGhN,GAEzD,GADAnvB,KAAKq1F,SAAWx7F,OAAOqiC,GACnB,MAAQC,EACV,IAAK,IAAIpP,EAAI,EAAGA,EAAIrT,UAAU7gB,OAAQk0B,IACpC/sB,KAAKq1F,SAAW37E,UAAUqT,GAG9B,OAAO/sB,MAETknF,KAAKpoF,OAAOq2F,aAAax1F,UAAU21F,MAAQ,WACzCt1F,KAAKq1F,QAAU,IAEjBnO,KAAKpoF,OAAOq2F,aAAax1F,UAAU41F,UAAY,WAC7C,OAAOv1F,KAAKq1F,QAAQx8F,QAEtBquF,KAAKpoF,OAAOq2F,aAAax1F,UAAUzF,SAAW,WAC5C,OAAO8F,KAAKq1F,SAEdnO,KAAKsO,MAAQ,GACbtO,KAAKsO,MAAMj7F,MAAQ,SAAS2hC,GAC1B,GAAI3hC,MAAMipC,kBACRjpC,MAAMipC,kBAAkBxjC,KAAMknF,KAAKsO,MAAMj7F,WACpC,CACL,IAAI4hC,EAAI5hC,QAAQ+jC,MAChBnC,IAAMn8B,KAAKs+B,MAAQnC,GAErBD,IAAMl8B,KAAKwpB,QAAU3vB,OAAOqiC,IAC5Bl8B,KAAKy1F,qBAAsB,GAE7BvO,KAAKqH,SAASrH,KAAKsO,MAAMj7F,MAAOA,OAChC2sF,KAAKsO,MAAMj7F,MAAMoF,UAAUzE,KAAO,cAClCgsF,KAAKwO,IAAM,GACXxO,KAAKwO,IAAIC,SAAW,CAACC,QAAQ,EAAGC,UAAU,EAAGC,KAAK,EAAGC,cAAc,EAAGC,iBAAiB,EAAGC,OAAO,EAAGC,uBAAuB,EAAGC,QAAQ,EAAGC,SAAS,EAAGC,cAAc,GAAIC,kBAAkB,GAAIC,SAAS,IACtMrP,KAAKsP,QAAU,GACftP,KAAKsP,QAAQC,eAAiBvP,KAAKM,MACnCN,KAAKsP,QAAQt9D,eAAiB,SAASgD,EAAGC,GACxC+qD,KAAKsO,MAAMj7F,MAAMsZ,KAAK7T,KAAMknF,KAAKsP,QAAQE,MAAMx6D,EAAGC,IAClDn8B,KAAK22F,eAAiBz6D,GAExBgrD,KAAKqH,SAASrH,KAAKsP,QAAQt9D,eAAgBguD,KAAKsO,MAAMj7F,OACtD2sF,KAAKsP,QAAQt9D,eAAev5B,UAAUzE,KAAO,iBAC7CgsF,KAAKsP,QAAQI,sBAAwB,SAAS16D,GAC5C,MAAMA,GAERgrD,KAAKsP,QAAQK,cAAgB3P,KAAKsP,QAAQI,sBAC1C1P,KAAKsP,QAAQE,MAAQ,SAASx6D,EAAGC,GAC/B,IAAK,IAAIhN,EAAI+M,EAAEj/B,MAAM,MAAO8vB,EAAI,GAAIlkB,EAAIsmB,EAAEt2B,OAAS,EAAGutC,EAAI,EAAGA,EAAIv9B,EAAGu9B,IAClErZ,GAAKoC,EAAEiX,IAAMA,EAAIjK,EAAEtjC,OAASsjC,EAAEiK,GAAK,MAErC,OAAOrZ,EAAIoC,EAAEtmB,IAEfq+E,KAAKsP,QAAQM,iBAAmB,SAAS56D,EAAGC,EAAGhN,EAAGpC,GAChD,IAAIlkB,EAAI,mBACR,GAAIsmB,EAAG,CACLtmB,GAAK,KAAOsmB,EACZ,IAAIiX,EAAIrZ,OAERmP,IAAMrzB,GAAK,KAAOqzB,EAAGkK,EAAIjK,GAE3BD,EAAI,IAAIgrD,KAAKsP,QAAQt9D,eAAe,GAAKrwB,EAAGu9B,GAAK,IACjD8gD,KAAKsP,QAAQK,cAAc36D,IAE7BgrD,KAAKsP,QAAQO,gBAAkB,SAAS76D,GACtCgrD,KAAKsP,QAAQC,iBAAmBvP,KAAKsP,QAAQK,cAAgB36D,IAE/DgrD,KAAKsP,QAAQ18D,OAAS,SAASoC,EAAGC,EAAGhN,GAEnC,OADA+3D,KAAKsP,QAAQC,iBAAmBv6D,GAAKgrD,KAAKsP,QAAQM,iBAAiB,GAAI,KAAM36D,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC/GwiB,GAETgrD,KAAKsP,QAAQQ,aAAe,SAAS96D,EAAGC,EAAGhN,GAEzC,OADA+3D,KAAKsP,QAAQC,gBAAkB,MAAQv6D,GAAKgrD,KAAKsP,QAAQM,iBAAiB,yBAA0B,CAAC56D,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC3IwiB,GAETgrD,KAAKsP,QAAQ37D,KAAO,SAASqB,EAAGC,GAC9B+qD,KAAKsP,QAAQC,gBAAkBvP,KAAKsP,QAAQK,cAAc,IAAI3P,KAAKsP,QAAQt9D,eAAe,WAAagD,EAAI,KAAOA,EAAI,IAAKrhC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,MAEnKwtE,KAAKsP,QAAQS,aAAe,SAAS/6D,EAAGC,EAAGhN,GAEzC,OADA+3D,KAAKsP,QAAQC,gBAAkB,iBAAoBv6D,GAAKgrD,KAAKsP,QAAQM,iBAAiB,kCAAmC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAChLwiB,GAETgrD,KAAKsP,QAAQU,aAAe,SAASh7D,EAAGC,EAAGhN,GAEzC,OADA+3D,KAAKsP,QAAQC,gBAAkB,iBAAoBv6D,GAAKgrD,KAAKsP,QAAQM,iBAAiB,kCAAmC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAChLwiB,GAETgrD,KAAKsP,QAAQW,eAAiB,SAASj7D,EAAGC,EAAGhN,GAE3C,OADA+3D,KAAKsP,QAAQC,iBAAmBvP,KAAKqE,WAAWrvD,IAAMgrD,KAAKsP,QAAQM,iBAAiB,oCAAqC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAChLwiB,GAETgrD,KAAKsP,QAAQY,aAAe,SAASl7D,EAAGC,EAAGhN,GAEzC,OADA+3D,KAAKsP,QAAQC,iBAAmBvP,KAAKzU,SAASv2C,IAAMgrD,KAAKsP,QAAQM,iBAAiB,kCAAmC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC5KwiB,GAETgrD,KAAKsP,QAAQa,YAAc,SAASn7D,EAAGC,EAAGhN,GAExC,OADA+3D,KAAKsP,QAAQC,iBAAmBvP,KAAKpsF,QAAQohC,IAAMgrD,KAAKsP,QAAQM,iBAAiB,iCAAkC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC1KwiB,GAETgrD,KAAKsP,QAAQc,cAAgB,SAASp7D,EAAGC,EAAGhN,GAE1C,OADA+3D,KAAKsP,QAAQC,gBAAkB,kBAAqBv6D,GAAKgrD,KAAKsP,QAAQM,iBAAiB,mCAAoC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAClLwiB,GAETgrD,KAAKsP,QAAQe,cAAgB,SAASr7D,EAAGC,EAAGhN,GAE1C,OADC+3D,KAAKsP,QAAQC,gBAAkBvP,KAAKzU,SAASv2C,IAAMA,EAAEs7C,UAAY0P,KAAKwO,IAAIC,SAASC,SAAW1O,KAAKsP,QAAQM,iBAAiB,mCAAoC,CAAC5P,KAAKkF,OAAOlwD,GAAIA,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IACxNwiB,GAETgrD,KAAKsP,QAAQgB,iBAAmB,SAASt7D,EAAGC,EAAGhN,EAAGpC,GAEhD,OADCm6D,KAAKsP,QAAQC,gBAAkBv6D,aAAaC,GAAK+qD,KAAKsP,QAAQM,iBAAiB,qCAAsC,CAAC5P,KAAKsP,QAAQiB,SAASt7D,GAAI+qD,KAAKsP,QAAQiB,SAASv7D,IAAK/M,EAAGt0B,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC9MwiB,GAETgrD,KAAKsP,QAAQkB,aAAe,SAASx7D,EAAGC,EAAGhN,GAEzC,OADC+3D,KAAKsP,QAAQC,gBAAkB,iBAAmBv6D,GAAKw1C,SAASx1C,IAAMgrD,KAAKsP,QAAQM,iBAAiB,mDAAoD,CAAC56D,GAAIC,EAAGthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAChMwiB,GAETgrD,KAAKsP,QAAQmB,8BAAgC,WAC3C,IAAK,IAAIz7D,KAAK1iC,OAAOmG,UACnBunF,KAAKsP,QAAQ37D,KAAKqB,EAAI,mDAG1BgrD,KAAKsP,QAAQiB,SAAW,SAASv7D,GAC/B,OAAOA,aAAaoD,SAAWpD,EAAE07D,aAAe17D,EAAEhhC,MAAQ,oBAAsBghC,aAAa1iC,OAAS0iC,EAAE1D,YAAYo/D,aAAe17D,EAAE1D,YAAYt9B,MAAQ1B,OAAOmG,UAAUzF,SAAS2Z,KAAKqoB,GAAK,OAASA,EAAI,cAAgBA,GAE5NgrD,KAAKrqF,MAAQ,GACbqqF,KAAK2Q,wBAA0B3Q,KAAKQ,aACpCR,KAAKrqF,MAAMi7F,wBAA0B,KAAO5Q,KAAKK,gBACjDL,KAAKrqF,MAAMk7F,KAAO,SAAS77D,GACzB,OAAOA,EAAEA,EAAErjC,OAAS,IAEtBquF,KAAKrqF,MAAM+mB,KAAOsjE,KAAKrqF,MAAMk7F,KAC7B7Q,KAAKrqF,MAAMiK,QAAUogF,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUmH,SAAW,SAASo1B,EAAGC,EAAGhN,GAEpI,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAUmH,QAAQ+M,KAAKqoB,EAAGC,EAAGhN,IACxC,SAAS+M,EAAGC,EAAGhN,GAEjB,GADAA,EAAI,MAAQA,EAAI,EAAI,EAAIA,EAAIzlB,KAAK6mB,IAAI,EAAG2L,EAAErjC,OAASs2B,GAAKA,EACpD,iBAAoB+M,EACtB,MAAO,iBAAoBC,GAAK,GAAKA,EAAEtjC,QAAU,EAAIqjC,EAAEp1B,QAAQq1B,EAAGhN,GAEpE,KAAOA,EAAI+M,EAAErjC,OAAQs2B,IACnB,GAAIA,KAAK+M,GAAKA,EAAE/M,KAAOgN,EACrB,OAAOhN,EAGX,OAAQ,GAEV+3D,KAAKrqF,MAAMoa,YAAciwE,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUsX,aAAe,SAASilB,EAAGC,EAAGhN,GAE5I,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAUsX,YAAYpD,KAAKqoB,EAAGC,EAAG,MAAQhN,EAAI+M,EAAErjC,OAAS,EAAIs2B,IACvE,SAAS+M,EAAGC,EAAGhN,GAGjB,GADA,GADAA,EAAI,MAAQA,EAAI+M,EAAErjC,OAAS,EAAIs2B,KACrBA,EAAIzlB,KAAK6mB,IAAI,EAAG2L,EAAErjC,OAASs2B,IACjC,iBAAoB+M,EACtB,MAAO,iBAAoBC,GAAK,GAAKA,EAAEtjC,QAAU,EAAIqjC,EAAEjlB,YAAYklB,EAAGhN,GAExE,KAAO,GAAKA,EAAGA,IACb,GAAIA,KAAK+M,GAAKA,EAAE/M,KAAOgN,EACrB,OAAOhN,EAGX,OAAQ,GAEV+3D,KAAKrqF,MAAMm/B,QAAUkrD,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUq8B,SAAW,SAASE,EAAGC,EAAGhN,GACpI+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QAC9BgC,MAAM8E,UAAUq8B,QAAQnoB,KAAKqoB,EAAGC,EAAGhN,IACjC,SAAS+M,EAAGC,EAAGhN,GACjB,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGkK,EAAI,EAAGA,EAAIrZ,EAAGqZ,IAChFA,KAAKv9B,GAAKszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEu9B,GAAIA,EAAGlK,IAGjCgrD,KAAKrqF,MAAMm7F,aAAe,SAAS97D,EAAGC,EAAGhN,GACvC,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAC5D,MAAOnP,EAAG,GAAKA,IAAKA,EAClBA,KAAKlkB,GAAKszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEkkB,GAAIA,EAAGmP,IAGjCgrD,KAAKrqF,MAAMuN,OAAS88E,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUyK,QAAU,SAAS8xB,EAAGC,EAAGhN,GAElI,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAUyK,OAAOyJ,KAAKqoB,EAAGC,EAAGhN,IACvC,SAAS+M,EAAGC,EAAGhN,GACjB,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,GAAIu9B,EAAI,EAAGt6B,EAAI,iBAAoBowB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGuU,EAAI,EAAGA,EAAI1jB,EAAG0jB,IAC/F,GAAIA,KAAK3kC,EAAG,CACV,IAAI0V,EAAI1V,EAAE2kC,GACVtU,EAAEtoB,KAAKsb,EAAG3N,EAAGivB,EAAGvU,KAAOrzB,EAAEu9B,KAAO5kB,GAGpC,OAAO3Y,GAETq+E,KAAKrqF,MAAMyP,IAAM46E,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAU2M,KAAO,SAAS4vB,EAAGC,EAAGhN,GAE5H,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAU2M,IAAIuH,KAAKqoB,EAAGC,EAAGhN,IACpC,SAAS+M,EAAGC,EAAGhN,GACjB,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAIhO,MAAMkyB,GAAIqZ,EAAI,iBAAoBlK,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGpwB,EAAI,EAAGA,EAAIihB,EAAGjhB,IAC9FA,KAAKs6B,IAAMv9B,EAAEiD,GAAKqwB,EAAEtoB,KAAKsb,EAAGiX,EAAEt6B,GAAIA,EAAGowB,IAEvC,OAAOrzB,GAETq+E,KAAKrqF,MAAMivD,OAASo7B,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUmsD,QAAU,SAAS5vB,EAAGC,EAAGhN,EAAGpC,GAGrI,OAFAm6D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QAC9Bk0B,IAAMoP,EAAI+qD,KAAKhsD,KAAKiB,EAAGpP,IAChBlyB,MAAM8E,UAAUmsD,OAAOj4C,KAAKqoB,EAAGC,EAAGhN,IACvC,SAAS+M,EAAGC,EAAGhN,EAAGpC,GACpB,IAAIlkB,EAAIsmB,EAIR,OAHA+3D,KAAKrqF,MAAMm/B,QAAQE,GAAG,SAAS/M,EAAGrjB,GAChCjD,EAAIszB,EAAEtoB,KAAKkZ,EAAGlkB,EAAGsmB,EAAGrjB,EAAGowB,MAElBrzB,GAETq+E,KAAKrqF,MAAMo7F,YAAc/Q,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUs4F,aAAe,SAAS/7D,EAAGC,EAAGhN,EAAGpC,GAI/I,OAHAm6D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QAC9BquF,KAAKsP,QAAQ18D,OAAO,MAAQqC,GAC5BpP,IAAMoP,EAAI+qD,KAAKhsD,KAAKiB,EAAGpP,IAChBlyB,MAAM8E,UAAUs4F,YAAYpkF,KAAKqoB,EAAGC,EAAGhN,IAC5C,SAAS+M,EAAGC,EAAGhN,EAAGpC,GACpB,IAAIlkB,EAAIsmB,EAIR,OAHA+3D,KAAKrqF,MAAMm7F,aAAa97D,GAAG,SAAS/M,EAAGrjB,GACrCjD,EAAIszB,EAAEtoB,KAAKkZ,EAAGlkB,EAAGsmB,EAAGrjB,EAAGowB,MAElBrzB,GAETq+E,KAAKrqF,MAAM2/D,KAAO0qB,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAU68D,MAAQ,SAAStgC,EAAGC,EAAGhN,GAE9H,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAU68D,KAAK3oD,KAAKqoB,EAAGC,EAAGhN,IACrC,SAAS+M,EAAGC,EAAGhN,GACjB,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGkK,EAAI,EAAGA,EAAIrZ,EAAGqZ,IAChF,GAAIA,KAAKv9B,GAAKszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEu9B,GAAIA,EAAGlK,GAC/B,OAAO,EAGX,OAAO,GAETgrD,KAAKrqF,MAAMggE,MAAQqqB,KAAK2Q,0BAA4B3Q,KAAKrqF,MAAMi7F,yBAA2Bj9F,MAAM8E,UAAUk9D,OAAS,SAAS3gC,EAAGC,EAAGhN,GAEhI,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAUk9D,MAAMhpD,KAAKqoB,EAAGC,EAAGhN,IACtC,SAAS+M,EAAGC,EAAGhN,GACjB,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGkK,EAAI,EAAGA,EAAIrZ,EAAGqZ,IAChF,GAAIA,KAAKv9B,IAAMszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEu9B,GAAIA,EAAGlK,GAChC,OAAO,EAGX,OAAO,GAETgrD,KAAKrqF,MAAMe,MAAQ,SAASs+B,EAAGC,EAAGhN,GAChC,IAAIpC,EAAI,EAIR,OAHAm6D,KAAKrqF,MAAMm/B,QAAQE,GAAG,SAASA,EAAGkK,EAAGt6B,GACnCqwB,EAAEtoB,KAAKsb,EAAG+M,EAAGkK,EAAGt6B,MAAQihB,IACvBoC,GACIpC,GAETm6D,KAAKrqF,MAAMm7D,KAAO,SAAS97B,EAAGC,EAAGhN,GAE/B,OAAO,GADPgN,EAAI+qD,KAAKrqF,MAAMq7F,UAAUh8D,EAAGC,EAAGhN,IAChB,KAAO,iBAAoB+M,EAAIA,EAAE96B,OAAO+6B,GAAKD,EAAEC,IAEhE+qD,KAAKrqF,MAAMq7F,UAAY,SAASh8D,EAAGC,EAAGhN,GACpC,IAAK,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAAGkK,EAAI,EAAGA,EAAIrZ,EAAGqZ,IAChF,GAAIA,KAAKv9B,GAAKszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEu9B,GAAIA,EAAGlK,GAC/B,OAAOkK,EAGX,OAAQ,GAEV8gD,KAAKrqF,MAAMs7F,UAAY,SAASj8D,EAAGC,EAAGhN,GAEpC,OAAO,GADPgN,EAAI+qD,KAAKrqF,MAAMu7F,eAAel8D,EAAGC,EAAGhN,IACrB,KAAO,iBAAoB+M,EAAIA,EAAE96B,OAAO+6B,GAAKD,EAAEC,IAEhE+qD,KAAKrqF,MAAMu7F,eAAiB,SAASl8D,EAAGC,EAAGhN,GACzC,IAAIpC,EAAImP,EAAErjC,OAAQgQ,EAAI,iBAAoBqzB,EAAIA,EAAEj/B,MAAM,IAAMi/B,EAC5D,MAAOnP,EAAG,GAAKA,EAAGA,IAChB,GAAIA,KAAKlkB,GAAKszB,EAAEtoB,KAAKsb,EAAGtmB,EAAEkkB,GAAIA,EAAGmP,GAC/B,OAAOnP,EAGX,OAAQ,GAEVm6D,KAAKrqF,MAAM+mE,SAAW,SAAS1nC,EAAGC,GAChC,OAAO,GAAK+qD,KAAKrqF,MAAMiK,QAAQo1B,EAAGC,IAEpC+qD,KAAKrqF,MAAM4kE,QAAU,SAASvlC,GAC5B,OAAO,GAAKA,EAAErjC,QAEhBquF,KAAKrqF,MAAMy4F,MAAQ,SAASp5D,GAC1B,IAAKgrD,KAAKpsF,QAAQohC,GAChB,IAAK,IAAIC,EAAID,EAAErjC,OAAS,EAAG,GAAKsjC,EAAGA,WAC1BD,EAAEC,GAGbD,EAAErjC,OAAS,GAEbquF,KAAKrqF,MAAMw7F,OAAS,SAASn8D,EAAGC,GAC9B+qD,KAAKrqF,MAAM+mE,SAAS1nC,EAAGC,IAAMD,EAAEj+B,KAAKk+B,IAEtC+qD,KAAKrqF,MAAMy7F,SAAW,SAASp8D,EAAGC,EAAGhN,GACnC+3D,KAAKrqF,MAAMiG,OAAOo5B,EAAG/M,EAAG,EAAGgN,IAE7B+qD,KAAKrqF,MAAM07F,cAAgB,SAASr8D,EAAGC,EAAGhN,GACxC+3D,KAAKhP,QAAQgP,KAAKrqF,MAAMiG,OAAQo5B,EAAG/M,EAAG,GAAGwL,MAAM,KAAMwB,IAEvD+qD,KAAKrqF,MAAM27F,aAAe,SAASt8D,EAAGC,EAAGhN,GACvC,IAAIpC,EACJ,GAAKrT,UAAU7gB,QAAU,GAAKk0B,EAAIm6D,KAAKrqF,MAAMiK,QAAQo1B,EAAG/M,IAAM+M,EAAEj+B,KAAKk+B,GAAK+qD,KAAKrqF,MAAMy7F,SAASp8D,EAAGC,EAAGpP,IAEtGm6D,KAAKrqF,MAAMkkF,OAAS,SAAS7kD,EAAGC,GAC9B,IAAkCpP,EAA9BoC,EAAI+3D,KAAKrqF,MAAMiK,QAAQo1B,EAAGC,GAE9B,OADCpP,EAAI,GAAKoC,IAAM+3D,KAAKrqF,MAAM47F,SAASv8D,EAAG/M,GAChCpC,GAETm6D,KAAKrqF,MAAM67F,WAAa,SAASx8D,EAAGC,GAClC,IAAIhN,EAAI+3D,KAAKrqF,MAAMoa,YAAYilB,EAAGC,GAClC,OAAO,GAAKhN,IAAK+3D,KAAKrqF,MAAM47F,SAASv8D,EAAG/M,IAAI,IAE9C+3D,KAAKrqF,MAAM47F,SAAW,SAASv8D,EAAGC,GAEhC,OADA+qD,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvB,GAAKgC,MAAM8E,UAAUmD,OAAO+Q,KAAKqoB,EAAGC,EAAG,GAAGtjC,QAEnDquF,KAAKrqF,MAAM87F,SAAW,SAASz8D,EAAGC,EAAGhN,GAEnC,OAAO,IADPgN,EAAI+qD,KAAKrqF,MAAMq7F,UAAUh8D,EAAGC,EAAGhN,MACd+3D,KAAKrqF,MAAM47F,SAASv8D,EAAGC,IAAI,IAE9C+qD,KAAKrqF,MAAM+7F,YAAc,SAAS18D,EAAGC,EAAGhN,GACtC,IAAIpC,EAAI,EAIR,OAHAm6D,KAAKrqF,MAAMm7F,aAAa97D,GAAG,SAASrzB,EAAGu9B,GACrCjK,EAAEtoB,KAAKsb,EAAGtmB,EAAGu9B,EAAGlK,IAAMgrD,KAAKrqF,MAAM47F,SAASv8D,EAAGkK,IAAMrZ,OAE9CA,GAETm6D,KAAKrqF,MAAM+9B,OAAS,SAASsB,GAC3B,OAAOrhC,MAAM8E,UAAUi7B,OAAOD,MAAM,GAAIjhB,YAE1CwtE,KAAKrqF,MAAMrB,KAAO,SAAS0gC,GACzB,OAAOrhC,MAAM8E,UAAUi7B,OAAOD,MAAM,GAAIjhB,YAE1CwtE,KAAKrqF,MAAMg8F,QAAU,SAAS38D,GAC5B,IAAIC,EAAID,EAAErjC,OACV,GAAI,EAAIsjC,EAAG,CACT,IAAK,IAAIhN,EAAIt0B,MAAMshC,GAAIpP,EAAI,EAAGA,EAAIoP,EAAGpP,IACnCoC,EAAEpC,GAAKmP,EAAEnP,GAEX,OAAOoC,EAET,MAAO,IAET+3D,KAAKrqF,MAAMijF,MAAQoH,KAAKrqF,MAAMg8F,QAC9B3R,KAAKrqF,MAAM2c,OAAS,SAAS0iB,EAAGC,GAC9B,IAAK,IAAIhN,EAAI,EAAGA,EAAIzV,UAAU7gB,OAAQs2B,IAAK,CACzC,IAAIpC,EAAIrT,UAAUyV,GAClB,GAAI+3D,KAAKmF,YAAYt/D,GAAI,CACvB,IAAIlkB,EAAIqzB,EAAErjC,QAAU,EAAGutC,EAAIrZ,EAAEl0B,QAAU,EACvCqjC,EAAErjC,OAASgQ,EAAIu9B,EACf,IAAK,IAAIt6B,EAAI,EAAGA,EAAIs6B,EAAGt6B,IACrBowB,EAAErzB,EAAIiD,GAAKihB,EAAEjhB,QAGfowB,EAAEj+B,KAAK8uB,KAIbm6D,KAAKrqF,MAAMiG,OAAS,SAASo5B,EAAGC,EAAGhN,EAAGpC,GAEpC,OADAm6D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvBgC,MAAM8E,UAAUmD,OAAO63B,MAAMuB,EAAGgrD,KAAKrqF,MAAMzC,MAAMsf,UAAW,KAErEwtE,KAAKrqF,MAAMzC,MAAQ,SAAS8hC,EAAGC,EAAGhN,GAEhC,OADA+3D,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QACvB,GAAK6gB,UAAU7gB,OAASgC,MAAM8E,UAAUvF,MAAMyZ,KAAKqoB,EAAGC,GAAKthC,MAAM8E,UAAUvF,MAAMyZ,KAAKqoB,EAAGC,EAAGhN,IAErG+3D,KAAKrqF,MAAMi8F,iBAAmB,SAAS58D,EAAGC,EAAGhN,GAC3CgN,EAAIA,GAAKD,EACT,IAAInP,EAAI,SAASmP,GACf,OAAOgrD,KAAKzU,SAASv2C,GAAK,IAAMgrD,KAAKqF,OAAOrwD,WAAaA,GAAG96B,OAAO,GAAK86B,GAE1E/M,EAAIA,GAAKpC,EACTA,EAAI,GACJ,IAAK,IAAIlkB,EAAI,EAAGu9B,EAAI,EAAGA,EAAIlK,EAAErjC,QAAS,CACpC,IAAIiT,EAAIowB,EAAEkK,KAAMqK,EAAIthB,EAAErjB,GACtBtS,OAAOmG,UAAUnJ,eAAeqd,KAAKkZ,EAAG0jB,KAAO1jB,EAAE0jB,IAAK,EAAItU,EAAEtzB,KAAOiD,GAErEqwB,EAAEtjC,OAASgQ,GAEbq+E,KAAKrqF,MAAMk8F,aAAe,SAAS78D,EAAGC,EAAGhN,GACvC,OAAO+3D,KAAKrqF,MAAMm8F,cAAc98D,EAAG/M,GAAK+3D,KAAKrqF,MAAMo8F,gBAAgB,EAAI98D,IAEzE+qD,KAAKrqF,MAAMq8F,aAAe,SAASh9D,EAAGC,EAAGhN,GACvC,OAAO+3D,KAAKrqF,MAAMm8F,cAAc98D,EAAGC,GAAG,OAAI,EAAQhN,IAEpD+3D,KAAKrqF,MAAMm8F,cAAgB,SAAS98D,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAC9C,IAAK,IAAyB4nC,EAArBrK,EAAI,EAAGt6B,EAAIowB,EAAErjC,OAAWutC,EAAIt6B,GAAI,CACvC,IAAI0V,EAAI4kB,GAAKt6B,EAAIs6B,IAAM,GACnBlX,EAAIC,EAAIgN,EAAEtoB,KAAKhL,EAAGqzB,EAAE1a,GAAIA,EAAG0a,GAAKC,EAAEpP,EAAGmP,EAAE1a,IAC3C,EAAI0N,EAAIkX,EAAI5kB,EAAI,GAAK1V,EAAI0V,EAAGivB,GAAKvhB,GAEnC,OAAOuhB,EAAIrK,GAAKA,EAAI,GAEtB8gD,KAAKrqF,MAAMs/C,KAAO,SAASjgB,EAAGC,GAC5BD,EAAEigB,KAAKhgB,GAAK+qD,KAAKrqF,MAAMo8F,iBAEzB/R,KAAKrqF,MAAMs8F,WAAa,SAASj9D,EAAGC,GAClC,IAAK,IAAIhN,EAAIt0B,MAAMqhC,EAAErjC,QAASk0B,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IACjDoC,EAAEpC,GAAK,CAACnY,MAAMmY,EAAGtwB,MAAMy/B,EAAEnP,IAE3B,IAAIlkB,EAAIszB,GAAK+qD,KAAKrqF,MAAMo8F,eAIxB,IAHA/R,KAAKrqF,MAAMs/C,KAAKhtB,GAAG,SAAS+M,EAAGC,GAC7B,OAAOtzB,EAAEqzB,EAAEz/B,MAAO0/B,EAAE1/B,QAAUy/B,EAAEtnB,MAAQunB,EAAEvnB,SAEvCmY,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IACxBmP,EAAEnP,GAAKoC,EAAEpC,GAAGtwB,OAGhByqF,KAAKrqF,MAAMu8F,UAAY,SAASl9D,EAAGC,EAAGhN,GACpC,IAAIpC,EAAIoC,GAAK+3D,KAAKrqF,MAAMo8F,eACxB/R,KAAKrqF,MAAMs/C,KAAKjgB,GAAG,SAASA,EAAG/M,GAC7B,OAAOpC,EAAEoP,EAAED,GAAIC,EAAEhN,QAGrB+3D,KAAKrqF,MAAMw8F,iBAAmB,SAASn9D,EAAGC,EAAGhN,GAC3C+3D,KAAKrqF,MAAMu8F,UAAUl9D,GAAG,SAASA,GAC/B,OAAOA,EAAEC,KACRhN,IAEL+3D,KAAKrqF,MAAMy8F,SAAW,SAASp9D,EAAGC,EAAGhN,GACnCgN,EAAIA,GAAK+qD,KAAKrqF,MAAMo8F,eACpB,IAAK,IAAIlsE,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IAAK,CACjC,IAAIlkB,EAAIszB,EAAED,EAAEnP,EAAI,GAAImP,EAAEnP,IACtB,GAAI,EAAIlkB,GAAK,GAAKA,GAAKsmB,EACrB,OAAO,EAGX,OAAO,GAET+3D,KAAKrqF,MAAMskE,OAAS,SAASjlC,EAAGC,EAAGhN,GACjC,IAAK+3D,KAAKmF,YAAYnwD,KAAOgrD,KAAKmF,YAAYlwD,IAAMD,EAAErjC,QAAUsjC,EAAEtjC,OAChE,OAAO,EAET,IAAIk0B,EAAImP,EAAErjC,OACVs2B,EAAIA,GAAK+3D,KAAKrqF,MAAM08F,uBACpB,IAAK,IAAI1wF,EAAI,EAAGA,EAAIkkB,EAAGlkB,IACrB,IAAKsmB,EAAE+M,EAAErzB,GAAIszB,EAAEtzB,IACb,OAAO,EAGX,OAAO,GAETq+E,KAAKrqF,MAAM28F,SAAW,SAASt9D,EAAGC,EAAGhN,GACnCA,EAAIA,GAAK+3D,KAAKrqF,MAAMo8F,eACpB,IAAK,IAAIlsE,EAAIrjB,KAAK4mB,IAAI4L,EAAErjC,OAAQsjC,EAAEtjC,QAASgQ,EAAI,EAAGA,EAAIkkB,EAAGlkB,IAAK,CAC5D,IAAIu9B,EAAIjX,EAAE+M,EAAErzB,GAAIszB,EAAEtzB,IAClB,GAAI,GAAKu9B,EACP,OAAOA,EAGX,OAAO8gD,KAAKrqF,MAAMo8F,eAAe/8D,EAAErjC,OAAQsjC,EAAEtjC,SAE/CquF,KAAKrqF,MAAMo8F,eAAiB,SAAS/8D,EAAGC,GACtC,OAAOD,EAAIC,EAAI,EAAID,EAAIC,GAAK,EAAI,GAElC+qD,KAAKrqF,MAAM48F,sBAAwB,SAASv9D,EAAGC,GAC7C,OAAQ+qD,KAAKrqF,MAAMo8F,eAAe/8D,EAAGC,IAEvC+qD,KAAKrqF,MAAM08F,uBAAyB,SAASr9D,EAAGC,GAC9C,OAAOD,IAAMC,GAEf+qD,KAAKrqF,MAAM68F,aAAe,SAASx9D,EAAGC,EAAGhN,GAEvC,OAAO,GADPA,EAAI+3D,KAAKrqF,MAAMk8F,aAAa78D,EAAGC,EAAGhN,MAClB+3D,KAAKrqF,MAAMy7F,SAASp8D,EAAGC,IAAKhN,EAAI,KAAK,IAEvD+3D,KAAKrqF,MAAM88F,aAAe,SAASz9D,EAAGC,EAAGhN,GAEvC,OAAO,IADPgN,EAAI+qD,KAAKrqF,MAAMk8F,aAAa78D,EAAGC,EAAGhN,KAClB+3D,KAAKrqF,MAAM47F,SAASv8D,EAAGC,IAEzC+qD,KAAKrqF,MAAM+8F,OAAS,SAAS19D,EAAGC,EAAGhN,GACjC,IAAK,IAAIpC,EAAI,GAAIlkB,EAAI,EAAGA,EAAIqzB,EAAErjC,OAAQgQ,IAAK,CACzC,IAAIu9B,EAAIlK,EAAErzB,GAAIiD,EAAIqwB,EAAEtoB,KAAKsb,EAAGiX,EAAGv9B,EAAGqzB,QAClC,IAAWpwB,IAAMihB,EAAEjhB,KAAOihB,EAAEjhB,GAAK,KAAK7N,KAAKmoC,GAE7C,OAAOrZ,GAETm6D,KAAKrqF,MAAMg9F,SAAW,SAAS39D,EAAGC,EAAGhN,GACnC,IAAIpC,EAAI,GAIR,OAHAm6D,KAAKrqF,MAAMm/B,QAAQE,GAAG,SAASrzB,EAAGu9B,GAChCrZ,EAAEoP,EAAEtoB,KAAKsb,EAAGtmB,EAAGu9B,EAAGlK,IAAMrzB,KAEnBkkB,GAETm6D,KAAKrqF,MAAMY,MAAQ,SAASy+B,EAAGC,EAAGhN,GAChC,IAAIpC,EAAI,GAAIlkB,EAAI,EAAGu9B,EAAIlK,EAGvB,QADA,IAAWC,IAAMtzB,EAAIqzB,EAAGkK,EAAIjK,GACxB,GAFJhN,EAAIA,GAAK,IAEIiX,EAAIv9B,GACf,MAAO,GAET,GAAI,EAAIsmB,EACN,IAAK+M,EAAIrzB,EAAGqzB,EAAIkK,EAAGlK,GAAK/M,EACtBpC,EAAE9uB,KAAKi+B,QAGT,IAAKA,EAAIrzB,EAAGqzB,EAAIkK,EAAGlK,GAAK/M,EACtBpC,EAAE9uB,KAAKi+B,GAGX,OAAOnP,GAETm6D,KAAKrqF,MAAMgmC,OAAS,SAAS3G,EAAGC,GAC9B,IAAK,IAAIhN,EAAI,GAAIpC,EAAI,EAAGA,EAAIoP,EAAGpP,IAC7BoC,EAAEpC,GAAKmP,EAET,OAAO/M,GAET+3D,KAAKrqF,MAAMi9F,QAAU,SAAS59D,GAC5B,IAAK,IAAIC,EAAI,GAAIhN,EAAI,EAAGA,EAAIzV,UAAU7gB,OAAQs2B,IAAK,CACjD,IAAIpC,EAAIrT,UAAUyV,GAClB,GAAI+3D,KAAKpsF,QAAQiyB,GACf,IAAK,IAAIlkB,EAAI,EAAGA,EAAIkkB,EAAEl0B,OAAQgQ,GAAK,KAAM,CACvC,IAAIu9B,EAAI8gD,KAAKrqF,MAAMzC,MAAM2yB,EAAGlkB,EAAGA,EAAI,MACnCu9B,EAAI8gD,KAAKrqF,MAAMi9F,QAAQn/D,MAAM,KAAMyL,GACnC,IAAK,IAAIt6B,EAAI,EAAGA,EAAIs6B,EAAEvtC,OAAQiT,IAC5BqwB,EAAEl+B,KAAKmoC,EAAEt6B,SAIbqwB,EAAEl+B,KAAK8uB,GAGX,OAAOoP,GAET+qD,KAAKrqF,MAAMk9F,OAAS,SAAS79D,EAAGC,GAG9B,OAFA+qD,KAAKsP,QAAQ18D,OAAO,MAAQoC,EAAErjC,QAC9BqjC,EAAErjC,SAA0B,GAAfsjC,GAAKD,EAAErjC,QAAgBgC,MAAM8E,UAAU+0C,QAAQ/Z,MAAMuB,EAAGA,EAAEp5B,QAAQq5B,EAAGA,IAAM,EAAIA,GAAKthC,MAAM8E,UAAU1B,KAAK08B,MAAMuB,EAAGA,EAAEp5B,OAAO,GAAIq5B,KACrID,GAETgrD,KAAKrqF,MAAMm9F,SAAW,SAAS99D,EAAGC,EAAGhN,GACnC+3D,KAAKsP,QAAQ18D,OAAO,GAAKqC,GAAKA,EAAID,EAAErjC,QACpCquF,KAAKsP,QAAQ18D,OAAO,GAAK3K,GAAKA,EAAI+M,EAAErjC,QACpCsjC,EAAIthC,MAAM8E,UAAUmD,OAAO+Q,KAAKqoB,EAAGC,EAAG,GACtCthC,MAAM8E,UAAUmD,OAAO+Q,KAAKqoB,EAAG/M,EAAG,EAAGgN,EAAE,KAEzC+qD,KAAKrqF,MAAMgtD,IAAM,SAAS3tB,GACxB,IAAKxiB,UAAU7gB,OACb,MAAO,GAET,IAAK,IAAIsjC,EAAI,GAAIhN,EAAIzV,UAAU,GAAG7gB,OAAQk0B,EAAI,EAAGA,EAAIrT,UAAU7gB,OAAQk0B,IACrErT,UAAUqT,GAAGl0B,OAASs2B,IAAMA,EAAIzV,UAAUqT,GAAGl0B,QAE/C,IAAKk0B,EAAI,EAAGA,EAAIoC,EAAGpC,IAAK,CACtB,IAAK,IAAIlkB,EAAI,GAAIu9B,EAAI,EAAGA,EAAI1sB,UAAU7gB,OAAQutC,IAC5Cv9B,EAAE5K,KAAKyb,UAAU0sB,GAAGrZ,IAEtBoP,EAAEl+B,KAAK4K,GAET,OAAOszB,GAET+qD,KAAKrqF,MAAM4gD,QAAU,SAASvhB,EAAGC,GAC/B,IAAK,IAAIhN,EAAIgN,GAAKzyB,KAAKgwC,OAAQ3sB,EAAImP,EAAErjC,OAAS,EAAG,EAAIk0B,EAAGA,IAAK,CAC3D,IAAIlkB,EAAIa,KAAKC,MAAMwlB,KAAOpC,EAAI,IAAKqZ,EAAIlK,EAAEnP,GACzCmP,EAAEnP,GAAKmP,EAAErzB,GACTqzB,EAAErzB,GAAKu9B,IAGX8gD,KAAKrqF,MAAMo9F,YAAc,SAAS/9D,EAAGC,GACnC,IAAIhN,EAAI,GAIR,OAHA+3D,KAAKrqF,MAAMm/B,QAAQG,GAAG,SAASA,GAC7BhN,EAAElxB,KAAKi+B,EAAEC,OAEJhN,GAET+3D,KAAKrqF,MAAMq9F,UAAY,SAASh+D,EAAGC,EAAGhN,GACpC,OAAO+3D,KAAKrqF,MAAM+9B,OAAOD,MAAM,GAAIusD,KAAKrqF,MAAMyP,IAAI4vB,EAAGC,EAAGhN,KAE1D+3D,KAAKthF,OAAS,GACdshF,KAAKthF,OAAO6zB,GAAK,SAASyC,EAAGC,GAC3B,OAAOD,IAAMC,EAAI,IAAMD,GAAK,EAAIA,GAAM,EAAIC,EAAID,GAAMA,GAAKC,GAAMA,GAEjE+qD,KAAKthF,OAAOo2B,QAAU,SAASE,EAAGC,EAAGhN,GACnC,IAAK,IAAIpC,KAAKmP,EACZC,EAAEtoB,KAAKsb,EAAG+M,EAAEnP,GAAIA,EAAGmP,IAGvBgrD,KAAKthF,OAAOwE,OAAS,SAAS8xB,EAAGC,EAAGhN,GAClC,IAAYtmB,EAARkkB,EAAI,GACR,IAAKlkB,KAAKqzB,EACRC,EAAEtoB,KAAKsb,EAAG+M,EAAErzB,GAAIA,EAAGqzB,KAAOnP,EAAElkB,GAAKqzB,EAAErzB,IAErC,OAAOkkB,GAETm6D,KAAKthF,OAAO0G,IAAM,SAAS4vB,EAAGC,EAAGhN,GAC/B,IAAYtmB,EAARkkB,EAAI,GACR,IAAKlkB,KAAKqzB,EACRnP,EAAElkB,GAAKszB,EAAEtoB,KAAKsb,EAAG+M,EAAErzB,GAAIA,EAAGqzB,GAE5B,OAAOnP,GAETm6D,KAAKthF,OAAO42D,KAAO,SAAStgC,EAAGC,EAAGhN,GAChC,IAAK,IAAIpC,KAAKmP,EACZ,GAAIC,EAAEtoB,KAAKsb,EAAG+M,EAAEnP,GAAIA,EAAGmP,GACrB,OAAO,EAGX,OAAO,GAETgrD,KAAKthF,OAAOi3D,MAAQ,SAAS3gC,EAAGC,EAAGhN,GACjC,IAAK,IAAIpC,KAAKmP,EACZ,IAAKC,EAAEtoB,KAAKsb,EAAG+M,EAAEnP,GAAIA,EAAGmP,GACtB,OAAO,EAGX,OAAO,GAETgrD,KAAKthF,OAAOu0F,SAAW,SAASj+D,GAC9B,IAAW/M,EAAPgN,EAAI,EACR,IAAKhN,KAAK+M,EACRC,IAEF,OAAOA,GAET+qD,KAAKthF,OAAOw0F,UAAY,SAASl+D,GAC/B,IAAK,IAAIC,KAAKD,EACZ,OAAOC,GAGX+qD,KAAKthF,OAAOy0F,YAAc,SAASn+D,GACjC,IAAK,IAAIC,KAAKD,EACZ,OAAOA,EAAEC,IAGb+qD,KAAKthF,OAAOg+D,SAAW,SAAS1nC,EAAGC,GACjC,OAAO+qD,KAAKthF,OAAO00F,cAAcp+D,EAAGC,IAEtC+qD,KAAKthF,OAAO20F,UAAY,SAASr+D,GAC/B,IAAmBnP,EAAfoP,EAAI,GAAIhN,EAAI,EAChB,IAAKpC,KAAKmP,EACRC,EAAEhN,KAAO+M,EAAEnP,GAEb,OAAOoP,GAET+qD,KAAKthF,OAAO40F,QAAU,SAASt+D,GAC7B,IAAmBnP,EAAfoP,EAAI,GAAIhN,EAAI,EAChB,IAAKpC,KAAKmP,EACRC,EAAEhN,KAAOpC,EAEX,OAAOoP,GAET+qD,KAAKthF,OAAO60F,eAAiB,SAASv+D,EAAGC,GACvC,IAAIhN,EAAI+3D,KAAKmF,YAAYlwD,GAAIpP,EAAIoC,EAAIgN,EAAIziB,UACzC,IAAKyV,EAAIA,EAAI,EAAI,EAAGA,EAAIpC,EAAEl0B,OAAQs2B,IAAK,CACrC,GAAI,MAAQ+M,EACV,OAEFA,EAAIA,EAAEnP,EAAEoC,IAEV,OAAO+M,GAETgrD,KAAKthF,OAAO80F,YAAc,SAASx+D,EAAGC,GACpC,OAAO,OAASD,GAAKC,KAAKD,GAE5BgrD,KAAKthF,OAAO00F,cAAgB,SAASp+D,EAAGC,GACtC,IAAK,IAAIhN,KAAK+M,EACZ,GAAIA,EAAE/M,IAAMgN,EACV,OAAO,EAGX,OAAO,GAET+qD,KAAKthF,OAAO+0F,QAAU,SAASz+D,EAAGC,EAAGhN,GACnC,IAAK,IAAIpC,KAAKmP,EACZ,GAAIC,EAAEtoB,KAAKsb,EAAG+M,EAAEnP,GAAIA,EAAGmP,GACrB,OAAOnP,GAIbm6D,KAAKthF,OAAOg1F,UAAY,SAAS1+D,EAAGC,EAAGhN,GACrC,OAAQgN,EAAI+qD,KAAKthF,OAAO+0F,QAAQz+D,EAAGC,EAAGhN,KAAO+M,EAAEC,IAEjD+qD,KAAKthF,OAAO67D,QAAU,SAASvlC,GAC7B,IAAK,IAAIC,KAAKD,EACZ,OAAO,EAET,OAAO,GAETgrD,KAAKthF,OAAO0vF,MAAQ,SAASp5D,GAC3B,IAAK,IAAIC,KAAKD,SACLA,EAAEC,IAGb+qD,KAAKthF,OAAOm7E,OAAS,SAAS7kD,EAAGC,GAC/B,IAAIhN,EAEJ,OADCA,EAAIgN,KAAKD,WAAaA,EAAEC,GAClBhN,GAET+3D,KAAKthF,OAAOglC,IAAM,SAAS1O,EAAGC,EAAGhN,GAC/B,GAAI,OAAS+M,GAAKC,KAAKD,EACrB,MAAM3hC,MAAM,wCAA0C4hC,EAAI,KAE5D+qD,KAAKthF,OAAO6H,IAAIyuB,EAAGC,EAAGhN,IAExB+3D,KAAKthF,OAAOuT,IAAM,SAAS+iB,EAAGC,EAAGhN,GAC/B,OAAO,OAAS+M,GAAKC,KAAKD,EAAIA,EAAEC,GAAKhN,GAEvC+3D,KAAKthF,OAAO6H,IAAM,SAASyuB,EAAGC,EAAGhN,GAC/B+M,EAAEC,GAAKhN,GAET+3D,KAAKthF,OAAOi1F,eAAiB,SAAS3+D,EAAGC,EAAGhN,GAC1C,OAAOgN,KAAKD,EAAIA,EAAEC,GAAKD,EAAEC,GAAKhN,GAEhC+3D,KAAKthF,OAAOk1F,2BAA6B,SAAS5+D,EAAGC,EAAGhN,GACtD,OAAIgN,KAAKD,EACAA,EAAEC,IAEXhN,EAAIA,IACG+M,EAAEC,GAAKhN,IAEhB+3D,KAAKthF,OAAOu7D,OAAS,SAASjlC,EAAGC,GAC/B,IAAK,IAAIhN,KAAK+M,EACZ,KAAM/M,KAAKgN,IAAMD,EAAE/M,KAAOgN,EAAEhN,GAC1B,OAAO,EAGX,IAAK,IAAIpC,KAAKoP,EACZ,KAAMpP,KAAKmP,GACT,OAAO,EAGX,OAAO,GAETgrD,KAAKthF,OAAOk6E,MAAQ,SAAS5jD,GAC3B,IAAY/M,EAARgN,EAAI,GACR,IAAKhN,KAAK+M,EACRC,EAAEhN,GAAK+M,EAAE/M,GAEX,OAAOgN,GAET+qD,KAAKthF,OAAOm1F,YAAc,SAAS7+D,GACjC,IAAIC,EAAI+qD,KAAKkF,OAAOlwD,GACpB,GAAI,UAAYC,GAAK,SAAWA,EAAG,CACjC,GAAI+qD,KAAKqE,WAAWrvD,EAAE4jD,OACpB,OAAO5jD,EAAE4jD,QAGX,IAAK,IAAI3wD,KADTgN,EAAI,SAAWA,EAAI,GAAK,GACVD,EACZC,EAAEhN,GAAK+3D,KAAKthF,OAAOm1F,YAAY7+D,EAAE/M,IAEnC,OAAOgN,EAET,OAAOD,GAETgrD,KAAKthF,OAAOo1F,UAAY,SAAS9+D,GAC/B,IAAY/M,EAARgN,EAAI,GACR,IAAKhN,KAAK+M,EACRC,EAAED,EAAE/M,IAAMA,EAEZ,OAAOgN,GAET+qD,KAAKthF,OAAOq1F,kBAAoB,gGAAgGh+F,MAAM,KACtIiqF,KAAKthF,OAAO4T,OAAS,SAAS0iB,EAAGC,GAC/B,IAAK,IAAIhN,EAAGpC,EAAGlkB,EAAI,EAAGA,EAAI6Q,UAAU7gB,OAAQgQ,IAAK,CAE/C,IAAKsmB,KADLpC,EAAIrT,UAAU7Q,GAEZqzB,EAAE/M,GAAKpC,EAAEoC,GAEX,IAAK,IAAIiX,EAAI,EAAGA,EAAI8gD,KAAKthF,OAAOq1F,kBAAkBpiG,OAAQutC,IACxDjX,EAAI+3D,KAAKthF,OAAOq1F,kBAAkB70D,GAAI5sC,OAAOmG,UAAUnJ,eAAeqd,KAAKkZ,EAAGoC,KAAO+M,EAAE/M,GAAKpC,EAAEoC,MAIpG+3D,KAAKthF,OAAO85B,OAAS,SAASxD,GAC5B,IAAIC,EAAIziB,UAAU7gB,OAClB,GAAI,GAAKsjC,GAAK+qD,KAAKpsF,QAAQ4e,UAAU,IACnC,OAAOwtE,KAAKthF,OAAO85B,OAAO/E,MAAM,KAAMjhB,UAAU,IAElD,GAAIyiB,EAAI,EACN,MAAM5hC,MAAM,8BAEd,IAAK,IAAI40B,EAAI,GAAIpC,EAAI,EAAGA,EAAIoP,EAAGpP,GAAK,EAClCoC,EAAEzV,UAAUqT,IAAMrT,UAAUqT,EAAI,GAElC,OAAOoC,GAET+3D,KAAKthF,OAAOs1F,UAAY,SAASh/D,GAC/B,IAAIC,EAAIziB,UAAU7gB,OAClB,GAAI,GAAKsjC,GAAK+qD,KAAKpsF,QAAQ4e,UAAU,IACnC,OAAOwtE,KAAKthF,OAAOs1F,UAAUvgE,MAAM,KAAMjhB,UAAU,IAErD,IAAK,IAAIyV,EAAI,GAAIpC,EAAI,EAAGA,EAAIoP,EAAGpP,IAC7BoC,EAAEzV,UAAUqT,KAAM,EAEpB,OAAOoC,GAET+3D,KAAKthF,OAAOu1F,oBAAsB,SAASj/D,GACzC,IAAIC,EAAID,EAER,OADA1iC,OAAO4hG,WAAa5hG,OAAO4hG,SAASl/D,KAAOC,EAAI3iC,OAAOkmC,OAAOxD,GAAI1iC,OAAO6hG,OAAOl/D,IACxEA,GAET+qD,KAAKthF,OAAO01F,gBAAkB,SAASp/D,GACrC,QAAS1iC,OAAO4hG,UAAY5hG,OAAO4hG,SAASl/D,IAE9CgrD,KAAKthF,OAAO21F,oBAAsB,SAASr/D,EAAGC,EAAGhN,GAC/C,IAAK+M,EACH,MAAO,GAET,IAAK1iC,OAAOgiG,sBAAwBhiG,OAAO8mC,eACzC,OAAO4mD,KAAKthF,OAAO40F,QAAQt+D,GAE7B,IAAK,IAAInP,EAAI,GAAImP,IAAMA,IAAM1iC,OAAOmG,WAAaw8B,KAAOD,IAAMoD,SAAS3/B,WAAawvB,IAAK,CACvF,IAAK,IAAItmB,EAAIrP,OAAOgiG,oBAAoBt/D,GAAIkK,EAAI,EAAGA,EAAIv9B,EAAEhQ,OAAQutC,IAC/DrZ,EAAElkB,EAAEu9B,KAAM,EAEZlK,EAAI1iC,OAAO8mC,eAAepE,GAE5B,OAAOgrD,KAAKthF,OAAO40F,QAAQztE,IAE7Bm6D,KAAKthF,OAAO61F,cAAgB,SAASv/D,GACnC,OAAQA,EAAI1iC,OAAO8mC,eAAepE,EAAEv8B,aAAeu8B,EAAE1D,aAEvD0uD,KAAKwO,IAAIc,QAAU,GACnBtP,KAAKwO,IAAIc,QAAQkF,iBAAmB,SAASx/D,GAC3C,GAAIgrD,KAAKsP,QAAQC,eAAgB,CAC/B,IAAIt6D,EAAI+qD,KAAKwO,IAAIc,QAAQmF,WAAWz/D,GACpCC,KAAOD,KAAOA,aAAaC,EAAEy/D,WAAa1/D,aAAaC,EAAEkkD,UAAY6G,KAAKsP,QAAQ37D,KAAK,8DAA+DqsD,KAAKwO,IAAIc,QAAQqF,oBAAoB3/D,IAE7L,OAAOA,GAETgrD,KAAKwO,IAAIc,QAAQsF,qBAAuB,SAAS5/D,EAAGC,GAClD,GAAI+qD,KAAKsP,QAAQC,eAAgB,CAC/B,IAAItnE,EAAI+3D,KAAKwO,IAAIc,QAAQmF,WAAWz/D,GACpC/M,QAAK,IAAsBA,EAAEgN,KAAOD,IAAMA,aAAa/M,EAAEgN,MAAQD,aAAa/M,EAAEysE,UAAY1/D,aAAa/M,EAAEkxD,WAAa6G,KAAKsP,QAAQ37D,KAAK,sEAAuEsB,EAAG+qD,KAAKwO,IAAIc,QAAQqF,oBAAoB3/D,KAE3P,OAAOA,GAETgrD,KAAKwO,IAAIc,QAAQuF,0BAA4B,SAAS7/D,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQwF,0BAA4B,SAAS9/D,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQyF,wBAA0B,SAAS//D,GAClD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,oBAElDgrD,KAAKwO,IAAIc,QAAQ0F,yBAA2B,SAAShgE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQ2F,yBAA2B,SAASjgE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQ4F,yBAA2B,SAASlgE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQ6F,yBAA2B,SAASngE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQ8F,4BAA8B,SAASpgE,GACtD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,wBAElDgrD,KAAKwO,IAAIc,QAAQ+F,0BAA4B,SAASrgE,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQgG,yBAA2B,SAAStgE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQiG,wBAA0B,SAASvgE,GAClD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,oBAElDgrD,KAAKwO,IAAIc,QAAQkG,yBAA2B,SAASxgE,GACnD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,qBAElDgrD,KAAKwO,IAAIc,QAAQmG,0BAA4B,SAASzgE,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQoG,0BAA4B,SAAS1gE,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQqG,0BAA4B,SAAS3gE,GACpD,OAAOgrD,KAAKwO,IAAIc,QAAQsF,qBAAqB5/D,EAAG,sBAElDgrD,KAAKwO,IAAIc,QAAQqF,oBAAsB,SAAS3/D,GAC9C,IAAIgrD,KAAKzU,SAASv2C,GAOhB,YAAO,IAAWA,EAAI,YAAc,OAASA,EAAI,cAAgBA,EANjE,IACE,OAAOA,EAAE1D,YAAYo/D,aAAe17D,EAAE1D,YAAYt9B,MAAQ1B,OAAOmG,UAAUzF,SAAS2Z,KAAKqoB,GACzF,MAAOC,GACP,MAAO,sCAMb+qD,KAAKwO,IAAIc,QAAQmF,WAAa,SAASz/D,GACrC,IACE,IAAIC,EAAID,GAAKA,EAAE4gE,cAAe3tE,EAAIgN,IAAMA,EAAE4gE,aAAe5gE,EAAE6gE,cAE3D,IADA7tE,EAAIA,GAAK+3D,KAAKlwB,QACRqpB,SAAWlxD,EAAEysE,SACjB,OAAOzsE,EAET,MAAOpC,IAET,OAAO,MAETm6D,KAAKl9D,UAAY,GACjBk9D,KAAKl9D,UAAUizE,SAAW,SAAS/gE,GACjC,OAAO,WACL,OAAOA,IAGXgrD,KAAKl9D,UAAUkzE,MAAQ,WACrB,OAAO,GAEThW,KAAKl9D,UAAUmzE,KAAO,WACpB,OAAO,GAETjW,KAAKl9D,UAAUozE,KAAO,WACpB,OAAO,MAETlW,KAAKl9D,UAAUqiB,SAAW,SAASnQ,EAAGC,GACpC,OAAOD,GAETgrD,KAAKl9D,UAAUiT,MAAQ,SAASf,GAC9B,OAAO,WACL,MAAM3hC,MAAM2hC,KAGhBgrD,KAAKl9D,UAAU6Q,KAAO,SAASqB,GAC7B,OAAO,WACL,MAAMA,IAGVgrD,KAAKl9D,UAAUqzE,KAAO,SAASnhE,EAAGC,GAEhC,OADAA,EAAIA,GAAK,EACF,WACL,OAAOD,EAAEvB,MAAM36B,KAAMnF,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,EAAGyiB,MAGlE+qD,KAAKl9D,UAAUszE,IAAM,SAASphE,GAC5B,OAAO,WACL,OAAOxiB,UAAUwiB,KAGrBgrD,KAAKl9D,UAAUuzE,aAAe,SAASrhE,EAAGC,GACxC,IAAIhN,EAAIt0B,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,GAC9C,OAAO,WACL,IAAIyiB,EAAIthC,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,WAEnC,OADAyiB,EAAEl+B,KAAK08B,MAAMwB,EAAGhN,GACT+M,EAAEvB,MAAM36B,KAAMm8B,KAGzB+qD,KAAKl9D,UAAUwzE,gBAAkB,SAASthE,EAAGC,GAC3C,OAAO+qD,KAAKl9D,UAAUyzE,SAASvhE,EAAGgrD,KAAKl9D,UAAUizE,SAAS9gE,KAE5D+qD,KAAKl9D,UAAU0zE,QAAU,SAASxhE,EAAGC,GACnC,OAAO,SAAShN,GACd,OAAOgN,EAAID,GAAK/M,EAAI+M,IAAM/M,IAG9B+3D,KAAKl9D,UAAU2zE,QAAU,SAASzhE,EAAGC,GACnC,IAAIhN,EAAIzV,UAAWqT,EAAIoC,EAAEt2B,OACzB,OAAO,WACL,IAAIqjC,EACJnP,IAAMmP,EAAI/M,EAAEpC,EAAI,GAAG4N,MAAM36B,KAAM0Z,YAC/B,IAAK,IAAIyiB,EAAIpP,EAAI,EAAG,GAAKoP,EAAGA,IAC1BD,EAAI/M,EAAEgN,GAAGtoB,KAAK7T,KAAMk8B,GAEtB,OAAOA,IAGXgrD,KAAKl9D,UAAUyzE,SAAW,SAASvhE,GACjC,IAAIC,EAAIziB,UAAWyV,EAAIgN,EAAEtjC,OACzB,OAAO,WACL,IAAK,IAAIqjC,EAAGrzB,EAAI,EAAGA,EAAIsmB,EAAGtmB,IACxBqzB,EAAIC,EAAEtzB,GAAG8xB,MAAM36B,KAAM0Z,WAEvB,OAAOwiB,IAGXgrD,KAAKl9D,UAAU4zE,IAAM,SAAS1hE,GAC5B,IAAIC,EAAIziB,UAAWyV,EAAIgN,EAAEtjC,OACzB,OAAO,WACL,IAAK,IAAIqjC,EAAI,EAAGA,EAAI/M,EAAG+M,IACrB,IAAKC,EAAED,GAAGvB,MAAM36B,KAAM0Z,WACpB,OAAO,EAGX,OAAO,IAGXwtE,KAAKl9D,UAAU6zE,GAAK,SAAS3hE,GAC3B,IAAIC,EAAIziB,UAAWyV,EAAIgN,EAAEtjC,OACzB,OAAO,WACL,IAAK,IAAIqjC,EAAI,EAAGA,EAAI/M,EAAG+M,IACrB,GAAIC,EAAED,GAAGvB,MAAM36B,KAAM0Z,WACnB,OAAO,EAGX,OAAO,IAGXwtE,KAAKl9D,UAAU8zE,IAAM,SAAS5hE,GAC5B,OAAO,WACL,OAAQA,EAAEvB,MAAM36B,KAAM0Z,aAG1BwtE,KAAKl9D,UAAU0V,OAAS,SAASxD,EAAGC,GAClC,IAAIhN,EAAI,aAKR,OAHAA,EAAExvB,UAAYu8B,EAAEv8B,UAChBwvB,EAAI,IAAIA,EACR+M,EAAEvB,MAAMxL,EAAGt0B,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,IAC1CyV,GAET+3D,KAAKl9D,UAAU+zE,oBAAqB,EACpC7W,KAAKl9D,UAAUg0E,iBAAmB,SAAS9hE,GACzC,IAAY/M,EAARgN,GAAI,EACR,OAAO,WACL,OAAK+qD,KAAKl9D,UAAU+zE,oBAGpB5hE,IAAMhN,EAAI+M,IAAKC,GAAI,GACZhN,GAHE+M,MAMbgrD,KAAKl9D,UAAU46D,KAAO,SAAS1oD,GAC7B,IAAIC,EAAID,EACR,OAAO,WACL,GAAIC,EAAG,CACL,IAAID,EAAIC,EACRA,EAAI,KACJD,OAINgrD,KAAKl9D,UAAUi0E,SAAW,SAAS/hE,EAAGC,EAAGhN,GACvC,IAAIpC,EAAI,EACR,OAAO,SAASlkB,GACdq+E,KAAKlwB,OAAOknC,aAAanxE,GACzB,IAAIqZ,EAAI1sB,UACRqT,EAAIm6D,KAAKlwB,OAAOi6B,YAAW,WACzB/0D,EAAEvB,MAAMxL,EAAGiX,KACVjK,KAGP+qD,KAAKl9D,UAAUm0E,SAAW,SAASjiE,EAAGC,EAAGhN,GACvC,IAAIpC,EAAI,EAAGlkB,GAAI,EAAIu9B,EAAI,GAAIt6B,EAAI,WAC7BihB,EAAI,EACJlkB,IAAMA,GAAI,EAAI4nC,MACbA,EAAI,WACL1jB,EAAIm6D,KAAKlwB,OAAOi6B,WAAWnlF,EAAGqwB,GAC9BD,EAAEvB,MAAMxL,EAAGiX,IAEb,OAAO,SAASlK,GACdkK,EAAI1sB,UACJqT,EAAIlkB,GAAI,EAAK4nC,MAGjBy2C,KAAKl9D,UAAUo0E,UAAY,SAASliE,EAAGC,EAAGhN,GACxC,IAAIpC,EAAI,EAAGlkB,EAAI,WACbkkB,EAAI,GAEN,OAAO,SAASqZ,GACdrZ,IAAMA,EAAIm6D,KAAKlwB,OAAOi6B,WAAWpoF,EAAGszB,GAAID,EAAEvB,MAAMxL,EAAGzV,cAGvDwtE,KAAKwO,IAAI2I,YAAc,aAEvBnX,KAAKwO,IAAI4I,QAAU,SAASpiE,GAC1Bl8B,KAAKu+F,SAAWriE,GAElBgrD,KAAKwO,IAAI4I,QAAQ3+F,UAAUzF,SAAW,WACpC,OAAO8F,KAAKu+F,UAEdrX,KAAKwO,IAAI4I,QAAQE,EAAI,IAAItX,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQG,KAAO,IAAIvX,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQI,QAAU,IAAIxX,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQK,QAAU,IAAIzX,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQM,OAAS,IAAI1X,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQO,KAAO,IAAI3X,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQQ,QAAU,IAAI5X,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQS,MAAQ,IAAI7X,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQU,MAAQ,IAAI9X,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQW,EAAI,IAAI/X,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQY,KAAO,IAAIhY,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQa,SAAW,IAAIjY,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQc,IAAM,IAAIlY,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQe,IAAM,IAAInY,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQgB,IAAM,IAAIpY,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQiB,WAAa,IAAIrY,KAAKwO,IAAI4I,QAAQ,cACnDpX,KAAKwO,IAAI4I,QAAQkB,KAAO,IAAItY,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQmB,GAAK,IAAIvY,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQoB,OAAS,IAAIxY,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQqB,OAAS,IAAIzY,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQsB,QAAU,IAAI1Y,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQuB,OAAS,IAAI3Y,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQwB,KAAO,IAAI5Y,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQyB,KAAO,IAAI7Y,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ0B,IAAM,IAAI9Y,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ2B,SAAW,IAAI/Y,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQ4B,QAAU,IAAIhZ,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQ6B,KAAO,IAAIjZ,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ8B,SAAW,IAAIlZ,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQn2C,GAAK,IAAI++B,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ+B,IAAM,IAAInZ,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQgC,QAAU,IAAIpZ,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQiC,IAAM,IAAIrZ,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQkC,OAAS,IAAItZ,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQmC,IAAM,IAAIvZ,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQoC,IAAM,IAAIxZ,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQqC,GAAK,IAAIzZ,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQsC,GAAK,IAAI1Z,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQuC,GAAK,IAAI3Z,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQwC,MAAQ,IAAI5Z,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQyC,SAAW,IAAI7Z,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQ0C,WAAa,IAAI9Z,KAAKwO,IAAI4I,QAAQ,cACnDpX,KAAKwO,IAAI4I,QAAQ2C,OAAS,IAAI/Z,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ4C,KAAO,IAAIha,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ6C,OAAS,IAAIja,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ8C,KAAO,IAAIla,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ+C,MAAQ,IAAIna,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQgD,SAAW,IAAIpa,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQiD,GAAK,IAAIra,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQkD,GAAK,IAAIta,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQmD,GAAK,IAAIva,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQoD,GAAK,IAAIxa,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQqD,GAAK,IAAIza,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQsD,GAAK,IAAI1a,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQuD,KAAO,IAAI3a,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQwD,OAAS,IAAI5a,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQyD,OAAS,IAAI7a,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ0D,GAAK,IAAI9a,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ2D,KAAO,IAAI/a,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ4D,EAAI,IAAIhb,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQ6D,OAAS,IAAIjb,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ8D,IAAM,IAAIlb,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ+D,MAAQ,IAAInb,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQgE,IAAM,IAAIpb,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQiE,QAAU,IAAIrb,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQkE,IAAM,IAAItb,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQmE,OAAS,IAAIvb,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQoE,MAAQ,IAAIxb,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQqE,OAAS,IAAIzb,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQsE,GAAK,IAAI1b,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQuE,KAAO,IAAI3b,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQwE,KAAO,IAAI5b,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQyE,IAAM,IAAI7b,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ0E,KAAO,IAAI9b,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ2E,KAAO,IAAI/b,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ4E,KAAO,IAAIhc,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ6E,SAAW,IAAIjc,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQ8E,KAAO,IAAIlc,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQ+E,MAAQ,IAAInc,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQgF,IAAM,IAAIpc,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQiF,SAAW,IAAIrc,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQkF,SAAW,IAAItc,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQmF,OAAS,IAAIvc,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQoF,GAAK,IAAIxc,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQqF,SAAW,IAAIzc,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQsF,OAAS,IAAI1c,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQuF,OAAS,IAAI3c,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ//B,EAAI,IAAI2oB,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQwF,MAAQ,IAAI5c,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQyF,QAAU,IAAI7c,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQ0F,IAAM,IAAI9c,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ2F,SAAW,IAAI/c,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQ4F,EAAI,IAAIhd,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQ6F,GAAK,IAAIjd,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ8F,GAAK,IAAIld,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ+F,IAAM,IAAInd,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQgG,KAAO,IAAIpd,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQiG,EAAI,IAAIrd,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQkG,KAAO,IAAItd,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQmG,OAAS,IAAIvd,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQoG,QAAU,IAAIxd,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQqG,OAAS,IAAIzd,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQsG,MAAQ,IAAI1d,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQuG,OAAS,IAAI3d,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQwG,KAAO,IAAI5d,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQyG,OAAS,IAAI7d,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ0G,OAAS,IAAI9d,KAAKwO,IAAI4I,QAAQ,UAC/CpX,KAAKwO,IAAI4I,QAAQ2G,MAAQ,IAAI/d,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQ4G,IAAM,IAAIhe,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ6G,QAAU,IAAIje,KAAKwO,IAAI4I,QAAQ,WAChDpX,KAAKwO,IAAI4I,QAAQ8G,IAAM,IAAIle,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQ+G,IAAM,IAAIne,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQgH,MAAQ,IAAIpe,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQiH,MAAQ,IAAIre,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQkH,GAAK,IAAIte,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQmH,SAAW,IAAIve,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQoH,SAAW,IAAIxe,KAAKwO,IAAI4I,QAAQ,YACjDpX,KAAKwO,IAAI4I,QAAQqH,MAAQ,IAAIze,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQsH,GAAK,IAAI1e,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQuH,MAAQ,IAAI3e,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQwH,KAAO,IAAI5e,KAAKwO,IAAI4I,QAAQ,QAC7CpX,KAAKwO,IAAI4I,QAAQyH,MAAQ,IAAI7e,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQ0H,GAAK,IAAI9e,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ2H,MAAQ,IAAI/e,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQ4H,GAAK,IAAIhf,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ6H,EAAI,IAAIjf,KAAKwO,IAAI4I,QAAQ,KAC1CpX,KAAKwO,IAAI4I,QAAQ8H,GAAK,IAAIlf,KAAKwO,IAAI4I,QAAQ,MAC3CpX,KAAKwO,IAAI4I,QAAQ+H,IAAM,IAAInf,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI4I,QAAQgI,MAAQ,IAAIpf,KAAKwO,IAAI4I,QAAQ,SAC9CpX,KAAKwO,IAAI4I,QAAQiI,IAAM,IAAIrf,KAAKwO,IAAI4I,QAAQ,OAC5CpX,KAAKwO,IAAI8Q,KAAO,GAChBtf,KAAKwO,IAAI8Q,KAAKC,WAAa,CAAC/9C,MAAK,EAAI1zD,MAAK,EAAI0xG,IAAG,EAAIzyF,KAAI,EAAI0yF,SAAQ,EAAIC,OAAM,EAAIl0D,IAAG,EAAIm0D,KAAI,EAAIryF,OAAM,EAAIsyF,QAAO,EAAI1yD,MAAK,EAAIptC,MAAK,EAAInE,OAAM,EAAIvH,QAAO,EAAIyrG,OAAM,EAAIC,KAAI,GAC5K9f,KAAKwO,IAAI8Q,KAAKS,UAAY,SAAS/qE,GACjC,OAAO,IAAOgrD,KAAKwO,IAAI8Q,KAAKC,WAAWvqE,IAEzCgrD,KAAKiH,KAAO,GACZjH,KAAKiH,KAAK+Y,aAAe,GACzBhgB,KAAKiH,KAAK+Y,aAAaC,qCAAuCjgB,KAAK0N,0BAA4B1N,KAAK4N,yBAAyB5N,KAAK0N,0BAA4B,SAAW,KACzK1N,KAAKpoF,OAAOsoG,YAAc,aAE1BlgB,KAAKpoF,OAAOuoG,MAAQ,SAASnrE,EAAGC,GAC9Bn8B,KAAKsnG,iEAAmEprE,IAAMgrD,KAAKpoF,OAAOuoG,MAAME,wCAA0CprE,GAAK,GAC/In8B,KAAKwnG,wDAA0DtgB,KAAKpoF,OAAOuoG,MAAMI,cAEnFvgB,KAAKpoF,OAAOuoG,MAAM1nG,UAAU+nG,iCAAkC,EAC9DxgB,KAAKpoF,OAAOuoG,MAAM1nG,UAAUgoG,oBAAsB,WAChD,OAAO3nG,KAAKsnG,kEAEdpgB,KAAKM,QAAUN,KAAKpoF,OAAOuoG,MAAM1nG,UAAUzF,SAAW,WACpD,MAAO,SAAW8F,KAAKsnG,iEAAmE,MAE5FpgB,KAAKpoF,OAAOuoG,MAAMO,OAAS,SAAS1rE,GAClC,OAAIA,aAAagrD,KAAKpoF,OAAOuoG,OAASnrE,EAAE1D,cAAgB0uD,KAAKpoF,OAAOuoG,OAASnrE,EAAEsrE,0DAA4DtgB,KAAKpoF,OAAOuoG,MAAMI,aACpJvrE,EAAEorE,kEAEXpgB,KAAKsP,QAAQ37D,KAAK,uCAAyCqB,EAAI,KACxD,qBAETgrD,KAAKpoF,OAAOuoG,MAAMhzD,KAAO,SAASnY,GAChC,OAAO,IAAIgrD,KAAKpoF,OAAOuoG,MAAMngB,KAAKpoF,OAAOuoG,MAAME,uCAAwCrrE,IAEzFgrD,KAAKpoF,OAAOuoG,MAAMI,aAAe,GACjCvgB,KAAKpoF,OAAOuoG,MAAME,uCAAyC,GAC3DrgB,KAAKpoF,OAAOuoG,MAAMQ,MAAQ3gB,KAAKpoF,OAAOuoG,MAAMhzD,KAAK,IACjD6yC,KAAKiH,KAAK2Z,WAAa,WACrB9nG,KAAK+nG,gDAAkD,GACvD/nG,KAAKgoG,oDAAsD9gB,KAAKiH,KAAK2Z,WAAWG,yCAElF/gB,KAAKiH,KAAK2Z,WAAWnoG,UAAU+nG,iCAAkC,EACjExgB,KAAKiH,KAAK2Z,WAAWG,wCAA0C,GAC/D/gB,KAAKiH,KAAK2Z,WAAWI,aAAe,SAAShsE,GAE3C,OAAO,KADPA,EAAIgrD,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IACdrjC,OAASquF,KAAKiH,KAAK2Z,WAAWD,MAAQ3gB,KAAKiH,KAAK2Z,WAAWK,iDAAiDjsE,IAE7HgrD,KAAKiH,KAAK2Z,WAAWM,oBAAsB,SAASlsE,EAAGC,GACrD,IAAK,IAAIhN,EAAI,GAAIpC,EAAI,EAAGA,EAAIrT,UAAU7gB,OAAQk0B,IAC5CoC,EAAElxB,KAAKipF,KAAKiH,KAAK2Z,WAAWO,WAAW3uF,UAAUqT,KAEnD,OAAOm6D,KAAKiH,KAAK2Z,WAAWK,iDAAiD,IAAMjhB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAK,KAAO/M,EAAE3zB,KAAK,MAAQ,OAEzI0rF,KAAKiH,KAAK2Z,WAAWQ,SAAW,SAASpsE,GACvC,OAAOgrD,KAAKiH,KAAK2Z,WAAWK,iDAAiDjhB,KAAKiH,KAAK2Z,WAAWO,WAAWnsE,KAE/GgrD,KAAKiH,KAAK2Z,WAAWnoG,UAAUgoG,oBAAsB,WACnD,OAAO3nG,KAAK+nG,gDAAgD7tG,YAE9DgtF,KAAKM,QAAUN,KAAKiH,KAAK2Z,WAAWnoG,UAAUzF,SAAW,WACvD,MAAO,cAAgB8F,KAAK+nG,gDAAkD,MAEhF7gB,KAAKiH,KAAK2Z,WAAWF,OAAS,SAAS1rE,GACrC,OAAOgrD,KAAKiH,KAAK2Z,WAAWS,oBAAoBrsE,GAAGhiC,YAErDgtF,KAAKiH,KAAK2Z,WAAWS,oBAAsB,SAASrsE,GAClD,OAAIA,aAAagrD,KAAKiH,KAAK2Z,YAAc5rE,EAAE1D,cAAgB0uD,KAAKiH,KAAK2Z,YAAc5rE,EAAE8rE,sDAAwD9gB,KAAKiH,KAAK2Z,WAAWG,wCACzJ/rE,EAAE6rE,iDAEX7gB,KAAKsP,QAAQ37D,KAAK,4CAA8CqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IACxF,0BAETgrD,KAAKiH,KAAK2Z,WAAWO,WAAa,SAASnsE,GACzC,OAAOmhB,KAAKC,UAAUphB,GAAGzyB,QAAQ,KAAM,UAEzCy9E,KAAKiH,KAAK2Z,WAAWK,iDAAmD,SAASjsE,GAC/E,OAAO,IAAKgrD,KAAKiH,KAAK2Z,YAAYU,sCAAsCtsE,IAE1EgrD,KAAKiH,KAAK2Z,WAAWnoG,UAAU6oG,sCAAwC,SAAStsE,GAE9E,OADAl8B,KAAK+nG,gDAAkD7gB,KAAKiH,KAAK+Y,aAAaC,qCAAuCjgB,KAAKiH,KAAK+Y,aAAaC,qCAAqCpT,aAAa73D,GAAKA,EAC5Ll8B,MAETknF,KAAKiH,KAAK2Z,WAAWD,MAAQ3gB,KAAKiH,KAAK2Z,WAAWK,iDAAiD,IACnGjhB,KAAKuhB,GAAK,GACVvhB,KAAKuhB,GAAGjiD,IAAM,GACd0gC,KAAKuhB,GAAGjiD,IAAIkiD,gBAAkB,SAASxsE,GACrC,OAAOgrD,KAAKuhB,GAAGjiD,IAAImiD,gBAAgBC,gBAAgB1sE,IAErDgrD,KAAKuhB,GAAGjiD,IAAIqiD,gBAAkB,SAAS3sE,GACrCgrD,KAAKuhB,GAAGjiD,IAAImiD,gBAAgBG,gBAAgB5sE,IAE9CgrD,KAAKuhB,GAAGjiD,IAAImiD,cAAgB,WAC1B,IAAIzsE,EAAIgrD,KAAKuhB,GAAGjiD,IAAIuiD,iBACpB,GAAI,MAAQ7sE,EACV,OAAOA,EAET,MAAM3hC,MAAM,mDAEd2sF,KAAKuhB,GAAGjiD,IAAIuiD,eAAiB,WAC3B,YAAO,IAAW7hB,KAAKlwB,OAAOgyC,UAAO,IAAW9hB,KAAKlwB,OAAOgyC,IAAIJ,gBAAkB1hB,KAAKlwB,OAAOgyC,SAAM,IAAW9hB,KAAKlwB,OAAOiyC,gBAAa,IAAW/hB,KAAKlwB,OAAOiyC,UAAUL,gBAAkB1hB,KAAKlwB,OAAOiyC,eAAY,IAAW/hB,KAAKlwB,OAAO4xC,gBAAkB1hB,KAAKlwB,OAAS,MAE5QkwB,KAAKuhB,GAAGjiD,IAAI0iD,0BAA4B,WACtC,OAAO,MAAQhiB,KAAKuhB,GAAGjiD,IAAIuiD,kBAE7B7hB,KAAKuhB,GAAGU,KAAO,GACfjiB,KAAKuhB,GAAGU,KAAKC,QAAU,SAASltE,GAC9B,IAAIC,EAAI+qD,KAAKlwB,OAAOqyC,aAAeniB,KAAKlwB,OAAOsyC,kBAC/C,QAAI,IAAWntE,EAAG,CAChBA,EAAI,IAAIA,EACR,IAAK,IAAIhN,EAAI,EAAGA,EAAIzV,UAAU7gB,OAAQs2B,IACpCgN,EAAEi5D,OAAO17E,UAAUyV,IAErB,OAAOgN,EAAEitE,UAEX,OAAOliB,KAAKuhB,GAAGU,KAAKI,sBAAsBriB,KAAKrqF,MAAMg8F,QAAQn/E,aAE/DwtE,KAAKuhB,GAAGU,KAAKI,sBAAwB,SAASrtE,EAAGC,EAAGhN,GAClD,IAAIpC,EAAIm6D,KAAKlwB,OAAOqyC,aAAeniB,KAAKlwB,OAAOsyC,kBAC/C,QAAI,IAAWv8E,EAAG,CAChBA,EAAI,IAAIA,EACR,IAAK,IAAIlkB,EAAI,EAAGA,EAAIqzB,EAAErjC,OAAQgQ,IAC5BkkB,EAAEqoE,OAAOl5D,EAAErzB,GAAIsmB,GAEjB,OAAOpC,EAAEq8E,QAAQjtE,GAEnB,QAAI,IAAW+qD,KAAKlwB,OAAOwyC,KACzB,OAAOz8E,EAAI,GAAIoP,IAAMpP,EAAEt2B,KAAO0lC,GAAIhN,IAAMpC,EAAE08E,QAAUt6E,GAAI,IAAIq6E,KAAKttE,EAAGnP,GAEtE,MAAMxyB,MAAM,wDAEd2sF,KAAKwiB,KAAO,GACZxiB,KAAKwiB,KAAKC,KAAO,GACjBziB,KAAKwiB,KAAKC,KAAKC,WAAY,EAC3B1iB,KAAKwiB,KAAKC,KAAKE,OAAS3iB,KAAKwiB,KAAKC,KAAKC,YAAc,MAAQ1iB,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,MAAQ+rC,KAAKO,OAAO1pF,UAAU,EAC3f,GAAGo9C,iBAAmB,GAAK+rC,KAAKO,OAAO5uF,QAAU,KAAOquF,KAAKO,OAAO1pF,UAAU,EAAG,IAAM,KAAOmpF,KAAKO,OAAO1pF,UAAU,EAAG,KAAO,GAAKmpF,KAAKO,OAAO5uF,QAAU,OAASquF,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,gBAAkB,GAAK+rC,KAAKO,OAAO5uF,QAAU,KAAOquF,KAAKO,OAAO1pF,UAAU,EAAG,IAAM,KAAOmpF,KAAKO,OAAO1pF,UAAU,EAAG,KAAO,GAAKmpF,KAAKO,OAAO5uF,SAAW,KAAOquF,KAAKO,OAAO1pF,UAAU,EAAG,IAAM,KAAOmpF,KAAKO,OAAO1pF,UAAU,EAAG,MAAQ,QAAUmpF,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EACzf,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,gBAAkB,GAAK+rC,KAAKO,OAAO5uF,SAAW,KAAOquF,KAAKO,OAAO1pF,UAAU,EAAG,IAAM,KAAOmpF,KAAKO,OAAO1pF,UAAU,EAAG,MAAQ,QAAUmpF,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAC/e,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eAAiB,QAAU+rC,KAAKO,OAAO1pF,UAAU,EAAG,GAAGo9C,eACpJ+rC,KAAKwiB,KAAKC,KAAKG,OAAS,CAACC,IAAI,IAAUC,IAAI,IAAUC,IAAI,IAAUC,IAAI,IAAUC,IAAI,KACrFjjB,KAAKwiB,KAAKC,KAAKS,IAAM,CAACC,IAAI,EAAGC,KAAK,EAAGC,QAAQ,GAC7CrjB,KAAKwiB,KAAKC,KAAKa,MAAQ,QACvBtjB,KAAKwiB,KAAKC,KAAKc,KAAO,OACtBvjB,KAAKwiB,KAAKC,KAAKe,WAAaxjB,KAAKwiB,KAAKC,KAAKE,OAAS3iB,KAAKwiB,KAAKC,KAAKc,KAAOvjB,KAAKwiB,KAAKC,KAAKa,MACzFtjB,KAAKwiB,KAAKC,KAAKgB,UAAYzjB,KAAKwiB,KAAKC,KAAKE,OAAS3iB,KAAKwiB,KAAKC,KAAKa,MAAQtjB,KAAKwiB,KAAKC,KAAKc,KACzFvjB,KAAKwiB,KAAKC,KAAKiB,MAAQ,SAAS1uE,EAAGC,GACjC,MAAO,iBAAmBD,EAAI,EAAIA,EAAIgrD,KAAKwiB,KAAKC,KAAKS,IAAIC,IAAM,EAAInuE,EAAIgrD,KAAKwiB,KAAKC,KAAKS,IAAIE,IAAMnuE,EAAI,KAAO+qD,KAAKwiB,KAAKC,KAAKS,IAAIG,QAAU,MAAQruE,EAAI,KAAOA,EAAIgrD,KAAKwiB,KAAKC,KAAKS,IAAIE,IAAMpjB,KAAKwiB,KAAKC,KAAKS,IAAIC,KAE7MnjB,KAAKwiB,KAAKC,KAAKkB,UAAY,oEAC3B3jB,KAAKwiB,KAAKC,KAAKmB,UAAY,0CAC3B5jB,KAAKwiB,KAAKC,KAAKoB,aAAe,mBAC9B7jB,KAAKwiB,KAAKC,KAAKqB,mBAAqB,SAAS9uE,EAAGC,GAC9C,OAAOA,EAAID,EAAEzyB,QAAQy9E,KAAKwiB,KAAKC,KAAKoB,aAAc,IAAM7uE,GAE1DgrD,KAAKwiB,KAAKC,KAAKsB,YAAc,IAAIxxG,OAAO,IAAMytF,KAAKwiB,KAAKC,KAAKmB,UAAY,KACzE5jB,KAAKwiB,KAAKC,KAAKuB,YAAc,IAAIzxG,OAAO,IAAMytF,KAAKwiB,KAAKC,KAAKkB,UAAY,KACzE3jB,KAAKwiB,KAAKC,KAAKwB,UAAY,SAASjvE,EAAGC,GACrC,OAAO+qD,KAAKwiB,KAAKC,KAAKsB,YAAYruG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAE9E+qD,KAAKwiB,KAAKC,KAAKyB,WAAalkB,KAAKwiB,KAAKC,KAAKwB,UAC3CjkB,KAAKwiB,KAAKC,KAAK0B,UAAY,SAASnvE,EAAGC,GACrC,OAAO+qD,KAAKwiB,KAAKC,KAAKuB,YAAYtuG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAE9E+qD,KAAKwiB,KAAKC,KAAK2B,OAAS,IAAI7xG,OAAO,KAAOytF,KAAKwiB,KAAKC,KAAKkB,UAAY,KACrE3jB,KAAKwiB,KAAKC,KAAK4B,OAAS,IAAI9xG,OAAO,KAAOytF,KAAKwiB,KAAKC,KAAKmB,UAAY,KACrE5jB,KAAKwiB,KAAKC,KAAK6B,UAAY,SAAStvE,GAClC,OAAOgrD,KAAKwiB,KAAKC,KAAK4B,OAAO3uG,KAAKs/B,IAEpCgrD,KAAKwiB,KAAKC,KAAK8B,UAAY,SAASvvE,GAClC,OAAOgrD,KAAKwiB,KAAKC,KAAK2B,OAAO1uG,KAAKs/B,IAEpCgrD,KAAKwiB,KAAKC,KAAK+B,cAAgB,SAASxvE,GACtC,OAAQgrD,KAAKwiB,KAAKC,KAAK8B,UAAUvvE,KAAOgrD,KAAKwiB,KAAKC,KAAK6B,UAAUtvE,IAEnEgrD,KAAKwiB,KAAKC,KAAKgC,eAAiB,IAAIlyG,OAAO,MAAQytF,KAAKwiB,KAAKC,KAAKmB,UAAY,MAAQ5jB,KAAKwiB,KAAKC,KAAKkB,UAAY,KACjH3jB,KAAKwiB,KAAKC,KAAKiC,eAAiB,IAAInyG,OAAO,MAAQytF,KAAKwiB,KAAKC,KAAKkB,UAAY,MAAQ3jB,KAAKwiB,KAAKC,KAAKmB,UAAY,KACjH5jB,KAAKwiB,KAAKC,KAAKkC,cAAgB,SAAS3vE,EAAGC,GACzC,OAAO+qD,KAAKwiB,KAAKC,KAAKiC,eAAehvG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAEjF+qD,KAAKwiB,KAAKC,KAAKmC,UAAY5kB,KAAKwiB,KAAKC,KAAKkC,cAC1C3kB,KAAKwiB,KAAKC,KAAKoC,cAAgB,SAAS7vE,EAAGC,GACzC,OAAO+qD,KAAKwiB,KAAKC,KAAKgC,eAAe/uG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAEjF+qD,KAAKwiB,KAAKC,KAAKqC,UAAY9kB,KAAKwiB,KAAKC,KAAKoC,cAC1C7kB,KAAKwiB,KAAKC,KAAKsC,iBAAmB,eAClC/kB,KAAKwiB,KAAKC,KAAKuC,cAAgB,SAAShwE,EAAGC,GAEzC,OADAD,EAAIgrD,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,GAClC+qD,KAAKwiB,KAAKC,KAAKsC,iBAAiBrvG,KAAKs/B,KAAOgrD,KAAKwiB,KAAKC,KAAK0B,UAAUnvE,KAAOgrD,KAAKwiB,KAAKC,KAAKwB,UAAUjvE,IAE9GgrD,KAAKwiB,KAAKC,KAAKwC,mBAAqB,IAAI1yG,OAAO,IAAMytF,KAAKwiB,KAAKC,KAAKkB,UAAY,MAAQ3jB,KAAKwiB,KAAKC,KAAKmB,UAAY,OACnH5jB,KAAKwiB,KAAKC,KAAKyC,mBAAqB,IAAI3yG,OAAO,IAAMytF,KAAKwiB,KAAKC,KAAKmB,UAAY,MAAQ5jB,KAAKwiB,KAAKC,KAAKkB,UAAY,OACnH3jB,KAAKwiB,KAAKC,KAAK0C,YAAc,SAASnwE,EAAGC,GACvC,OAAO+qD,KAAKwiB,KAAKC,KAAKwC,mBAAmBvvG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAErF+qD,KAAKwiB,KAAKC,KAAK2C,cAAgBplB,KAAKwiB,KAAKC,KAAK0C,YAC9CnlB,KAAKwiB,KAAKC,KAAK4C,YAAc,SAASrwE,EAAGC,GACvC,OAAO+qD,KAAKwiB,KAAKC,KAAKyC,mBAAmBxvG,KAAKsqF,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,KAErF+qD,KAAKwiB,KAAKC,KAAK6C,cAAgBtlB,KAAKwiB,KAAKC,KAAK4C,YAC9CrlB,KAAKwiB,KAAKC,KAAK8C,cAAgB,qHAC/BvlB,KAAKwiB,KAAKC,KAAK+C,cAAgB,SAASxwE,GACtC,OAAOgrD,KAAKwiB,KAAKC,KAAK8C,cAAc7vG,KAAKs/B,IAE3CgrD,KAAKwiB,KAAKC,KAAKgD,oBAAsB,6CACrCzlB,KAAKwiB,KAAKC,KAAKiD,mBAAqB,SAAS1wE,EAAGC,GAC9C,IAAIhN,QAAK,IAAWgN,EAAI+qD,KAAKwiB,KAAKC,KAAKwB,UAAUjvE,GAAKC,GAAK+qD,KAAKwiB,KAAKC,KAAKG,OAAOK,IAAMjjB,KAAKwiB,KAAKC,KAAKG,OAAOI,IAC7G,OAAOhuE,EAAEzyB,QAAQy9E,KAAKwiB,KAAKC,KAAKgD,oBAAqBx9E,EAAI,KAAOA,IAElE+3D,KAAKwiB,KAAKC,KAAKkD,iBAAmB,SAAS3wE,GACzC,MAAO,KAAOA,EAAE96B,OAAO,GAAK86B,EAAEzyB,QAAQ,OAAQ,cAAgB,mBAAqByyB,EAAI,WAEzFgrD,KAAKwiB,KAAKC,KAAKmD,iBAAmB,SAAS5wE,GACzC,OAAOgrD,KAAKwiB,KAAKC,KAAKG,OAAOE,IAAM9tE,EAAIgrD,KAAKwiB,KAAKC,KAAKG,OAAOG,KAE/D/iB,KAAKwiB,KAAKC,KAAKoD,iBAAmB,SAAS7wE,GACzC,MAAO,KAAOA,EAAE96B,OAAO,GAAK86B,EAAEzyB,QAAQ,OAAQ,cAAgB,mBAAqByyB,EAAI,WAEzFgrD,KAAKwiB,KAAKC,KAAKqD,iBAAmB,SAAS9wE,GACzC,OAAOgrD,KAAKwiB,KAAKC,KAAKG,OAAOC,IAAM7tE,EAAIgrD,KAAKwiB,KAAKC,KAAKG,OAAOG,KAE/D/iB,KAAKwiB,KAAKC,KAAKsD,cAAgB,qEAC/B/lB,KAAKwiB,KAAKC,KAAKuD,QAAU,SACzBhmB,KAAKwiB,KAAKC,KAAKwD,SAAW,UAC1BjmB,KAAKwiB,KAAKC,KAAKyD,QAAU,QACzBlmB,KAAKwiB,KAAKC,KAAK0D,UAAY,SAASnxE,GAClC,OAAOA,EAAEzyB,QAAQy9E,KAAKwiB,KAAKC,KAAKsD,cAAe,gBAAgBxjG,QAAQy9E,KAAKwiB,KAAKC,KAAKuD,QAAS,QAAQzjG,QAAQy9E,KAAKwiB,KAAKC,KAAKwD,SAAUjmB,KAAKwiB,KAAKC,KAAKc,MAAMhhG,QAAQy9E,KAAKwiB,KAAKC,KAAKyD,QAASlmB,KAAKwiB,KAAKC,KAAKa,QAE9MtjB,KAAKwiB,KAAKC,KAAK2D,yBAA2B,sBAC1CpmB,KAAKwiB,KAAKC,KAAK4D,yBAA2B,sBAC1CrmB,KAAKwiB,KAAKC,KAAK6D,qBAAuB,SAAStxE,GAC7C,OAAOA,EAAEzyB,QAAQy9E,KAAKwiB,KAAKC,KAAK2D,yBAA0B,OAAY7jG,QAAQy9E,KAAKwiB,KAAKC,KAAK4D,yBAA0B,QAEzHrmB,KAAKwiB,KAAKC,KAAK8D,iBAAmB,MAClCvmB,KAAKwiB,KAAKC,KAAK+D,eAAiB,oBAChCxmB,KAAKwiB,KAAKC,KAAKgE,uBAAyB,GACxCzmB,KAAKwiB,KAAKC,KAAKiE,kBAAoB,SAAS1xE,EAAGC,GAC7C,IAAK,IAAIhN,EAAI,EAAGpC,EAAI,EAAGlkB,GAAI,EAAIu9B,EAAI8gD,KAAKwiB,KAAKC,KAAKqB,mBAAmB9uE,EAAGC,GAAGl/B,MAAMiqF,KAAKwiB,KAAKC,KAAK8D,kBAAmB3hG,EAAI,EAAGA,EAAIs6B,EAAEvtC,OAAQiT,IAAK,CAC3I,IAAI2kC,EAAIrK,EAAEt6B,GACVo7E,KAAKwiB,KAAKC,KAAKkC,cAAcp7D,IAAMthB,IAAKpC,KAAOm6D,KAAKwiB,KAAKC,KAAKsC,iBAAiBrvG,KAAK6zC,GAAK5nC,GAAI,EAAKq+E,KAAKwiB,KAAKC,KAAK0B,UAAU56D,GAAK1jB,IAAMm6D,KAAKwiB,KAAKC,KAAK+D,eAAe9wG,KAAK6zC,KAAO5nC,GAAI,GAEtL,OAAO,GAAKkkB,EAAIlkB,EAAIq+E,KAAKwiB,KAAKC,KAAKS,IAAIC,IAAMnjB,KAAKwiB,KAAKC,KAAKS,IAAIG,QAAUp7E,EAAIpC,EAAIm6D,KAAKwiB,KAAKC,KAAKgE,uBAAyBzmB,KAAKwiB,KAAKC,KAAKS,IAAIE,IAAMpjB,KAAKwiB,KAAKC,KAAKS,IAAIC,KAExKnjB,KAAKwiB,KAAKC,KAAKkE,wBAA0B,SAAS3xE,EAAGC,GACnD,OAAO+qD,KAAKwiB,KAAKC,KAAKiE,kBAAkB1xE,EAAGC,IAAM+qD,KAAKwiB,KAAKC,KAAKS,IAAIE,KAEtEpjB,KAAKwiB,KAAKC,KAAKmE,sBAAwB,SAAS5xE,EAAGC,GACjDD,IAAMC,EAAI+qD,KAAKwiB,KAAKC,KAAKiB,MAAMzuE,MAAQD,EAAE9wB,MAAM2iG,UAAY5xE,GAAK+qD,KAAKwiB,KAAKC,KAAKS,IAAIE,IAAMpjB,KAAKwiB,KAAKC,KAAKa,MAAQtjB,KAAKwiB,KAAKC,KAAKc,KAAMvuE,EAAE8xE,IAAM7xE,GAAK+qD,KAAKwiB,KAAKC,KAAKS,IAAIE,IAAM,MAAQ,QAErLpjB,KAAKwiB,KAAKC,KAAKsE,kCAAoC,SAAS/xE,EAAGC,GAC7D,OAAO+qD,KAAKwiB,KAAKC,KAAKiE,kBAAkBzxE,IACtC,KAAK+qD,KAAKwiB,KAAKC,KAAKS,IAAIC,IACtBnuE,EAAE8xE,IAAM,MACR,MACF,KAAK9mB,KAAKwiB,KAAKC,KAAKS,IAAIE,IACtBpuE,EAAE8xE,IAAM,MACR,MACF,QACE9xE,EAAE0wD,gBAAgB,SAGxB1F,KAAKwiB,KAAKC,KAAKuE,kBAAoB,aAEnChnB,KAAKiH,KAAKggB,mBAAqB,SAASjyE,EAAGC,GACzCn8B,KAAKouG,wDAA0DlyE,IAAMgrD,KAAKiH,KAAKggB,mBAAmBE,4BAA8BlyE,GAAK,GACrIn8B,KAAKsuG,6DAA+DpnB,KAAKiH,KAAKggB,mBAAmBlG,yCAEnG/gB,KAAKiH,KAAKggB,mBAAmBxuG,UAAU+nG,iCAAkC,EACzExgB,KAAKiH,KAAKggB,mBAAmBxuG,UAAUgoG,oBAAsB,WAC3D,OAAO3nG,KAAKouG,wDAAwDl0G,YAEtEgtF,KAAKiH,KAAKggB,mBAAmBxuG,UAAU4uG,yCAA0C,EACjFrnB,KAAKiH,KAAKggB,mBAAmBxuG,UAAU6uG,aAAe,WACpD,OAAOtnB,KAAKwiB,KAAKC,KAAKS,IAAIC,KAE5BnjB,KAAKiH,KAAKggB,mBAAmBxuG,UAAU8uG,gBAAkB,SAASvyE,EAAGC,GACnE,IAAIhN,EAAI+3D,KAAKiH,KAAKggB,mBAAmBvG,OAAO5nG,MAExC+sB,GADJoC,EAAI+3D,KAAKiH,KAAKggB,mBAAmBO,kBAAkB/5F,KAAKwa,IAC9C,IAAM,GAChB,OAAO+3D,KAAKiH,KAAKggB,mBAAmBQ,yDAAyDx/E,EAAE,GAAK+3D,KAAKiH,KAAKggB,mBAAmBS,iBAAiB,IAAKz/E,EAAE,IAAM,GAAI+M,GAAKgrD,KAAKiH,KAAKggB,mBAAmBS,iBAAiB,IAAK7hF,EAAGoP,KAEhO+qD,KAAKM,QAAUN,KAAKiH,KAAKggB,mBAAmBxuG,UAAUzF,SAAW,WAC/D,MAAO,sBAAwB8F,KAAKouG,wDAA0D,MAEhGlnB,KAAKiH,KAAKggB,mBAAmBvG,OAAS,SAAS1rE,GAC7C,OAAOgrD,KAAKiH,KAAKggB,mBAAmBU,uBAAuB3yE,GAAGhiC,YAEhEgtF,KAAKiH,KAAKggB,mBAAmBU,uBAAyB,SAAS3yE,GAC7D,OAAIA,aAAagrD,KAAKiH,KAAKggB,oBAAsBjyE,EAAE1D,cAAgB0uD,KAAKiH,KAAKggB,oBAAsBjyE,EAAEoyE,+DAAiEpnB,KAAKiH,KAAKggB,mBAAmBlG,wCAC1L/rE,EAAEkyE,yDAEXlnB,KAAKsP,QAAQ37D,KAAK,oDAAsDqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IAChG,kCAETgrD,KAAKiH,KAAKggB,mBAAmBzxG,OAAS,SAASw/B,EAAGC,GAChD,IAAIhN,EAAI+3D,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GACjC,IAAKgrD,KAAKiH,KAAKggB,mBAAmBW,UAAUlyG,KAAKuyB,GAC/C,MAAM50B,MAAM,sCAAwC40B,GAEtD,IAAIpC,EAAIoC,EAAE1lB,QAAQy9E,KAAKiH,KAAKggB,mBAAmBY,gBAAgB,SAAS7yE,EAAGnP,GACzE,IAAKvzB,OAAOmG,UAAUnJ,eAAeqd,KAAKsoB,EAAGpP,GAC3C,MAAMxyB,MAAM,kBAAoBwyB,EAAI,yBAA2BoC,EAAI,gDAAkDkuB,KAAKC,UAAUnhB,IAEtI,IAAItzB,EAAIszB,EAAEpP,GACV,OAAOlkB,aAAaq+E,KAAKpoF,OAAOuoG,MAAQngB,KAAKpoF,OAAOuoG,MAAMO,OAAO/+F,GAAK6rD,mBAAmB76D,OAAOgP,OAElG,OAAOq+E,KAAKiH,KAAKggB,mBAAmBQ,yDAAyD5hF,IAE/Fm6D,KAAKiH,KAAKggB,mBAAmBY,eAAiB,YAC9C7nB,KAAKiH,KAAKggB,mBAAmBW,UAAY,qFACzC5nB,KAAKiH,KAAKggB,mBAAmBO,kBAAoB,iCACjDxnB,KAAKiH,KAAKggB,mBAAmBa,iBAAmB,SAAS9yE,EAAGC,EAAGhN,EAAGpC,GAChE,OAAOm6D,KAAKiH,KAAKggB,mBAAmBzxG,OAAOw/B,EAAGC,GAAGsyE,gBAAgBt/E,EAAGpC,IAEtEm6D,KAAKiH,KAAKggB,mBAAmBjG,aAAe,SAAShsE,GACnD,OAAOgrD,KAAKiH,KAAKggB,mBAAmBQ,yDAAyDznB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,KAExHgrD,KAAKiH,KAAKggB,mBAAmBc,cAAgB,SAAS/yE,GACpD,IAAK,IAAIC,EAAI,GAAIhN,EAAI,EAAGA,EAAI+M,EAAErjC,OAAQs2B,IACpCgN,GAAK+qD,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,EAAE/M,IAElC,OAAO+3D,KAAKiH,KAAKggB,mBAAmBQ,yDAAyDxyE,IAE/F+qD,KAAKiH,KAAKggB,mBAAmBe,eAAiB,SAAShzE,GAGrD,OAFAA,EAAIgrD,KAAKuhB,GAAGU,KAAKI,sBAAsB,CAACriB,KAAKiH,KAAK2Z,WAAWF,OAAO1rE,IAAK,mBACzEA,EAAIgrD,KAAKuhB,GAAGjiD,IAAIkiD,gBAAgBxsE,GACzBgrD,KAAKiH,KAAKggB,mBAAmBQ,yDAAyDzyE,IAE/FgrD,KAAKiH,KAAKggB,mBAAmBlG,wCAA0C,GACvE/gB,KAAKiH,KAAKggB,mBAAmBQ,yDAA2D,SAASzyE,GAE/F,OADAA,EAAIgrD,KAAKiH,KAAK+Y,aAAaC,qCAAuCjgB,KAAKiH,KAAK+Y,aAAaC,qCAAqCvT,gBAAgB13D,GAAKA,EAC5I,IAAIgrD,KAAKiH,KAAKggB,mBAAmBjnB,KAAKiH,KAAKggB,mBAAmBE,2BAA4BnyE,IAEnGgrD,KAAKiH,KAAKggB,mBAAmBS,iBAAmB,SAAS1yE,EAAGC,EAAGhN,GAC7D,GAAI,MAAQA,EACV,OAAOgN,EAET,GAAI,iBAAoBhN,EACtB,OAAOA,EAAI+M,EAAIw4B,mBAAmBvlC,GAAK,GAEzC,IAAK,IAAIpC,KAAKoC,EAAG,CACf,IAAItmB,EAAIsmB,EAAEpC,GACVlkB,EAAIq+E,KAAKpsF,QAAQ+N,GAAKA,EAAI,CAACA,GAC3B,IAAK,IAAIu9B,EAAI,EAAGA,EAAIv9B,EAAEhQ,OAAQutC,IAAK,CACjC,IAAIt6B,EAAIjD,EAAEu9B,GACV,MAAQt6B,IAAMqwB,IAAMA,EAAID,GAAIC,IAAMA,EAAEtjC,OAASqjC,EAAErjC,OAAS,IAAM,IAAM67D,mBAAmB3nC,GAAK,IAAM2nC,mBAAmB76D,OAAOiS,MAGhI,OAAOqwB,GAET+qD,KAAKiH,KAAKggB,mBAAmBE,2BAA6B,GAC1DnnB,KAAKpoF,OAAOqwG,SAAW,GACvBjoB,KAAKpoF,OAAOqwG,SAASC,WAAa,SAASlzE,EAAGC,GAC5C,OAAO,GAAKD,EAAEjlB,YAAYklB,EAAG,IAE/B+qD,KAAKpoF,OAAOqwG,SAAS5uE,SAAW,SAASrE,EAAGC,GAC1C,IAAIhN,EAAI+M,EAAErjC,OAASsjC,EAAEtjC,OACrB,OAAO,GAAKs2B,GAAK+M,EAAEp1B,QAAQq1B,EAAGhN,IAAMA,GAEtC+3D,KAAKpoF,OAAOqwG,SAASE,0BAA4B,SAASnzE,EAAGC,GAC3D,OAAO,GAAK+qD,KAAKpoF,OAAOqwG,SAASG,uBAAuBnzE,EAAGD,EAAEtE,OAAO,EAAGuE,EAAEtjC,UAE3EquF,KAAKpoF,OAAOqwG,SAASI,wBAA0B,SAASrzE,EAAGC,GACzD,OAAO,GAAK+qD,KAAKpoF,OAAOqwG,SAASG,uBAAuBnzE,EAAGD,EAAEtE,OAAOsE,EAAErjC,OAASsjC,EAAEtjC,OAAQsjC,EAAEtjC,UAE7FquF,KAAKpoF,OAAOqwG,SAASK,sBAAwB,SAAStzE,EAAGC,GACvD,OAAOD,EAAEif,eAAiBhf,EAAEgf,eAE9B+rC,KAAKpoF,OAAOqwG,SAASM,oBAAsB,SAASvzE,GAClD,MAAO,cAAct/B,KAAKs/B,IAE5BgrD,KAAKpoF,OAAOqwG,SAASn3D,KAAOkvC,KAAKQ,cAAgB7tF,OAAO8F,UAAUq4C,KAAO,SAAS9b,GAChF,OAAOA,EAAE8b,QACP,SAAS9b,GACX,MAAO,iCAAiCvnB,KAAKunB,GAAG,IAElDgrD,KAAKpoF,OAAOqwG,SAASG,uBAAyB,SAASpzE,EAAGC,GACxD,IAAIhN,EAAIt1B,OAAOqiC,GAAGif,cAAepuB,EAAIlzB,OAAOsiC,GAAGgf,cAC/C,OAAOhsB,EAAIpC,GAAK,EAAIoC,GAAKpC,EAAI,EAAI,GAEnCm6D,KAAKpoF,OAAOqwG,SAASO,YAAc,SAASxzE,EAAGC,GAC7C,OAAOD,EAAEzyB,QAAQ,gBAAiB0yB,EAAI,SAAW,SAEnD+qD,KAAKpoF,OAAOqwG,SAASQ,WAAa,SAASzzE,EAAGC,GAC5C,GAAIA,EACFD,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASS,QAAS,SAASnmG,QAAQy9E,KAAKpoF,OAAOqwG,SAASU,OAAQ,QAAQpmG,QAAQy9E,KAAKpoF,OAAOqwG,SAASW,OAAQ,QAAQrmG,QAAQy9E,KAAKpoF,OAAOqwG,SAASY,SAAU,UAAUtmG,QAAQy9E,KAAKpoF,OAAOqwG,SAASa,iBAAkB,SAASvmG,QAAQy9E,KAAKpoF,OAAOqwG,SAASc,SAAU,YAC1R,CACL,IAAK/oB,KAAKpoF,OAAOqwG,SAASe,QAAQtzG,KAAKs/B,GACrC,OAAOA,GAER,GAAKA,EAAEp1B,QAAQ,OAASo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASS,QAAS,WACpE,GAAK1zE,EAAEp1B,QAAQ,OAASo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASU,OAAQ,UACnE,GAAK3zE,EAAEp1B,QAAQ,OAASo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASW,OAAQ,UACnE,GAAK5zE,EAAEp1B,QAAQ,OAASo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASY,SAAU,YACrE,GAAK7zE,EAAEp1B,QAAQ,OAASo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASa,iBAAkB,WAC7E,GAAK9zE,EAAEp1B,QAAQ,QAAYo1B,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOqwG,SAASc,SAAU,SAE3E,OAAO/zE,GAETgrD,KAAKpoF,OAAOqwG,SAASS,QAAU,KAC/B1oB,KAAKpoF,OAAOqwG,SAASU,OAAS,KAC9B3oB,KAAKpoF,OAAOqwG,SAASW,OAAS,KAC9B5oB,KAAKpoF,OAAOqwG,SAASY,SAAW,KAChC7oB,KAAKpoF,OAAOqwG,SAASa,iBAAmB,KACxC9oB,KAAKpoF,OAAOqwG,SAASc,SAAW,QAChC/oB,KAAKpoF,OAAOqwG,SAASe,QAAU,cAC/BhpB,KAAKpoF,OAAOqwG,SAASgB,iBAAmB,SAASj0E,EAAGC,GAClD,OAAO+qD,KAAKpoF,OAAOqwG,SAASO,YAAYxzE,EAAEzyB,QAAQ,MAAO,WAAY0yB,IAEvE+qD,KAAKpoF,OAAOqwG,SAASvrC,SAAW,SAAS1nC,EAAGC,GAC1C,OAAQ,GAAKD,EAAEp1B,QAAQq1B,IAEzB+qD,KAAKpoF,OAAOqwG,SAASiB,wBAA0B,SAASl0E,EAAGC,GACzD,OAAO+qD,KAAKpoF,OAAOqwG,SAASvrC,SAAS1nC,EAAEif,cAAehf,EAAEgf,gBAE1D+rC,KAAKpoF,OAAOqwG,SAASkB,gBAAkB,SAASn0E,EAAGC,GACjD,IAAK,IAAIhN,EAAI,EAAGpC,EAAIm6D,KAAKpoF,OAAOqwG,SAASn3D,KAAKn+C,OAAOqiC,IAAIj/B,MAAM,KAAM4L,EAAIq+E,KAAKpoF,OAAOqwG,SAASn3D,KAAKn+C,OAAOsiC,IAAIl/B,MAAM,KAAMmpC,EAAI18B,KAAK6mB,IAAIxD,EAAEl0B,OAAQgQ,EAAEhQ,QAASiT,EAAI,EAAG,GAAKqjB,GAAKrjB,EAAIs6B,EAAGt6B,IAAK,CACvL,IAAI2kC,EAAI1jB,EAAEjhB,IAAM,GAAI0V,EAAI3Y,EAAEiD,IAAM,GAChC,EAAG,CAGD,GAFA2kC,EAAI,iBAAiB97B,KAAK87B,IAAM,CAAC,GAAI,GAAI,GAAI,IAC7CjvB,EAAI,iBAAiB7M,KAAK6M,IAAM,CAAC,GAAI,GAAI,GAAI,IACzC,GAAKivB,EAAE,GAAG53C,QAAU,GAAK2oB,EAAE,GAAG3oB,OAChC,MAEFs2B,EAAI,GAAKshB,EAAE,GAAG53C,OAAS,EAAIg+B,SAAS4Z,EAAE,GAAI,IAC1C,IAAIvhB,EAAI,GAAK1N,EAAE,GAAG3oB,OAAS,EAAIg+B,SAASrV,EAAE,GAAI,IAC9C2N,EAAI+3D,KAAKpoF,OAAOqwG,SAASmB,iBAAiBnhF,EAAGD,IAAMg4D,KAAKpoF,OAAOqwG,SAASmB,iBAAiB,GAAK7/D,EAAE,GAAG53C,OAAQ,GAAK2oB,EAAE,GAAG3oB,SAAWquF,KAAKpoF,OAAOqwG,SAASmB,iBAAiB7/D,EAAE,GAAIjvB,EAAE,IAC9KivB,EAAIA,EAAE,GACNjvB,EAAIA,EAAE,SACC,GAAK2N,GAEhB,OAAOA,GAET+3D,KAAKpoF,OAAOqwG,SAASmB,iBAAmB,SAASp0E,EAAGC,GAClD,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,GAElC+qD,KAAKiH,KAAKoiB,QAAU,SAASr0E,EAAGC,GAC9Bn8B,KAAKwwG,6CAA+Ct0E,IAAMgrD,KAAKiH,KAAKoiB,QAAQlC,4BAA8BlyE,GAAK,GAC/Gn8B,KAAKywG,iDAAmDvpB,KAAKiH,KAAKoiB,QAAQtI,yCAE5E/gB,KAAKiH,KAAKoiB,QAAQG,iBAAmB,0BACrCxpB,KAAKiH,KAAKoiB,QAAQ5wG,UAAU+nG,iCAAkC,EAC9DxgB,KAAKiH,KAAKoiB,QAAQ5wG,UAAUgoG,oBAAsB,WAChD,OAAO3nG,KAAKwwG,6CAA6Ct2G,YAE3DgtF,KAAKiH,KAAKoiB,QAAQ5wG,UAAU4uG,yCAA0C,EACtErnB,KAAKiH,KAAKoiB,QAAQ5wG,UAAU6uG,aAAe,WACzC,OAAOtnB,KAAKwiB,KAAKC,KAAKS,IAAIC,KAE5BnjB,KAAKM,QAAUN,KAAKiH,KAAKoiB,QAAQ5wG,UAAUzF,SAAW,WACpD,MAAO,WAAa8F,KAAKwwG,6CAA+C,MAE1EtpB,KAAKiH,KAAKoiB,QAAQ3I,OAAS,SAAS1rE,GAClC,OAAIA,aAAagrD,KAAKiH,KAAKoiB,SAAWr0E,EAAE1D,cAAgB0uD,KAAKiH,KAAKoiB,SAAWr0E,EAAEu0E,mDAAqDvpB,KAAKiH,KAAKoiB,QAAQtI,wCAC7I/rE,EAAEs0E,8CAEXtpB,KAAKsP,QAAQ37D,KAAK,yCAA2CqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IACrF,uBAETgrD,KAAKiH,KAAKoiB,QAAQrI,aAAe,SAAShsE,GACxC,OAAOgrD,KAAKiH,KAAKoiB,QAAQI,8CAA8CzpB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,KAElGgrD,KAAKiH,KAAKyiB,wBAA0B,wNACpC1pB,KAAKiH,KAAKoiB,QAAQM,eAAiB,SAAS30E,GAC1C,OAAOgrD,KAAKiH,KAAKyiB,wBAAwBh0G,KAAKs/B,IAEhDgrD,KAAKiH,KAAKoiB,QAAQO,SAAW,SAAS50E,GAEpC,OADAA,EAAIgrD,KAAKiH,KAAKyiB,wBAAwBh0G,KAAKs/B,EAAEzlC,MAAQywF,KAAKuhB,GAAGjiD,IAAIkiD,gBAAgBxsE,GAAKgrD,KAAKiH,KAAKoiB,QAAQG,iBACjGxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAK4iB,kBAAoB,wCAC9B7pB,KAAKiH,KAAKoiB,QAAQS,YAAc,SAAS90E,GAEvC,IAAIC,GADJD,EAAIA,EAAEzyB,QAAQ,aAAc,KAClBzL,MAAMkpF,KAAKiH,KAAK4iB,mBAE1B,OADA50E,EAAIA,GAAK+qD,KAAKiH,KAAKyiB,wBAAwBh0G,KAAKu/B,EAAE,IAC3C+qD,KAAKiH,KAAKoiB,QAAQI,8CAA8Cx0E,EAAID,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,mBAEnGxpB,KAAKiH,KAAKoiB,QAAQU,WAAa,SAAS/0E,GAEtC,OADAgrD,KAAKpoF,OAAOqwG,SAASE,0BAA0BnzE,EAAG,UAAYA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBAC7ExpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAK+iB,iBAAmB,wEAC7BhqB,KAAKiH,KAAKoiB,QAAQY,WAAa,SAASj1E,GAEtC,OADAgrD,KAAKiH,KAAK+iB,iBAAiBt0G,KAAKo5D,mBAAmB95B,MAAQA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBAC1ExpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQa,yBAA2B,SAASl1E,GAEpD,OADAgrD,KAAKpoF,OAAOqwG,SAASE,0BAA0BnzE,EAAG,0BAA4BA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBAC7FxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQc,gBAAkB,SAASn1E,GAE3C,OADAgrD,KAAKpoF,OAAOqwG,SAASE,0BAA0BnzE,EAAG,qBAAuBA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBACxFxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQe,WAAa,SAASp1E,GAEtC,OADAgrD,KAAKpoF,OAAOqwG,SAASE,0BAA0BnzE,EAAG,SAAWgrD,KAAKiH,KAAKoiB,QAAQgB,mBAAmBr1E,KAAOA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBACxHxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQgB,mBAAqB,SAASr1E,GAC9C,IAAIC,EAAID,EAAEp1B,QAAQ,KAGlB,GAFA,EAAIq1B,IAAMD,EAAIA,EAAEn+B,UAAU,EAAGo+B,MAC7BA,EAAID,EAAEl+B,MAAM,gBAEV,OAAO,EAET,GAAI,EAAIm+B,EAAEtjC,OACR,OAAO,EAGT,KADAqjC,EAAIA,EAAEl+B,MAAM,oBAAoB,IAE9B,OAAO,EAET,IACEg4D,mBAAmB95B,GACnB,MAAO/M,GACP,OAAO,EAET,MAAO,qCAAqCvyB,KAAKs/B,IAEnDgrD,KAAKiH,KAAKoiB,QAAQiB,WAAa,SAASt1E,GAEtC,OADAgrD,KAAKpoF,OAAOqwG,SAASE,0BAA0BnzE,EAAG,YAAcA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBAC/ExpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQkB,2BAA6B,SAASv1E,EAAGC,GACzD,OAAO+qD,KAAKiH,KAAKoiB,QAAQmB,sBAAsB,mCAAoCx1E,EAAGC,IAExF+qD,KAAKiH,KAAKoiB,QAAQoB,4BAA8B,SAASz1E,EAAGC,GAC1D,OAAO+qD,KAAKiH,KAAKoiB,QAAQmB,sBAAsB,gCAAiCx1E,EAAGC,IAErF+qD,KAAKiH,KAAKoiB,QAAQqB,yBAA2B,SAAS11E,EAAGC,GACvD,OAAO+qD,KAAKiH,KAAKoiB,QAAQmB,sBAAsB,uCAAwCx1E,EAAGC,IAE5F+qD,KAAKiH,KAAKoiB,QAAQmB,sBAAwB,SAASx1E,EAAGC,EAAGhN,GAIvD,OAHC+M,EAAIA,EAAEvnB,KAAKwnB,KAAOD,EAAIA,EAAE,IAAK,IAAM/M,aAAa+3D,KAAKpoF,OAAOuoG,MAAQ,CAACngB,KAAKpoF,OAAOuoG,MAAMO,OAAOz4E,IAAMA,EAAE7iB,KAAI,SAAS4vB,GAClH,OAAOgrD,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,OAC9Bp1B,QAAQo1B,KAAOC,EAAI+qD,KAAKiH,KAAKoiB,QAAQG,mBAAqBv0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQG,iBAC7ExpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cx0E,IAEzE+qD,KAAKiH,KAAKoiB,QAAQsB,uBAAyB,SAAS31E,GAClD,OAAOgrD,KAAKiH,KAAKoiB,QAAQI,8CAA8CzpB,KAAKiH,KAAKggB,mBAAmBvG,OAAO1rE,KAE7GgrD,KAAKiH,KAAK2jB,kBAAoB,mDAC9B5qB,KAAKiH,KAAKoiB,QAAQwB,iBAAmB7qB,KAAKiH,KAAK2jB,kBAC/C5qB,KAAKiH,KAAKoiB,QAAQyB,SAAW,SAAS91E,GACpC,OAAIA,aAAagrD,KAAKiH,KAAKoiB,QAClBr0E,GAETA,EAAI,iBAAmBA,GAAKA,EAAEwrE,gCAAkCxrE,EAAEyrE,sBAAwB9tG,OAAOqiC,GACjGgrD,KAAKiH,KAAK2jB,kBAAkBl1G,KAAKs/B,KAAOA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBACvDxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,KAEzEgrD,KAAKiH,KAAKoiB,QAAQ0B,wBAA0B,SAAS/1E,EAAGC,GACtD,GAAID,aAAagrD,KAAKiH,KAAKoiB,QACzB,OAAOr0E,EAGT,GADAA,EAAI,iBAAmBA,GAAKA,EAAEwrE,gCAAkCxrE,EAAEyrE,sBAAwB9tG,OAAOqiC,GAC7FC,GAAK,UAAUv/B,KAAKs/B,GAAI,CAC1B,IAAI/M,EAAI+3D,KAAKiH,KAAKoiB,QAAQS,YAAY90E,GACtC,GAAI/M,EAAEw4E,uBAAyBzrE,EAC7B,OAAO/M,EAIX,OADA+3D,KAAKsP,QAAQ18D,OAAOotD,KAAKiH,KAAK2jB,kBAAkBl1G,KAAKs/B,GAAI,yCAA0CA,KAAOA,EAAIgrD,KAAKiH,KAAKoiB,QAAQG,kBACzHxpB,KAAKiH,KAAKoiB,QAAQI,8CAA8Cz0E,IAEzEgrD,KAAKiH,KAAKoiB,QAAQtI,wCAA0C,GAC5D/gB,KAAKiH,KAAKoiB,QAAQI,8CAAgD,SAASz0E,GACzE,OAAO,IAAIgrD,KAAKiH,KAAKoiB,QAAQrpB,KAAKiH,KAAKoiB,QAAQlC,2BAA4BnyE,IAE7EgrD,KAAKiH,KAAKoiB,QAAQ2B,YAAchrB,KAAKiH,KAAKoiB,QAAQI,8CAA8C,eAChGzpB,KAAKiH,KAAKoiB,QAAQlC,2BAA6B,GAC/CnnB,KAAKiH,KAAKgkB,UAAY,WACpBnyG,KAAKoyG,+CAAiD,GACtDpyG,KAAKqyG,mDAAqDnrB,KAAKiH,KAAKgkB,UAAUlK,yCAEhF/gB,KAAKiH,KAAKgkB,UAAUxyG,UAAU+nG,iCAAkC,EAChExgB,KAAKiH,KAAKgkB,UAAUlK,wCAA0C,GAC9D/gB,KAAKiH,KAAKgkB,UAAUjK,aAAe,SAAShsE,GAE1C,OAAI,KADJA,EAAIgrD,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IACjBrjC,OACHquF,KAAKiH,KAAKgkB,UAAUtK,OAE7B3gB,KAAKsP,QAAQ18D,OAAOotD,KAAKpoF,OAAOqwG,SAAS5uE,SAASrE,EAAG,KAAM,8CAAgDA,GAC3GgrD,KAAKsP,QAAQ18D,OAAOotD,KAAKpoF,OAAOqwG,SAASvrC,SAAS1nC,EAAG,KAAM,kFAAoFA,GACxIgrD,KAAKiH,KAAKgkB,UAAUG,gDAAgDp2E,KAE7EgrD,KAAKiH,KAAKgkB,UAAUxyG,UAAUgoG,oBAAsB,WAClD,OAAO3nG,KAAKoyG,gDAEdlrB,KAAKM,QAAUN,KAAKiH,KAAKgkB,UAAUxyG,UAAUzF,SAAW,WACtD,MAAO,aAAe8F,KAAKoyG,+CAAiD,MAE9ElrB,KAAKiH,KAAKgkB,UAAUvK,OAAS,SAAS1rE,GACpC,OAAIA,aAAagrD,KAAKiH,KAAKgkB,WAAaj2E,EAAE1D,cAAgB0uD,KAAKiH,KAAKgkB,WAAaj2E,EAAEm2E,qDAAuDnrB,KAAKiH,KAAKgkB,UAAUlK,wCACrJ/rE,EAAEk2E,gDAEXlrB,KAAKsP,QAAQ37D,KAAK,2CAA6CqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IACvF,yBAETgrD,KAAKiH,KAAKgkB,UAAUG,gDAAkD,SAASp2E,GAC7E,OAAO,IAAKgrD,KAAKiH,KAAKgkB,WAAW3J,sCAAsCtsE,IAEzEgrD,KAAKiH,KAAKgkB,UAAUxyG,UAAU6oG,sCAAwC,SAAStsE,GAE7E,OADAl8B,KAAKoyG,+CAAiDl2E,EAC/Cl8B,MAETknF,KAAKiH,KAAKgkB,UAAUtK,MAAQ3gB,KAAKiH,KAAKgkB,UAAUG,gDAAgD,IAChGprB,KAAKiH,KAAKgkB,UAAUzB,iBAAmB,YACvCxpB,KAAKiH,KAAKgkB,UAAUzyE,OAAS,SAASxD,GACpC,IAAY/M,EAARgN,EAAI,GACR,IAAKhN,KAAK+M,EAAG,CACX,IAAK,mBAAmBt/B,KAAKuyB,GAC3B,MAAM50B,MAAM,wCAA0C40B,GAExD,IAAIpC,EAAImP,EAAE/M,GACV,MAAQpC,IAAqJoP,GAAKhN,EAAI,KAAxJpC,EAAIm6D,KAAKpsF,QAAQiyB,GAAKm6D,KAAKrqF,MAAMyP,IAAIygB,EAAGm6D,KAAKiH,KAAKgkB,UAAUI,wBAAwB/2G,KAAK,KAAO0rF,KAAKiH,KAAKgkB,UAAUI,uBAAuBxlF,IAAuB,KAElL,OAAOoP,EAAI+qD,KAAKiH,KAAKgkB,UAAUG,gDAAgDn2E,GAAK+qD,KAAKiH,KAAKgkB,UAAUtK,OAE1G3gB,KAAKiH,KAAKgkB,UAAUI,uBAAyB,SAASr2E,GACpD,GAAIA,aAAagrD,KAAKiH,KAAKoiB,QACzB,MAAO,QAAUrpB,KAAKiH,KAAKoiB,QAAQ3I,OAAO1rE,GAAGzyB,QAAQ,KAAM,OAAOA,QAAQ,SAAU,QAAU,KAGhG,GADAyyB,EAAIA,aAAagrD,KAAKpoF,OAAOuoG,MAAQngB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAKgrD,KAAKiH,KAAKgkB,UAAUK,6BAA6B34G,OAAOqiC,IACvH,QAAQt/B,KAAKs/B,GACf,MAAM,IAAIgrD,KAAKsP,QAAQt9D,eAAe,uCAAwC,CAACgD,IAEjF,OAAOA,GAETgrD,KAAKiH,KAAKgkB,UAAUK,6BAA+B,SAASt2E,GAC1D,IAAIC,EAAID,EAAEzyB,QAAQy9E,KAAKiH,KAAKgkB,UAAUM,cAAe,MAAMhpG,QAAQy9E,KAAKiH,KAAKgkB,UAAUM,cAAe,MAAMhpG,QAAQy9E,KAAKiH,KAAKgkB,UAAUO,QAAS,OACjJ,OAAIxrB,KAAKiH,KAAKgkB,UAAUQ,UAAU/1G,KAAKu/B,GACjC+qD,KAAKiH,KAAKgkB,UAAUS,YAAYh2G,KAAKs/B,IAChCgrD,KAAKsP,QAAQ37D,KAAK,yCAA2CqB,GAAIgrD,KAAKiH,KAAKgkB,UAAUzB,kBAEzFxpB,KAAKiH,KAAKgkB,UAAUU,mBAAmB32E,GAGvCgrD,KAAKiH,KAAKgkB,UAAUW,2BAA2B52E,GAM/CgrD,KAAKiH,KAAKgkB,UAAUY,aAAa72E,IAL7BgrD,KAAKsP,QAAQ37D,KAAK,gGAAkGqB,GAAIgrD,KAAKiH,KAAKgkB,UAAUzB,mBAH5IxpB,KAAKsP,QAAQ37D,KAAK,+CAAiDqB,GAAIgrD,KAAKiH,KAAKgkB,UAAUzB,mBAM7FxpB,KAAKsP,QAAQ37D,KAAK,4BAA8BqsD,KAAKiH,KAAKgkB,UAAUa,qBAAuB,+BAAiC92E,GAAIgrD,KAAKiH,KAAKgkB,UAAUzB,mBAI/JxpB,KAAKiH,KAAKgkB,UAAUU,mBAAqB,SAAS32E,GAChD,IAAK,IAAIC,GAAI,EAAIhN,GAAI,EAAIpC,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IAAK,CACjD,IAAIlkB,EAAIqzB,EAAE96B,OAAO2rB,GACjB,KAAOlkB,GAAKsmB,EAAIgN,GAAKA,EAAI,KAAOtzB,GAAKszB,IAAMhN,GAAKA,GAElD,OAAOgN,GAAKhN,GAEd+3D,KAAKiH,KAAKgkB,UAAUW,2BAA6B,SAAS52E,GACxD,IAAK,IAAIC,GAAI,EAAIhN,EAAI,kBAAmBpC,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IAAK,CAChE,IAAIlkB,EAAIqzB,EAAE96B,OAAO2rB,GACjB,GAAI,KAAOlkB,EAAG,CACZ,GAAIszB,EACF,OAAO,EAETA,GAAI,OAEJ,GAAI,KAAOtzB,EAAG,CACZ,IAAKszB,EACH,OAAO,EAETA,GAAI,OAEJ,IAAKA,IAAMhN,EAAEvyB,KAAKiM,GAChB,OAAO,EAKf,OAAOszB,GAET+qD,KAAKiH,KAAKgkB,UAAUa,qBAAuB,+BAC3C9rB,KAAKiH,KAAKgkB,UAAUQ,UAAY,IAAIl5G,OAAO,IAAMytF,KAAKiH,KAAKgkB,UAAUa,qBAAuB,MAC5F9rB,KAAKiH,KAAKgkB,UAAUO,QAAUj5G,OAAO,6FAA8F,KACnIytF,KAAKiH,KAAKgkB,UAAUc,mBAAqB,2HAA2Hh2G,MAAM,KAC1KiqF,KAAKiH,KAAKgkB,UAAUM,cAAgB,IAAIh5G,OAAO,OAASytF,KAAKiH,KAAKgkB,UAAUc,mBAAmBz3G,KAAK,KAAO,iCAAkC,KAC7I0rF,KAAKiH,KAAKgkB,UAAUS,YAAc,OAClC1rB,KAAKiH,KAAKgkB,UAAUY,aAAe,SAAS72E,GAC1C,OAAOA,EAAEzyB,QAAQy9E,KAAKiH,KAAKgkB,UAAUO,SAAS,SAASx2E,EAAG/M,EAAGpC,EAAGlkB,GAC9D,IAAIszB,EAAI,GAMR,OALApP,EAAIA,EAAEtjB,QAAQ,kBAAkB,SAASyyB,EAAG/M,EAAGpC,GAE7C,OADAoP,EAAIhN,EACGpC,KAETmP,EAAIgrD,KAAKiH,KAAKoiB,QAAQyB,SAASjlF,GAAG46E,sBAC3Bx4E,EAAIgN,EAAID,EAAIC,EAAItzB,MAG3Bq+E,KAAKiH,KAAKgkB,UAAUv3E,OAAS,SAASsB,GACpC,IAAIC,EAAI,GAAIhN,EAAI,SAAS+M,GACvBgrD,KAAKpsF,QAAQohC,GAAKgrD,KAAKrqF,MAAMm/B,QAAQE,EAAG/M,GAAKgN,GAAK+qD,KAAKiH,KAAKgkB,UAAUvK,OAAO1rE,IAG/E,OADAgrD,KAAKrqF,MAAMm/B,QAAQtiB,UAAWyV,GACvBgN,EAAI+qD,KAAKiH,KAAKgkB,UAAUG,gDAAgDn2E,GAAK+qD,KAAKiH,KAAKgkB,UAAUtK,OAE1G3gB,KAAKiH,KAAK+kB,eAAiB,WACzBlzG,KAAKmzG,oDAAsD,GAC3DnzG,KAAKozG,yDAA2DlsB,KAAKiH,KAAK+kB,eAAejL,yCAE3F/gB,KAAKiH,KAAK+kB,eAAevzG,UAAU+nG,iCAAkC,EACrExgB,KAAKiH,KAAK+kB,eAAejL,wCAA0C,GACnE/gB,KAAKiH,KAAK+kB,eAAeG,WAAa,SAASn3E,EAAGC,GAChD,GAAI+qD,KAAKpoF,OAAOqwG,SAASvrC,SAAS1nC,EAAG,KACnC,MAAM3hC,MAAM,qCAAuC2hC,GAErD,IAAI/M,EAAI+M,EAAEzyB,QAAQ,wCAAyC,IAC3D,IAAK,qCAAqC7M,KAAKuyB,GAC7C,MAAM50B,MAAM,2EAA6E2hC,GAE3F,IAAKgrD,KAAKiH,KAAK+kB,eAAeI,qBAAqBnkF,GACjD,MAAM50B,MAAM,gDAAkD2hC,GAIhE,OAFAC,aAAa+qD,KAAKiH,KAAKgkB,YAAch2E,EAAI+qD,KAAKiH,KAAKgkB,UAAUzyE,OAAOvD,IACpEhN,EAAI+M,EAAI,IAAMgrD,KAAKiH,KAAKgkB,UAAUvK,OAAOzrE,GAAG1yB,QAAQ,KAAM,SAAW,IAC9Dy9E,KAAKiH,KAAK+kB,eAAeK,qDAAqDpkF,IAEvF+3D,KAAKiH,KAAK+kB,eAAeI,qBAAuB,SAASp3E,GACvD,IAAK,IAAIC,EAAI,CAAC,IAAI,IAAK,IAAI,KAAMhN,EAAI,GAAIpC,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IAAK,CACjE,IAAIlkB,EAAIqzB,EAAEnP,GACV,GAAIoP,EAAEtzB,GACJsmB,EAAElxB,KAAKk+B,EAAEtzB,SAET,GAAIq+E,KAAKthF,OAAOg+D,SAASznC,EAAGtzB,IAAMsmB,EAAE9Q,OAASxV,EAC3C,OAAO,EAIb,OAAO,GAAKsmB,EAAEt2B,QAEhBquF,KAAKiH,KAAK+kB,eAAet4E,OAAS,SAASsB,GACzC,IAAIC,EAAI,GAAIhN,EAAI,SAAS+M,GACvBgrD,KAAKpsF,QAAQohC,GAAKgrD,KAAKrqF,MAAMm/B,QAAQE,EAAG/M,GAAKgN,GAAK+qD,KAAKiH,KAAK+kB,eAAetL,OAAO1rE,IAGpF,OADAgrD,KAAKrqF,MAAMm/B,QAAQtiB,UAAWyV,GACvB+3D,KAAKiH,KAAK+kB,eAAeK,qDAAqDp3E,IAEvF+qD,KAAKiH,KAAK+kB,eAAehL,aAAe,SAAShsE,GAE/C,OAAI,KADJA,EAAIgrD,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IACjBrjC,OACHquF,KAAKiH,KAAK+kB,eAAerL,OAElC3gB,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASvrC,SAAS1nC,EAAG,KAAM,kDAAoDA,GACzGgrD,KAAKiH,KAAK+kB,eAAeK,qDAAqDr3E,KAEvFgrD,KAAKiH,KAAK+kB,eAAevzG,UAAUgoG,oBAAsB,WACvD,OAAO3nG,KAAKmzG,qDAEdjsB,KAAKM,QAAUN,KAAKiH,KAAK+kB,eAAevzG,UAAUzF,SAAW,WAC3D,MAAO,kBAAoB8F,KAAKmzG,oDAAsD,MAExFjsB,KAAKiH,KAAK+kB,eAAetL,OAAS,SAAS1rE,GACzC,OAAIA,aAAagrD,KAAKiH,KAAK+kB,gBAAkBh3E,EAAE1D,cAAgB0uD,KAAKiH,KAAK+kB,gBAAkBh3E,EAAEk3E,2DAA6DlsB,KAAKiH,KAAK+kB,eAAejL,wCAC1K/rE,EAAEi3E,qDAEXjsB,KAAKsP,QAAQ37D,KAAK,gDAAkDqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IAC5F,8BAETgrD,KAAKiH,KAAK+kB,eAAeK,qDAAuD,SAASr3E,GACvF,OAAO,IAAKgrD,KAAKiH,KAAK+kB,gBAAgB1K,sCAAsCtsE,IAE9EgrD,KAAKiH,KAAK+kB,eAAevzG,UAAU6oG,sCAAwC,SAAStsE,GAElF,OADAl8B,KAAKmzG,oDAAsDj3E,EACpDl8B,MAETknF,KAAKiH,KAAK+kB,eAAerL,MAAQ3gB,KAAKiH,KAAK+kB,eAAeK,qDAAqD,IAC/GrsB,KAAKssB,KAAO,GACZtsB,KAAKssB,KAAKvjB,UAAY,GACtB/I,KAAKssB,KAAKvjB,UAAU7rD,KAAO,GAC3B8iD,KAAKssB,KAAKvjB,UAAU7rD,KAAKqvE,0BAA4B,WACnD,IAAIv3E,EAAIgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAKsvE,gBACjC,OAAOx3E,IAAMA,EAAIA,EAAE+zD,WAAa/zD,EAAI,IAEtCgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAKsvE,cAAgB,WACvC,OAAOxsB,KAAKlwB,OAAOg5B,WAErB9I,KAAKssB,KAAKvjB,UAAU7rD,KAAKuvE,WAAazsB,KAAKssB,KAAKvjB,UAAU7rD,KAAKqvE,4BAC/DvsB,KAAKssB,KAAKvjB,UAAU7rD,KAAKwvE,aAAe,SAAS13E,GAC/CgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAKuvE,WAAaz3E,GAAKgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAKqvE,6BAEtEvsB,KAAKssB,KAAKvjB,UAAU7rD,KAAKyvE,aAAe,WACtC,OAAO3sB,KAAKssB,KAAKvjB,UAAU7rD,KAAKuvE,YAElCzsB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAiB,SAAS53E,GACjD,IAAIC,EAAI+qD,KAAKssB,KAAKvjB,UAAU7rD,KAAKyvE,eACjC,OAAO3sB,KAAKpoF,OAAOqwG,SAASvrC,SAASznC,EAAGD,IAE1CgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAK2vE,yBAA2B,SAAS73E,GAC3D,IAAIC,EAAI+qD,KAAKssB,KAAKvjB,UAAU7rD,KAAKyvE,eACjC,OAAO3sB,KAAKpoF,OAAOqwG,SAASiB,wBAAwBj0E,EAAGD,IAEzDgrD,KAAKssB,KAAKvjB,UAAU7rD,KAAK4vE,qBAAuB,SAAS93E,GACvD,IAAK,IAA2EnP,EAAvEoP,EAAI1iC,OAAO,6CAA8C,KAAM01B,EAAI,GAAOpC,EAAIoP,EAAExnB,KAAKunB,IAC5F/M,EAAElxB,KAAK,CAAC8uB,EAAE,GAAIA,EAAE,GAAIA,EAAE,SAAM,IAE9B,OAAOoC,GAET+3D,KAAKssB,KAAKvjB,UAAUpkF,QAAU,GAC9Bq7E,KAAKssB,KAAKvjB,UAAUpkF,QAAQooG,YAAc,WACxC,OAAO/sB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,UAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQqoG,SAAW,WACrC,OAAOhtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,YAAc5sB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,SAEvG5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQsoG,eAAiB,WAC3C,OAAOjtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,SAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQuoG,mBAAqB,WAC/C,OAAOltB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,SAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQwoG,oBAAsB,WAChD,OAAOntB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,QAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQyoG,cAAgB,WAC1C,OAAOptB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,YAAc5sB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,UAEvG5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ0oG,aAAe,WACzC,OAAOrtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,aAAe5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2oG,gBAAkBttB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4oG,eAAiBvtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQooG,eAAiB/sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQsoG,kBAAoBjtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQuoG,sBAAwBltB,KAAKssB,KAAKvjB,UAAUpkF,QAAQwoG,uBAAyBntB,KAAKssB,KAAKvjB,UAAUpkF,QAAQyoG,iBAAmBptB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ6oG,UAAYxtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,aAEhe5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4oG,YAAc,WACxC,OAAOvtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,UAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ8oG,iBAAmB,WAC7C,OAAQztB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,SAAW5sB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,aAAe5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ0oG,iBAAmBrtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2oG,iBAAmBttB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4oG,gBAAkBvtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQyoG,iBAAmBptB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,gBAEvV5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2oG,aAAe,WACzC,OAAQttB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,WAAa5sB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,YAAc5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQsoG,kBAEjJjtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ+oG,qBAAuB,WACjD,OAAO1tB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,cAAgB5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQgpG,YAAc3tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQipG,aAAe5tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQkpG,WAAa7tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ6oG,WAE3NxtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQkpG,QAAU7tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQooG,YAClE/sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQmpG,KAAO9tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQqoG,SAC/DhtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQopG,OAAS/tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQsoG,eACjEjtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQqpG,eAAiBhuB,KAAKssB,KAAKvjB,UAAUpkF,QAAQuoG,mBACzEltB,KAAKssB,KAAKvjB,UAAUpkF,QAAQspG,gBAAkBjuB,KAAKssB,KAAKvjB,UAAUpkF,QAAQwoG,oBAC1EntB,KAAKssB,KAAKvjB,UAAUpkF,QAAQipG,UAAY5tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQyoG,cACpEptB,KAAKssB,KAAKvjB,UAAUpkF,QAAQupG,SAAWluB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ0oG,aACnErtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQwpG,QAAUnuB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4oG,YAClEvtB,KAAKssB,KAAKvjB,UAAUpkF,QAAQypG,aAAepuB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ8oG,iBACvEztB,KAAKssB,KAAKvjB,UAAUpkF,QAAQgpG,SAAW3tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2oG,aACnEttB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ0pG,iBAAmBruB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ+oG,qBAC3E1tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ6oG,OAAS,WACnC,OAAOxtB,KAAKssB,KAAKvjB,UAAU7rD,KAAK0vE,eAAe,SAEjD5sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2pG,WAAa,WACvC,SAASt5E,EAAEA,GAET,OADAA,EAAIgrD,KAAKrqF,MAAMm7D,KAAK97B,EAAGnP,GAChBoC,EAAE+M,IAAM,GAEjB,IAAIC,EAAI+qD,KAAKssB,KAAKvjB,UAAU7rD,KAAKyvE,eACjC,GAAI3sB,KAAKssB,KAAKvjB,UAAUpkF,QAAQmpG,OAC9B,OAAO9tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4pG,cAAct5E,GAEnDA,EAAI+qD,KAAKssB,KAAKvjB,UAAU7rD,KAAK4vE,qBAAqB73E,GAClD,IAAIhN,EAAI,GACR+3D,KAAKrqF,MAAMm/B,QAAQG,GAAG,SAASD,GAC7B/M,EAAE+M,EAAE,IAAMA,EAAE,MAEd,IAAInP,EAAIm6D,KAAKhP,QAAQgP,KAAKthF,OAAO80F,YAAavrE,GAC9C,OAAO+3D,KAAKssB,KAAKvjB,UAAUpkF,QAAQkpG,UAAY74E,EAAE,CAAC,UAAW,UAAYgrD,KAAKssB,KAAKvjB,UAAUpkF,QAAQopG,SAAW/4E,EAAE,CAAC,SAAWgrD,KAAKssB,KAAKvjB,UAAUpkF,QAAQqpG,iBAAmBh5E,EAAE,CAAC,QAAUgrD,KAAKssB,KAAKvjB,UAAUpkF,QAAQgpG,WAAa34E,EAAE,CAAC,SAAU,QAAS,oBAAsBC,EAAIA,EAAE,KAAOA,EAAE,IAAM,IAEtS+qD,KAAKssB,KAAKvjB,UAAUpkF,QAAQ6pG,kBAAoB,SAASx5E,GACvD,OAAO,GAAKgrD,KAAKpoF,OAAOqwG,SAASkB,gBAAgBnpB,KAAKssB,KAAKvjB,UAAUpkF,QAAQ2pG,aAAct5E,IAE7FgrD,KAAKssB,KAAKvjB,UAAUpkF,QAAQ4pG,cAAgB,SAASv5E,GACnD,IAAIC,EAAI,iBAAiBxnB,KAAKunB,GAC9B,GAAIC,GAAKA,EAAE,GACT,OAAOA,EAAE,GAEXA,EAAI,GACJ,IAAIhN,EAAI,kBAAkBxa,KAAKunB,GAC/B,GAAI/M,GAAKA,EAAE,GACT,GAAI+M,EAAI,mBAAmBvnB,KAAKunB,GAAI,OAAS/M,EAAE,GAC7C,GAAI+M,GAAKA,EAAE,GACT,OAAOA,EAAE,IACP,IAAK,MACHC,EAAI,MACJ,MACF,IAAK,MACHA,EAAI,MACJ,MACF,IAAK,MACHA,EAAI,OACJ,MACF,IAAK,MACHA,EAAI,YAGRA,EAAI,WAGNA,EAAIhN,EAAE,GAGV,OAAOgN,GAET+qD,KAAKiH,KAAKwnB,SAAW,WACnB31G,KAAK41G,8CAAgD,GACrD51G,KAAK61G,kDAAoD3uB,KAAKiH,KAAKwnB,SAAS1N,wCAC5EjoG,KAAK81G,KAAO,MAEd5uB,KAAKiH,KAAKwnB,SAASI,sBAAwB7uB,KAAKM,MAChDN,KAAKiH,KAAKwnB,SAASK,yBAA0B,EAC7C9uB,KAAKiH,KAAKwnB,SAASh2G,UAAU4uG,yCAA0C,EACvErnB,KAAKiH,KAAKwnB,SAASh2G,UAAU6uG,aAAe,WAC1C,OAAOxuG,KAAK81G,MAEd5uB,KAAKiH,KAAKwnB,SAASh2G,UAAU+nG,iCAAkC,EAC/DxgB,KAAKiH,KAAKwnB,SAASh2G,UAAUgoG,oBAAsB,WACjD,OAAO3nG,KAAK41G,8CAA8C17G,YAE5DgtF,KAAKM,QAAUN,KAAKiH,KAAKwnB,SAASh2G,UAAUzF,SAAW,WACrD,MAAO,YAAc8F,KAAK41G,8CAAgD,MAE5E1uB,KAAKiH,KAAKwnB,SAAS/N,OAAS,SAAS1rE,GACnC,OAAOgrD,KAAKiH,KAAKwnB,SAASM,kBAAkB/5E,GAAGhiC,YAEjDgtF,KAAKiH,KAAKwnB,SAASM,kBAAoB,SAAS/5E,GAC9C,OAAIA,aAAagrD,KAAKiH,KAAKwnB,UAAYz5E,EAAE1D,cAAgB0uD,KAAKiH,KAAKwnB,UAAYz5E,EAAE25E,oDAAsD3uB,KAAKiH,KAAKwnB,SAAS1N,wCACjJ/rE,EAAE05E,+CAEX1uB,KAAKsP,QAAQ37D,KAAK,0CAA4CqB,EAAI,aAAegrD,KAAKkF,OAAOlwD,IACtF,wBAETgrD,KAAKiH,KAAKwnB,SAAShG,WAAa,SAASzzE,GACvC,GAAIA,aAAagrD,KAAKiH,KAAKwnB,SACzB,OAAOz5E,EAET,IAAIC,EAAI,iBAAmBD,EAAG/M,EAAI,KAGlC,OAFAgN,GAAKD,EAAEqyE,0CAA4Cp/E,EAAI+M,EAAEsyE,gBACzDtyE,EAAIC,GAAKD,EAAEwrE,gCAAkCxrE,EAAEyrE,sBAAwB9tG,OAAOqiC,GACvEgrD,KAAKiH,KAAKwnB,SAASO,+CAA+ChvB,KAAKpoF,OAAOqwG,SAASQ,WAAWzzE,GAAI/M,IAE/G+3D,KAAKiH,KAAKwnB,SAASQ,6BAA+B,SAASj6E,GACzD,OAAIA,aAAagrD,KAAKiH,KAAKwnB,SAClBz5E,GAETA,EAAIgrD,KAAKiH,KAAKwnB,SAAShG,WAAWzzE,GAC3BgrD,KAAKiH,KAAKwnB,SAASO,+CAA+ChvB,KAAKpoF,OAAOqwG,SAASO,YAAYxoB,KAAKiH,KAAKwnB,SAAS/N,OAAO1rE,IAAKA,EAAEsyE,kBAE7ItnB,KAAKiH,KAAKwnB,SAASS,sCAAwC,SAASl6E,GAClE,OAAIA,aAAagrD,KAAKiH,KAAKwnB,SAClBz5E,GAETA,EAAIgrD,KAAKiH,KAAKwnB,SAAShG,WAAWzzE,GAC3BgrD,KAAKiH,KAAKwnB,SAASO,+CAA+ChvB,KAAKpoF,OAAOqwG,SAASgB,iBAAiBjpB,KAAKiH,KAAKwnB,SAAS/N,OAAO1rE,IAAKA,EAAEsyE,kBAElJtnB,KAAKiH,KAAKwnB,SAASthE,KAAO6yC,KAAKiH,KAAKwnB,SAAShG,WAC7CzoB,KAAKiH,KAAKwnB,SAASU,oBAAsB,kBACzCnvB,KAAKiH,KAAKwnB,SAASW,gBAAkB,CAACC,QAAO,EAAIC,MAAK,EAAI3pF,MAAK,EAAI4pF,YAAW,EAAIC,MAAK,EAAIC,UAAS,EAAIC,QAAO,EAAIlnB,KAAI,GACvHxI,KAAKiH,KAAKwnB,SAASkB,uBAAyB,CAACjY,QAAO,EAAIM,MAAK,EAAI4B,OAAM,EAAIqB,QAAO,EAAIU,MAAK,EAAII,MAAK,EAAIG,MAAK,EAAIK,QAAO,EAAIgB,QAAO,EAAIQ,OAAM,EAAII,KAAI,EAAII,UAAS,GAClKve,KAAKiH,KAAKwnB,SAASj2E,OAAS,SAASxD,EAAGC,EAAGhN,GAEzC,OADA+3D,KAAKiH,KAAKwnB,SAASmB,cAAcj9G,OAAOqiC,IACjCgrD,KAAKiH,KAAKwnB,SAASoB,kDAAkDl9G,OAAOqiC,GAAIC,EAAGhN,IAE5F+3D,KAAKiH,KAAKwnB,SAASmB,cAAgB,SAAS56E,GAC1C,IAAKgrD,KAAKiH,KAAKwnB,SAASU,oBAAoBz5G,KAAKs/B,GAC/C,MAAM3hC,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,qBAAuB75E,EAAI,KAAO,IAE3F,GAAIA,EAAE/hC,gBAAiB+sF,KAAKiH,KAAKwnB,SAASkB,uBACxC,MAAMt8G,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,aAAe75E,EAAI,iCAAmC,KAGjHgrD,KAAKiH,KAAKwnB,SAASqB,aAAe,SAAS96E,EAAGC,EAAGhN,EAAGpC,GAClDmP,GAAKgrD,KAAKiH,KAAKggB,mBAAmBvG,OAAO1rE,GACzC,IAAIrzB,EAAI,GAIR,OAHAA,EAAE6mF,IAAMxzD,GAAK,KACbrzB,EAAEouG,OAAS96E,GAAK+qD,KAAKiH,KAAKwnB,SAAS/N,OAAOzrE,GAC1CD,EAAIgrD,KAAKiH,KAAKwnB,SAASuB,kBAAkBruG,EAAG,CAACsuG,QAAQ,IAAKhoF,GACnD+3D,KAAKiH,KAAKwnB,SAASoB,kDAAkD,SAAU76E,EAAGnP,IAE3Fm6D,KAAKiH,KAAKwnB,SAASyB,oBAAsB,SAASl7E,EAAGC,EAAGhN,EAAGpC,GACzD,IAAKm6D,KAAKiH,KAAKwnB,SAAS0B,sBACtB,MAAM98G,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,kDAAoD,IAE7G,IAAIltG,EAAI,GAKR,OAJAA,EAAE6mF,IAAMxzD,EAAIgrD,KAAKiH,KAAKoiB,QAAQ3I,OAAO1gB,KAAKiH,KAAKoiB,QAAQyB,SAAS91E,IAAM,KACtErzB,EAAEouG,OAAS96E,GAAK,KAChBtzB,EAAEsuG,QAAU,GACZj7E,EAAIgrD,KAAKiH,KAAKwnB,SAASuB,kBAAkBruG,EAAG,GAAIsmB,GACzC+3D,KAAKiH,KAAKwnB,SAASoB,kDAAkD,SAAU76E,EAAGnP,IAE3Fm6D,KAAKiH,KAAKwnB,SAAS0B,oBAAsB,WACvC,OAAOnwB,KAAKlwB,OAAOsgD,mBAAqB,YAAapwB,KAAKlwB,OAAOsgD,kBAAkB33G,WAErFunF,KAAKiH,KAAKwnB,SAAS4B,gBAAkB,SAASr7E,EAAGC,GAC/C+qD,KAAKiH,KAAKggB,mBAAmBvG,OAAO1rE,GACpC,IAAI/M,EAAI+3D,KAAKiH,KAAKwnB,SAASuB,kBAAkB,CAACxnB,IAAIxzD,GAAI,GAAIC,GAC1D,OAAO+qD,KAAKiH,KAAKwnB,SAASoB,kDAAkD,SAAU5nF,IAExF+3D,KAAKiH,KAAKwnB,SAAS5hB,aAAe,SAAS73D,EAAGC,GAC5C,IAAK,IAAIhN,KAAKgN,EAAG,CACf,IAAIpP,EAAIoC,EAAEgsB,cACV,GAAI,YAAcpuB,GAAK,OAASA,GAAK,QAAUA,GAAK,QAAUA,EAC5D,MAAMxyB,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,eAAiBhpF,EAAI,cAAgB,IAKhG,IAFAoC,EAAI,GACJ+M,EAAIgrD,KAAKrqF,MAAM+9B,OAAOsB,GACjBnP,EAAI,EAAGA,EAAImP,EAAErjC,OAAQk0B,IACxBoC,GAAK+3D,KAAKiH,KAAK2Z,WAAWF,OAAO1rE,EAAEnP,IAGrC,OADAoC,EAAI+3D,KAAKiH,KAAKwnB,SAASO,+CAA+C/mF,EAAG+3D,KAAKwiB,KAAKC,KAAKS,IAAIG,SACrFrjB,KAAKiH,KAAKwnB,SAASoB,kDAAkD,SAAU56E,EAAGhN,IAE3F+3D,KAAKiH,KAAKwnB,SAAS6B,YAAc,SAASt7E,EAAGC,GAC3C,IAAIhN,EAAI+3D,KAAKiH,KAAKwnB,SAASuB,kBAAkB,CAACzgH,KAAK,YAAa,GAAI0lC,GAAIpP,EAAI,GAC5EmP,EAAIgrD,KAAKrqF,MAAM+9B,OAAOsB,GACtB,IAAK,IAAIrzB,EAAI,EAAGA,EAAIqzB,EAAErjC,OAAQgQ,IAC5BkkB,GAAKm6D,KAAKiH,KAAK+kB,eAAetL,OAAO1rE,EAAErzB,IAGzC,OADAkkB,EAAIm6D,KAAKiH,KAAKwnB,SAASO,+CAA+CnpF,EAAGm6D,KAAKwiB,KAAKC,KAAKS,IAAIG,SACrFrjB,KAAKiH,KAAKwnB,SAASoB,kDAAkD,QAAS5nF,EAAGpC,IAE1Fm6D,KAAKiH,KAAKwnB,SAAS8B,kBAAoB,SAASv7E,EAAGC,GACjD,IAAIhN,EAAI+3D,KAAKiH,KAAKoiB,QAAQ3I,OAAO1gB,KAAKiH,KAAKoiB,QAAQyB,SAAS91E,IAE5D,OADCgrD,KAAKssB,KAAKvjB,UAAUpkF,QAAQmpG,QAAU9tB,KAAKssB,KAAKvjB,UAAUpkF,QAAQopG,WAAa/tB,KAAKpoF,OAAOqwG,SAASvrC,SAASz0C,EAAG,OAASA,EAAI,IAAMA,EAAE1lB,QAAQ,KAAM,OAAS,KACtJy9E,KAAKiH,KAAKwnB,SAASoB,kDAAkD,OAAQ,CAAC,aAAa,UAAWl1G,SAASs6B,GAAK,GAAK,SAAWhN,KAE7I+3D,KAAKiH,KAAKwnB,SAAS+B,qBAAuB,SAASx7E,EAAGC,EAAGhN,GACvD,GAAIA,aAAa+3D,KAAKpoF,OAAOuoG,MAC3Bl4E,EAAI+3D,KAAKpoF,OAAOuoG,MAAMO,OAAOz4E,QAE7B,GAAI,SAAWgN,EAAEgf,cAAe,CAC9B,IAAI+rC,KAAKiH,KAAKwnB,SAASK,wBAGrB,MAAMz7G,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,mCAAqC,IAF5F5mF,EAAI+3D,KAAKiH,KAAKwnB,SAASgC,eAAexoF,OAInC,CACL,GAAI,OAAOvyB,KAAKu/B,GACd,MAAM5hC,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,cAAgB55E,EAAI,wCAA0ChN,EAAI,WAAa,IAExI,GAAIgN,EAAEgf,gBAAiB+rC,KAAKiH,KAAKwnB,SAASW,gBACxC,GAAInnF,aAAa+3D,KAAKiH,KAAKggB,mBACzBh/E,EAAI+3D,KAAKiH,KAAKggB,mBAAmBvG,OAAOz4E,QAExC,GAAIA,aAAa+3D,KAAKiH,KAAKoiB,QACzBphF,EAAI+3D,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,OACxB,CACL,GAAI,iBAAoBA,EAGtB,MAAM50B,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,cAAgB55E,EAAI,aAAeD,EAAI,sEAAwE/M,EAAI,WAAa,IAFvLA,EAAI+3D,KAAKiH,KAAKoiB,QAAQyB,SAAS7iF,GAAGw4E,uBAW9C,OAFAx4E,EAAEu4E,kCAAoCv4E,EAAIA,EAAEw4E,uBAC5CzgB,KAAKsP,QAAQ18D,OAAO,iBAAoB3K,GAAK,iBAAoBA,EAAG,+CAAiDA,EAAI,gBAAkBA,GACpIgN,EAAI,KAAO+qD,KAAKpoF,OAAOqwG,SAASQ,WAAW91G,OAAOs1B,IAAM,KAEjE+3D,KAAKiH,KAAKwnB,SAASgC,eAAiB,SAASz7E,GAC3C,IAAKgrD,KAAKzU,SAASv2C,GACjB,MAAM3hC,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,yFAA2F75E,EAAI,WAAaA,EAAI,IAGzK,OADAA,aAAagrD,KAAKiH,KAAKgkB,YAAcj2E,EAAIgrD,KAAKiH,KAAKgkB,UAAUzyE,OAAOxD,IAC7DgrD,KAAKiH,KAAKgkB,UAAUvK,OAAO1rE,IAEpCgrD,KAAKiH,KAAKwnB,SAASiC,cAAgB,SAAS17E,EAAGC,EAAGhN,EAAGpC,GAGnD,OAFAoP,EAAI+qD,KAAKiH,KAAKwnB,SAASj2E,OAAOvD,EAAGhN,EAAGpC,IAClC+oF,KAAO55E,EACFC,GAET+qD,KAAKiH,KAAKwnB,SAASn6G,KAAO,SAAS0gC,EAAGC,GACpC,IAAIhN,EAAI+3D,KAAKiH,KAAKwnB,SAAShG,WAAWzzE,GAAInP,EAAIoC,EAAEq/E,eAAgB3lG,EAAI,GAAIu9B,EAAI,SAASlK,GACnFgrD,KAAKpsF,QAAQohC,GAAKgrD,KAAKrqF,MAAMm/B,QAAQE,EAAGkK,IAAMlK,EAAIgrD,KAAKiH,KAAKwnB,SAAShG,WAAWzzE,GAAIrzB,EAAE5K,KAAKipF,KAAKiH,KAAKwnB,SAAS/N,OAAO1rE,IAAKA,EAAIA,EAAEsyE,eAAgBzhF,GAAKm6D,KAAKwiB,KAAKC,KAAKS,IAAIG,QAAUx9E,EAAImP,EAAIA,GAAKgrD,KAAKwiB,KAAKC,KAAKS,IAAIG,SAAWx9E,GAAKmP,IAAMnP,EAAI,QAG9O,OADAm6D,KAAKrqF,MAAMm/B,QAAQG,EAAGiK,GACf8gD,KAAKiH,KAAKwnB,SAASO,+CAA+CrtG,EAAErN,KAAK0rF,KAAKiH,KAAKwnB,SAAS/N,OAAOz4E,IAAKpC,IAEjHm6D,KAAKiH,KAAKwnB,SAAS/6E,OAAS,SAASsB,GACnC,OAAOgrD,KAAKiH,KAAKwnB,SAASn6G,KAAK0rF,KAAKiH,KAAKwnB,SAAS9N,MAAOhtG,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,aAEtFwtE,KAAKiH,KAAKwnB,SAASkC,cAAgB,SAAS37E,EAAGC,GAC7C,IAAIhN,EAAI+3D,KAAKiH,KAAKwnB,SAAS/6E,OAAOssD,KAAKrqF,MAAMzC,MAAMsf,UAAW,IAE9D,OADAyV,EAAE2mF,KAAO55E,EACF/M,GAET+3D,KAAKiH,KAAKwnB,SAAS1N,wCAA0C,GAC7D/gB,KAAKiH,KAAKwnB,SAASO,+CAAiD,SAASh6E,EAAGC,GAC9E,OAAO,IAAK+qD,KAAKiH,KAAKwnB,UAAUnN,sCAAsCtsE,EAAGC,IAE3E+qD,KAAKiH,KAAKwnB,SAASh2G,UAAU6oG,sCAAwC,SAAStsE,EAAGC,GAG/E,OAFAn8B,KAAK41G,8CAAgD1uB,KAAKiH,KAAK+Y,aAAaC,qCAAuCjgB,KAAKiH,KAAK+Y,aAAaC,qCAAqC3T,WAAWt3D,GAAKA,EAC/Ll8B,KAAK81G,KAAO35E,EACLn8B,MAETknF,KAAKiH,KAAKwnB,SAASoB,kDAAoD,SAAS76E,EAAGC,EAAGhN,GACpF,IAAIpC,EAAI,KACJlkB,EAAI,IAAMqzB,EAAIgrD,KAAKiH,KAAKwnB,SAASmC,oBAAoB57E,EAAGC,GAI5D,OAHA,MAAQhN,EAAIA,EAAI,GAAK+3D,KAAKpsF,QAAQq0B,KAAOA,EAAI,CAACA,IAC9C+3D,KAAKwO,IAAI8Q,KAAKS,UAAU/qE,EAAEif,gBAAkB+rC,KAAKsP,QAAQ18D,QAAQ3K,EAAEt2B,OAAQ,aAAeqjC,EAAI,6BAA8BrzB,GAAK,MAAQkkB,EAAIm6D,KAAKiH,KAAKwnB,SAAS/6E,OAAOzL,GAAItmB,GAAK,IAAMq+E,KAAKiH,KAAKwnB,SAAS/N,OAAO76E,GAAK,KAAOmP,EAAI,IAAKnP,EAAIA,EAAEyhF,iBAC1OtyE,EAAIC,GAAKA,EAAE6xE,OAASjhF,EAAI,oBAAoBnwB,KAAKs/B,GAAKgrD,KAAKwiB,KAAKC,KAAKS,IAAIG,QAAU,MAC7ErjB,KAAKiH,KAAKwnB,SAASO,+CAA+CrtG,EAAGkkB,IAE9Em6D,KAAKiH,KAAKwnB,SAASmC,oBAAsB,SAAS57E,EAAGC,GACnD,IAAIhN,EAAI,GACR,GAAIgN,EACF,IAAK,IAAIpP,KAAKoP,EAAG,CACf,IAAK+qD,KAAKiH,KAAKwnB,SAASU,oBAAoBz5G,KAAKmwB,GAC/C,MAAMxyB,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,2BAA6BhpF,EAAI,KAAO,IAEjG,IAAIlkB,EAAIszB,EAAEpP,GACV,MAAQlkB,IAAMsmB,GAAK,IAAM+3D,KAAKiH,KAAKwnB,SAAS+B,qBAAqBx7E,EAAGnP,EAAGlkB,IAG3E,OAAOsmB,GAET+3D,KAAKiH,KAAKwnB,SAASuB,kBAAoB,SAASh7E,EAAGC,EAAGhN,GACpD,IAAYtmB,EAARkkB,EAAI,GACR,IAAKlkB,KAAKqzB,EACRgrD,KAAKsP,QAAQ18D,OAAOjxB,EAAEsyC,eAAiBtyC,EAAG,sBAAuBkkB,EAAElkB,GAAKqzB,EAAErzB,GAE5E,IAAKA,KAAKszB,EACR+qD,KAAKsP,QAAQ18D,OAAOjxB,EAAEsyC,eAAiBtyC,EAAG,sBAAuBkkB,EAAElkB,GAAKszB,EAAEtzB,GAE5E,GAAIsmB,EACF,IAAKtmB,KAAKsmB,EAAG,CACX,IAAIiX,EAAIv9B,EAAEsyC,cACV,GAAI/U,KAAKlK,EACP,MAAM3hC,MAAM2sF,KAAKiH,KAAKwnB,SAASI,sBAAwB,oBAAsB3vE,EAAI,qBAAuBv9B,EAAI,iBAAmBsmB,EAAEtmB,GAAK,IAAM,IAE9Iu9B,KAAKjK,UAAYpP,EAAEqZ,GACnBrZ,EAAElkB,GAAKsmB,EAAEtmB,GAGb,OAAOkkB,GAETm6D,KAAKiH,KAAKwnB,SAASoC,aAAe7wB,KAAKiH,KAAKwnB,SAASO,+CAA+C,kBAAmBhvB,KAAKwiB,KAAKC,KAAKS,IAAIG,SAC1IrjB,KAAKiH,KAAKwnB,SAAS9N,MAAQ3gB,KAAKiH,KAAKwnB,SAASO,+CAA+C,GAAIhvB,KAAKwiB,KAAKC,KAAKS,IAAIG,SACpHrjB,KAAKiH,KAAKwnB,SAASlW,GAAKvY,KAAKiH,KAAKwnB,SAASO,+CAA+C,OAAQhvB,KAAKwiB,KAAKC,KAAKS,IAAIG,SACrHrjB,KAAKiH,KAAK6pB,qBAAuB,GACjC9wB,KAAKiH,KAAK6pB,qBAAqBC,6CAA+C,SAAS/7E,EAAGC,EAAGhN,GAG3F,OAFA+3D,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAKwnB,SAASO,+CAA+C/5E,EAAGhN,GAAK,OAEnF+3D,KAAKiH,KAAK6pB,qBAAqBE,+CAAiD,SAASh8E,EAAGC,GAG1F,OAFA+qD,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAK2Z,WAAWK,iDAAiDhsE,IAE/E+qD,KAAKiH,KAAK6pB,qBAAqBG,8CAAgD,SAASj8E,EAAGC,GAGzF,OAFA+qD,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAKgkB,UAAUG,gDAAgDn2E,IAE7E+qD,KAAKiH,KAAK6pB,qBAAqBI,mDAAqD,SAASl8E,EAAGC,GAG9F,OAFA+qD,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAK+kB,eAAeK,qDAAqDp3E,IAEvF+qD,KAAKiH,KAAK6pB,qBAAqBK,4CAA8C,SAASn8E,EAAGC,GAGvF,OAFA+qD,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAKoiB,QAAQI,8CAA8Cx0E,IAEzE+qD,KAAKiH,KAAK6pB,qBAAqBM,uDAAyD,SAASp8E,EAAGC,GAGlG,OAFA+qD,KAAKsP,QAAQU,aAAahQ,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,GAAI,8BACvDgrD,KAAKsP,QAAQ18D,QAAQotD,KAAKpoF,OAAOqwG,SAASM,oBAAoBvoB,KAAKpoF,OAAOuoG,MAAMO,OAAO1rE,IAAK,wCACrFgrD,KAAKiH,KAAKggB,mBAAmBQ,yDAAyDxyE,IAE/F+qD,KAAKwO,IAAI6iB,KAAO,GAChBrxB,KAAKwO,IAAI6iB,KAAKC,2BAA6B,CAACC,WAAW,aAAcC,SAAS,WAAYC,YAAY,cAAeC,UAAU,aAC/H1xB,KAAKwO,IAAI6iB,KAAKM,mBAAqB,SAAS38E,EAAGC,EAAGhN,GAChD+M,EAAE48E,mBAAmB38E,EAAG+qD,KAAKiH,KAAKwnB,SAASM,kBAAkB9mF,KAE/D+3D,KAAKwO,IAAI6iB,KAAKQ,gCAAkC,CAAC9V,MAAK,EAAIwB,QAAO,EAAIQ,OAAM,EAAII,KAAI,EAAII,UAAS,GAChGve,KAAKwO,IAAI6iB,KAAKS,6BAA+B9xB,KAAKl9D,UAAUg0E,kBAAiB,WAC3E,GAAI9W,KAAKM,OAAS,oBAAuBvyB,SACvC,OAAO,EAET,IAAI/4B,EAAI+4B,SAASq4B,cAAc,OAAQnxD,EAAI84B,SAASq4B,cAAc,OAGlE,OAFAnxD,EAAEqxD,YAAYv4B,SAASq4B,cAAc,QACrCpxD,EAAEsxD,YAAYrxD,KACV+qD,KAAKM,QAAUtrD,EAAE+8E,aAGrB98E,EAAID,EAAE+8E,WAAWA,WACjB/8E,EAAEg9E,UAAYhyB,KAAKiH,KAAKwnB,SAASM,kBAAkB/uB,KAAKiH,KAAKwnB,SAAS9N,OAC9D1rE,EAAEg9E,mBAEZjyB,KAAKwO,IAAI6iB,KAAKa,iCAAmC,SAASl9E,EAAGC,GAC3D,GAAI+qD,KAAKwO,IAAI6iB,KAAKS,+BAChB,KAAO98E,EAAEm9E,WACPn9E,EAAEyxD,YAAYzxD,EAAEm9E,WAGpBn9E,EAAEg9E,UAAYhyB,KAAKiH,KAAKwnB,SAASM,kBAAkB95E,IAErD+qD,KAAKwO,IAAI6iB,KAAKe,aAAe,SAASp9E,EAAGC,GACvC,GAAI+qD,KAAKsP,QAAQC,eAAgB,CAC/B,IAAItnE,EAAI+M,EAAEq9E,QAAQp/G,cAClB,GAAI+sF,KAAKwO,IAAI6iB,KAAKQ,gCAAgC5pF,GAChD,MAAM50B,MAAM,+DAAiE2hC,EAAEq9E,QAAU,KAG7FryB,KAAKwO,IAAI6iB,KAAKa,iCAAiCl9E,EAAGC,IAEpD+qD,KAAKwO,IAAI6iB,KAAKiB,aAAe,SAASt9E,EAAGC,GACvCD,EAAEu9E,UAAYvyB,KAAKiH,KAAKwnB,SAASM,kBAAkB95E,IAErD+qD,KAAKwO,IAAI6iB,KAAKmB,qBAAuB,SAASx9E,EAAGC,GAC/C,IAAIhN,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvF+qD,KAAKwO,IAAIc,QAAQiG,wBAAwBvgE,GAAGq6E,OAASrvB,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEhF+3D,KAAKwO,IAAI6iB,KAAKoB,oBAAsB,SAASz9E,EAAGC,GAC9C,IAAIhN,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvF+qD,KAAKwO,IAAIc,QAAQwF,0BAA0B9/D,GAAG09E,WAAa1yB,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEtF+3D,KAAKwO,IAAI6iB,KAAKsB,mBAAqB,SAAS39E,EAAGC,GAC7C,IAAIhN,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvF+qD,KAAKwO,IAAIc,QAAQ6F,yBAAyBngE,GAAG09E,WAAa1yB,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAErF+3D,KAAKwO,IAAI6iB,KAAKuB,SAAW,SAAS59E,EAAGC,GACnCD,EAAE9wB,MAAM2uG,QAAU7yB,KAAKiH,KAAKgkB,UAAUvK,OAAOzrE,IAE/C+qD,KAAKwO,IAAI6iB,KAAKyB,cAAgB,SAAS99E,EAAGC,GACxCD,EAAEo3D,MAAMpM,KAAKiH,KAAKwnB,SAASM,kBAAkB95E,KAE/C+qD,KAAKwO,IAAI6iB,KAAK0B,cAAgB,SAAS/9E,EAAGC,GACxC+qD,KAAKwO,IAAIc,QAAQuF,0BAA0B7/D,GAC3C,IAAI/M,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvFD,EAAEw6E,KAAOxvB,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEpC+3D,KAAKwO,IAAI6iB,KAAK2B,YAAc,SAASh+E,EAAGC,GAEtC,GADA+qD,KAAKwO,IAAIc,QAAQ0F,yBAAyBhgE,GACtCC,aAAa+qD,KAAKiH,KAAKoiB,QACzB,IAAIphF,EAAIgN,OAERhN,EAAI,iBAAiBvyB,KAAKu/B,GAAIhN,EAAI+3D,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,EAAGhN,GAEjF+M,EAAEwzD,IAAMxI,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEnC+3D,KAAKwO,IAAI6iB,KAAK4B,YAAc,SAASj+E,EAAGC,GAEtC,GADA+qD,KAAKwO,IAAIc,QAAQ2F,yBAAyBjgE,GACtCC,aAAa+qD,KAAKiH,KAAKoiB,QACzB,IAAIphF,EAAIgN,OAERhN,EAAI,iBAAiBvyB,KAAKu/B,GAAIhN,EAAI+3D,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,EAAGhN,GAEjF+M,EAAEwzD,IAAMxI,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEnC+3D,KAAKwO,IAAI6iB,KAAK6B,YAAc,SAASl+E,EAAGC,GAEtC,GADA+qD,KAAKwO,IAAIc,QAAQ4F,yBAAyBlgE,GACtCC,aAAa+qD,KAAKiH,KAAKoiB,QACzB,IAAIphF,EAAIgN,OAERhN,EAAI,iBAAiBvyB,KAAKu/B,GAAIhN,EAAI+3D,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,EAAGhN,GAEjF+M,EAAEwzD,IAAMxI,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEnC+3D,KAAKwO,IAAI6iB,KAAK8B,YAAc,SAASn+E,EAAGC,GACtC+qD,KAAKwO,IAAIc,QAAQgG,yBAAyBtgE,GAC1CA,EAAEwzD,IAAMxI,KAAKiH,KAAKggB,mBAAmBU,uBAAuB1yE,IAE9D+qD,KAAKwO,IAAI6iB,KAAK+B,YAAc,SAASp+E,EAAGC,GACtC+qD,KAAKwO,IAAIc,QAAQkG,yBAAyBxgE,GAC1CA,EAAEwzD,IAAMxI,KAAKiH,KAAKggB,mBAAmBvG,OAAOzrE,IAE9C+qD,KAAKwO,IAAI6iB,KAAKgC,aAAe,SAASr+E,EAAGC,GACvC+qD,KAAKwO,IAAIc,QAAQmG,0BAA0BzgE,GAC3CA,EAAEwzD,IAAMxI,KAAKiH,KAAKggB,mBAAmBvG,OAAOzrE,IAE9C+qD,KAAKwO,IAAI6iB,KAAKiC,gBAAkB,SAASt+E,EAAGC,GAC1C+qD,KAAKwO,IAAIc,QAAQmG,0BAA0BzgE,GAC3CA,EAAE+6E,OAAS/vB,KAAKiH,KAAKwnB,SAASM,kBAAkB95E,IAElD+qD,KAAKwO,IAAI6iB,KAAKkC,kBAAoB,SAASv+E,EAAGC,EAAGhN,GAC/C+3D,KAAKwO,IAAIc,QAAQyF,wBAAwB//D,GACzCA,EAAEw+E,IAAMvrF,EACR+3D,KAAKpoF,OAAOqwG,SAASiB,wBAAwBjhF,EAAG,eAAiB+3D,KAAKsP,QAAQ18D,OAAOqC,aAAa+qD,KAAKiH,KAAKggB,mBAAoB,sEAAuEjyE,EAAEw6E,KAAOxvB,KAAKiH,KAAKggB,mBAAmBvG,OAAOzrE,IAAMD,EAAEw6E,KAAOv6E,aAAa+qD,KAAKiH,KAAKggB,mBAAqBjnB,KAAKiH,KAAKggB,mBAAmBvG,OAAOzrE,GAAKA,aAAa+qD,KAAKiH,KAAKoiB,QAAUrpB,KAAKiH,KAAKoiB,QAAQ3I,OAAOzrE,GAAK+qD,KAAKiH,KAAKoiB,QAAQ3I,OAAO1gB,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,KAE5d+qD,KAAKwO,IAAI6iB,KAAKoC,cAAgB,SAASz+E,EAAGC,GACxC+qD,KAAKwO,IAAIc,QAAQoG,0BAA0B1gE,GAC3CA,EAAErP,KAAOq6D,KAAKiH,KAAKggB,mBAAmBU,uBAAuB1yE,IAE/D+qD,KAAKwO,IAAI6iB,KAAKqC,aAAe,SAAS1+E,EAAGC,GACvC+qD,KAAKwO,IAAIc,QAAQqG,0BAA0B3gE,GAC3CA,EAAEwzD,IAAMxI,KAAKiH,KAAKggB,mBAAmBU,uBAAuB1yE,GAC5D,IAAIhN,EAAI+3D,KAAKkB,iBACbj5D,GAAK+M,EAAEu3D,aAAa,QAAStkE,IAE/B+3D,KAAKwO,IAAI6iB,KAAKsC,iBAAmB,SAAS3+E,EAAGC,GAC3C+qD,KAAKwO,IAAIc,QAAQqG,0BAA0B3gE,GAC3CA,EAAEx9B,KAAOwoF,KAAKiH,KAAK2Z,WAAWS,oBAAoBpsE,GAClD,IAAIhN,EAAI+3D,KAAKkB,iBACbj5D,GAAK+M,EAAEu3D,aAAa,QAAStkE,IAE/B+3D,KAAKwO,IAAI6iB,KAAKuC,gBAAkB,SAAS5+E,EAAGC,GAC1C+qD,KAAKwO,IAAIc,QAAQkF,iBAAiBx/D,GAClC,IAAI/M,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvFD,EAAEw6E,KAAOxvB,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,IAEpC+3D,KAAKwO,IAAI6iB,KAAKwC,eAAiB,SAAS7+E,EAAGC,GACzC+qD,KAAKwO,IAAIc,QAAQkF,iBAAiBx/D,GAClC,IAAI/M,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvFD,EAAElsB,OAAOk3E,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,KAEpC+3D,KAAKwO,IAAI6iB,KAAKyC,gBAAkB,SAAS9+E,EAAGC,GAC1C+qD,KAAKwO,IAAIc,QAAQkF,iBAAiBx/D,GAClC,IAAI/M,EAAIgN,aAAa+qD,KAAKiH,KAAKoiB,QAAUp0E,EAAI+qD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB91E,GACvFD,EAAEzyB,QAAQy9E,KAAKiH,KAAKoiB,QAAQ3I,OAAOz4E,KAErC+3D,KAAKwO,IAAI6iB,KAAK0C,aAAe,SAAS/+E,EAAGC,EAAGhN,EAAGpC,EAAGlkB,GAEhD,OADAqzB,EAAIA,aAAagrD,KAAKiH,KAAKoiB,QAAUr0E,EAAIgrD,KAAKiH,KAAKoiB,QAAQ0B,wBAAwB/1E,IAC3EC,GAAK+qD,KAAKlwB,QAAQxnB,KAAK03C,KAAKiH,KAAKoiB,QAAQ3I,OAAO1rE,GAAI/M,EAAI+3D,KAAKpoF,OAAOuoG,MAAMO,OAAOz4E,GAAK,GAAIpC,EAAGlkB,IAEvGq+E,KAAKwO,IAAI6iB,KAAK2C,oBAAsB,SAASh/E,EAAGC,GAC9C,OAAO+qD,KAAKwO,IAAI6iB,KAAK4C,gBAAgBj/E,EAAGC,EAAG,cAE7C+qD,KAAKwO,IAAI6iB,KAAK4C,gBAAkB,SAASj/E,EAAGC,EAAGhN,GAC7C,OAAO+M,EAAEi/E,gBAAgBj0B,KAAKiH,KAAKwnB,SAASM,kBAAkB95E,GAAIhN,IAEpE+3D,KAAKwO,IAAI6iB,KAAK6C,oBAAsB,SAASl/E,GAC3C,IAAK,cAAct/B,KAAKs/B,EAAEzlC,MACxB,MAAM8D,MAAM,sEAEd,IAAI4hC,EAAI+qD,KAAKlwB,OAAOgyC,IAAIJ,gBAAgB1sE,GAMxC,OALAA,EAAI,IAAIgrD,KAAKlwB,OAAOqkD,OAClB1nB,OAAS,WACTzM,KAAKlwB,OAAOgyC,IAAIF,gBAAgB3sE,IAElC+qD,KAAKwO,IAAI6iB,KAAK2B,YAAYh+E,EAAGgrD,KAAKiH,KAAK6pB,qBAAqBK,4CAA4CnxB,KAAKpoF,OAAOuoG,MAAMhzD,KAAK,mBAAoBlY,IAC5ID,GAETgrD,KAAKpoF,OAAOw8G,wBAAyB,EACrCp0B,KAAKpoF,OAAOy8G,+BAAgC,EAC5Cr0B,KAAKpoF,OAAO08G,QAAU,CAACC,KAAK,KAC5Bv0B,KAAKpoF,OAAOswG,WAAaloB,KAAKpoF,OAAOqwG,SAASC,WAC9CloB,KAAKpoF,OAAOyhC,SAAW2mD,KAAKpoF,OAAOqwG,SAAS5uE,SAC5C2mD,KAAKpoF,OAAOuwG,0BAA4BnoB,KAAKpoF,OAAOqwG,SAASE,0BAC7DnoB,KAAKpoF,OAAOywG,wBAA0BroB,KAAKpoF,OAAOqwG,SAASI,wBAC3DroB,KAAKpoF,OAAO0wG,sBAAwBtoB,KAAKpoF,OAAOqwG,SAASK,sBACzDtoB,KAAKpoF,OAAO48G,KAAO,SAASx/E,EAAGC,GAC7B,IAAK,IAAIhN,EAAI+M,EAAEj/B,MAAM,MAAO8vB,EAAI,GAAIlkB,EAAIhO,MAAM8E,UAAUvF,MAAMyZ,KAAK6F,UAAW,GAAI7Q,EAAEhQ,QAAU,EAAIs2B,EAAEt2B,QAClGk0B,GAAKoC,EAAEqP,QAAU31B,EAAE21B,QAErB,OAAOzR,EAAIoC,EAAE3zB,KAAK,OAEpB0rF,KAAKpoF,OAAO68G,mBAAqB,SAASz/E,GACxC,OAAOA,EAAEzyB,QAAQ,aAAc,KAAKA,QAAQ,aAAc,KAE5Dy9E,KAAKpoF,OAAO2wG,oBAAsBvoB,KAAKpoF,OAAOqwG,SAASM,oBACvDvoB,KAAKpoF,OAAO88G,cAAgB,SAAS1/E,GACnC,OAAO,GAAKA,EAAErjC,QAEhBquF,KAAKpoF,OAAO2iE,QAAUylB,KAAKpoF,OAAO2wG,oBAClCvoB,KAAKpoF,OAAO+8G,wBAA0B,SAAS3/E,GAC7C,OAAOgrD,KAAKpoF,OAAO2wG,oBAAoBvoB,KAAKpoF,OAAOg9G,SAAS5/E,KAE9DgrD,KAAKpoF,OAAOi9G,YAAc70B,KAAKpoF,OAAO+8G,wBACtC30B,KAAKpoF,OAAOk9G,qBAAuB,SAAS9/E,GAC1C,OAAQ,aAAat/B,KAAKs/B,IAE5BgrD,KAAKpoF,OAAOolE,QAAU,SAAShoC,GAC7B,OAAQ,YAAYt/B,KAAKs/B,IAE3BgrD,KAAKpoF,OAAOm9G,UAAY,SAAS//E,GAC/B,OAAQ,SAASt/B,KAAKs/B,IAExBgrD,KAAKpoF,OAAOo9G,eAAiB,SAAShgF,GACpC,OAAQ,eAAet/B,KAAKs/B,IAE9BgrD,KAAKpoF,OAAOq9G,QAAU,SAASjgF,GAC7B,MAAO,KAAOA,GAEhBgrD,KAAKpoF,OAAOs9G,cAAgB,SAASlgF,GACnC,OAAO,GAAKA,EAAErjC,QAAU,KAAOqjC,GAAK,KAAOA,GAAK,KAAYA,GAAK,KAAYA,GAE/EgrD,KAAKpoF,OAAOu9G,cAAgB,SAASngF,GACnC,OAAOA,EAAEzyB,QAAQ,iBAAkB,MAErCy9E,KAAKpoF,OAAOw9G,qBAAuB,SAASpgF,GAC1C,OAAOA,EAAEzyB,QAAQ,gBAAiB,OAEpCy9E,KAAKpoF,OAAOy9G,oBAAsB,SAASrgF,GACzC,OAAOA,EAAEzyB,QAAQ,WAAY,MAE/By9E,KAAKpoF,OAAO09G,gBAAkB,SAAStgF,GACrC,OAAOA,EAAEzyB,QAAQ,eAAgB,MAEnCy9E,KAAKpoF,OAAO29G,uBAAyB,SAASvgF,GAC5C,OAAOA,EAAEzyB,QAAQ,cAAe,KAAKA,QAAQ,2BAA4B,KAE3Ey9E,KAAKpoF,OAAOk5C,KAAOkvC,KAAKpoF,OAAOqwG,SAASn3D,KACxCkvC,KAAKpoF,OAAO49G,SAAW,SAASxgF,GAC9B,OAAOA,EAAEzyB,QAAQ,aAAc,KAEjCy9E,KAAKpoF,OAAO69G,UAAY,SAASzgF,GAC/B,OAAOA,EAAEzyB,QAAQ,aAAc,KAEjCy9E,KAAKpoF,OAAOwwG,uBAAyBpoB,KAAKpoF,OAAOqwG,SAASG,uBAC1DpoB,KAAKpoF,OAAO89G,oBAAsB,SAAS1gF,EAAGC,EAAGhN,GAC/C,GAAI+M,GAAKC,EACP,OAAO,EAET,IAAKD,EACH,OAAQ,EAEV,IAAKC,EACH,OAAO,EAET,IAAK,IAAIpP,EAAImP,EAAEif,cAAcn9C,MAAMmxB,GAAItmB,EAAIszB,EAAEgf,cAAcn9C,MAAMmxB,GAAIiX,EAAI18B,KAAK4mB,IAAIvD,EAAEl0B,OAAQgQ,EAAEhQ,QAASiT,EAAI,EAAGA,EAAIs6B,EAAGt6B,IAAK,CACxHqjB,EAAIpC,EAAEjhB,GACN,IAAI2kC,EAAI5nC,EAAEiD,GACV,GAAIqjB,GAAKshB,EACP,OAAOvU,EAAIrF,SAAS1H,EAAG,KAAM+W,MAAMhK,KAAOC,EAAItF,SAAS4Z,EAAG,KAAMvK,MAAM/J,IAAMD,EAAIC,GAAKD,EAAIC,EAAIhN,EAAIshB,GAAK,EAAI,EAG9G,OAAO1jB,EAAEl0B,QAAUgQ,EAAEhQ,OAASk0B,EAAEl0B,OAASgQ,EAAEhQ,OAASqjC,EAAIC,GAAK,EAAI,GAEnE+qD,KAAKpoF,OAAO+9G,gBAAkB,SAAS3gF,EAAGC,GACxC,OAAO+qD,KAAKpoF,OAAO89G,oBAAoB1gF,EAAGC,EAAG,aAE/C+qD,KAAKpoF,OAAOg+G,kBAAoB,SAAS5gF,EAAGC,GAC1C,OAAO+qD,KAAKpoF,OAAO89G,oBAAoB1gF,EAAGC,EAAG,mBAE/C+qD,KAAKpoF,OAAOi+G,gBAAkB71B,KAAKpoF,OAAOg+G,kBAC1C51B,KAAKpoF,OAAOk+G,UAAY,SAAS9gF,GAC/B,OAAOw4B,mBAAmB76D,OAAOqiC,KAEnCgrD,KAAKpoF,OAAOm+G,UAAY,SAAS/gF,GAC/B,OAAO85B,mBAAmB95B,EAAEzyB,QAAQ,MAAO,OAE7Cy9E,KAAKpoF,OAAO4wG,YAAcxoB,KAAKpoF,OAAOqwG,SAASO,YAC/CxoB,KAAKpoF,OAAO6wG,WAAa,SAASzzE,EAAGC,GAGnC,OAFAD,EAAIgrD,KAAKpoF,OAAOqwG,SAASQ,WAAWzzE,EAAGC,GACvC+qD,KAAKpoF,OAAOw8G,yBAA2Bp/E,EAAIA,EAAEzyB,QAAQy9E,KAAKpoF,OAAOo+G,MAAO,WACjEhhF,GAETgrD,KAAKpoF,OAAOo+G,MAAQ,KACpBh2B,KAAKpoF,OAAOq+G,iBAAmB,SAASjhF,GACtC,OAAOgrD,KAAKpoF,OAAO8kE,SAAS1nC,EAAG,MAAQgrD,KAAKpoF,OAAOy8G,+BAAiC,aAAcr0B,KAAKlwB,OAASkwB,KAAKpoF,OAAOs+G,0BAA0BlhF,GAAKgrD,KAAKpoF,OAAOu+G,yBAAyBnhF,GAAKA,GAEvMgrD,KAAKpoF,OAAOw+G,6BAA+B,SAASphF,EAAGC,GACrD,OAAO+qD,KAAKpoF,OAAO8kE,SAAS1nC,EAAG,KAAOgrD,KAAKpoF,OAAOs+G,0BAA0BlhF,EAAGC,GAAKD,GAEtFgrD,KAAKpoF,OAAOs+G,0BAA4B,SAASlhF,EAAGC,GAClD,IAAIhN,EAAI,CAAC,QAAQ,IAAK,OAAO,IAAK,OAAO,IAAK,SAAS,KACnDpC,EAAIoP,EAAIA,EAAEmxD,cAAc,OAASpG,KAAKlwB,OAAO/B,SAASq4B,cAAc,OACxE,OAAOpxD,EAAEzyB,QAAQy9E,KAAKpoF,OAAOy+G,sBAAsB,SAASrhF,EAAGC,GAC7D,IAAItzB,EAAIsmB,EAAE+M,GACV,GAAIrzB,EACF,OAAOA,EAET,GAAI,KAAOszB,EAAE/6B,OAAO,GAAI,CACtB,IAAIglC,EAAIlpC,OAAO,IAAMi/B,EAAEvE,OAAO,IAC9BsO,MAAME,KAAOv9B,EAAIhP,OAAOC,aAAassC,IAGvC,OADAv9B,IAAMq+E,KAAKwO,IAAI6iB,KAAKe,aAAavsF,EAAGm6D,KAAKiH,KAAK6pB,qBAAqBC,6CAA6C/wB,KAAKpoF,OAAOuoG,MAAMhzD,KAAK,uBAAwBnY,EAAI,MAAOrzB,EAAIkkB,EAAEksF,WAAWuE,UAAUpjH,MAAM,GAAI,IACxM+0B,EAAE+M,GAAKrzB,MAGlBq+E,KAAKpoF,OAAOu+G,yBAA2B,SAASnhF,GAC9C,OAAOA,EAAEzyB,QAAQ,cAAc,SAASyyB,EAAG/M,GACzC,OAAOA,GACL,IAAK,MACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,OACH,MAAO,IACT,QACE,GAAI,KAAOA,EAAE/tB,OAAO,GAAI,CACtB,IAAI+6B,EAAIj/B,OAAO,IAAMiyB,EAAEyI,OAAO,IAC9B,IAAKsO,MAAM/J,GACT,OAAOtiC,OAAOC,aAAaqiC,GAG/B,OAAOD,OAIfgrD,KAAKpoF,OAAOy+G,qBAAuB,kBACnCr2B,KAAKpoF,OAAOqxG,iBAAmB,SAASj0E,EAAGC,GACzC,OAAO+qD,KAAKpoF,OAAO4wG,YAAYxzE,EAAEzyB,QAAQ,MAAO,WAAY0yB,IAE9D+qD,KAAKpoF,OAAO2+G,eAAiB,SAASvhF,GACpC,OAAOA,EAAEzyB,QAAQ,cAAe,KAAOy9E,KAAKpoF,OAAO08G,QAAQC,OAE7Dv0B,KAAKpoF,OAAO4+G,YAAc,SAASxhF,EAAGC,GACpC,IAAK,IAAIhN,EAAIgN,EAAEtjC,OAAQk0B,EAAI,EAAGA,EAAIoC,EAAGpC,IAAK,CACxC,IAAIlkB,EAAI,GAAKsmB,EAAIgN,EAAIA,EAAE/6B,OAAO2rB,GAC9B,GAAImP,EAAE96B,OAAO,IAAMyH,GAAKqzB,EAAE96B,OAAO86B,EAAErjC,OAAS,IAAMgQ,EAChD,OAAOqzB,EAAEn+B,UAAU,EAAGm+B,EAAErjC,OAAS,GAGrC,OAAOqjC,GAETgrD,KAAKpoF,OAAO6+G,SAAW,SAASzhF,EAAGC,EAAGhN,GAIpC,OAHAA,IAAM+M,EAAIgrD,KAAKpoF,OAAOq+G,iBAAiBjhF,IACvCA,EAAErjC,OAASsjC,IAAMD,EAAIA,EAAEn+B,UAAU,EAAGo+B,EAAI,GAAK,OAC7ChN,IAAM+M,EAAIgrD,KAAKpoF,OAAO6wG,WAAWzzE,IAC1BA,GAETgrD,KAAKpoF,OAAO8+G,eAAiB,SAAS1hF,EAAGC,EAAGhN,EAAGpC,GAE7C,GADAoC,IAAM+M,EAAIgrD,KAAKpoF,OAAOq+G,iBAAiBjhF,IACnCnP,GAAKmP,EAAErjC,OAASsjC,EAAG,CACrBpP,EAAIoP,IAAMpP,EAAIoP,GACd,IAAItzB,EAAIqzB,EAAErjC,OAASk0B,EACnBmP,EAAIA,EAAEn+B,UAAU,EAAGo+B,EAAIpP,GAAK,MAAQmP,EAAEn+B,UAAU8K,QAEhDqzB,EAAErjC,OAASsjC,IAAMpP,EAAIrjB,KAAKC,MAAMwyB,EAAI,GAAItzB,EAAIqzB,EAAErjC,OAASk0B,EAAGmP,EAAIA,EAAEn+B,UAAU,EAAGgvB,EAAIoP,EAAI,GAAK,MAAQD,EAAEn+B,UAAU8K,IAGhH,OADAsmB,IAAM+M,EAAIgrD,KAAKpoF,OAAO6wG,WAAWzzE,IAC1BA,GAETgrD,KAAKpoF,OAAO++G,oBAAsB,CAAC,KAAO,MAAO,KAAK,MAAO,KAAK,MAAO,KAAK,MAAO,KAAK,MAAO,KAAK,MAAO,KAAO,QAAS,IAAI,MAAO,KAAK,OAAQ,IAAI,WACzJ32B,KAAKpoF,OAAOg/G,eAAiB,CAAC,IAAI,OAClC52B,KAAKpoF,OAAO0D,MAAQ,SAAS05B,GAC3BA,EAAIriC,OAAOqiC,GACX,IAAK,IAAIC,EAAI,CAAC,KAAMhN,EAAI,EAAGA,EAAI+M,EAAErjC,OAAQs2B,IAAK,CAC5C,IAAIpC,EAAImP,EAAE96B,OAAO+tB,GAAItmB,EAAIkkB,EAAE/zB,WAAW,GACtCmjC,EAAEhN,EAAI,GAAK+3D,KAAKpoF,OAAO++G,oBAAoB9wF,KAAO,GAAKlkB,GAAK,IAAMA,EAAIkkB,EAAIm6D,KAAKpoF,OAAOi/G,WAAWhxF,IAGnG,OADAoP,EAAEl+B,KAAK,KACAk+B,EAAE3gC,KAAK,KAEhB0rF,KAAKpoF,OAAOsK,aAAe,SAAS8yB,GAClC,IAAK,IAAIC,EAAI,GAAIhN,EAAI,EAAGA,EAAI+M,EAAErjC,OAAQs2B,IACpCgN,EAAEhN,GAAK+3D,KAAKpoF,OAAOi/G,WAAW7hF,EAAE96B,OAAO+tB,IAEzC,OAAOgN,EAAE3gC,KAAK,KAEhB0rF,KAAKpoF,OAAOi/G,WAAa,SAAS7hF,GAChC,GAAIA,KAAKgrD,KAAKpoF,OAAOg/G,eACnB,OAAO52B,KAAKpoF,OAAOg/G,eAAe5hF,GAEpC,GAAIA,KAAKgrD,KAAKpoF,OAAO++G,oBACnB,OAAO32B,KAAKpoF,OAAOg/G,eAAe5hF,GAAKgrD,KAAKpoF,OAAO++G,oBAAoB3hF,GAEzE,IAAIC,EAAID,EAAEljC,WAAW,GACrB,GAAI,GAAKmjC,GAAK,IAAMA,EAClB,IAAIhN,EAAI+M,OAEJ,IAAMC,GACJhN,EAAI,OAAO,GAAKgN,GAAK,IAAMA,KAC7BhN,GAAK,OAGPA,EAAI,MAAO,KAAOgN,IAAMhN,GAAK,MAE/BA,GAAKgN,EAAEjiC,SAAS,IAAIC,cAEtB,OAAO+sF,KAAKpoF,OAAOg/G,eAAe5hF,GAAK/M,GAEzC+3D,KAAKpoF,OAAO8kE,SAAWsjB,KAAKpoF,OAAOqwG,SAASvrC,SAC5CsjB,KAAKpoF,OAAOsxG,wBAA0BlpB,KAAKpoF,OAAOqwG,SAASiB,wBAC3DlpB,KAAKpoF,OAAOk/G,QAAU,SAAS9hF,EAAGC,GAChC,OAAOD,GAAKC,EAAID,EAAEj/B,MAAMk/B,GAAGtjC,OAAS,EAAI,GAE1CquF,KAAKpoF,OAAO25F,SAAW,SAASv8D,EAAGC,EAAGhN,GACpC,IAAIpC,EAAImP,EAER,OADA,GAAKC,GAAKA,EAAID,EAAErjC,QAAU,EAAIs2B,IAAMpC,EAAImP,EAAEtE,OAAO,EAAGuE,GAAKD,EAAEtE,OAAOuE,EAAIhN,EAAG+M,EAAErjC,OAASsjC,EAAIhN,IACjFpC,GAETm6D,KAAKpoF,OAAOiiF,OAAS,SAAS7kD,EAAGC,GAC/B,OAAOD,EAAEzyB,QAAQ0yB,EAAG,KAEtB+qD,KAAKpoF,OAAOm/G,UAAY,SAAS/hF,EAAGC,GAClC,IAAIhN,EAAI,IAAI11B,OAAOytF,KAAKpoF,OAAOo/G,aAAa/hF,GAAI,KAChD,OAAOD,EAAEzyB,QAAQ0lB,EAAG,KAEtB+3D,KAAKpoF,OAAOq/G,WAAa,SAASjiF,EAAGC,EAAGhN,GAEtC,OADAgN,EAAI,IAAI1iC,OAAOytF,KAAKpoF,OAAOo/G,aAAa/hF,GAAI,KACrCD,EAAEzyB,QAAQ0yB,EAAGhN,EAAE1lB,QAAQ,MAAO,UAEvCy9E,KAAKpoF,OAAOo/G,aAAe,SAAShiF,GAClC,OAAOriC,OAAOqiC,GAAGzyB,QAAQ,gCAAiC,QAAQA,QAAQ,QAAS,UAErFy9E,KAAKpoF,OAAO+jC,OAAShpC,OAAO8F,UAAUkjC,OAAS,SAAS3G,EAAGC,GACzD,OAAOD,EAAE2G,OAAO1G,IACd,SAASD,EAAGC,GACd,OAAOthC,MAAMshC,EAAI,GAAG3gC,KAAK0gC,IAE3BgrD,KAAKpoF,OAAOs/G,UAAY,SAASliF,EAAGC,EAAGhN,GAIrC,OADC,IADDA,GADA+M,OAAI,IAAW/M,EAAI+M,EAAE4f,QAAQ3sB,GAAKt1B,OAAOqiC,IACnCp1B,QAAQ,QACFqoB,EAAI+M,EAAErjC,QACXquF,KAAKpoF,OAAO+jC,OAAO,IAAKn5B,KAAK6mB,IAAI,EAAG4L,EAAIhN,IAAM+M,GAEvDgrD,KAAKpoF,OAAOg9G,SAAW,SAAS5/E,GAC9B,OAAO,MAAQA,EAAI,GAAKriC,OAAOqiC,IAEjCgrD,KAAKpoF,OAAOu/G,YAAc,SAASniF,GACjC,OAAOrhC,MAAM8E,UAAUnE,KAAKqY,KAAK6F,UAAW,KAE9CwtE,KAAKpoF,OAAOw/G,gBAAkB,WAC5B,OAAO50G,KAAKC,MAAM,WAAaD,KAAKgwC,UAAUx/C,SAAS,IAAMwP,KAAK60G,IAAI70G,KAAKC,MAAM,WAAaD,KAAKgwC,UAAYwtC,KAAKgG,OAAOhzF,SAAS,KAEtIgtF,KAAKpoF,OAAOuxG,gBAAkBnpB,KAAKpoF,OAAOqwG,SAASkB,gBACnDnpB,KAAKpoF,OAAO0/G,SAAW,SAAStiF,GAC9B,IAAK,IAAIC,EAAI,EAAGhN,EAAI,EAAGA,EAAI+M,EAAErjC,SAAUs2B,EACrCgN,EAAI,GAAKA,EAAID,EAAEljC,WAAWm2B,KAAO,EAEnC,OAAOgN,GAET+qD,KAAKpoF,OAAO2/G,qBAAuB,WAAa/0G,KAAKgwC,SAAW,EAChEwtC,KAAKpoF,OAAO4/G,mBAAqB,WAC/B,MAAO,QAAUx3B,KAAKpoF,OAAO2/G,wBAE/Bv3B,KAAKpoF,OAAO6/G,SAAW,SAASziF,GAC9B,IAAIC,EAAIj/B,OAAOg/B,GACf,OAAO,GAAKC,GAAK+qD,KAAKpoF,OAAO2wG,oBAAoBvzE,GAAK+e,IAAM9e,GAE9D+qD,KAAKpoF,OAAO8/G,iBAAmB,SAAS1iF,GACtC,MAAO,yBAAyBt/B,KAAKs/B,IAEvCgrD,KAAKpoF,OAAO+/G,iBAAmB,SAAS3iF,GACtC,MAAO,mBAAmBt/B,KAAKs/B,IAEjCgrD,KAAKpoF,OAAOggH,YAAc,SAAS5iF,GACjC,OAAOriC,OAAOqiC,GAAGzyB,QAAQ,cAAc,SAASyyB,EAAG/M,GACjD,OAAOA,EAAEh1B,kBAGb+sF,KAAKpoF,OAAOigH,eAAiB,SAAS7iF,GACpC,OAAOriC,OAAOqiC,GAAGzyB,QAAQ,WAAY,OAAO0xC,eAE9C+rC,KAAKpoF,OAAOkgH,YAAc,SAAS9iF,EAAGC,GACpC,IAAIhN,EAAI,iBAAoBgN,EAAI+qD,KAAKpoF,OAAOo/G,aAAa/hF,GAAK,MAC9D,OAAOD,EAAEzyB,QAAQ,IAAIhQ,OAAO,MAAQ01B,EAAI,KAAOA,EAAI,KAAO,IAAM,WAAY,MAAM,SAAS+M,EAAGC,EAAGhN,GAC/F,OAAOgN,EAAIhN,EAAEh1B,kBAGjB+sF,KAAKpoF,OAAOg+C,WAAa,SAAS5gB,GAChC,OAAOriC,OAAOqiC,EAAE96B,OAAO,IAAIjH,cAAgBN,OAAOqiC,EAAEtE,OAAO,IAAIujB,eAEjE+rC,KAAKpoF,OAAO+3B,SAAW,SAASqF,GAE9B,OADAw1C,SAASx1C,KAAOA,EAAIriC,OAAOqiC,IACpB,iBAAoBA,EAAI,YAAYt/B,KAAKs/B,GAAKrF,SAASqF,EAAG,IAAMrF,SAASqF,EAAG,IAAM+e,KAE3FisC,KAAKpoF,OAAOmgH,WAAa,SAAS/iF,EAAGC,EAAGhN,GACtC+M,EAAIA,EAAEj/B,MAAMk/B,GACZ,IAAK,IAAIpP,EAAI,GAAI,EAAIoC,GAAK+M,EAAErjC,QAC1Bk0B,EAAE9uB,KAAKi+B,EAAEsC,SAAUrP,IAGrB,OADA+M,EAAErjC,QAAUk0B,EAAE9uB,KAAKi+B,EAAE1gC,KAAK2gC,IACnBpP,GAETm6D,KAAKpoF,OAAOogH,cAAgB,SAAShjF,EAAGC,GACtC,IAAIA,EAGF,OAAOD,EAFP,iBAAmBC,IAAMA,EAAI,CAACA,IAIhC,IAAK,IAAIhN,GAAK,EAAGpC,EAAI,EAAGA,EAAIoP,EAAEtjC,OAAQk0B,IACpC,GAAI,IAAMoP,EAAEpP,GAAI,CACd,IAAIlkB,EAAIqzB,EAAEjlB,YAAYklB,EAAEpP,IACxBlkB,EAAIsmB,IAAMA,EAAItmB,GAGlB,OAAQ,GAAKsmB,EAAI+M,EAAIA,EAAE9hC,MAAM+0B,EAAI,IAEnC+3D,KAAKpoF,OAAOqgH,aAAe,SAASjjF,EAAGC,GACrC,IAAIhN,EAAI,GAAIpC,EAAI,GAChB,GAAImP,GAAKC,EACP,OAAO,EAET,IAAKD,EAAErjC,SAAWsjC,EAAEtjC,OAClB,OAAO6Q,KAAK6mB,IAAI2L,EAAErjC,OAAQsjC,EAAEtjC,QAE9B,IAAK,IAAIgQ,EAAI,EAAGA,EAAIszB,EAAEtjC,OAAS,EAAGgQ,IAChCsmB,EAAEtmB,GAAKA,EAET,IAAKA,EAAI,EAAGA,EAAIqzB,EAAErjC,OAAQgQ,IAAK,CAC7BkkB,EAAE,GAAKlkB,EAAI,EACX,IAAK,IAAIu9B,EAAI,EAAGA,EAAIjK,EAAEtjC,OAAQutC,IAC5BrZ,EAAEqZ,EAAI,GAAK18B,KAAK4mB,IAAIvD,EAAEqZ,GAAK,EAAGjX,EAAEiX,EAAI,GAAK,EAAGjX,EAAEiX,GAAKlpC,OAAOg/B,EAAErzB,IAAMszB,EAAEiK,KAEtE,IAAKA,EAAI,EAAGA,EAAIjX,EAAEt2B,OAAQutC,IACxBjX,EAAEiX,GAAKrZ,EAAEqZ,GAGb,OAAOrZ,EAAEoP,EAAEtjC,SAEbquF,KAAKk4B,OAAS,GACdl4B,KAAKk4B,OAAOC,WAAa,SAASnjF,EAAGC,EAAGhN,GAMtC,IALAnvB,KAAKs/G,aAAepjF,EACpBl8B,KAAKu/G,MAAQpjF,EAAEjhC,MAAQ,KACvB8E,KAAKw/G,UAAYrjF,EAAEsjF,UAAY,KAC/Bz/G,KAAK0/G,gBAAkBvjF,EAAEwjF,eACzB3/G,KAAK4/G,QAAU,GACV1jF,EAAI,EAAGA,EAAI/M,EAAEt2B,OAAQqjC,IACxBC,EAAIhN,EAAE+M,GAAIl8B,KAAK4/G,QAAQzjF,EAAE0jF,UAAY1jF,GAGzC+qD,KAAKk4B,OAAOC,WAAW1/G,UAAUmgH,QAAU,WACzC,OAAO9/G,KAAKu/G,OAEdr4B,KAAKk4B,OAAOC,WAAW1/G,UAAUogH,YAAc,WAC7C,OAAO//G,KAAKw/G,WAEdt4B,KAAKk4B,OAAOC,WAAW1/G,UAAUqgH,kBAAoB,WACnD,OAAOhgH,KAAK0/G,gBAAkB1/G,KAAK0/G,gBAAgBO,gBAAkB,MAEvE/4B,KAAKk4B,OAAOC,WAAW1/G,UAAUugH,UAAY,WAC3C,IAAIhkF,EAAIgrD,KAAKthF,OAAO20F,UAAUv6F,KAAK4/G,SAInC,OAHA14B,KAAKrqF,MAAMs/C,KAAKjgB,GAAG,SAASA,EAAG/M,GAC7B,OAAO+M,EAAE2jF,SAAW1wF,EAAE0wF,YAEjB3jF,GAETgrD,KAAKk4B,OAAOC,WAAW1/G,UAAUwgH,aAAe,WAC9C,OAAOngH,KAAK4/G,SAEd14B,KAAKk4B,OAAOC,WAAW1/G,UAAUygH,gBAAkB,SAASlkF,GAC1D,OAAOgrD,KAAKthF,OAAOg1F,UAAU56F,KAAK4/G,SAAS,SAASzjF,EAAGhN,EAAGpC,GACxD,OAAOoP,EAAE2jF,WAAa5jF,MAClB,MAERgrD,KAAKk4B,OAAOC,WAAW1/G,UAAU0gH,eAAiB,SAASnkF,GAEzD,OADAgrD,KAAKsP,QAAQ18D,OAAOotD,KAAKpoF,OAAOm9G,UAAU//E,IACnCl8B,KAAK4/G,QAAQ/oF,SAASqF,EAAG,MAAQ,MAE1CgrD,KAAKk4B,OAAOC,WAAW1/G,UAAU2gH,sBAAwB,WACvD,OAAO,IAAItgH,KAAKs/G,cAElBp4B,KAAKk4B,OAAOmB,gBAAkB,SAASrkF,EAAGC,EAAGhN,GAW3C,OAVAnvB,KAAKwgH,QAAUtkF,EACfgrD,KAAKsP,QAAQ18D,OAAOotD,KAAKpoF,OAAOm9G,UAAU9/E,IAC1Cn8B,KAAKygH,KAAOtkF,EACZn8B,KAAKu/G,MAAQpwF,EAAEj0B,KACf8E,KAAK0gH,YAAcvxF,EAAEwxF,OACrB3gH,KAAK4gH,cAAgBzxF,EAAE0xF,SACvB7gH,KAAK8gH,cAAgB3xF,EAAE4xF,SACvB/gH,KAAKghH,WAAa7xF,EAAE8xF,UACpBjhH,KAAKkhH,YAAc/xF,EAAE14B,KACrBuJ,KAAKmhH,qCAAsC,EACpCnhH,KAAKghH,YACV,KAAK95B,KAAKk4B,OAAOmB,gBAAgBa,UAAUC,MAC3C,KAAKn6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUE,OAC3C,KAAKp6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUG,QAC3C,KAAKr6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUI,SAC3C,KAAKt6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUK,OAC3C,KAAKv6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUM,MAC3C,KAAKx6B,KAAKk4B,OAAOmB,gBAAgBa,UAAUO,OACzC3hH,KAAKmhH,qCAAsC,EAE/CnhH,KAAK4hH,cAAgBzyF,EAAE0yF,cAEzB36B,KAAKk4B,OAAOmB,gBAAgBa,UAAY,CAACO,OAAO,EAAGD,MAAM,EAAGL,MAAM,EAAGC,OAAO,EAAGQ,MAAM,EAAGP,QAAQ,EAAGQ,QAAQ,EAAGC,KAAK,EAAGC,OAAO,EAAGC,MAAM,GAAIC,QAAQ,GAAIC,MAAM,GAAIC,OAAO,GAAIC,KAAK,GAAIC,SAAS,GAAIf,SAAS,GAAIgB,OAAO,GAAIf,OAAO,IAChOv6B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUkgH,OAAS,WAC7C,OAAO7/G,KAAKygH,MAEdv5B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUqgH,kBAAoB,WACxD,OAAOhgH,KAAKwgH,QAAQ7gH,UAAUsgH,iBAEhC/4B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUmgH,QAAU,WAC9C,OAAO9/G,KAAKu/G,OAEdr4B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAU8iH,gBAAkB,WACtD,QAAI,IAAWziH,KAAK4hH,cAAe,CACjC,IAAI1lF,EAAIl8B,KAAKkhH,YACb,GAAIhlF,IAAM6M,QACR/oC,KAAK4hH,eAAgB,OAErB,GAAI1lF,IAAMh/B,OACR8C,KAAK4hH,cAAgB,MAChB,CACL,GAAI1lF,IAAMriC,OAGR,OAAO,IAAIqiC,EAFXl8B,KAAK4hH,cAAgB5hH,KAAKmhH,oCAAsC,IAAM,IAO9E,OAAOnhH,KAAK4hH,eAEd16B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAU+iH,aAAe,WACnD,OAAO1iH,KAAKghH,YAEd95B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUgjH,cAAgB,WACpD,OAAO3iH,KAAKkhH,aAEdh6B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUijH,mCAAqC,WACzE,OAAO5iH,KAAKmhH,qCAEdj6B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUkjH,oBAAsB,WAC1D,OAAO7iH,KAAKkhH,YAAYvhH,UAAUsgH,iBAEpC/4B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUmjH,gBAAkB,WACtD,OAAO9iH,KAAKghH,YAAc95B,KAAKk4B,OAAOmB,gBAAgBa,UAAUe,SAAWniH,KAAKghH,YAAc95B,KAAKk4B,OAAOmB,gBAAgBa,UAAUc,OAEtIh7B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUojH,SAAW,WAC/C,OAAO/iH,KAAK0gH,WAEdx5B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUqjH,WAAa,WACjD,OAAOhjH,KAAK4gH,aAEd15B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUsjH,WAAa,WACjD,OAAOjjH,KAAK8gH,aAEd55B,KAAKk4B,OAAOmB,gBAAgB5gH,UAAUujH,WAAa,WACjD,OAAQljH,KAAK4gH,cAAgB5gH,KAAK8gH,aAEpC55B,KAAKk4B,OAAO+D,QAAU,WACpBnjH,KAAKojH,QAAU,GACfpjH,KAAK4/G,QAAU5/G,KAAKigH,gBAAgBE,eACpCngH,KAAKqjH,oBAAsBrjH,KAAKsjH,kBAAoB,MAEtDp8B,KAAKk4B,OAAO+D,QAAQ/B,UAAY,CAACO,OAAO,EAAGD,MAAM,EAAGL,MAAM,EAAGC,OAAO,EAAGQ,MAAM,EAAGP,QAAQ,EAAGQ,QAAQ,EAAGC,KAAK,EAAGC,OAAO,EAAGC,MAAM,GAAIC,QAAQ,GAAIC,MAAM,GAAIC,OAAO,GAAIC,KAAK,GAAIC,SAAS,GAAIf,SAAS,GAAIgB,OAAO,GAAIf,OAAO,IACxNv6B,KAAKk4B,OAAO+D,QAAQxjH,UAAU4jH,8BAAgC,SAASrnF,EAAGC,GACxEn8B,KAAKsjH,kBAAoBpnF,EACzBl8B,KAAKojH,QAAUjnF,EACfn8B,KAAKqjH,oBAAsB,IAE7Bn8B,KAAKk4B,OAAO+D,QAAQxjH,UAAU6jH,WAAa,SAAStnF,EAAGC,GACrD+qD,KAAKsP,QAAQ18D,QAAQ95B,KAAK4/G,QAAQ1jF,GAAI,wCACtCgrD,KAAKsP,QAAQ18D,OAAO,GAAKoC,EAAG,OAASA,EAAI,eAAiBC,EAAI,mBAAqBn8B,KAAKigH,gBAAgBH,WACxG54B,KAAKsP,QAAQ18D,OAAO,OAASqC,EAAG,wBAChCn8B,KAAKojH,QAAQlnF,GAAKC,EAClBn8B,KAAKqjH,4BAA8BrjH,KAAKqjH,oBAAoBnnF,IAE9DgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU8jH,eAAiB,SAASvnF,EAAGC,GACzD,IAAmBpP,EAAfoC,EAAIgN,GAAKn8B,KACb,IAAK+sB,KAAK/sB,KAAKojH,QAAS,CACtB,IAAIv6G,EAAI3L,OAAO6vB,GACf/sB,KAAK4/G,QAAQ/2G,IAAMqzB,EAAEroB,KAAKsb,EAAGtmB,EAAG7I,KAAKojH,QAAQr2F,MAGjDm6D,KAAKk4B,OAAO+D,QAAQxjH,UAAUsgH,cAAgB/4B,KAAKqD,eACnDrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU+T,IAAM,SAASwoB,GAE3C,OADAgrD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDAC5DjgH,KAAK0jH,UAAUxnF,EAAE2jF,WAE1B34B,KAAKk4B,OAAO+D,QAAQxjH,UAAUgkH,QAAU,SAASznF,GAE/C,OADAgrD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDAC5DjgH,KAAK4jH,aAAa1nF,EAAE2jF,WAE7B34B,KAAKk4B,OAAO+D,QAAQxjH,UAAUq+G,QAAU,SAAS9hF,GAE/C,OADAgrD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDAC5DjgH,KAAK6jH,aAAa3nF,EAAE2jF,WAE7B34B,KAAKk4B,OAAO+D,QAAQxjH,UAAUwZ,IAAM,SAAS+iB,EAAGC,GAE9C,OADA+qD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDAC5DjgH,KAAK8jH,UAAU5nF,EAAE2jF,SAAU1jF,IAEpC+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAUokH,aAAe,SAAS7nF,EAAGC,GAEvD,OADA+qD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDAC5DjgH,KAAKgkH,mBAAmB9nF,EAAE2jF,SAAU1jF,IAE7C+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAU8N,IAAM,SAASyuB,EAAGC,GAC9C+qD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDACnEjgH,KAAKikH,UAAU/nF,EAAE2jF,SAAU1jF,IAE7B+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAUirC,IAAM,SAAS1O,EAAGC,GAC9C+qD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDACnEjgH,KAAKkkH,UAAUhoF,EAAE2jF,SAAU1jF,IAE7B+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAU21F,MAAQ,SAASp5D,GAC7CgrD,KAAKsP,QAAQ18D,OAAOoC,EAAE8jF,qBAAuBhgH,KAAKigH,gBAAiB,wDACnEjgH,KAAKmkH,YAAYjoF,EAAE2jF,WAErB34B,KAAKk4B,OAAO+D,QAAQxjH,UAAUwhE,OAAS,SAASjlC,GAC9C,IAAKA,GAAKl8B,KAAKw4B,aAAe0D,EAAE1D,YAC9B,OAAO,EAET,IAAK,IAAI2D,EAAIn8B,KAAKigH,gBAAgBC,YAAa/wF,EAAI,EAAGA,EAAIgN,EAAEtjC,OAAQs2B,IAAK,CACvE,IAAIpC,EAAIoP,EAAEhN,GAAItmB,EAAIkkB,EAAE8yF,SACpB,GAAI7/G,KAAK0jH,UAAU76G,IAAMqzB,EAAEwnF,UAAU76G,GACnC,OAAO,EAET,GAAI7I,KAAK0jH,UAAU76G,GAAI,CACrB,IAAIu9B,EAAIrZ,EAAE+1F,kBAAmBh3G,EAAI9L,KAAKokH,gBAAgBv7G,GAEtD,GADAA,EAAIqzB,EAAEkoF,gBAAgBv7G,GAClBkkB,EAAEi2F,aAAc,CAClB,GAAIl3G,EAAEjT,QAAUgQ,EAAEhQ,OAChB,OAAO,EAET,IAAKk0B,EAAI,EAAGA,EAAIjhB,EAAEjT,OAAQk0B,IAAK,CAC7B,IAAI0jB,EAAI3kC,EAAEihB,GAAIvL,EAAI3Y,EAAEkkB,GACpB,GAAIqZ,GAAKqK,EAAE0wB,OAAO3/C,GAAKivB,GAAKjvB,EAC1B,OAAO,QAIX,GAAI4kB,GAAKt6B,EAAEq1D,OAAOt4D,GAAKiD,GAAKjD,EAC1B,OAAO,GAKf,OAAO,GAETq+E,KAAKk4B,OAAO+D,QAAQxjH,UAAU0kH,SAAW,SAASnoF,GAChDgrD,KAAKsP,QAAQ18D,OAAO95B,KAAKw4B,aAAe0D,EAAE1D,YAAa,+CACvDx4B,MAAQk8B,IAAMl8B,KAAKojH,QAAU,GAAIpjH,KAAKqjH,sBAAwBrjH,KAAKqjH,oBAAsB,IAAKrjH,KAAKskH,UAAUpoF,KAE/GgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU2kH,UAAY,SAASpoF,GACjDgrD,KAAKsP,QAAQ18D,OAAO95B,KAAKw4B,aAAe0D,EAAE1D,YAAa,+CACvD,IAAK,IAAI2D,EAAIn8B,KAAKigH,gBAAgBC,YAAa/wF,EAAI,EAAGA,EAAIgN,EAAEtjC,OAAQs2B,IAAK,CACvE,IAAIpC,EAAIoP,EAAEhN,GAAItmB,EAAIkkB,EAAE8yF,SACpB,GAAI3jF,EAAEwnF,UAAU76G,GAAI,CAClB7I,KAAKqjH,4BAA8BrjH,KAAKqjH,oBAAoBt2F,EAAE8yF,UAC9D,IAAIz5E,EAAIrZ,EAAE+1F,kBACV,GAAI/1F,EAAEi2F,aAAc,CAClBj2F,EAAImP,EAAE0nF,aAAa/6G,GACnB,IAAK,IAAIiD,EAAI,EAAGA,EAAIihB,EAAEl0B,OAAQiT,IAC5B9L,KAAKkkH,UAAUr7G,EAAGu9B,EAAIrZ,EAAEjhB,GAAGg0E,QAAU/yD,EAAEjhB,SAGzCihB,EAAImP,EAAEkoF,gBAAgBv7G,GAAIu9B,GAAKA,EAAIpmC,KAAKokH,gBAAgBv7G,IAAMu9B,EAAEk+E,UAAUv3F,GAAK/sB,KAAKikH,UAAUp7G,EAAGkkB,EAAE+yD,SAAW9/E,KAAKikH,UAAUp7G,EAAGkkB,MAKxIm6D,KAAKk4B,OAAO+D,QAAQxjH,UAAUmgF,MAAQ,WACpC,IAAI5jD,EAAI,IAAIl8B,KAAKw4B,YAEjB,OADA0D,EAAEmoF,SAASrkH,MACJk8B,GAETgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU4kH,aAAe,SAASroF,GACpD,IAAK,IAAIC,EAAIn8B,KAAKigH,gBAAgBC,YAAa/wF,EAAI,EAAGA,EAAIgN,EAAEtjC,OAAQs2B,IAAK,CACvE,IAAIpC,EAAIoP,EAAEhN,GAAItmB,EAAIkkB,EAAE8yF,SAAUz5E,EAAIrZ,EAAE+1F,kBAEpC,GADA9iH,KAAK0jH,UAAU76G,IAAMkkB,EAAEi2F,eAAiB58E,EAAIpmC,KAAKojH,QAAQv6G,GAAK,IAAKkkB,EAAE41F,iBAAmBzmF,IAAMl8B,KAAKojH,QAAQv6G,GAAKkkB,EAAE01F,oBAC9Gr8E,EACF,GAAIrZ,EAAEi2F,aACJ,IAAKj2F,EAAI/sB,KAAK4jH,aAAa/6G,GAAIA,EAAI,EAAGA,EAAIkkB,EAAEl0B,OAAQgQ,IAClDkkB,EAAElkB,GAAG07G,aAAaroF,QAGpBl8B,KAAK8jH,UAAUj7G,GAAG07G,aAAaroF,KAKvCgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU+jH,UAAY,SAASxnF,GACjD,OAAO,MAAQl8B,KAAKojH,QAAQlnF,IAE9BgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAUykH,gBAAkB,SAASloF,GACvD,IAAIC,EAAIn8B,KAAKojH,QAAQlnF,GACrB,OAAO,MAAQC,EAAI,KAAOn8B,KAAKsjH,kBAAoBpnF,KAAKl8B,KAAKqjH,oBAAsBrjH,KAAKqjH,oBAAoBnnF,IAAMC,EAAIn8B,KAAKsjH,kBAAkBkB,iBAAiBxkH,KAAMA,KAAK4/G,QAAQ1jF,GAAIC,GAAIn8B,KAAKqjH,oBAAoBnnF,GAAKC,GAAKA,GAE9N+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAUmkH,UAAY,SAAS5nF,EAAGC,GACpD,IAAIhN,EAAInvB,KAAKokH,gBAAgBloF,GAC7B,GAAIl8B,KAAK4/G,QAAQ1jF,GAAG8mF,aAAc,CAChC,IAAIj2F,EAAIoP,GAAK,EAEb,OADA+qD,KAAKsP,QAAQ18D,OAAO,GAAK/M,GAAKA,EAAIoC,EAAEt2B,OAAQ,8DAA+Dk0B,EAAGoC,EAAEt2B,QACzGs2B,EAAEpC,GAEX,OAAOoC,GAET+3D,KAAKk4B,OAAO+D,QAAQxjH,UAAUqkH,mBAAqB,SAAS9nF,EAAGC,GAC7D,OAAOn8B,KAAK0jH,UAAUxnF,GAAKl8B,KAAK8jH,UAAU5nF,EAAGC,GAAKn8B,KAAK4/G,QAAQ1jF,GAAGumF,mBAEpEv7B,KAAKk4B,OAAO+D,QAAQxjH,UAAUikH,aAAe,SAAS1nF,GACpD,OAAOl8B,KAAKokH,gBAAgBloF,IAAM,IAEpCgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAUkkH,aAAe,SAAS3nF,GACpD,OAAOl8B,KAAK4/G,QAAQ1jF,GAAG8mF,aAAehjH,KAAK0jH,UAAUxnF,GAAKl8B,KAAKojH,QAAQlnF,GAAGrjC,OAAS,EAAImH,KAAK0jH,UAAUxnF,GAAK,EAAI,GAEjHgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAUskH,UAAY,SAAS/nF,EAAGC,GACpD+qD,KAAKsP,QAAQC,gBAAkBz2F,KAAKykH,gBAAgBzkH,KAAK4/G,QAAQ1jF,GAAIC,GACrEn8B,KAAKojH,QAAQlnF,GAAKC,EAClBn8B,KAAKqjH,sBAAwBrjH,KAAKqjH,oBAAoBnnF,GAAKC,IAE7D+qD,KAAKk4B,OAAO+D,QAAQxjH,UAAUukH,UAAY,SAAShoF,EAAGC,GACpD+qD,KAAKsP,QAAQC,gBAAkBz2F,KAAKykH,gBAAgBzkH,KAAK4/G,QAAQ1jF,GAAIC,GACrEn8B,KAAKojH,QAAQlnF,KAAOl8B,KAAKojH,QAAQlnF,GAAK,IACtCl8B,KAAKojH,QAAQlnF,GAAGj+B,KAAKk+B,GACrBn8B,KAAKqjH,4BAA8BrjH,KAAKqjH,oBAAoBnnF,IAE9DgrD,KAAKk4B,OAAO+D,QAAQxjH,UAAU8kH,gBAAkB,SAASvoF,EAAGC,GAC1DD,EAAEwmF,gBAAkBx7B,KAAKk4B,OAAOmB,gBAAgBa,UAAUkB,KAAOp7B,KAAKsP,QAAQS,aAAa96D,GAAK+qD,KAAKsP,QAAQ18D,OAAOtgC,OAAO2iC,GAAG3D,aAAe0D,EAAEymF,kBAEjJz7B,KAAKk4B,OAAO+D,QAAQxjH,UAAUwkH,YAAc,SAASjoF,UAC5Cl8B,KAAKojH,QAAQlnF,GACpBl8B,KAAKqjH,4BAA8BrjH,KAAKqjH,oBAAoBnnF,IAE9DgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAmB,SAASxoF,EAAGC,GACjD,IAAsBtzB,EAAlBsmB,EAAI,GAAIpC,EAAIoP,EAAE,GAClB,IAAKtzB,KAAKszB,EACR,GAAKtzB,GAAKsmB,EAAElxB,KAAK,IAAIipF,KAAKk4B,OAAOmB,gBAAgBrkF,EAAGrzB,EAAGszB,EAAEtzB,KAE3D,OAAO,IAAIq+E,KAAKk4B,OAAOC,WAAWnjF,EAAGnP,EAAGoC,IAE1C+3D,KAAKk4B,OAAOuF,WAAa,aAEzBz9B,KAAKk4B,OAAOuF,WAAWC,uBAAwB,EAC/C19B,KAAKk4B,OAAOuF,WAAWhlH,UAAUklH,UAAY39B,KAAKqD,eAClDrD,KAAKk4B,OAAOuF,WAAWhlH,UAAUmlH,mBAAqB,SAAS5oF,EAAGC,GAChE,OAAOD,EAAE4mF,kBAAoB9iH,KAAK6kH,UAAU1oF,GAAK,iBAAoBA,GAAKu1C,SAASv1C,GAAKA,EAAIA,EAAEjiC,YAEhGgtF,KAAKk4B,OAAOuF,WAAWhlH,UAAUolH,YAAc,SAAS7oF,EAAGC,GACzD,IAAIhN,EAAI+M,EAAEokF,wBAGV,OAFAtgH,KAAKglH,cAAc71F,EAAGgN,GACtB+qD,KAAKsP,QAAQ18D,OAAO3K,aAAa+3D,KAAKk4B,OAAO+D,SACtCh0F,GAET+3D,KAAKk4B,OAAOuF,WAAWhlH,UAAUqlH,cAAgB99B,KAAKqD,eACtDrD,KAAKk4B,OAAOuF,WAAWhlH,UAAUslH,qBAAuB,SAAS/oF,EAAGC,GAClE,GAAID,EAAE4mF,kBACJ,OAAO3mF,aAAa+qD,KAAKk4B,OAAO+D,QAAUhnF,EAAIn8B,KAAK+kH,YAAY7oF,EAAE2mF,sBAAuB1mF,GAE1F,GAAID,EAAEwmF,gBAAkBx7B,KAAKk4B,OAAOmB,gBAAgBa,UAAUkB,KAAM,CAClE,GAAIp7B,KAAKk4B,OAAOuF,WAAWC,uBAAyB,iBAAoBzoF,EAAG,CACzE,IAAIhN,EAAI+M,EAAEymF,gBACV,GAAIxzF,EAAE34B,eAAe2lC,GACnB,OAAOhN,EAAEgN,GAGb,MAAO,iBAAoBA,GAAK+qD,KAAKk4B,OAAOuF,WAAWO,cAActoH,KAAKu/B,IAAsB,GAAfhN,EAAIjyB,OAAOi/B,IAAahN,EAAIgN,EAE/G,IAAKD,EAAE0mF,qCACL,OAAOzmF,EAGT,IADAhN,EAAI+M,EAAEymF,mBACI9oH,QACR,GAAI,iBAAoBsiC,EACtB,OAAOtiC,OAAOsiC,QAGhB,GAAIhN,IAAMjyB,QAAU,iBAAoBi/B,IAAM,aAAeA,GAAK,cAAgBA,GAAK,QAAUA,GAAK+qD,KAAKk4B,OAAOuF,WAAWO,cAActoH,KAAKu/B,IAC9I,OAAOj/B,OAAOi/B,GAGlB,OAAOA,GAET+qD,KAAKk4B,OAAOuF,WAAWO,cAAgB,aACvCh+B,KAAKk4B,OAAO+F,iBAAmB,aAE/Bj+B,KAAKqH,SAASrH,KAAKk4B,OAAO+F,iBAAkBj+B,KAAKk4B,OAAOuF,YACxDz9B,KAAKk4B,OAAO+F,iBAAiBxlH,UAAUolH,YAAc,SAAS7oF,EAAGC,GAC/D,IAAIhN,EAAI+M,EAAEokF,wBAGV,OAFAnxF,EAAEo0F,8BAA8BvjH,KAAMm8B,GACtC+qD,KAAKsP,QAAQ18D,OAAO3K,aAAa+3D,KAAKk4B,OAAO+D,SACtCh0F,GAET+3D,KAAKk4B,OAAO+F,iBAAiBxlH,UAAUqlH,cAAgB,SAAS9oF,EAAGC,GACjE,MAAM5hC,MAAM,kBAEd2sF,KAAKk4B,OAAO+F,iBAAiBxlH,UAAU6kH,iBAAmBt9B,KAAKqD,eAC/DrD,KAAKk4B,OAAOgG,iBAAmB,aAE/Bl+B,KAAKqH,SAASrH,KAAKk4B,OAAOgG,iBAAkBl+B,KAAKk4B,OAAO+F,kBACxDj+B,KAAKk4B,OAAOgG,iBAAiBzlH,UAAU0lH,eAAgB,EACvDn+B,KAAKk4B,OAAOgG,iBAAiBzlH,UAAU2lH,eAAiB,SAASppF,GAC/Dl8B,KAAKqlH,cAAgBnpF,GAEvBgrD,KAAKk4B,OAAOgG,iBAAiBzlH,UAAUklH,UAAY,SAAS3oF,GAC1D,IAAK,IAAIC,EAAID,EAAE+jF,gBAAgBC,YAAa/wF,EAAI,GAAIpC,EAAI/sB,KAAKqlH,cAAex8G,EAAI,EAAGA,EAAIszB,EAAEtjC,OAAQgQ,IAAK,CACpG,IAAIu9B,EAAIjK,EAAEtzB,GACV,GAAIqzB,EAAExoB,IAAI0yB,GAAI,CACZ,IAAIt6B,EAAIs6B,EAAEy5E,SAEV,GADA/zG,EAAIihB,EAAIjhB,EAAI,EAAIA,EACZs6B,EAAE48E,aAAc,CAClB7zF,EAAErjB,GAAK,GACP,IAAK,IAAI2kC,EAAI,EAAGA,EAAIvU,EAAE8hF,QAAQ53E,GAAIqK,IAChCthB,EAAErjB,GAAG2kC,GAAKzwC,KAAK8kH,mBAAmB1+E,EAAGlK,EAAE/iB,IAAIitB,EAAGqK,SAGhDthB,EAAErjB,GAAK9L,KAAK8kH,mBAAmB1+E,EAAGlK,EAAE/iB,IAAIitB,KAO9C,OAHAlK,EAAEunF,gBAAe,SAASvnF,EAAGC,GAC3BhN,EAAEpC,EAAImP,EAAI,EAAIA,GAAKC,KAEdhN,GAET+3D,KAAKk4B,OAAOgG,iBAAiBzlH,UAAU6kH,iBAAmB,SAAStoF,EAAGC,EAAGhN,GACvE,GAAI,MAAQA,EACV,OAAOA,EAET,GAAIgN,EAAE6mF,aAAc,CAClB9mF,EAAI,GACJgrD,KAAKsP,QAAQ18D,OAAOotD,KAAKpsF,QAAQq0B,GAAI,0BAA2BA,GAChE,IAAK,IAAIpC,EAAI,EAAGA,EAAIoC,EAAEt2B,OAAQk0B,IAC5BmP,EAAEnP,GAAK/sB,KAAKilH,qBAAqB9oF,EAAGhN,EAAEpC,IAExC,OAAOmP,EAET,OAAOl8B,KAAKilH,qBAAqB9oF,EAAGhN,IAEtC+3D,KAAKk4B,OAAOgG,iBAAiBzlH,UAAUmlH,mBAAqB,SAAS5oF,EAAGC,GACtE,OAAOD,EAAEwmF,gBAAkBx7B,KAAKk4B,OAAOmB,gBAAgBa,UAAUY,KAAO7lF,EAAI,EAAI,EAAI+qD,KAAKk4B,OAAOuF,WAAWhlH,UAAUmlH,mBAAmBnqF,MAAM36B,KAAM0Z,YAEtJwtE,KAAKk4B,OAAOgG,iBAAiBzlH,UAAUslH,qBAAuB,SAAS/oF,EAAGC,GACxE,OAAOD,EAAEwmF,gBAAkBx7B,KAAKk4B,OAAOmB,gBAAgBa,UAAUY,MAAQ96B,KAAKsP,QAAQ18D,OAAO,iBAAoBqC,GAAK,kBAAqBA,EAAG,iDAAkDA,GAAK+qD,KAAKk4B,OAAOuF,WAAWhlH,UAAUslH,qBAAqBtqF,MAAM36B,KAAM0Z,YAEzQwtE,KAAKk4B,OAAOgG,iBAAiBzlH,UAAUolH,YAAc,SAAS7oF,EAAGC,GAC/D,IAAIhN,EAAIgN,EACR,GAAIn8B,KAAKqlH,cAEP,IAAK,IAAIt4F,KADToC,EAAI,GACUgN,EACZhN,EAAE0H,SAAS9J,EAAG,IAAM,GAAKoP,EAAEpP,GAG/B,OAAOm6D,KAAKk4B,OAAOgG,iBAAiB52B,YAAYu2B,YAAYlxG,KAAK7T,KAAMk8B,EAAG/M,IAoB5E,IAAIu6E,KAAO,CAAC6b,aAAa,IACzB7b,KAAK6b,aAAaC,aAAe,WAC/Bt+B,KAAKk4B,OAAO+D,QAAQtvG,KAAK7T,OAE3BknF,KAAKqH,SAASmb,KAAK6b,aAAaC,aAAct+B,KAAKk4B,OAAO+D,SAC1DzZ,KAAK6b,aAAaC,aAAaC,YAAc,KAC7C/b,KAAK6b,aAAaC,aAAa7lH,UAAU+lH,WAAa,WACpD,OAAO1lH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAaC,aAAa7lH,UAAUgmH,oBAAsB,WAC7D,OAAO3lH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAaC,aAAa7lH,UAAUimH,WAAa,SAAS1pF,GAC7Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAUkmH,WAAa,WACpD,OAAO7lH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAUmmH,aAAe,WACtD,OAAO9lH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAUomH,aAAe,WACtD/lH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAUqmH,UAAY,WACnD,OAAOhmH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAaC,aAAa7lH,UAAUsmH,mBAAqB,WAC5D,OAAOjmH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAaC,aAAa7lH,UAAUumH,UAAY,SAAShqF,GAC5Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAUwmH,UAAY,WACnD,OAAOnmH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAUymH,YAAc,WACrD,OAAOpmH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAU0mH,YAAc,WACrDrmH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAU2mH,wBAA0B,SAASpqF,GAC1E,OAAOl8B,KAAK8jH,UAAU,EAAG5nF,IAE3BwtE,KAAK6b,aAAaC,aAAa7lH,UAAU4mH,iCAAmC,SAASrqF,GACnF,OAAOl8B,KAAKgkH,mBAAmB,EAAG9nF,IAEpCwtE,KAAK6b,aAAaC,aAAa7lH,UAAU6mH,wBAA0B,SAAStqF,GAC1El8B,KAAKkkH,UAAU,EAAGhoF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAU8mH,0BAA4B,WACnE,OAAOzmH,KAAK4jH,aAAa,IAE3Bla,KAAK6b,aAAaC,aAAa7lH,UAAU+mH,wBAA0B,WACjE,OAAO1mH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAUgnH,0BAA4B,WACnE,OAAO3mH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAUinH,0BAA4B,WACnE5mH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAUknH,gCAAkC,WACzE,OAAO7mH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAaC,aAAa7lH,UAAUmnH,yCAA2C,WAClF,OAAO9mH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAaC,aAAa7lH,UAAUonH,gCAAkC,SAAS7qF,GAClFl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAUqnH,gCAAkC,WACzE,OAAOhnH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAUsnH,kCAAoC,WAC3E,OAAOjnH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAUunH,kCAAoC,WAC3ElnH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAUwnH,wCAA0C,WACjF,OAAOnnH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAaC,aAAa7lH,UAAUynH,iDAAmD,WAC1F,OAAOpnH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAaC,aAAa7lH,UAAU0nH,wCAA0C,SAASnrF,GAC1Fl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAU2nH,wCAA0C,WACjF,OAAOtnH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAU4nH,0CAA4C,WACnF,OAAOvnH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAU6nH,0CAA4C,WACnFxnH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAU8nH,qCAAuC,WAC9E,OAAOznH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAaC,aAAa7lH,UAAU+nH,8CAAgD,WACvF,OAAO1nH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAaC,aAAa7lH,UAAUgoH,qCAAuC,SAASzrF,GACvFl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAaC,aAAa7lH,UAAUioH,qCAAuC,WAC9E,OAAO5nH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAaC,aAAa7lH,UAAUkoH,uCAAyC,WAChF,OAAO7nH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAaC,aAAa7lH,UAAUmoH,uCAAyC,WAChF9nH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAawC,gBAAkB,WAClC7gC,KAAKk4B,OAAO+D,QAAQtvG,KAAK7T,OAE3BknF,KAAKqH,SAASmb,KAAK6b,aAAawC,gBAAiB7gC,KAAKk4B,OAAO+D,SAC7DzZ,KAAK6b,aAAawC,gBAAgBtC,YAAc,KAChD/b,KAAK6b,aAAawC,gBAAgBpoH,UAAUqoH,yBAA2B,WACrE,OAAOhoH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAawC,gBAAgBpoH,UAAUsoH,kCAAoC,WAC9E,OAAOjoH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAawC,gBAAgBpoH,UAAUuoH,yBAA2B,SAAShsF,GAC9El8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAUwoH,yBAA2B,WACrE,OAAOnoH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAawC,gBAAgBpoH,UAAUyoH,2BAA6B,WACvE,OAAOpoH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAawC,gBAAgBpoH,UAAU0oH,2BAA6B,WACvEroH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAawC,gBAAgBpoH,UAAU2oH,kBAAoB,SAASpsF,GACvE,OAAOl8B,KAAK8jH,UAAU,EAAG5nF,IAE3BwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAU4oH,2BAA6B,SAASrsF,GAChF,OAAOl8B,KAAKgkH,mBAAmB,EAAG9nF,IAEpCwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAU6oH,kBAAoB,SAAStsF,GACvEl8B,KAAKkkH,UAAU,EAAGhoF,IAEpBwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAU8oH,oBAAsB,WAChE,OAAOzoH,KAAK4jH,aAAa,IAE3Bla,KAAK6b,aAAawC,gBAAgBpoH,UAAU+oH,kBAAoB,WAC9D,OAAO1oH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAawC,gBAAgBpoH,UAAUgpH,oBAAsB,WAChE,OAAO3oH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAawC,gBAAgBpoH,UAAUipH,oBAAsB,WAChE5oH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAawC,gBAAgBpoH,UAAUkpH,2BAA6B,SAAS3sF,GAChF,OAAOl8B,KAAK8jH,UAAU,GAAI5nF,IAE5BwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAUmpH,oCAAsC,SAAS5sF,GACzF,OAAOl8B,KAAKgkH,mBAAmB,GAAI9nF,IAErCwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAUopH,2BAA6B,SAAS7sF,GAChFl8B,KAAKkkH,UAAU,GAAIhoF,IAErBwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAUqpH,6BAA+B,WACzE,OAAOhpH,KAAK4jH,aAAa,KAE3Bla,KAAK6b,aAAawC,gBAAgBpoH,UAAUspH,2BAA6B,WACvE,OAAOjpH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAawC,gBAAgBpoH,UAAUupH,6BAA+B,WACzE,OAAOlpH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAawC,gBAAgBpoH,UAAUwpH,6BAA+B,WACzEnpH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAawC,gBAAgBpoH,UAAUypH,iBAAmB,WAC7D,OAAOppH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAawC,gBAAgBpoH,UAAU0pH,0BAA4B,WACtE,OAAOrpH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAawC,gBAAgBpoH,UAAU2pH,iBAAmB,SAASptF,GACtEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAawC,gBAAgBpoH,UAAU4pH,iBAAmB,WAC7D,OAAOvpH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAawC,gBAAgBpoH,UAAU6pH,mBAAqB,WAC/D,OAAOxpH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAawC,gBAAgBpoH,UAAU8pH,mBAAqB,WAC/DzpH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAgB,WAChCxiC,KAAKk4B,OAAO+D,QAAQtvG,KAAK7T,OAE3BknF,KAAKqH,SAASmb,KAAK6b,aAAamE,cAAexiC,KAAKk4B,OAAO+D,SAC3DzZ,KAAK6b,aAAamE,cAAcjE,YAAc,KAC9C/b,KAAK6b,aAAamE,cAAc/pH,UAAUgqH,eAAiB,WACzD,OAAO3pH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUiqH,wBAA0B,WAClE,OAAO5pH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUkqH,eAAiB,SAAS3tF,GAClEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUmqH,eAAiB,WACzD,OAAO9pH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUoqH,iBAAmB,WAC3D,OAAO/pH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUqqH,iBAAmB,WAC3DhqH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUsqH,aAAe,WACvD,OAAOjqH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUuqH,sBAAwB,WAChE,OAAOlqH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUwqH,aAAe,SAASjuF,GAChEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUyqH,aAAe,WACvD,OAAOpqH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU0qH,eAAiB,WACzD,OAAOrqH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU2qH,eAAiB,WACzDtqH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU4qH,UAAY,WACpD,OAAOvqH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU6qH,mBAAqB,WAC7D,OAAOxqH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU8qH,UAAY,SAASvuF,GAC7Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU+qH,UAAY,WACpD,OAAO1qH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUgrH,YAAc,WACtD,OAAO3qH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUirH,YAAc,WACtD5qH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUkrH,YAAc,WACtD,OAAO7qH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUmrH,qBAAuB,WAC/D,OAAO9qH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUorH,YAAc,SAAS7uF,GAC/Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUqrH,YAAc,WACtD,OAAOhrH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUsrH,cAAgB,WACxD,OAAOjrH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUurH,cAAgB,WACxDlrH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUwrH,eAAiB,WACzD,OAAOnrH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUyrH,wBAA0B,WAClE,OAAOprH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU0rH,eAAiB,SAASnvF,GAClEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU2rH,eAAiB,WACzD,OAAOtrH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU4rH,iBAAmB,WAC3D,OAAOvrH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU6rH,iBAAmB,WAC3DxrH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU8rH,cAAgB,WACxD,OAAOzrH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU+rH,uBAAyB,WACjE,OAAO1rH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUgsH,cAAgB,SAASzvF,GACjEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUisH,cAAgB,WACxD,OAAO5rH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUksH,gBAAkB,WAC1D,OAAO7rH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUmsH,gBAAkB,WAC1D9rH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUosH,kBAAoB,WAC5D,OAAO/rH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUqsH,2BAA6B,WACrE,OAAOhsH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUssH,kBAAoB,SAAS/vF,GACrEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUusH,kBAAoB,WAC5D,OAAOlsH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUwsH,oBAAsB,WAC9D,OAAOnsH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUysH,oBAAsB,WAC9DpsH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU0sH,QAAU,WAClD,OAAOrsH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU2sH,iBAAmB,WAC3D,OAAOtsH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU4sH,QAAU,SAASrwF,GAC3Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU6sH,QAAU,WAClD,OAAOxsH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU8sH,UAAY,WACpD,OAAOzsH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU+sH,UAAY,WACpD1sH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUgtH,SAAW,WACnD,OAAO3sH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUitH,kBAAoB,WAC5D,OAAO5sH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUktH,SAAW,SAAS3wF,GAC5Dl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUmtH,SAAW,WACnD,OAAO9sH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUotH,WAAa,WACrD,OAAO/sH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUqtH,WAAa,WACrDhtH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUstH,OAAS,WACjD,OAAOjtH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUutH,gBAAkB,WAC1D,OAAOltH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUwtH,OAAS,SAASjxF,GAC1Dl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUytH,OAAS,WACjD,OAAOptH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU0tH,SAAW,WACnD,OAAOrtH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU2tH,SAAW,WACnDttH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU4tH,aAAe,WACvD,OAAOvtH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU6tH,sBAAwB,WAChE,OAAOxtH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU8tH,aAAe,SAASvxF,GAChEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU+tH,aAAe,WACvD,OAAO1tH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUguH,eAAiB,WACzD,OAAO3tH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUiuH,eAAiB,WACzD5tH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUkuH,aAAe,WACvD,OAAO7tH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUmuH,sBAAwB,WAChE,OAAO9tH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUouH,aAAe,SAAS7xF,GAChEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUquH,aAAe,WACvD,OAAOhuH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUsuH,eAAiB,WACzD,OAAOjuH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUuuH,eAAiB,WACzDluH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUwuH,aAAe,WACvD,OAAOnuH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUyuH,sBAAwB,WAChE,OAAOpuH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU0uH,aAAe,SAASnyF,GAChEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU2uH,aAAe,WACvD,OAAOtuH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU4uH,eAAiB,WACzD,OAAOvuH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU6uH,eAAiB,WACzDxuH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU8uH,gBAAkB,WAC1D,OAAOzuH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU+uH,yBAA2B,WACnE,OAAO1uH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUgvH,gBAAkB,SAASzyF,GACnEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUivH,gBAAkB,WAC1D,OAAO5uH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUkvH,kBAAoB,WAC5D,OAAO7uH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUmvH,kBAAoB,WAC5D9uH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUovH,mBAAqB,WAC7D,OAAO/uH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUqvH,4BAA8B,WACtE,OAAOhvH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUsvH,mBAAqB,SAAS/yF,GACtEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUuvH,mBAAqB,WAC7D,OAAOlvH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUwvH,qBAAuB,WAC/D,OAAOnvH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUyvH,qBAAuB,WAC/DpvH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU0vH,eAAiB,WACzD,OAAOrvH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU2vH,wBAA0B,WAClE,OAAOtvH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU4vH,eAAiB,SAASrzF,GAClEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU6vH,eAAiB,WACzD,OAAOxvH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU8vH,iBAAmB,WAC3D,OAAOzvH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU+vH,iBAAmB,WAC3D1vH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUgwH,2BAA6B,WACrE,OAAO3vH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUiwH,oCAAsC,WAC9E,OAAO5vH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUkwH,2BAA6B,SAAS3zF,GAC9El8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUmwH,2BAA6B,WACrE,OAAO9vH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUowH,6BAA+B,WACvE,OAAO/vH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUqwH,6BAA+B,WACvEhwH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUswH,MAAQ,WAChD,OAAOjwH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUuwH,eAAiB,WACzD,OAAOlwH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUwwH,MAAQ,SAASj0F,GACzDl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUywH,MAAQ,WAChD,OAAOpwH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU0wH,QAAU,WAClD,OAAOrwH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU2wH,QAAU,WAClDtwH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU4wH,eAAiB,WACzD,OAAOvwH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU6wH,wBAA0B,WAClE,OAAOxwH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU8wH,eAAiB,SAASv0F,GAClEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU+wH,eAAiB,WACzD,OAAO1wH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUgxH,iBAAmB,WAC3D,OAAO3wH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUixH,iBAAmB,WAC3D5wH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUkxH,uBAAyB,WACjE,OAAO7wH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUmxH,gCAAkC,WAC1E,OAAO9wH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUoxH,uBAAyB,SAAS70F,GAC1El8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUqxH,uBAAyB,WACjE,OAAOhxH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUsxH,yBAA2B,WACnE,OAAOjxH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUuxH,yBAA2B,WACnElxH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUwxH,gCAAkC,WAC1E,OAAOnxH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUyxH,yCAA2C,WACnF,OAAOpxH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU0xH,gCAAkC,SAASn1F,GACnFl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU2xH,gCAAkC,WAC1E,OAAOtxH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU4xH,kCAAoC,WAC5E,OAAOvxH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU6xH,kCAAoC,WAC5ExxH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU8xH,kBAAoB,WAC5D,OAAOzxH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU+xH,2BAA6B,WACrE,OAAO1xH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUgyH,kBAAoB,SAASz1F,GACrEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUiyH,kBAAoB,WAC5D,OAAO5xH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUkyH,oBAAsB,WAC9D,OAAO7xH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUmyH,oBAAsB,WAC9D9xH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUoyH,uBAAyB,WACjE,OAAO/xH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUqyH,gCAAkC,WAC1E,OAAOhyH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUsyH,uBAAyB,SAAS/1F,GAC1El8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUuyH,uBAAyB,WACjE,OAAOlyH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUwyH,yBAA2B,WACnE,OAAOnyH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUyyH,yBAA2B,WACnEpyH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU0yH,4BAA8B,WACtE,OAAOryH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU2yH,qCAAuC,WAC/E,OAAOtyH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU4yH,4BAA8B,SAASr2F,GAC/El8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU6yH,4BAA8B,WACtE,OAAOxyH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU8yH,8BAAgC,WACxE,OAAOzyH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU+yH,8BAAgC,WACxE1yH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUgzH,+BAAiC,WACzE,OAAO3yH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUizH,wCAA0C,WAClF,OAAO5yH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUkzH,+BAAiC,SAAS32F,GAClFl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUmzH,+BAAiC,WACzE,OAAO9yH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUozH,iCAAmC,WAC3E,OAAO/yH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUqzH,iCAAmC,WAC3EhzH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUszH,iCAAmC,WAC3E,OAAOjzH,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUuzH,0CAA4C,WACpF,OAAOlzH,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUwzH,iCAAmC,SAASj3F,GACpFl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUyzH,iCAAmC,WAC3E,OAAOpzH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU0zH,mCAAqC,WAC7E,OAAOrzH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU2zH,mCAAqC,WAC7EtzH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU4zH,gBAAkB,SAASr3F,GACnE,OAAOl8B,KAAK8jH,UAAU,GAAI5nF,IAE5BwtE,KAAK6b,aAAamE,cAAc/pH,UAAU6zH,yBAA2B,SAASt3F,GAC5E,OAAOl8B,KAAKgkH,mBAAmB,GAAI9nF,IAErCwtE,KAAK6b,aAAamE,cAAc/pH,UAAU8zH,gBAAkB,SAASv3F,GACnEl8B,KAAKkkH,UAAU,GAAIhoF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU+zH,kBAAoB,WAC5D,OAAO1zH,KAAK4jH,aAAa,KAE3Bla,KAAK6b,aAAamE,cAAc/pH,UAAUg0H,gBAAkB,WAC1D,OAAO3zH,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUi0H,kBAAoB,WAC5D,OAAO5zH,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUk0H,kBAAoB,WAC5D7zH,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUm0H,oBAAsB,SAAS53F,GACvE,OAAOl8B,KAAK8jH,UAAU,GAAI5nF,IAE5BwtE,KAAK6b,aAAamE,cAAc/pH,UAAUo0H,6BAA+B,SAAS73F,GAChF,OAAOl8B,KAAKgkH,mBAAmB,GAAI9nF,IAErCwtE,KAAK6b,aAAamE,cAAc/pH,UAAUq0H,oBAAsB,SAAS93F,GACvEl8B,KAAKkkH,UAAU,GAAIhoF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUs0H,sBAAwB,WAChE,OAAOj0H,KAAK4jH,aAAa,KAE3Bla,KAAK6b,aAAamE,cAAc/pH,UAAUu0H,oBAAsB,WAC9D,OAAOl0H,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUw0H,sBAAwB,WAChE,OAAOn0H,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUy0H,sBAAwB,WAChEp0H,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAU00H,sBAAwB,WAChE,OAAOr0H,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAU20H,+BAAiC,WACzE,OAAOt0H,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAU40H,sBAAwB,SAASr4F,GACzEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAU60H,sBAAwB,WAChE,OAAOx0H,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU80H,wBAA0B,WAClE,OAAOz0H,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU+0H,wBAA0B,WAClE10H,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUg1H,iBAAmB,WAC3D,OAAO30H,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUi1H,0BAA4B,WACpE,OAAO50H,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUk1H,iBAAmB,SAAS34F,GACpEl8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUm1H,iBAAmB,WAC3D,OAAO90H,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAUo1H,mBAAqB,WAC7D,OAAO/0H,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAUq1H,mBAAqB,WAC7Dh1H,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAamE,cAAc/pH,UAAUs1H,uBAAyB,WACjE,OAAOj1H,KAAK8jH,UAAU,KAExBpa,KAAK6b,aAAamE,cAAc/pH,UAAUu1H,gCAAkC,WAC1E,OAAOl1H,KAAKgkH,mBAAmB,KAEjCta,KAAK6b,aAAamE,cAAc/pH,UAAUw1H,uBAAyB,SAASj5F,GAC1El8B,KAAKikH,UAAU,GAAI/nF,IAErBwtE,KAAK6b,aAAamE,cAAc/pH,UAAUy1H,uBAAyB,WACjE,OAAOp1H,KAAK0jH,UAAU,KAExBha,KAAK6b,aAAamE,cAAc/pH,UAAU01H,yBAA2B,WACnE,OAAOr1H,KAAK6jH,aAAa,KAE3Bna,KAAK6b,aAAamE,cAAc/pH,UAAU21H,yBAA2B,WACnEt1H,KAAKmkH,YAAY,KAEnBza,KAAK6b,aAAagQ,wBAA0B,WAC1CruC,KAAKk4B,OAAO+D,QAAQtvG,KAAK7T,OAE3BknF,KAAKqH,SAASmb,KAAK6b,aAAagQ,wBAAyBruC,KAAKk4B,OAAO+D,SACrEzZ,KAAK6b,aAAagQ,wBAAwB9P,YAAc,KACxD/b,KAAK6b,aAAagQ,wBAAwB51H,UAAU61H,YAAc,SAASt5F,GACzE,OAAOl8B,KAAK8jH,UAAU,EAAG5nF,IAE3BwtE,KAAK6b,aAAagQ,wBAAwB51H,UAAU81H,qBAAuB,SAASv5F,GAClF,OAAOl8B,KAAKgkH,mBAAmB,EAAG9nF,IAEpCwtE,KAAK6b,aAAagQ,wBAAwB51H,UAAU+1H,YAAc,SAASx5F,GACzEl8B,KAAKkkH,UAAU,EAAGhoF,IAEpBwtE,KAAK6b,aAAagQ,wBAAwB51H,UAAUg2H,cAAgB,WAClE,OAAO31H,KAAK4jH,aAAa,IAE3Bla,KAAK6b,aAAagQ,wBAAwB51H,UAAUi2H,YAAc,WAChE,OAAO51H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagQ,wBAAwB51H,UAAUk2H,cAAgB,WAClE,OAAO71H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagQ,wBAAwB51H,UAAUm2H,cAAgB,WAClE91H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAaC,aAAa7lH,UAAUsgH,cAAgB,WACvD,IAAI/jF,EAAIwtE,KAAK6b,aAAaC,aAAaC,YAGvC,OAFAvpF,IAAMwtE,KAAK6b,aAAaC,aAAaC,YAAcvpF,EAAIgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAiBhb,KAAK6b,aAAaC,aAAc,CAACuQ,EAAE,CAAC76H,KAAK,eAAgBukH,SAAS,kCAAmC14B,EAAE,CAAC7rF,KAAK,UAAW6lH,UAAS,EAAIE,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASm8H,EAAE,CAAC96H,KAAK,SAAU6lH,UAAS,EAAIE,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAAS6S,EAAE,CAACxR,KAAK,yBAA0B2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASo8H,EAAE,CAAC/6H,KAAK,kCACjf+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAAS+S,EAAE,CAAC1R,KAAK,2CAA4C+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUY,KAAMH,cAAa,EAAIprH,KAAKsyC,SAAUp8B,EAAE,CAACzR,KAAK,wCAAyC+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,WAC/RqiC,GAETwtE,KAAK6b,aAAaC,aAAavF,cAAgBvW,KAAK6b,aAAaC,aAAa7lH,UAAUsgH,cACxFvW,KAAK6b,aAAawC,gBAAgBpoH,UAAUsgH,cAAgB,WAC1D,IAAI/jF,EAAIwtE,KAAK6b,aAAawC,gBAAgBtC,YAG1C,OAFAvpF,IAAMwtE,KAAK6b,aAAawC,gBAAgBtC,YAAcvpF,EAAIgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAiBhb,KAAK6b,aAAawC,gBAAiB,CAACgO,EAAE,CAAC76H,KAAK,kBAAmBukH,SAAS,qCAAsCuW,EAAE,CAAC96H,KAAK,0BAA2B+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASuyB,EAAE,CAAClxB,KAAK,kBAAmB2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUU,MAAOrrH,KAAKyG,QAASmvB,GAAG,CAACnxB,KAAK,6BAA8B2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUU,MAC/errH,KAAKyG,QAAS0P,EAAE,CAAC1R,KAAK,iBAAkB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,WACtFqiC,GAETwtE,KAAK6b,aAAawC,gBAAgB9H,cAAgBvW,KAAK6b,aAAawC,gBAAgBpoH,UAAUsgH,cAC9FvW,KAAK6b,aAAamE,cAAc/pH,UAAUsgH,cAAgB,WACxD,IAAI/jF,EAAIwtE,KAAK6b,aAAamE,cAAcjE,YAQxC,OAPAvpF,IAAMwtE,KAAK6b,aAAamE,cAAcjE,YAAcvpF,EAAIgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAiBhb,KAAK6b,aAAamE,cAAe,CAACqM,EAAE,CAAC76H,KAAK,gBAAiBukH,SAAS,mCAAoC14B,EAAE,CAAC7rF,KAAK,eAAgB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBiO,EAAE,CAAC96H,KAAK,aAAc+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBr7G,EAAE,CAACxR,KAAK,SAAU+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBACjgBkO,EAAE,CAAC/6H,KAAK,YAAa+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBp7G,EAAE,CAACzR,KAAK,eAAgB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBn7G,EAAE,CAAC1R,KAAK,cAAe+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBmO,EAAE,CAACh7H,KAAK,kBAAmB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBoO,EAAE,CAACj7H,KAAK,OAAQ+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAC/f1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBqO,GAAG,CAACl7H,KAAK,QAAS+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBsO,GAAG,CAACn7H,KAAK,MAAO+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBuO,GAAG,CAACp7H,KAAK,YAAa+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkBwO,GAAG,CAACr7H,KAAK,YAAa+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkByO,GAAG,CAACt7H,KAAK,aACxe+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkB0O,GAAG,CAACv7H,KAAK,gBAAiB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkB2O,GAAG,CAACx7H,KAAK,mBAAoB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkB4O,GAAG,CAACz7H,KAAK,eAAgB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAawC,iBAAkB6O,GAAG,CAAC17H,KAAK,4BAA6B+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QACtgB1rH,KAAKizG,KAAK6b,aAAawC,iBAAkB37F,EAAE,CAAClxB,KAAK,KAAM6lH,UAAS,EAAIE,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASwyB,GAAG,CAACnxB,KAAK,eAAgB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUU,MAAOrrH,KAAKyG,QAASovB,GAAG,CAACpxB,KAAK,uBAAwB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASg9H,GAAG,CAAC37H,KAAK,iCAAkC+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAAS0yB,GAAG,CAACrxB,KAAK,kBAAmB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QACjfi9H,GAAG,CAAC57H,KAAK,wBAAyB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASk9H,GAAG,CAAC77H,KAAK,8BAA+B+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASm9H,GAAG,CAAC97H,KAAK,iCAAkC+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASo9H,GAAG,CAAC/7H,KAAK,qCAAsC+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUY,KAAMH,cAAa,EAAIprH,KAAKsyC,SAAUmuF,GAAG,CAACh8H,KAAK,gBAAiB2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAC3f1rH,KAAKizG,KAAK6b,aAAaC,cAAe2R,GAAG,CAACj8H,KAAK,qBAAsB2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAaC,cAAe4R,GAAG,CAACl8H,KAAK,wBAAyB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUY,KAAMH,cAAa,EAAIprH,KAAKsyC,SAAUsuF,GAAG,CAACn8H,KAAK,iBAAkB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASy9H,GAAG,CAACp8H,KAAK,wBAAyB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUY,KAAMH,cAAa,EAAIprH,KAAKsyC,YACjd7M,GAETwtE,KAAK6b,aAAamE,cAAczJ,cAAgBvW,KAAK6b,aAAamE,cAAc/pH,UAAUsgH,cAC1FvW,KAAK6b,aAAagQ,wBAAwB51H,UAAUsgH,cAAgB,WAClE,IAAI/jF,EAAIwtE,KAAK6b,aAAagQ,wBAAwB9P,YAElD,OADAvpF,IAAMwtE,KAAK6b,aAAagQ,wBAAwB9P,YAAcvpF,EAAIgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAiBhb,KAAK6b,aAAagQ,wBAAyB,CAACQ,EAAE,CAAC76H,KAAK,0BAA2BukH,SAAS,6CAA8C14B,EAAE,CAAC7rF,KAAK,WAAY2lH,UAAS,EAAII,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUe,QAAS1rH,KAAKizG,KAAK6b,aAAamE,kBAC/UxtF,GAETwtE,KAAK6b,aAAagQ,wBAAwBtV,cAAgBvW,KAAK6b,aAAagQ,wBAAwB51H,UAAUsgH,cAC9GvW,KAAK6b,aAAagS,YAAc,WAC9BrwC,KAAKk4B,OAAO+D,QAAQtvG,KAAK7T,OAE3BknF,KAAKqH,SAASmb,KAAK6b,aAAagS,YAAarwC,KAAKk4B,OAAO+D,SACzDzZ,KAAK6b,aAAagS,YAAY9R,YAAc,KAC5C/b,KAAK6b,aAAagS,YAAY53H,UAAU4wH,eAAiB,WACvD,OAAOvwH,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAU6wH,wBAA0B,WAChE,OAAOxwH,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAU8wH,eAAiB,SAASv0F,GAChEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAU+wH,eAAiB,WACvD,OAAO1wH,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUgxH,iBAAmB,WACzD,OAAO3wH,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUixH,iBAAmB,WACzD5wH,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAU63H,kBAAoB,WAC1D,OAAOx3H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAU83H,2BAA6B,WACnE,OAAOz3H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAU+3H,kBAAoB,SAASx7F,GACnEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAUg4H,kBAAoB,WAC1D,OAAO33H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUi4H,oBAAsB,WAC5D,OAAO53H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUk4H,oBAAsB,WAC5D73H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAUm4H,aAAe,WACrD,OAAO93H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAUo4H,sBAAwB,WAC9D,OAAO/3H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAUq4H,aAAe,SAAS97F,GAC9Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAUs4H,aAAe,WACrD,OAAOj4H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUu4H,eAAiB,WACvD,OAAOl4H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUw4H,eAAiB,WACvDn4H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAUy4H,sBAAwB,WAC9D,OAAOp4H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAU04H,+BAAiC,WACvE,OAAOr4H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAU24H,sBAAwB,SAASp8F,GACvEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAU44H,sBAAwB,WAC9D,OAAOv4H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAU64H,wBAA0B,WAChE,OAAOx4H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAU84H,wBAA0B,WAChEz4H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAU+4H,wBAA0B,WAChE,OAAO14H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAUg5H,iCAAmC,WACzE,OAAO34H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAUi5H,wBAA0B,SAAS18F,GACzEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAUk5H,wBAA0B,WAChE,OAAO74H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUm5H,0BAA4B,WAClE,OAAO94H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUo5H,0BAA4B,WAClE/4H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAUq5H,YAAc,WACpD,OAAOh5H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAUs5H,qBAAuB,WAC7D,OAAOj5H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAUu5H,YAAc,SAASh9F,GAC7Dl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAUw5H,YAAc,WACpD,OAAOn5H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUy5H,cAAgB,WACtD,OAAOp5H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAU05H,cAAgB,WACtDr5H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAU25H,qBAAuB,WAC7D,OAAOt5H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAU45H,8BAAgC,WACtE,OAAOv5H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAU65H,qBAAuB,SAASt9F,GACtEl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAU85H,qBAAuB,WAC7D,OAAOz5H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAU+5H,uBAAyB,WAC/D,OAAO15H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUg6H,uBAAyB,WAC/D35H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY53H,UAAUi6H,gCAAkC,WACxE,OAAO55H,KAAK8jH,UAAU,IAExBpa,KAAK6b,aAAagS,YAAY53H,UAAUk6H,yCAA2C,WACjF,OAAO75H,KAAKgkH,mBAAmB,IAEjCta,KAAK6b,aAAagS,YAAY53H,UAAUm6H,gCAAkC,SAAS59F,GACjFl8B,KAAKikH,UAAU,EAAG/nF,IAEpBwtE,KAAK6b,aAAagS,YAAY53H,UAAUo6H,gCAAkC,WACxE,OAAO/5H,KAAK0jH,UAAU,IAExBha,KAAK6b,aAAagS,YAAY53H,UAAUq6H,kCAAoC,WAC1E,OAAOh6H,KAAK6jH,aAAa,IAE3Bna,KAAK6b,aAAagS,YAAY53H,UAAUs6H,kCAAoC,WAC1Ej6H,KAAKmkH,YAAY,IAEnBza,KAAK6b,aAAagS,YAAY2C,kBAAoB,CAACC,YAAY,EAAGC,2BAA2B,EAAGC,qBAAqB,EAAGC,8BAA8B,GAAIC,qBAAqB,IAC/K7wB,KAAK6b,aAAagS,YAAY53H,UAAUsgH,cAAgB,WACtD,IAAI/jF,EAAIwtE,KAAK6b,aAAagS,YAAY9R,YAItC,OAHAvpF,IAAMwtE,KAAK6b,aAAagS,YAAY9R,YAAcvpF,EAAIgrD,KAAKk4B,OAAO+D,QAAQuB,iBAAiBhb,KAAK6b,aAAagS,YAAa,CAACxB,EAAE,CAAC76H,KAAK,cAAeukH,SAAS,iCAAkC14B,EAAE,CAAC7rF,KAAK,eAAgB6lH,UAAS,EAAIE,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUU,MAAOrrH,KAAKyG,QAAS84H,EAAE,CAAC96H,KAAK,kBAAmB6lH,UAAS,EAAIE,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUE,OAAQ7qH,KAAKyG,QAASwP,EAAE,CAACxR,KAAK,YAAa+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAASo8H,EAAE,CAAC/6H,KAAK,uBAChe+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUY,KAAMvrH,KAAKsyC,SAAUotF,EAAE,CAACj7H,KAAK,0BAA2B+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUU,MAAOD,aAAa,EAAGprH,KAAKyG,QAASyP,EAAE,CAACzR,KAAK,YAAa+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,QAAS+S,EAAE,CAAC1R,KAAK,sBAAuB+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUkB,KAAMT,aAAanY,KAAK6b,aAAagS,YAAY2C,kBAAkBC,YAAa1jI,KAAKizG,KAAK6b,aAAagS,YAAY2C,mBAAoBhE,EAAE,CAACh7H,KAAK,kCACtd+lH,UAAU/5B,KAAKk4B,OAAO+D,QAAQ/B,UAAUa,OAAQxrH,KAAKoD,WAC9CqiC,GAETwtE,KAAK6b,aAAagS,YAAYiD,KAAO9wB,KAAK6b,aAAagS,YACvD7tB,KAAK6b,aAAagS,YAAYiD,KAAKva,cAAgBvW,KAAK6b,aAAagS,YAAY53H,UAAUsgH,cAiB3FvW,KAAK6b,aAAa/tD,SAAW,GAC7BkyC,KAAK6b,aAAa/tD,SAASijE,2BAA6B,CAAC1zC,EAAE,6EAA6E9pF,MAAM,KAAMi5H,EAAE,CAAC,KAAM,MAAOiB,GAAG,CAAC,MAAOb,GAAG,CAAC,MAAOG,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOgE,GAAG,CAAC,MAAO/D,GAAG,CAAC,MAAOgE,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,KAAM,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,KAAM,KAAM,KAAM,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,KAAM,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,KAC/e,KAAM,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,GAAG,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MACpfC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MACjfC,IAAI,CAAC,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,KAAM,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MACvfC,IAAI,CAAC,KAAM,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,OAAQC,IAAI,CAAC,OAAQC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,OAAQC,IAAI,CAAC,OAAQC,IAAI,CAAC,MAAOC,IAAI,CAAC,OAAQC,IAAI,CAAC,OAAQC,IAAI,CAAC,OAAQC,IAAI,CAAC,MAAOC,IAAI,CAAC,OAAQC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MACnfC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,IAAI,CAAC,MAAOC,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AM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAOz/CloP,EA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","file":"index.browser.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"JavaScriptObfuscator\"] = factory();\n\telse\n\t\troot[\"JavaScriptObfuscator\"] = factory();\n})(self, function() {\nreturn ","/*\n Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2015 Ingvar Stepanyan <me@rreverser.com>\n Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\n Copyright (C) 2012-2013 Michael Ficarra <escodegen.copyright@michael.ficarra.me>\n Copyright (C) 2012-2013 Mathias Bynens <mathias@qiwi.be>\n Copyright (C) 2013 Irakli Gozalishvili <rfobic@gmail.com>\n Copyright (C) 2012 Robert Gust-Bardon <donate@robert.gust-bardon.org>\n Copyright (C) 2012 John Freeman <jfreeman08@gmail.com>\n Copyright (C) 2011-2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>\n Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>\n Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/*global exports:true, require:true, global:true*/\n(function () {\n 'use strict';\n\n var Syntax,\n Precedence,\n BinaryPrecedence,\n SourceNode,\n estraverse,\n esutils,\n base,\n indent,\n json,\n renumber,\n hexadecimal,\n quotes,\n escapeless,\n newline,\n space,\n parentheses,\n semicolons,\n safeConcatenation,\n directive,\n extra,\n parse,\n sourceMap,\n sourceCode,\n preserveBlankLines,\n FORMAT_MINIFY,\n FORMAT_DEFAULTS;\n\n estraverse = require('estraverse');\n esutils = require('esutils');\n\n Syntax = estraverse.Syntax;\n\n // Generation is done by generateExpression.\n function isExpression(node) {\n return CodeGenerator.Expression.hasOwnProperty(node.type);\n }\n\n // Generation is done by generateStatement.\n function isStatement(node) {\n return CodeGenerator.Statement.hasOwnProperty(node.type);\n }\n\n Precedence = {\n Sequence: 0,\n Yield: 1,\n Assignment: 1,\n Conditional: 2,\n ArrowFunction: 2,\n NullishCoalescing: 3,\n LogicalOR: 3,\n LogicalAND: 4,\n BitwiseOR: 5,\n BitwiseXOR: 6,\n BitwiseAND: 7,\n Equality: 8,\n Relational: 9,\n BitwiseSHIFT: 10,\n Additive: 11,\n Multiplicative: 12,\n Exponentiation: 13,\n Await: 14,\n Unary: 14,\n Postfix: 15,\n OptionalChaining: 16,\n Call: 17,\n New: 18,\n TaggedTemplate: 19,\n Member: 20,\n Primary: 21\n };\n\n BinaryPrecedence = {\n '??': Precedence.NullishCoalescing,\n '||': Precedence.LogicalOR,\n '&&': Precedence.LogicalAND,\n '|': Precedence.BitwiseOR,\n '^': Precedence.BitwiseXOR,\n '&': Precedence.BitwiseAND,\n '==': Precedence.Equality,\n '!=': Precedence.Equality,\n '===': Precedence.Equality,\n '!==': Precedence.Equality,\n 'is': Precedence.Equality,\n 'isnt': Precedence.Equality,\n '<': Precedence.Relational,\n '>': Precedence.Relational,\n '<=': Precedence.Relational,\n '>=': Precedence.Relational,\n 'in': Precedence.Relational,\n 'instanceof': Precedence.Relational,\n '<<': Precedence.BitwiseSHIFT,\n '>>': Precedence.BitwiseSHIFT,\n '>>>': Precedence.BitwiseSHIFT,\n '+': Precedence.Additive,\n '-': Precedence.Additive,\n '*': Precedence.Multiplicative,\n '%': Precedence.Multiplicative,\n '/': Precedence.Multiplicative,\n '**': Precedence.Exponentiation\n };\n\n //Flags\n var F_ALLOW_IN = 1,\n F_ALLOW_CALL = 1 << 1,\n F_ALLOW_UNPARATH_NEW = 1 << 2,\n F_FUNC_BODY = 1 << 3,\n F_DIRECTIVE_CTX = 1 << 4,\n F_SEMICOLON_OPT = 1 << 5;\n\n //Expression flag sets\n //NOTE: Flag order:\n // F_ALLOW_IN\n // F_ALLOW_CALL\n // F_ALLOW_UNPARATH_NEW\n var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,\n E_TTF = F_ALLOW_IN | F_ALLOW_CALL,\n E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW,\n E_TFF = F_ALLOW_IN,\n E_FFT = F_ALLOW_UNPARATH_NEW,\n E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW;\n\n //Statement flag sets\n //NOTE: Flag order:\n // F_ALLOW_IN\n // F_FUNC_BODY\n // F_DIRECTIVE_CTX\n // F_SEMICOLON_OPT\n var S_TFFF = F_ALLOW_IN,\n S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT,\n S_FFFF = 0x00,\n S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX,\n S_TTFF = F_ALLOW_IN | F_FUNC_BODY;\n\n function getDefaultOptions() {\n // default options\n return {\n indent: null,\n base: null,\n parse: null,\n comment: false,\n format: {\n indent: {\n style: ' ',\n base: 0,\n adjustMultilineComment: false\n },\n newline: '\\n',\n space: ' ',\n json: false,\n renumber: false,\n hexadecimal: false,\n quotes: 'single',\n escapeless: false,\n compact: false,\n parentheses: true,\n semicolons: true,\n safeConcatenation: false,\n preserveBlankLines: false\n },\n moz: {\n comprehensionExpressionStartsWithAssignment: false,\n starlessGenerator: false\n },\n sourceMap: null,\n sourceMapRoot: null,\n sourceMapWithCode: false,\n directive: false,\n raw: true,\n verbatim: null,\n sourceCode: null\n };\n }\n\n function stringRepeat(str, num) {\n var result = '';\n\n for (num |= 0; num > 0; num >>>= 1, str += str) {\n if (num & 1) {\n result += str;\n }\n }\n\n return result;\n }\n\n function hasLineTerminator(str) {\n return (/[\\r\\n]/g).test(str);\n }\n\n function endsWithLineTerminator(str) {\n var len = str.length;\n return len && esutils.code.isLineTerminator(str.charCodeAt(len - 1));\n }\n\n function merge(target, override) {\n var key;\n for (key in override) {\n if (override.hasOwnProperty(key)) {\n target[key] = override[key];\n }\n }\n return target;\n }\n\n function updateDeeply(target, override) {\n var key, val;\n\n function isHashObject(target) {\n return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp);\n }\n\n for (key in override) {\n if (override.hasOwnProperty(key)) {\n val = override[key];\n if (isHashObject(val)) {\n if (isHashObject(target[key])) {\n updateDeeply(target[key], val);\n } else {\n target[key] = updateDeeply({}, val);\n }\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n }\n\n function generateNumber(value) {\n var result, point, temp, exponent, pos;\n\n if (value !== value) {\n throw new Error('Numeric literal whose value is NaN');\n }\n if (value < 0 || (value === 0 && 1 / value < 0)) {\n throw new Error('Numeric literal whose value is negative');\n }\n\n if (value === 1 / 0) {\n return json ? 'null' : renumber ? '1e400' : '1e+400';\n }\n\n result = '' + value;\n if (!renumber || result.length < 3) {\n return result;\n }\n\n point = result.indexOf('.');\n if (!json && result.charCodeAt(0) === 0x30 /* 0 */ && point === 1) {\n point = 0;\n result = result.slice(1);\n }\n temp = result;\n result = result.replace('e+', 'e');\n exponent = 0;\n if ((pos = temp.indexOf('e')) > 0) {\n exponent = +temp.slice(pos + 1);\n temp = temp.slice(0, pos);\n }\n if (point >= 0) {\n exponent -= temp.length - point - 1;\n temp = +(temp.slice(0, point) + temp.slice(point + 1)) + '';\n }\n pos = 0;\n while (temp.charCodeAt(temp.length + pos - 1) === 0x30 /* 0 */) {\n --pos;\n }\n if (pos !== 0) {\n exponent -= pos;\n temp = temp.slice(0, pos);\n }\n if (exponent !== 0) {\n temp += 'e' + exponent;\n }\n if ((temp.length < result.length ||\n (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) &&\n +temp === value) {\n result = temp;\n }\n\n return result;\n }\n\n // Generate valid RegExp expression.\n // This function is based on https://github.com/Constellation/iv Engine\n\n function escapeRegExpCharacter(ch, previousIsBackslash) {\n // not handling '\\' and handling \\u2028 or \\u2029 to unicode escape sequence\n if ((ch & ~1) === 0x2028) {\n return (previousIsBackslash ? 'u' : '\\\\u') + ((ch === 0x2028) ? '2028' : '2029');\n } else if (ch === 10 || ch === 13) { // \\n, \\r\n return (previousIsBackslash ? '' : '\\\\') + ((ch === 10) ? 'n' : 'r');\n }\n return String.fromCharCode(ch);\n }\n\n function generateRegExp(reg) {\n var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;\n\n result = reg.toString();\n\n if (reg.source) {\n // extract flag from toString result\n match = result.match(/\\/([^/]*)$/);\n if (!match) {\n return result;\n }\n\n flags = match[1];\n result = '';\n\n characterInBrack = false;\n previousIsBackslash = false;\n for (i = 0, iz = reg.source.length; i < iz; ++i) {\n ch = reg.source.charCodeAt(i);\n\n if (!previousIsBackslash) {\n if (characterInBrack) {\n if (ch === 93) { // ]\n characterInBrack = false;\n }\n } else {\n if (ch === 47) { // /\n result += '\\\\';\n } else if (ch === 91) { // [\n characterInBrack = true;\n }\n }\n result += escapeRegExpCharacter(ch, previousIsBackslash);\n previousIsBackslash = ch === 92; // \\\n } else {\n // if new RegExp(\"\\\\\\n') is provided, create /\\n/\n result += escapeRegExpCharacter(ch, previousIsBackslash);\n // prevent like /\\\\[/]/\n previousIsBackslash = false;\n }\n }\n\n return '/' + result + '/' + flags;\n }\n\n return result;\n }\n\n function escapeAllowedCharacter(code, next) {\n var hex;\n\n if (code === 0x08 /* \\b */) {\n return '\\\\b';\n }\n\n if (code === 0x0C /* \\f */) {\n return '\\\\f';\n }\n\n if (code === 0x09 /* \\t */) {\n return '\\\\t';\n }\n\n hex = code.toString(16).toUpperCase();\n if (json || code > 0xFF) {\n return '\\\\u' + '0000'.slice(hex.length) + hex;\n } else if (code === 0x0000 && !esutils.code.isDecimalDigit(next)) {\n return '\\\\0';\n } else if (code === 0x000B /* \\v */) { // '\\v'\n return '\\\\x0B';\n } else {\n return '\\\\x' + '00'.slice(hex.length) + hex;\n }\n }\n\n function escapeDisallowedCharacter(code) {\n if (code === 0x5C /* \\ */) {\n return '\\\\\\\\';\n }\n\n if (code === 0x0A /* \\n */) {\n return '\\\\n';\n }\n\n if (code === 0x0D /* \\r */) {\n return '\\\\r';\n }\n\n if (code === 0x2028) {\n return '\\\\u2028';\n }\n\n if (code === 0x2029) {\n return '\\\\u2029';\n }\n\n throw new Error('Incorrectly classified character');\n }\n\n function escapeDirective(str) {\n var i, iz, code, quote;\n\n quote = quotes === 'double' ? '\"' : '\\'';\n for (i = 0, iz = str.length; i < iz; ++i) {\n code = str.charCodeAt(i);\n if (code === 0x27 /* ' */) {\n quote = '\"';\n break;\n } else if (code === 0x22 /* \" */) {\n quote = '\\'';\n break;\n } else if (code === 0x5C /* \\ */) {\n ++i;\n }\n }\n\n return quote + str + quote;\n }\n\n function escapeString(str) {\n var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote;\n\n for (i = 0, len = str.length; i < len; ++i) {\n code = str.charCodeAt(i);\n if (code === 0x27 /* ' */) {\n ++singleQuotes;\n } else if (code === 0x22 /* \" */) {\n ++doubleQuotes;\n } else if (code === 0x2F /* / */ && json) {\n result += '\\\\';\n } else if (esutils.code.isLineTerminator(code) || code === 0x5C /* \\ */) {\n result += escapeDisallowedCharacter(code);\n continue;\n } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 0x20 /* SP */ || !json && !escapeless && (code < 0x20 /* SP */ || code > 0x7E /* ~ */))) {\n result += escapeAllowedCharacter(code, str.charCodeAt(i + 1));\n continue;\n }\n result += String.fromCharCode(code);\n }\n\n single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes));\n quote = single ? '\\'' : '\"';\n\n if (!(single ? singleQuotes : doubleQuotes)) {\n return quote + result + quote;\n }\n\n str = result;\n result = quote;\n\n for (i = 0, len = str.length; i < len; ++i) {\n code = str.charCodeAt(i);\n if ((code === 0x27 /* ' */ && single) || (code === 0x22 /* \" */ && !single)) {\n result += '\\\\';\n }\n result += String.fromCharCode(code);\n }\n\n return result + quote;\n }\n\n /**\n * flatten an array to a string, where the array can contain\n * either strings or nested arrays\n */\n function flattenToString(arr) {\n var i, iz, elem, result = '';\n for (i = 0, iz = arr.length; i < iz; ++i) {\n elem = arr[i];\n result += Array.isArray(elem) ? flattenToString(elem) : elem;\n }\n return result;\n }\n\n /**\n * convert generated to a SourceNode when source maps are enabled.\n */\n function toSourceNodeWhenNeeded(generated, node) {\n if (!sourceMap) {\n // with no source maps, generated is either an\n // array or a string. if an array, flatten it.\n // if a string, just return it\n if (Array.isArray(generated)) {\n return flattenToString(generated);\n } else {\n return generated;\n }\n }\n if (node == null) {\n if (generated instanceof SourceNode) {\n return generated;\n } else {\n node = {};\n }\n }\n if (node.loc == null) {\n return new SourceNode(null, null, sourceMap, generated, node.name || null);\n }\n return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated, node.name || null);\n }\n\n function noEmptySpace() {\n return (space) ? space : ' ';\n }\n\n function join(left, right) {\n var leftSource,\n rightSource,\n leftCharCode,\n rightCharCode;\n\n leftSource = toSourceNodeWhenNeeded(left).toString();\n if (leftSource.length === 0) {\n return [right];\n }\n\n rightSource = toSourceNodeWhenNeeded(right).toString();\n if (rightSource.length === 0) {\n return [left];\n }\n\n leftCharCode = leftSource.charCodeAt(leftSource.length - 1);\n rightCharCode = rightSource.charCodeAt(0);\n\n if ((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode ||\n esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) ||\n leftCharCode === 0x2F /* / */ && rightCharCode === 0x69 /* i */) { // infix word operators all start with `i`\n return [left, noEmptySpace(), right];\n } else if (esutils.code.isWhiteSpace(leftCharCode) || esutils.code.isLineTerminator(leftCharCode) ||\n esutils.code.isWhiteSpace(rightCharCode) || esutils.code.isLineTerminator(rightCharCode)) {\n return [left, right];\n }\n return [left, space, right];\n }\n\n function addIndent(stmt) {\n return [base, stmt];\n }\n\n function withIndent(fn) {\n var previousBase;\n previousBase = base;\n base += indent;\n fn(base);\n base = previousBase;\n }\n\n function calculateSpaces(str) {\n var i;\n for (i = str.length - 1; i >= 0; --i) {\n if (esutils.code.isLineTerminator(str.charCodeAt(i))) {\n break;\n }\n }\n return (str.length - 1) - i;\n }\n\n function adjustMultilineComment(value, specialBase) {\n var array, i, len, line, j, spaces, previousBase, sn;\n\n array = value.split(/\\r\\n|[\\r\\n]/);\n spaces = Number.MAX_VALUE;\n\n // first line doesn't have indentation\n for (i = 1, len = array.length; i < len; ++i) {\n line = array[i];\n j = 0;\n while (j < line.length && esutils.code.isWhiteSpace(line.charCodeAt(j))) {\n ++j;\n }\n if (spaces > j) {\n spaces = j;\n }\n }\n\n if (typeof specialBase !== 'undefined') {\n // pattern like\n // {\n // var t = 20; /*\n // * this is comment\n // */\n // }\n previousBase = base;\n if (array[1][spaces] === '*') {\n specialBase += ' ';\n }\n base = specialBase;\n } else {\n if (spaces & 1) {\n // /*\n // *\n // */\n // If spaces are odd number, above pattern is considered.\n // We waste 1 space.\n --spaces;\n }\n previousBase = base;\n }\n\n for (i = 1, len = array.length; i < len; ++i) {\n sn = toSourceNodeWhenNeeded(addIndent(array[i].slice(spaces)));\n array[i] = sourceMap ? sn.join('') : sn;\n }\n\n base = previousBase;\n\n return array.join('\\n');\n }\n\n function generateComment(comment, specialBase) {\n if (comment.type === 'Line') {\n if (endsWithLineTerminator(comment.value)) {\n return '//' + comment.value;\n } else {\n // Always use LineTerminator\n var result = '//' + comment.value;\n if (!preserveBlankLines) {\n result += '\\n';\n }\n return result;\n }\n }\n if (extra.format.indent.adjustMultilineComment && /[\\n\\r]/.test(comment.value)) {\n return adjustMultilineComment('/*' + comment.value + '*/', specialBase);\n }\n return '/*' + comment.value + '*/';\n }\n\n function addComments(stmt, result) {\n var i, len, comment, save, tailingToStatement, specialBase, fragment,\n extRange, range, prevRange, prefix, infix, suffix, count;\n\n if (stmt.leadingComments && stmt.leadingComments.length > 0) {\n save = result;\n\n if (preserveBlankLines) {\n comment = stmt.leadingComments[0];\n result = [];\n\n extRange = comment.extendedRange;\n range = comment.range;\n\n prefix = sourceCode.substring(extRange[0], range[0]);\n count = (prefix.match(/\\n/g) || []).length;\n if (count > 0) {\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n } else {\n result.push(prefix);\n result.push(generateComment(comment));\n }\n\n prevRange = range;\n\n for (i = 1, len = stmt.leadingComments.length; i < len; i++) {\n comment = stmt.leadingComments[i];\n range = comment.range;\n\n infix = sourceCode.substring(prevRange[1], range[0]);\n count = (infix.match(/\\n/g) || []).length;\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n\n prevRange = range;\n }\n\n suffix = sourceCode.substring(range[1], extRange[1]);\n count = (suffix.match(/\\n/g) || []).length;\n result.push(stringRepeat('\\n', count));\n } else {\n comment = stmt.leadingComments[0];\n result = [];\n if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) {\n result.push('\\n');\n }\n result.push(generateComment(comment));\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push('\\n');\n }\n\n for (i = 1, len = stmt.leadingComments.length; i < len; ++i) {\n comment = stmt.leadingComments[i];\n fragment = [generateComment(comment)];\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n fragment.push('\\n');\n }\n result.push(addIndent(fragment));\n }\n }\n\n result.push(addIndent(save));\n }\n\n if (stmt.trailingComments) {\n\n if (preserveBlankLines) {\n comment = stmt.trailingComments[0];\n extRange = comment.extendedRange;\n range = comment.range;\n\n prefix = sourceCode.substring(extRange[0], range[0]);\n count = (prefix.match(/\\n/g) || []).length;\n\n if (count > 0) {\n result.push(stringRepeat('\\n', count));\n result.push(addIndent(generateComment(comment)));\n } else {\n result.push(prefix);\n result.push(generateComment(comment));\n }\n } else {\n tailingToStatement = !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());\n specialBase = stringRepeat(' ', calculateSpaces(toSourceNodeWhenNeeded([base, result, indent]).toString()));\n for (i = 0, len = stmt.trailingComments.length; i < len; ++i) {\n comment = stmt.trailingComments[i];\n if (tailingToStatement) {\n // We assume target like following script\n //\n // var t = 20; /**\n // * This is comment of t\n // */\n if (i === 0) {\n // first case\n result = [result, indent];\n } else {\n result = [result, specialBase];\n }\n result.push(generateComment(comment, specialBase));\n } else {\n result = [result, addIndent(generateComment(comment))];\n }\n if (i !== len - 1 && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result = [result, '\\n'];\n }\n }\n }\n }\n\n return result;\n }\n\n function generateBlankLines(start, end, result) {\n var j, newlineCount = 0;\n\n for (j = start; j < end; j++) {\n if (sourceCode[j] === '\\n') {\n newlineCount++;\n }\n }\n\n for (j = 1; j < newlineCount; j++) {\n result.push(newline);\n }\n }\n\n function parenthesize(text, current, should) {\n if (current < should) {\n return ['(', text, ')'];\n }\n return text;\n }\n\n function generateVerbatimString(string) {\n var i, iz, result;\n result = string.split(/\\r\\n|\\n/);\n for (i = 1, iz = result.length; i < iz; i++) {\n result[i] = newline + base + result[i];\n }\n return result;\n }\n\n function generateVerbatim(expr, precedence) {\n var verbatim, result, prec;\n verbatim = expr[extra.verbatim];\n\n if (typeof verbatim === 'string') {\n result = parenthesize(generateVerbatimString(verbatim), Precedence.Sequence, precedence);\n } else {\n // verbatim is object\n result = generateVerbatimString(verbatim.content);\n prec = (verbatim.precedence != null) ? verbatim.precedence : Precedence.Sequence;\n result = parenthesize(result, prec, precedence);\n }\n\n return toSourceNodeWhenNeeded(result, expr);\n }\n\n function CodeGenerator() {\n }\n\n // Helpers.\n\n CodeGenerator.prototype.maybeBlock = function(stmt, flags) {\n var result, noLeadingComment, that = this;\n\n noLeadingComment = !extra.comment || !stmt.leadingComments;\n\n if (stmt.type === Syntax.BlockStatement && noLeadingComment) {\n return [space, this.generateStatement(stmt, flags)];\n }\n\n if (stmt.type === Syntax.EmptyStatement && noLeadingComment) {\n return ';';\n }\n\n withIndent(function () {\n result = [\n newline,\n addIndent(that.generateStatement(stmt, flags))\n ];\n });\n\n return result;\n };\n\n CodeGenerator.prototype.maybeBlockSuffix = function (stmt, result) {\n var ends = endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString());\n if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) {\n return [result, space];\n }\n if (ends) {\n return [result, base];\n }\n return [result, newline, base];\n };\n\n function generateIdentifier(node) {\n return toSourceNodeWhenNeeded(node.name, node);\n }\n\n function generateAsyncPrefix(node, spaceRequired) {\n return node.async ? 'async' + (spaceRequired ? noEmptySpace() : space) : '';\n }\n\n function generateStarSuffix(node) {\n var isGenerator = node.generator && !extra.moz.starlessGenerator;\n return isGenerator ? '*' + space : '';\n }\n\n function generateMethodPrefix(prop) {\n var func = prop.value, prefix = '';\n if (func.async) {\n prefix += generateAsyncPrefix(func, !prop.computed);\n }\n if (func.generator) {\n // avoid space before method name\n prefix += generateStarSuffix(func) ? '*' : '';\n }\n return prefix;\n }\n\n CodeGenerator.prototype.generatePattern = function (node, precedence, flags) {\n if (node.type === Syntax.Identifier) {\n return generateIdentifier(node);\n }\n return this.generateExpression(node, precedence, flags);\n };\n\n CodeGenerator.prototype.generateFunctionParams = function (node) {\n var i, iz, result, hasDefault;\n\n hasDefault = false;\n\n if (node.type === Syntax.ArrowFunctionExpression &&\n !node.rest && (!node.defaults || node.defaults.length === 0) &&\n node.params.length === 1 && node.params[0].type === Syntax.Identifier) {\n // arg => { } case\n result = [generateAsyncPrefix(node, true), generateIdentifier(node.params[0])];\n } else {\n result = node.type === Syntax.ArrowFunctionExpression ? [generateAsyncPrefix(node, false)] : [];\n result.push('(');\n if (node.defaults) {\n hasDefault = true;\n }\n for (i = 0, iz = node.params.length; i < iz; ++i) {\n if (hasDefault && node.defaults[i]) {\n // Handle default values.\n result.push(this.generateAssignment(node.params[i], node.defaults[i], '=', Precedence.Assignment, E_TTT));\n } else {\n result.push(this.generatePattern(node.params[i], Precedence.Assignment, E_TTT));\n }\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n\n if (node.rest) {\n if (node.params.length) {\n result.push(',' + space);\n }\n result.push('...');\n result.push(generateIdentifier(node.rest));\n }\n\n result.push(')');\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateFunctionBody = function (node) {\n var result, expr;\n\n result = this.generateFunctionParams(node);\n\n if (node.type === Syntax.ArrowFunctionExpression) {\n result.push(space);\n result.push('=>');\n }\n\n if (node.expression) {\n result.push(space);\n expr = this.generateExpression(node.body, Precedence.Assignment, E_TTT);\n if (expr.toString().charAt(0) === '{') {\n expr = ['(', expr, ')'];\n }\n result.push(expr);\n } else {\n result.push(this.maybeBlock(node.body, S_TTFF));\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateIterationForStatement = function (operator, stmt, flags) {\n var result = ['for' + (stmt.await ? noEmptySpace() + 'await' : '') + space + '('], that = this;\n withIndent(function () {\n if (stmt.left.type === Syntax.VariableDeclaration) {\n withIndent(function () {\n result.push(stmt.left.kind + noEmptySpace());\n result.push(that.generateStatement(stmt.left.declarations[0], S_FFFF));\n });\n } else {\n result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT));\n }\n\n result = join(result, operator);\n result = [join(\n result,\n that.generateExpression(stmt.right, Precedence.Assignment, E_TTT)\n ), ')'];\n });\n result.push(this.maybeBlock(stmt.body, flags));\n return result;\n };\n\n CodeGenerator.prototype.generatePropertyKey = function (expr, computed) {\n var result = [];\n\n if (computed) {\n result.push('[');\n }\n\n result.push(this.generateExpression(expr, Precedence.Assignment, E_TTT));\n\n if (computed) {\n result.push(']');\n }\n\n return result;\n };\n\n CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) {\n if (Precedence.Assignment < precedence) {\n flags |= F_ALLOW_IN;\n }\n\n return parenthesize(\n [\n this.generateExpression(left, Precedence.Call, flags),\n space + operator + space,\n this.generateExpression(right, Precedence.Assignment, flags)\n ],\n Precedence.Assignment,\n precedence\n );\n };\n\n CodeGenerator.prototype.semicolon = function (flags) {\n if (!semicolons && flags & F_SEMICOLON_OPT) {\n return '';\n }\n return ';';\n };\n\n // Statements.\n\n CodeGenerator.Statement = {\n\n BlockStatement: function (stmt, flags) {\n var range, content, result = ['{', newline], that = this;\n\n withIndent(function () {\n // handle functions without any code\n if (stmt.body.length === 0 && preserveBlankLines) {\n range = stmt.range;\n if (range[1] - range[0] > 2) {\n content = sourceCode.substring(range[0] + 1, range[1] - 1);\n if (content[0] === '\\n') {\n result = ['{'];\n }\n result.push(content);\n }\n }\n\n var i, iz, fragment, bodyFlags;\n bodyFlags = S_TFFF;\n if (flags & F_FUNC_BODY) {\n bodyFlags |= F_DIRECTIVE_CTX;\n }\n\n for (i = 0, iz = stmt.body.length; i < iz; ++i) {\n if (preserveBlankLines) {\n // handle spaces before the first line\n if (i === 0) {\n if (stmt.body[0].leadingComments) {\n range = stmt.body[0].leadingComments[0].extendedRange;\n content = sourceCode.substring(range[0], range[1]);\n if (content[0] === '\\n') {\n result = ['{'];\n }\n }\n if (!stmt.body[0].leadingComments) {\n generateBlankLines(stmt.range[0], stmt.body[0].range[0], result);\n }\n }\n\n // handle spaces between lines\n if (i > 0) {\n if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {\n generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);\n }\n }\n }\n\n if (i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n\n if (stmt.body[i].leadingComments && preserveBlankLines) {\n fragment = that.generateStatement(stmt.body[i], bodyFlags);\n } else {\n fragment = addIndent(that.generateStatement(stmt.body[i], bodyFlags));\n }\n\n result.push(fragment);\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n if (preserveBlankLines && i < iz - 1) {\n // don't add a new line if there are leading coments\n // in the next statement\n if (!stmt.body[i + 1].leadingComments) {\n result.push(newline);\n }\n } else {\n result.push(newline);\n }\n }\n\n if (preserveBlankLines) {\n // handle spaces after the last line\n if (i === iz - 1) {\n if (!stmt.body[i].trailingComments) {\n generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);\n }\n }\n }\n }\n });\n\n result.push(addIndent('}'));\n return result;\n },\n\n BreakStatement: function (stmt, flags) {\n if (stmt.label) {\n return 'break ' + stmt.label.name + this.semicolon(flags);\n }\n return 'break' + this.semicolon(flags);\n },\n\n ContinueStatement: function (stmt, flags) {\n if (stmt.label) {\n return 'continue ' + stmt.label.name + this.semicolon(flags);\n }\n return 'continue' + this.semicolon(flags);\n },\n\n ClassBody: function (stmt, flags) {\n var result = [ '{', newline], that = this;\n\n withIndent(function (indent) {\n var i, iz;\n\n for (i = 0, iz = stmt.body.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.body[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(newline);\n }\n }\n });\n\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base);\n result.push('}');\n return result;\n },\n\n ClassDeclaration: function (stmt, flags) {\n var result, fragment;\n result = ['class'];\n if (stmt.id) {\n result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));\n }\n if (stmt.superClass) {\n fragment = join('extends', this.generateExpression(stmt.superClass, Precedence.Unary, E_TTT));\n result = join(result, fragment);\n }\n result.push(space);\n result.push(this.generateStatement(stmt.body, S_TFFT));\n return result;\n },\n\n DirectiveStatement: function (stmt, flags) {\n if (extra.raw && stmt.raw) {\n return stmt.raw + this.semicolon(flags);\n }\n return escapeDirective(stmt.directive) + this.semicolon(flags);\n },\n\n DoWhileStatement: function (stmt, flags) {\n // Because `do 42 while (cond)` is Syntax Error. We need semicolon.\n var result = join('do', this.maybeBlock(stmt.body, S_TFFF));\n result = this.maybeBlockSuffix(stmt.body, result);\n return join(result, [\n 'while' + space + '(',\n this.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')' + this.semicolon(flags)\n ]);\n },\n\n CatchClause: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n var guard;\n\n if (stmt.param) {\n result = [\n 'catch' + space + '(',\n that.generateExpression(stmt.param, Precedence.Sequence, E_TTT),\n ')'\n ];\n\n if (stmt.guard) {\n guard = that.generateExpression(stmt.guard, Precedence.Sequence, E_TTT);\n result.splice(2, 0, ' if ', guard);\n }\n } else {\n result = ['catch'];\n }\n });\n result.push(this.maybeBlock(stmt.body, S_TFFF));\n return result;\n },\n\n DebuggerStatement: function (stmt, flags) {\n return 'debugger' + this.semicolon(flags);\n },\n\n EmptyStatement: function (stmt, flags) {\n return ';';\n },\n\n ExportDefaultDeclaration: function (stmt, flags) {\n var result = [ 'export' ], bodyFlags;\n\n bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;\n\n // export default HoistableDeclaration[Default]\n // export default AssignmentExpression[In] ;\n result = join(result, 'default');\n if (isStatement(stmt.declaration)) {\n result = join(result, this.generateStatement(stmt.declaration, bodyFlags));\n } else {\n result = join(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags));\n }\n return result;\n },\n\n ExportNamedDeclaration: function (stmt, flags) {\n var result = [ 'export' ], bodyFlags, that = this;\n\n bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF;\n\n // export VariableStatement\n // export Declaration[Default]\n if (stmt.declaration) {\n return join(result, this.generateStatement(stmt.declaration, bodyFlags));\n }\n\n // export ExportClause[NoReference] FromClause ;\n // export ExportClause ;\n if (stmt.specifiers) {\n if (stmt.specifiers.length === 0) {\n result = join(result, '{' + space + '}');\n } else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) {\n result = join(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT));\n } else {\n result = join(result, '{');\n withIndent(function (indent) {\n var i, iz;\n result.push(newline);\n for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n });\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base + '}');\n }\n\n if (stmt.source) {\n result = join(result, [\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n this.semicolon(flags)\n ]);\n } else {\n result.push(this.semicolon(flags));\n }\n }\n return result;\n },\n\n ExportAllDeclaration: function (stmt, flags) {\n // export * FromClause ;\n var result = [\n 'export' + space,\n '*' + space\n ];\n\n if (stmt.exported) {\n result.push('as ' + stmt.exported.name + ' ');\n }\n\n result = join(result, [\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n this.semicolon(flags)\n ]);\n\n return result;\n },\n\n ExpressionStatement: function (stmt, flags) {\n var result, fragment;\n\n function isClassPrefixed(fragment) {\n var code;\n if (fragment.slice(0, 5) !== 'class') {\n return false;\n }\n code = fragment.charCodeAt(5);\n return code === 0x7B /* '{' */ || esutils.code.isWhiteSpace(code) || esutils.code.isLineTerminator(code);\n }\n\n function isFunctionPrefixed(fragment) {\n var code;\n if (fragment.slice(0, 8) !== 'function') {\n return false;\n }\n code = fragment.charCodeAt(8);\n return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);\n }\n\n function isAsyncPrefixed(fragment) {\n var code, i, iz;\n if (fragment.slice(0, 5) !== 'async') {\n return false;\n }\n if (!esutils.code.isWhiteSpace(fragment.charCodeAt(5))) {\n return false;\n }\n for (i = 6, iz = fragment.length; i < iz; ++i) {\n if (!esutils.code.isWhiteSpace(fragment.charCodeAt(i))) {\n break;\n }\n }\n if (i === iz) {\n return false;\n }\n if (fragment.slice(i, i + 8) !== 'function') {\n return false;\n }\n code = fragment.charCodeAt(i + 8);\n return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code);\n }\n\n result = [this.generateExpression(stmt.expression, Precedence.Sequence, E_TTT)];\n // 12.4 '{', 'function', 'class' is not allowed in this position.\n // wrap expression with parentheses\n fragment = toSourceNodeWhenNeeded(result).toString();\n if (fragment.charCodeAt(0) === 0x7B /* '{' */ || // ObjectExpression\n isClassPrefixed(fragment) ||\n isFunctionPrefixed(fragment) ||\n isAsyncPrefixed(fragment) ||\n (directive && (flags & F_DIRECTIVE_CTX) && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) {\n result = ['(', result, ')' + this.semicolon(flags)];\n } else {\n result.push(this.semicolon(flags));\n }\n return result;\n },\n\n ImportDeclaration: function (stmt, flags) {\n // ES6: 15.2.1 valid import declarations:\n // - import ImportClause FromClause ;\n // - import ModuleSpecifier ;\n var result, cursor, that = this;\n\n // If no ImportClause is present,\n // this should be `import ModuleSpecifier` so skip `from`\n // ModuleSpecifier is StringLiteral.\n if (stmt.specifiers.length === 0) {\n // import ModuleSpecifier ;\n return [\n 'import',\n space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n this.semicolon(flags)\n ];\n }\n\n // import ImportClause FromClause ;\n result = [\n 'import'\n ];\n cursor = 0;\n\n // ImportedBinding\n if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) {\n result = join(result, [\n this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)\n ]);\n ++cursor;\n }\n\n if (stmt.specifiers[cursor]) {\n if (cursor !== 0) {\n result.push(',');\n }\n\n if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) {\n // NameSpaceImport\n result = join(result, [\n space,\n this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)\n ]);\n } else {\n // NamedImports\n result.push(space + '{');\n\n if ((stmt.specifiers.length - cursor) === 1) {\n // import { ... } from \"...\";\n result.push(space);\n result.push(this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT));\n result.push(space + '}' + space);\n } else {\n // import {\n // ...,\n // ...,\n // } from \"...\";\n withIndent(function (indent) {\n var i, iz;\n result.push(newline);\n for (i = cursor, iz = stmt.specifiers.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n });\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base + '}' + space);\n }\n }\n }\n\n result = join(result, [\n 'from' + space,\n // ModuleSpecifier\n this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),\n this.semicolon(flags)\n ]);\n return result;\n },\n\n VariableDeclarator: function (stmt, flags) {\n var itemFlags = (flags & F_ALLOW_IN) ? E_TTT : E_FTT;\n if (stmt.init) {\n return [\n this.generateExpression(stmt.id, Precedence.Assignment, itemFlags),\n space,\n '=',\n space,\n this.generateExpression(stmt.init, Precedence.Assignment, itemFlags)\n ];\n }\n return this.generatePattern(stmt.id, Precedence.Assignment, itemFlags);\n },\n\n VariableDeclaration: function (stmt, flags) {\n // VariableDeclarator is typed as Statement,\n // but joined with comma (not LineTerminator).\n // So if comment is attached to target node, we should specialize.\n var result, i, iz, node, bodyFlags, that = this;\n\n result = [ stmt.kind ];\n\n bodyFlags = (flags & F_ALLOW_IN) ? S_TFFF : S_FFFF;\n\n function block() {\n node = stmt.declarations[0];\n if (extra.comment && node.leadingComments) {\n result.push('\\n');\n result.push(addIndent(that.generateStatement(node, bodyFlags)));\n } else {\n result.push(noEmptySpace());\n result.push(that.generateStatement(node, bodyFlags));\n }\n\n for (i = 1, iz = stmt.declarations.length; i < iz; ++i) {\n node = stmt.declarations[i];\n if (extra.comment && node.leadingComments) {\n result.push(',' + newline);\n result.push(addIndent(that.generateStatement(node, bodyFlags)));\n } else {\n result.push(',' + space);\n result.push(that.generateStatement(node, bodyFlags));\n }\n }\n }\n\n if (stmt.declarations.length > 1) {\n withIndent(block);\n } else {\n block();\n }\n\n result.push(this.semicolon(flags));\n\n return result;\n },\n\n ThrowStatement: function (stmt, flags) {\n return [join(\n 'throw',\n this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)\n ), this.semicolon(flags)];\n },\n\n TryStatement: function (stmt, flags) {\n var result, i, iz, guardedHandlers;\n\n result = ['try', this.maybeBlock(stmt.block, S_TFFF)];\n result = this.maybeBlockSuffix(stmt.block, result);\n\n if (stmt.handlers) {\n // old interface\n for (i = 0, iz = stmt.handlers.length; i < iz; ++i) {\n result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(stmt.handlers[i].body, result);\n }\n }\n } else {\n guardedHandlers = stmt.guardedHandlers || [];\n\n for (i = 0, iz = guardedHandlers.length; i < iz; ++i) {\n result = join(result, this.generateStatement(guardedHandlers[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(guardedHandlers[i].body, result);\n }\n }\n\n // new interface\n if (stmt.handler) {\n if (Array.isArray(stmt.handler)) {\n for (i = 0, iz = stmt.handler.length; i < iz; ++i) {\n result = join(result, this.generateStatement(stmt.handler[i], S_TFFF));\n if (stmt.finalizer || i + 1 !== iz) {\n result = this.maybeBlockSuffix(stmt.handler[i].body, result);\n }\n }\n } else {\n result = join(result, this.generateStatement(stmt.handler, S_TFFF));\n if (stmt.finalizer) {\n result = this.maybeBlockSuffix(stmt.handler.body, result);\n }\n }\n }\n }\n if (stmt.finalizer) {\n result = join(result, ['finally', this.maybeBlock(stmt.finalizer, S_TFFF)]);\n }\n return result;\n },\n\n SwitchStatement: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags, that = this;\n withIndent(function () {\n result = [\n 'switch' + space + '(',\n that.generateExpression(stmt.discriminant, Precedence.Sequence, E_TTT),\n ')' + space + '{' + newline\n ];\n });\n if (stmt.cases) {\n bodyFlags = S_TFFF;\n for (i = 0, iz = stmt.cases.length; i < iz; ++i) {\n if (i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n fragment = addIndent(this.generateStatement(stmt.cases[i], bodyFlags));\n result.push(fragment);\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n result.push(newline);\n }\n }\n }\n result.push(addIndent('}'));\n return result;\n },\n\n SwitchCase: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags, that = this;\n withIndent(function () {\n if (stmt.test) {\n result = [\n join('case', that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)),\n ':'\n ];\n } else {\n result = ['default:'];\n }\n\n i = 0;\n iz = stmt.consequent.length;\n if (iz && stmt.consequent[0].type === Syntax.BlockStatement) {\n fragment = that.maybeBlock(stmt.consequent[0], S_TFFF);\n result.push(fragment);\n i = 1;\n }\n\n if (i !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n\n bodyFlags = S_TFFF;\n for (; i < iz; ++i) {\n if (i === iz - 1 && flags & F_SEMICOLON_OPT) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n fragment = addIndent(that.generateStatement(stmt.consequent[i], bodyFlags));\n result.push(fragment);\n if (i + 1 !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n result.push(newline);\n }\n }\n });\n return result;\n },\n\n IfStatement: function (stmt, flags) {\n var result, bodyFlags, semicolonOptional, that = this;\n withIndent(function () {\n result = [\n 'if' + space + '(',\n that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n semicolonOptional = flags & F_SEMICOLON_OPT;\n bodyFlags = S_TFFF;\n if (semicolonOptional) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n if (stmt.alternate) {\n result.push(this.maybeBlock(stmt.consequent, S_TFFF));\n result = this.maybeBlockSuffix(stmt.consequent, result);\n if (stmt.alternate.type === Syntax.IfStatement) {\n result = join(result, ['else ', this.generateStatement(stmt.alternate, bodyFlags)]);\n } else {\n result = join(result, join('else', this.maybeBlock(stmt.alternate, bodyFlags)));\n }\n } else {\n result.push(this.maybeBlock(stmt.consequent, bodyFlags));\n }\n return result;\n },\n\n ForStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = ['for' + space + '('];\n if (stmt.init) {\n if (stmt.init.type === Syntax.VariableDeclaration) {\n result.push(that.generateStatement(stmt.init, S_FFFF));\n } else {\n // F_ALLOW_IN becomes false.\n result.push(that.generateExpression(stmt.init, Precedence.Sequence, E_FTT));\n result.push(';');\n }\n } else {\n result.push(';');\n }\n\n if (stmt.test) {\n result.push(space);\n result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT));\n result.push(';');\n } else {\n result.push(';');\n }\n\n if (stmt.update) {\n result.push(space);\n result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT));\n result.push(')');\n } else {\n result.push(')');\n }\n });\n\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n },\n\n ForInStatement: function (stmt, flags) {\n return this.generateIterationForStatement('in', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);\n },\n\n ForOfStatement: function (stmt, flags) {\n return this.generateIterationForStatement('of', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF);\n },\n\n LabeledStatement: function (stmt, flags) {\n return [stmt.label.name + ':', this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)];\n },\n\n Program: function (stmt, flags) {\n var result, fragment, i, iz, bodyFlags;\n iz = stmt.body.length;\n result = [safeConcatenation && iz > 0 ? '\\n' : ''];\n bodyFlags = S_TFTF;\n for (i = 0; i < iz; ++i) {\n if (!safeConcatenation && i === iz - 1) {\n bodyFlags |= F_SEMICOLON_OPT;\n }\n\n if (preserveBlankLines) {\n // handle spaces before the first line\n if (i === 0) {\n if (!stmt.body[0].leadingComments) {\n generateBlankLines(stmt.range[0], stmt.body[i].range[0], result);\n }\n }\n\n // handle spaces between lines\n if (i > 0) {\n if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {\n generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);\n }\n }\n }\n\n fragment = addIndent(this.generateStatement(stmt.body[i], bodyFlags));\n result.push(fragment);\n if (i + 1 < iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n if (preserveBlankLines) {\n if (!stmt.body[i + 1].leadingComments) {\n result.push(newline);\n }\n } else {\n result.push(newline);\n }\n }\n\n if (preserveBlankLines) {\n // handle spaces after the last line\n if (i === iz - 1) {\n if (!stmt.body[i].trailingComments) {\n generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);\n }\n }\n }\n }\n return result;\n },\n\n FunctionDeclaration: function (stmt, flags) {\n return [\n generateAsyncPrefix(stmt, true),\n 'function',\n generateStarSuffix(stmt) || noEmptySpace(),\n stmt.id ? generateIdentifier(stmt.id) : '',\n this.generateFunctionBody(stmt)\n ];\n },\n\n ReturnStatement: function (stmt, flags) {\n if (stmt.argument) {\n return [join(\n 'return',\n this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT)\n ), this.semicolon(flags)];\n }\n return ['return' + this.semicolon(flags)];\n },\n\n WhileStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = [\n 'while' + space + '(',\n that.generateExpression(stmt.test, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n },\n\n WithStatement: function (stmt, flags) {\n var result, that = this;\n withIndent(function () {\n result = [\n 'with' + space + '(',\n that.generateExpression(stmt.object, Precedence.Sequence, E_TTT),\n ')'\n ];\n });\n result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF));\n return result;\n }\n\n };\n\n merge(CodeGenerator.prototype, CodeGenerator.Statement);\n\n // Expressions.\n\n CodeGenerator.Expression = {\n\n SequenceExpression: function (expr, precedence, flags) {\n var result, i, iz;\n if (Precedence.Sequence < precedence) {\n flags |= F_ALLOW_IN;\n }\n result = [];\n for (i = 0, iz = expr.expressions.length; i < iz; ++i) {\n result.push(this.generateExpression(expr.expressions[i], Precedence.Assignment, flags));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n return parenthesize(result, Precedence.Sequence, precedence);\n },\n\n AssignmentExpression: function (expr, precedence, flags) {\n return this.generateAssignment(expr.left, expr.right, expr.operator, precedence, flags);\n },\n\n ArrowFunctionExpression: function (expr, precedence, flags) {\n return parenthesize(this.generateFunctionBody(expr), Precedence.ArrowFunction, precedence);\n },\n\n ConditionalExpression: function (expr, precedence, flags) {\n if (Precedence.Conditional < precedence) {\n flags |= F_ALLOW_IN;\n }\n return parenthesize(\n [\n this.generateExpression(expr.test, Precedence.LogicalOR, flags),\n space + '?' + space,\n this.generateExpression(expr.consequent, Precedence.Assignment, flags),\n space + ':' + space,\n this.generateExpression(expr.alternate, Precedence.Assignment, flags)\n ],\n Precedence.Conditional,\n precedence\n );\n },\n\n LogicalExpression: function (expr, precedence, flags) {\n return this.BinaryExpression(expr, precedence, flags);\n },\n\n BinaryExpression: function (expr, precedence, flags) {\n var result, leftPrecedence, rightPrecedence, currentPrecedence, fragment, leftSource;\n currentPrecedence = BinaryPrecedence[expr.operator];\n\n leftPrecedence = currentPrecedence;\n rightPrecedence = currentPrecedence + 1;\n\n switch (expr.operator) {\n case '**':\n leftPrecedence = Precedence.Postfix;\n rightPrecedence = currentPrecedence;\n break;\n\n case '??':\n if (expr.left.type === Syntax.LogicalExpression && (expr.left.operator === '||' || expr.left.operator === '&&')) {\n leftPrecedence = BinaryPrecedence[expr.left.operator] + 1;\n }\n\n if (expr.right.type === Syntax.LogicalExpression && expr.right.operator === '&&') {\n rightPrecedence = BinaryPrecedence[expr.right.operator] + 1;\n }\n\n break;\n\n case '||':\n if (expr.left.type === Syntax.LogicalExpression && expr.left.operator === '??') {\n leftPrecedence = BinaryPrecedence[expr.left.operator] + 1;\n }\n\n break;\n }\n\n if (currentPrecedence < precedence) {\n flags |= F_ALLOW_IN;\n }\n\n fragment = this.generateExpression(expr.left, leftPrecedence, flags);\n\n leftSource = fragment.toString();\n\n if (leftSource.charCodeAt(leftSource.length - 1) === 0x2F /* / */ && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) {\n result = [fragment, noEmptySpace(), expr.operator];\n } else {\n result = join(fragment, expr.operator);\n }\n\n fragment = this.generateExpression(expr.right, rightPrecedence, flags);\n\n if (expr.operator === '/' && fragment.toString().charAt(0) === '/' ||\n expr.operator.slice(-1) === '<' && fragment.toString().slice(0, 3) === '!--') {\n // If '/' concats with '/' or `<` concats with `!--`, it is interpreted as comment start\n result.push(noEmptySpace());\n result.push(fragment);\n } else {\n result = join(result, fragment);\n }\n\n if (expr.operator === 'in' && !(flags & F_ALLOW_IN)) {\n return ['(', result, ')'];\n }\n return parenthesize(result, currentPrecedence, precedence);\n },\n\n CallExpression: function (expr, precedence, flags) {\n var result, i, iz;\n\n // F_ALLOW_UNPARATH_NEW becomes false.\n result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)];\n\n if (expr.optional) {\n result.push('?.');\n }\n\n result.push('(');\n for (i = 0, iz = expr['arguments'].length; i < iz; ++i) {\n result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n result.push(')');\n\n if (!(flags & F_ALLOW_CALL)) {\n return ['(', result, ')'];\n }\n\n return parenthesize(result, Precedence.Call, precedence);\n },\n\n ChainExpression: function (expr, precedence, flags) {\n if (Precedence.OptionalChaining < precedence) {\n flags |= F_ALLOW_CALL;\n }\n\n var result = this.generateExpression(expr.expression, Precedence.OptionalChaining, flags);\n\n return parenthesize(result, Precedence.OptionalChaining, precedence);\n },\n\n NewExpression: function (expr, precedence, flags) {\n var result, length, i, iz, itemFlags;\n length = expr['arguments'].length;\n\n // F_ALLOW_CALL becomes false.\n // F_ALLOW_UNPARATH_NEW may become false.\n itemFlags = (flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0) ? E_TFT : E_TFF;\n\n result = join(\n 'new',\n this.generateExpression(expr.callee, Precedence.New, itemFlags)\n );\n\n if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) {\n result.push('(');\n for (i = 0, iz = length; i < iz; ++i) {\n result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + space);\n }\n }\n result.push(')');\n }\n\n return parenthesize(result, Precedence.New, precedence);\n },\n\n MemberExpression: function (expr, precedence, flags) {\n var result, fragment;\n\n // F_ALLOW_UNPARATH_NEW becomes false.\n result = [this.generateExpression(expr.object, Precedence.Call, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)];\n\n if (expr.computed) {\n if (expr.optional) {\n result.push('?.');\n }\n\n result.push('[');\n result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT));\n result.push(']');\n } else {\n if (!expr.optional && expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') {\n fragment = toSourceNodeWhenNeeded(result).toString();\n // When the following conditions are all true,\n // 1. No floating point\n // 2. Don't have exponents\n // 3. The last character is a decimal digit\n // 4. Not hexadecimal OR octal number literal\n // we should add a floating point.\n if (\n fragment.indexOf('.') < 0 &&\n !/[eExX]/.test(fragment) &&\n esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) &&\n !(fragment.length >= 2 && fragment.charCodeAt(0) === 48) // '0'\n ) {\n result.push(' ');\n }\n }\n result.push(expr.optional ? '?.' : '.');\n result.push(generateIdentifier(expr.property));\n }\n\n return parenthesize(result, Precedence.Member, precedence);\n },\n\n MetaProperty: function (expr, precedence, flags) {\n var result;\n result = [];\n result.push(typeof expr.meta === \"string\" ? expr.meta : generateIdentifier(expr.meta));\n result.push('.');\n result.push(typeof expr.property === \"string\" ? expr.property : generateIdentifier(expr.property));\n return parenthesize(result, Precedence.Member, precedence);\n },\n\n UnaryExpression: function (expr, precedence, flags) {\n var result, fragment, rightCharCode, leftSource, leftCharCode;\n fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT);\n\n if (space === '') {\n result = join(expr.operator, fragment);\n } else {\n result = [expr.operator];\n if (expr.operator.length > 2) {\n // delete, void, typeof\n // get `typeof []`, not `typeof[]`\n result = join(result, fragment);\n } else {\n // Prevent inserting spaces between operator and argument if it is unnecessary\n // like, `!cond`\n leftSource = toSourceNodeWhenNeeded(result).toString();\n leftCharCode = leftSource.charCodeAt(leftSource.length - 1);\n rightCharCode = fragment.toString().charCodeAt(0);\n\n if (((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode) ||\n (esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode))) {\n result.push(noEmptySpace());\n result.push(fragment);\n } else {\n result.push(fragment);\n }\n }\n }\n return parenthesize(result, Precedence.Unary, precedence);\n },\n\n YieldExpression: function (expr, precedence, flags) {\n var result;\n if (expr.delegate) {\n result = 'yield*';\n } else {\n result = 'yield';\n }\n if (expr.argument) {\n result = join(\n result,\n this.generateExpression(expr.argument, Precedence.Yield, E_TTT)\n );\n }\n return parenthesize(result, Precedence.Yield, precedence);\n },\n\n AwaitExpression: function (expr, precedence, flags) {\n var result = join(\n expr.all ? 'await*' : 'await',\n this.generateExpression(expr.argument, Precedence.Await, E_TTT)\n );\n return parenthesize(result, Precedence.Await, precedence);\n },\n\n UpdateExpression: function (expr, precedence, flags) {\n if (expr.prefix) {\n return parenthesize(\n [\n expr.operator,\n this.generateExpression(expr.argument, Precedence.Unary, E_TTT)\n ],\n Precedence.Unary,\n precedence\n );\n }\n return parenthesize(\n [\n this.generateExpression(expr.argument, Precedence.Postfix, E_TTT),\n expr.operator\n ],\n Precedence.Postfix,\n precedence\n );\n },\n\n FunctionExpression: function (expr, precedence, flags) {\n var result = [\n generateAsyncPrefix(expr, true),\n 'function'\n ];\n if (expr.id) {\n result.push(generateStarSuffix(expr) || noEmptySpace());\n result.push(generateIdentifier(expr.id));\n } else {\n result.push(generateStarSuffix(expr) || space);\n }\n result.push(this.generateFunctionBody(expr));\n return result;\n },\n\n ArrayPattern: function (expr, precedence, flags) {\n return this.ArrayExpression(expr, precedence, flags, true);\n },\n\n ArrayExpression: function (expr, precedence, flags, isPattern) {\n var result, multiline, that = this;\n if (!expr.elements.length) {\n return '[]';\n }\n multiline = isPattern ? false : expr.elements.length > 1;\n result = ['[', multiline ? newline : ''];\n withIndent(function (indent) {\n var i, iz;\n for (i = 0, iz = expr.elements.length; i < iz; ++i) {\n if (!expr.elements[i]) {\n if (multiline) {\n result.push(indent);\n }\n if (i + 1 === iz) {\n result.push(',');\n }\n } else {\n result.push(multiline ? indent : '');\n result.push(that.generateExpression(expr.elements[i], Precedence.Assignment, E_TTT));\n }\n if (i + 1 < iz) {\n result.push(',' + (multiline ? newline : space));\n }\n }\n });\n if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(multiline ? base : '');\n result.push(']');\n return result;\n },\n\n RestElement: function(expr, precedence, flags) {\n return '...' + this.generatePattern(expr.argument);\n },\n\n ClassExpression: function (expr, precedence, flags) {\n var result, fragment;\n result = ['class'];\n if (expr.id) {\n result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));\n }\n if (expr.superClass) {\n fragment = join('extends', this.generateExpression(expr.superClass, Precedence.Unary, E_TTT));\n result = join(result, fragment);\n }\n result.push(space);\n result.push(this.generateStatement(expr.body, S_TFFT));\n return result;\n },\n\n MethodDefinition: function (expr, precedence, flags) {\n var result, fragment;\n if (expr['static']) {\n result = ['static' + space];\n } else {\n result = [];\n }\n if (expr.kind === 'get' || expr.kind === 'set') {\n fragment = [\n join(expr.kind, this.generatePropertyKey(expr.key, expr.computed)),\n this.generateFunctionBody(expr.value)\n ];\n } else {\n fragment = [\n generateMethodPrefix(expr),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n return join(result, fragment);\n },\n\n Property: function (expr, precedence, flags) {\n if (expr.kind === 'get' || expr.kind === 'set') {\n return [\n expr.kind, noEmptySpace(),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n\n if (expr.shorthand) {\n if (expr.value.type === \"AssignmentPattern\") {\n return this.AssignmentPattern(expr.value, Precedence.Sequence, E_TTT);\n }\n return this.generatePropertyKey(expr.key, expr.computed);\n }\n\n if (expr.method) {\n return [\n generateMethodPrefix(expr),\n this.generatePropertyKey(expr.key, expr.computed),\n this.generateFunctionBody(expr.value)\n ];\n }\n\n return [\n this.generatePropertyKey(expr.key, expr.computed),\n ':' + space,\n this.generateExpression(expr.value, Precedence.Assignment, E_TTT)\n ];\n },\n\n ObjectExpression: function (expr, precedence, flags) {\n var multiline, result, fragment, that = this;\n\n if (!expr.properties.length) {\n return '{}';\n }\n multiline = expr.properties.length > 1;\n\n withIndent(function () {\n fragment = that.generateExpression(expr.properties[0], Precedence.Sequence, E_TTT);\n });\n\n if (!multiline) {\n // issues 4\n // Do not transform from\n // dejavu.Class.declare({\n // method2: function () {}\n // });\n // to\n // dejavu.Class.declare({method2: function () {\n // }});\n if (!hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) {\n return [ '{', space, fragment, space, '}' ];\n }\n }\n\n withIndent(function (indent) {\n var i, iz;\n result = [ '{', newline, indent, fragment ];\n\n if (multiline) {\n result.push(',' + newline);\n for (i = 1, iz = expr.properties.length; i < iz; ++i) {\n result.push(indent);\n result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + newline);\n }\n }\n }\n });\n\n if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(base);\n result.push('}');\n return result;\n },\n\n AssignmentPattern: function(expr, precedence, flags) {\n return this.generateAssignment(expr.left, expr.right, '=', precedence, flags);\n },\n\n ObjectPattern: function (expr, precedence, flags) {\n var result, i, iz, multiline, property, that = this;\n if (!expr.properties.length) {\n return '{}';\n }\n\n multiline = false;\n if (expr.properties.length === 1) {\n property = expr.properties[0];\n if (\n property.type === Syntax.Property\n && property.value.type !== Syntax.Identifier\n ) {\n multiline = true;\n }\n } else {\n for (i = 0, iz = expr.properties.length; i < iz; ++i) {\n property = expr.properties[i];\n if (\n property.type === Syntax.Property\n && !property.shorthand\n ) {\n multiline = true;\n break;\n }\n }\n }\n result = ['{', multiline ? newline : '' ];\n\n withIndent(function (indent) {\n var i, iz;\n for (i = 0, iz = expr.properties.length; i < iz; ++i) {\n result.push(multiline ? indent : '');\n result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));\n if (i + 1 < iz) {\n result.push(',' + (multiline ? newline : space));\n }\n }\n });\n\n if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) {\n result.push(newline);\n }\n result.push(multiline ? base : '');\n result.push('}');\n return result;\n },\n\n ThisExpression: function (expr, precedence, flags) {\n return 'this';\n },\n\n Super: function (expr, precedence, flags) {\n return 'super';\n },\n\n Identifier: function (expr, precedence, flags) {\n return generateIdentifier(expr);\n },\n\n ImportDefaultSpecifier: function (expr, precedence, flags) {\n return generateIdentifier(expr.id || expr.local);\n },\n\n ImportNamespaceSpecifier: function (expr, precedence, flags) {\n var result = ['*'];\n var id = expr.id || expr.local;\n if (id) {\n result.push(space + 'as' + noEmptySpace() + generateIdentifier(id));\n }\n return result;\n },\n\n ImportSpecifier: function (expr, precedence, flags) {\n var imported = expr.imported;\n var result = [ imported.name ];\n var local = expr.local;\n if (local && local.name !== imported.name) {\n result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(local));\n }\n return result;\n },\n\n ExportSpecifier: function (expr, precedence, flags) {\n var local = expr.local;\n var result = [ local.name ];\n var exported = expr.exported;\n if (exported && exported.name !== local.name) {\n result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(exported));\n }\n return result;\n },\n\n Literal: function (expr, precedence, flags) {\n var raw;\n if (expr.hasOwnProperty('raw') && parse && extra.raw) {\n try {\n raw = parse(expr.raw).body[0].expression;\n if (raw.type === Syntax.Literal) {\n if (raw.value === expr.value) {\n return expr.raw;\n }\n }\n } catch (e) {\n // not use raw property\n }\n }\n\n if (expr.regex) {\n return '/' + expr.regex.pattern + '/' + expr.regex.flags;\n }\n\n // BigInt, eg: 1n\n if (typeof expr.bigint === 'string' && expr.raw) {\n return expr.raw;\n }\n\n if (expr.value === null) {\n return 'null';\n }\n\n if (typeof expr.value === 'string') {\n return escapeString(expr.value);\n }\n\n if (typeof expr.value === 'number') {\n // Has Numeric Separator\n if (expr.raw && expr.raw.indexOf('_') !== -1) {\n return expr.raw;\n }\n\n return generateNumber(expr.value);\n }\n\n if (typeof expr.value === 'boolean') {\n return expr.value ? 'true' : 'false';\n }\n\n return generateRegExp(expr.value);\n },\n\n GeneratorExpression: function (expr, precedence, flags) {\n return this.ComprehensionExpression(expr, precedence, flags);\n },\n\n ComprehensionExpression: function (expr, precedence, flags) {\n // GeneratorExpression should be parenthesized with (...), ComprehensionExpression with [...]\n // Due to https://bugzilla.mozilla.org/show_bug.cgi?id=883468 position of expr.body can differ in Spidermonkey and ES6\n\n var result, i, iz, fragment, that = this;\n result = (expr.type === Syntax.GeneratorExpression) ? ['('] : ['['];\n\n if (extra.moz.comprehensionExpressionStartsWithAssignment) {\n fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);\n result.push(fragment);\n }\n\n if (expr.blocks) {\n withIndent(function () {\n for (i = 0, iz = expr.blocks.length; i < iz; ++i) {\n fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT);\n if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) {\n result = join(result, fragment);\n } else {\n result.push(fragment);\n }\n }\n });\n }\n\n if (expr.filter) {\n result = join(result, 'if' + space);\n fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT);\n result = join(result, [ '(', fragment, ')' ]);\n }\n\n if (!extra.moz.comprehensionExpressionStartsWithAssignment) {\n fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);\n\n result = join(result, fragment);\n }\n\n result.push((expr.type === Syntax.GeneratorExpression) ? ')' : ']');\n return result;\n },\n\n ComprehensionBlock: function (expr, precedence, flags) {\n var fragment;\n if (expr.left.type === Syntax.VariableDeclaration) {\n fragment = [\n expr.left.kind, noEmptySpace(),\n this.generateStatement(expr.left.declarations[0], S_FFFF)\n ];\n } else {\n fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT);\n }\n\n fragment = join(fragment, expr.of ? 'of' : 'in');\n fragment = join(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT));\n\n return [ 'for' + space + '(', fragment, ')' ];\n },\n\n SpreadElement: function (expr, precedence, flags) {\n return [\n '...',\n this.generateExpression(expr.argument, Precedence.Assignment, E_TTT)\n ];\n },\n\n TaggedTemplateExpression: function (expr, precedence, flags) {\n var itemFlags = E_TTF;\n if (!(flags & F_ALLOW_CALL)) {\n itemFlags = E_TFF;\n }\n var result = [\n this.generateExpression(expr.tag, Precedence.Call, itemFlags),\n this.generateExpression(expr.quasi, Precedence.Primary, E_FFT)\n ];\n return parenthesize(result, Precedence.TaggedTemplate, precedence);\n },\n\n TemplateElement: function (expr, precedence, flags) {\n // Don't use \"cooked\". Since tagged template can use raw template\n // representation. So if we do so, it breaks the script semantics.\n return expr.value.raw;\n },\n\n TemplateLiteral: function (expr, precedence, flags) {\n var result, i, iz;\n result = [ '`' ];\n for (i = 0, iz = expr.quasis.length; i < iz; ++i) {\n result.push(this.generateExpression(expr.quasis[i], Precedence.Primary, E_TTT));\n if (i + 1 < iz) {\n result.push('${' + space);\n result.push(this.generateExpression(expr.expressions[i], Precedence.Sequence, E_TTT));\n result.push(space + '}');\n }\n }\n result.push('`');\n return result;\n },\n\n ModuleSpecifier: function (expr, precedence, flags) {\n return this.Literal(expr, precedence, flags);\n },\n\n ImportExpression: function(expr, precedence, flag) {\n return parenthesize([\n 'import(',\n this.generateExpression(expr.source, Precedence.Assignment, E_TTT),\n ')'\n ], Precedence.Call, precedence);\n }\n };\n\n merge(CodeGenerator.prototype, CodeGenerator.Expression);\n\n CodeGenerator.prototype.generateExpression = function (expr, precedence, flags) {\n var result, type;\n\n type = expr.type || Syntax.Property;\n\n if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) {\n return generateVerbatim(expr, precedence);\n }\n\n result = this[type](expr, precedence, flags);\n\n\n if (extra.comment) {\n result = addComments(expr, result);\n }\n return toSourceNodeWhenNeeded(result, expr);\n };\n\n CodeGenerator.prototype.generateStatement = function (stmt, flags) {\n var result,\n fragment;\n\n result = this[stmt.type](stmt, flags);\n\n // Attach comments\n\n if (extra.comment) {\n result = addComments(stmt, result);\n }\n\n fragment = toSourceNodeWhenNeeded(result).toString();\n if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\\n') {\n result = sourceMap ? toSourceNodeWhenNeeded(result).replaceRight(/\\s+$/, '') : fragment.replace(/\\s+$/, '');\n }\n\n return toSourceNodeWhenNeeded(result, stmt);\n };\n\n function generateInternal(node) {\n var codegen;\n\n codegen = new CodeGenerator();\n if (isStatement(node)) {\n return codegen.generateStatement(node, S_TFFF);\n }\n\n if (isExpression(node)) {\n return codegen.generateExpression(node, Precedence.Sequence, E_TTT);\n }\n\n throw new Error('Unknown node type: ' + node.type);\n }\n\n function generate(node, options) {\n var defaultOptions = getDefaultOptions(), result, pair;\n\n if (options != null) {\n // Obsolete options\n //\n // `options.indent`\n // `options.base`\n //\n // Instead of them, we can use `option.format.indent`.\n if (typeof options.indent === 'string') {\n defaultOptions.format.indent.style = options.indent;\n }\n if (typeof options.base === 'number') {\n defaultOptions.format.indent.base = options.base;\n }\n options = updateDeeply(defaultOptions, options);\n indent = options.format.indent.style;\n if (typeof options.base === 'string') {\n base = options.base;\n } else {\n base = stringRepeat(indent, options.format.indent.base);\n }\n } else {\n options = defaultOptions;\n indent = options.format.indent.style;\n base = stringRepeat(indent, options.format.indent.base);\n }\n json = options.format.json;\n renumber = options.format.renumber;\n hexadecimal = json ? false : options.format.hexadecimal;\n quotes = json ? 'double' : options.format.quotes;\n escapeless = options.format.escapeless;\n newline = options.format.newline;\n space = options.format.space;\n if (options.format.compact) {\n newline = space = indent = base = '';\n }\n parentheses = options.format.parentheses;\n semicolons = options.format.semicolons;\n safeConcatenation = options.format.safeConcatenation;\n directive = options.directive;\n parse = json ? null : options.parse;\n sourceMap = options.sourceMap;\n sourceCode = options.sourceCode;\n preserveBlankLines = options.format.preserveBlankLines && sourceCode !== null;\n extra = options;\n\n if (sourceMap) {\n if (!exports.browser) {\n // We assume environment is node.js\n // And prevent from including source-map by browserify\n SourceNode = require('source-map').SourceNode;\n } else {\n SourceNode = global.sourceMap.SourceNode;\n }\n }\n\n result = generateInternal(node);\n\n if (!sourceMap) {\n pair = {code: result.toString(), map: null};\n return options.sourceMapWithCode ? pair : pair.code;\n }\n\n\n pair = result.toStringWithSourceMap({\n file: options.file,\n sourceRoot: options.sourceMapRoot\n });\n\n if (options.sourceContent) {\n pair.map.setSourceContent(options.sourceMap,\n options.sourceContent);\n }\n\n if (options.sourceMapWithCode) {\n return pair;\n }\n\n return pair.map.toString();\n }\n\n FORMAT_MINIFY = {\n indent: {\n style: '',\n base: 0\n },\n renumber: true,\n hexadecimal: true,\n quotes: 'auto',\n escapeless: true,\n compact: true,\n parentheses: false,\n semicolons: false\n };\n\n FORMAT_DEFAULTS = getDefaultOptions().format;\n\n exports.version = require('./package.json').version;\n exports.generate = generate;\n exports.attachComments = estraverse.attachComments;\n exports.Precedence = updateDeeply({}, Precedence);\n exports.browser = false;\n exports.FORMAT_MINIFY = FORMAT_MINIFY;\n exports.FORMAT_DEFAULTS = FORMAT_DEFAULTS;\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.acorn = {}));\n}(this, (function (exports) { 'use strict';\n\n // Reserved word lists for various dialects of the language\n\n var reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n };\n\n // And the keywords\n\n var ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\n var keywords = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n };\n\n var keywordRelationalOperator = /^in(stanceof)?$/;\n\n // ## Character categories\n\n // Big ugly regular expressions that match characters in the\n // whitespace, identifier, and identifier-start categories. These\n // are only applied when a character is found to actually have a\n // code point above 128.\n // Generated by `bin/generate-identifier-regex.js`.\n var nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n var nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\n var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n // These are a run-length and offset encoded representation of the\n // >0xffff code points that are a valid part of identifiers. The\n // offset starts at 0x10000, and each pair of numbers represents an\n // offset to the next range, and then a size of the range. They were\n // generated by bin/generate-identifier-regex.js\n\n // eslint-disable-next-line comma-spacing\n var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n\n // eslint-disable-next-line comma-spacing\n var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n // This has a complexity linear to the value of the code. The\n // assumption is that looking up astral identifier characters is\n // rare.\n function isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n }\n\n // Test whether a given character code starts an identifier.\n\n function isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n }\n\n // Test whether a given character is part of an identifier.\n\n function isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n }\n\n // ## Token types\n\n // The assignment of fine-grained, information-carrying type objects\n // allows the tokenizer to store the information it has about a\n // token in a way that is very cheap for the parser to look up.\n\n // All token type variables start with an underscore, to make them\n // easy to recognize.\n\n // The `beforeExpr` property is used to disambiguate between regular\n // expressions and divisions. It is set on all token types that can\n // be followed by an expression (thus, a slash after them would be a\n // regular expression).\n //\n // The `startsExpr` property is used to check if the token ends a\n // `yield` expression. It is set on all token types that either can\n // directly start an expression (like a quotation mark) or can\n // continue an expression (like the body of a string).\n //\n // `isLoop` marks a keyword as starting a loop, which is important\n // to know when parsing a label, in order to allow or disallow\n // continue jumps to that label.\n\n var TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n };\n\n function binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n }\n var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n // Map keyword names to token types.\n\n var keywords$1 = {};\n\n // Succinct definitions of keyword token types\n function kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords$1[name] = new TokenType(name, options)\n }\n\n var types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n };\n\n // Matches a whole line break (where CRLF is considered a single\n // line break). Used to count lines.\n\n var lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\n var lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n function isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n }\n\n var nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\n var skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n var ref = Object.prototype;\n var hasOwnProperty = ref.hasOwnProperty;\n var toString = ref.toString;\n\n // Checks if an object has a property.\n\n function has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n }\n\n var isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n ); });\n\n function wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n }\n\n // These are used when `options.locations` is on, for the\n // `startLoc` and `endLoc` properties.\n\n var Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n };\n\n Position.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n };\n\n var SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n };\n\n // The `getLineInfo` function is mostly useful when the\n // `locations` option is off (for performance reasons) and you\n // want to find the line/column position for a given character\n // offset. `input` should be the code string that the offset refers\n // into.\n\n function getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur;\n var match = lineBreakG.exec(input);\n if (match && match.index < offset) {\n ++line;\n cur = match.index + match[0].length;\n } else {\n return new Position(line, offset - cur)\n }\n }\n }\n\n // A second argument must be given to configure the parser process.\n // These options are recognized (only `ecmaVersion` is required):\n\n var defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), or `\"latest\"` (the latest version\n // the library supports). This influences support for strict mode,\n // the set of reserved words, and support for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: false,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n };\n\n // Interpret and default an options object\n\n var warnedAboutEcmaVersion = false;\n\n function getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n }\n\n function pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n }\n\n // Each scope gets a bitset that may contain these flags\n var\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128;\n\n function functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n }\n\n // Used in checkLVal* and declareName to determine the type of a binding\n var\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\n var Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = {};\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n };\n\n var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },inNonArrowFunction: { configurable: true } };\n\n Parser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n };\n\n prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\n prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\n prototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 };\n prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n prototypeAccessors.inNonArrowFunction.get = function () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 };\n\n Parser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n };\n\n Parser.parse = function parse (input, options) {\n return new this(options, input).parse()\n };\n\n Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n };\n\n Parser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n };\n\n Object.defineProperties( Parser.prototype, prototypeAccessors );\n\n var pp = Parser.prototype;\n\n // ## Parser utilities\n\n var literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\n pp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n };\n\n // Predicate that tests whether the next token is of the given\n // type, and if yes, consumes it as a side effect.\n\n pp.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n };\n\n // Tests whether parsed token is a contextual keyword.\n\n pp.isContextual = function(name) {\n return this.type === types.name && this.value === name && !this.containsEsc\n };\n\n // Consumes contextual keyword if possible.\n\n pp.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n };\n\n // Asserts that following token is given contextual keyword.\n\n pp.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n };\n\n // Test whether a semicolon can be inserted at the current position.\n\n pp.canInsertSemicolon = function() {\n return this.type === types.eof ||\n this.type === types.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n pp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n };\n\n // Consume a semicolon, or, failing that, see if we are allowed to\n // pretend that there is a semicolon at this position.\n\n pp.semicolon = function() {\n if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }\n };\n\n pp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n };\n\n // Expect a token of a given type. If found, consume it, otherwise,\n // raise an unexpected token error.\n\n pp.expect = function(type) {\n this.eat(type) || this.unexpected();\n };\n\n // Raise an unexpected token error.\n\n pp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n };\n\n function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n }\n\n pp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, \"Parenthesized pattern\"); }\n };\n\n pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n };\n\n pp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n };\n\n pp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n };\n\n var pp$1 = Parser.prototype;\n\n // ### Statement parsing\n\n // Parse a program. Initializes the parser, reads any number of\n // statements, and wraps them in a Program node. Optionally takes a\n // `program` argument. If present, the statements will be appended\n // to its body instead of creating a new node.\n\n pp$1.parseTopLevel = function(node) {\n var exports = {};\n if (!node.body) { node.body = []; }\n while (this.type !== types.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n };\n\n var loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\n pp$1.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91) { return true } // '['\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n };\n\n // check 'async [no LineTerminator here] function'\n // - 'async /*foo*/ function' is OK.\n // - 'async /*\\n*/ function' is invalid.\n pp$1.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n };\n\n // Parse a single statement.\n //\n // If expecting a statement and finding a slash operator, parse a\n // regular expression literal. This is to handle cases like\n // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n // does not help.\n\n pp$1.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types._debugger: return this.parseDebuggerStatement(node)\n case types._do: return this.parseDoStatement(node)\n case types._for: return this.parseForStatement(node)\n case types._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types._if: return this.parseIfStatement(node)\n case types._return: return this.parseReturnStatement(node)\n case types._switch: return this.parseSwitchStatement(node)\n case types._throw: return this.parseThrowStatement(node)\n case types._try: return this.parseTryStatement(node)\n case types._const: case types._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types._while: return this.parseWhileStatement(node)\n case types._with: return this.parseWithStatement(node)\n case types.braceL: return this.parseBlock(true, node)\n case types.semi: return this.parseEmptyStatement(node)\n case types._export:\n case types._import:\n if (this.options.ecmaVersion > 10 && starttype === types._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types.name && expr.type === \"Identifier\" && this.eat(types.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n };\n\n pp$1.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n };\n\n pp$1.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n };\n\n pp$1.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n };\n\n // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n // loop is non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in` or `of`. When there is no init\n // part (semicolon immediately after the opening parenthesis), it\n // is a regular `for` loop.\n\n pp$1.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types.parenL);\n if (this.type === types.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types._var || this.type === types._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(true, refDestructuringErrors);\n if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n };\n\n pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n };\n\n pp$1.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n };\n\n pp$1.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n };\n\n pp$1.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types.braceR;) {\n if (this.type === types._case || this.type === types._default) {\n var isCase = this.type === types._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n };\n\n pp$1.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n };\n\n // Reused empty array added for node fields that are always empty.\n\n var empty = [];\n\n pp$1.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n };\n\n pp$1.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n };\n\n pp$1.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n };\n\n pp$1.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n };\n\n pp$1.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n };\n\n pp$1.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n };\n\n pp$1.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n };\n\n // Parse a semicolon-enclosed block of statements, handling `\"use\n // strict\"` declarations when `allowStrict` is true (used for\n // function bodies).\n\n pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n };\n\n // Parse a regular `for` loop. The disambiguation code in\n // `parseStatement` will already have parsed the init statement or\n // expression.\n\n pp$1.parseFor = function(node, init) {\n node.init = init;\n this.expect(types.semi);\n node.test = this.type === types.semi ? null : this.parseExpression();\n this.expect(types.semi);\n node.update = this.type === types.parenR ? null : this.parseExpression();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n };\n\n // Parse a `for`/`in` and `for`/`of` loop, which are almost\n // same from parser's perspective.\n\n pp$1.parseForIn = function(node, init) {\n var isForIn = this.type === types._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n };\n\n // Parse a list of variable declarations.\n\n pp$1.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types.comma)) { break }\n }\n return node\n };\n\n pp$1.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n };\n\n var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n // Parse a function declaration or literal (depending on the\n // `statement & FUNC_STATEMENT`).\n\n // Remove `allowExpressionBody` for 7.0.0, as it is only called with false\n pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n };\n\n pp$1.parseFunctionParams = function(node) {\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n };\n\n // Parse a class declaration or literal (depending on the\n // `isStatement` parameter).\n\n pp$1.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types.braceL);\n while (this.type !== types.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n };\n\n pp$1.parseClassElement = function(constructorAllowsSuper) {\n var this$1 = this;\n\n if (this.eat(types.semi)) { return null }\n\n var method = this.startNode();\n var tryContextual = function (k, noLineBreak) {\n if ( noLineBreak === void 0 ) noLineBreak = false;\n\n var start = this$1.start, startLoc = this$1.startLoc;\n if (!this$1.eatContextual(k)) { return false }\n if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true }\n if (method.key) { this$1.unexpected(); }\n method.computed = false;\n method.key = this$1.startNodeAt(start, startLoc);\n method.key.name = k;\n this$1.finishNode(method.key, \"Identifier\");\n return false\n };\n\n method.kind = \"method\";\n method.static = tryContextual(\"static\");\n var isGenerator = this.eat(types.star);\n var isAsync = false;\n if (!isGenerator) {\n if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n } else if (tryContextual(\"get\")) {\n method.kind = \"get\";\n } else if (tryContextual(\"set\")) {\n method.kind = \"set\";\n }\n }\n if (!method.key) { this.parsePropertyName(method); }\n var key = method.key;\n var allowsDirectSuper = false;\n if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n key.type === \"Literal\" && key.value === \"constructor\")) {\n if (method.kind !== \"method\") { this.raise(key.start, \"Constructor can't have get/set modifier\"); }\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n method.kind = \"constructor\";\n allowsDirectSuper = constructorAllowsSuper;\n } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper);\n if (method.kind === \"get\" && method.value.params.length !== 0)\n { this.raiseRecoverable(method.value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && method.value.params.length !== 1)\n { this.raiseRecoverable(method.value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\"); }\n return method\n };\n\n pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n return this.finishNode(method, \"MethodDefinition\")\n };\n\n pp$1.parseClassId = function(node, isStatement) {\n if (this.type === types.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n };\n\n pp$1.parseClassSuper = function(node) {\n node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null;\n };\n\n // Parses module export declaration.\n\n pp$1.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseIdent(true);\n this.checkExport(exports, node.exported.name, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n };\n\n pp$1.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (has(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n };\n\n pp$1.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat.name, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n };\n\n pp$1.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n };\n\n pp$1.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n };\n\n // Parses a comma-separated list of module exports.\n\n pp$1.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseIdent(true);\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local;\n this.checkExport(exports, node.exported.name, node.exported.start);\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n };\n\n // Parses import declaration.\n\n pp$1.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types.string) {\n node.specifiers = empty;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n };\n\n // Parses a comma-separated list of module imports.\n\n pp$1.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types.comma)) { return nodes }\n }\n if (this.type === types.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLValSimple(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types.braceL);\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseIdent(true);\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLValSimple(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n };\n\n // Set `ExpressionStatement#directive` property for directive prologues.\n pp$1.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n };\n pp$1.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n };\n\n var pp$2 = Parser.prototype;\n\n // Convert existing expression atom to assignable pattern\n // if possible.\n\n pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n };\n\n // Convert list of expression atoms to binding list.\n\n pp$2.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n };\n\n // Parses spread element.\n\n pp$2.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n };\n\n pp$2.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n };\n\n // Parses lvalue (assignable) atom.\n\n pp$2.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n };\n\n pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types.comma); }\n if (allowEmpty && this.type === types.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n };\n\n pp$2.parseBindingListItem = function(param) {\n return param\n };\n\n // Parses assignment pattern around given atom if possible.\n\n pp$2.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n };\n\n // The following three functions all verify that a node is an lvalue —\n // something that can be bound, or assigned to. In order to do so, they perform\n // a variety of checks:\n //\n // - Check that none of the bound/assigned-to identifiers are reserved words.\n // - Record name declarations for bindings in the appropriate scope.\n // - Check duplicate argument names, if checkClashes is set.\n //\n // If a complex binding pattern is encountered (e.g., object and array\n // destructuring), the entire pattern is recursively checked.\n //\n // There are three versions of checkLVal*() appropriate for different\n // circumstances:\n //\n // - checkLValSimple() shall be used if the syntactic construct supports\n // nothing other than identifiers and member expressions. Parenthesized\n // expressions are also correctly handled. This is generally appropriate for\n // constructs for which the spec says\n //\n // > It is a Syntax Error if AssignmentTargetType of [the production] is not\n // > simple.\n //\n // It is also appropriate for checking if an identifier is valid and not\n // defined elsewhere, like import declarations or function/class identifiers.\n //\n // Examples where this is used include:\n // a += …;\n // import a from '…';\n // where a is the node to be checked.\n //\n // - checkLValPattern() shall be used if the syntactic construct supports\n // anything checkLValSimple() supports, as well as object and array\n // destructuring patterns. This is generally appropriate for constructs for\n // which the spec says\n //\n // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n // > an ArrayLiteral and AssignmentTargetType of [the production] is not\n // > simple.\n //\n // Examples where this is used include:\n // (a = …);\n // const a = …;\n // try { … } catch (a) { … }\n // where a is the node to be checked.\n //\n // - checkLValInnerPattern() shall be used if the syntactic construct supports\n // anything checkLValPattern() supports, as well as default assignment\n // patterns, rest elements, and other constructs that may appear within an\n // object or array destructuring pattern.\n //\n // As a special case, function parameters also use checkLValInnerPattern(),\n // as they also support defaults and rest constructs.\n //\n // These functions deliberately support both assignment and binding constructs,\n // as the logic for both is exceedingly similar. If the node is the target of\n // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n // should be set to the appropriate BIND_* constant, like BIND_VAR or\n // BIND_LEXICAL.\n //\n // If the function is called with a non-BIND_NONE bindingType, then\n // additionally a checkClashes object may be specified to allow checking for\n // duplicate argument names. checkClashes is ignored if the provided construct\n // is an assignment (i.e., bindingType is BIND_NONE).\n\n pp$2.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n };\n\n pp$2.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n };\n\n pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n };\n\n // A recursive descent parser operates by defining functions for all\n\n var pp$3 = Parser.prototype;\n\n // Check if property name clashes with already added.\n // Object/class getters and setters are not allowed to clash —\n // either with each other or with an init property — and in\n // strict mode, init properties are also not allowed to be repeated.\n\n pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0)\n { refDestructuringErrors.doubleProto = key.start; }\n // Backwards-compat kludge. Can be removed in version 6.0\n } else { this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\"); }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n };\n\n // ### Expression parsing\n\n // These nest, from the most general expression type at the top to\n // 'atomic', nondivisible expression types at the bottom. Most of\n // the functions will simply let the function(s) below them parse,\n // and, *if* the syntactic construct they handle is present, wrap\n // the AST node that the inner parser gave them in another node.\n\n // Parse a full expression. The optional arguments are used to\n // forbid the `in` operator (in for loops initalization expressions)\n // and provide reference for storing '=' operator inside shorthand\n // property assignment in contexts where both object expression\n // and object pattern might appear (so it's possible to raise\n // delayed syntax error at correct position).\n\n pp$3.parseExpression = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(noIn, refDestructuringErrors);\n if (this.type === types.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n };\n\n // Parse an assignment expression. This includes applications of\n // operators like `+=`.\n\n pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(noIn) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types.parenL || this.type === types.name)\n { this.potentialArrowAt = this.start; }\n var left = this.parseMaybeConditional(noIn, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(noIn);\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n };\n\n // Parse a ternary conditional (`?:`) operator.\n\n pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(noIn, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types.colon);\n node.alternate = this.parseMaybeAssign(noIn);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n };\n\n // Start the precedence parser.\n\n pp$3.parseExprOps = function(noIn, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n };\n\n // Parse binary operators with the operator precedence parsing\n // algorithm. `left` is the left-hand side of the operator.\n // `minPrec` provides context that allows the function to stop and\n // defer further parser to one of its callers when it encounters an\n // operator that has a lower precedence than the set it is parsing.\n\n pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n var prec = this.type.binop;\n if (prec != null && (!noIn || this.type !== types._in)) {\n if (prec > minPrec) {\n var logical = this.type === types.logicalOR || this.type === types.logicalAND;\n var coalesce = this.type === types.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n }\n }\n return left\n };\n\n pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n };\n\n // Parse unary operators, both prefix and postfix.\n\n pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n expr = this.parseAwait();\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!sawUnary && this.eat(types.starstar))\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false) }\n else\n { return expr }\n };\n\n // Parse call, dot, and `[]`-subscript expressions.\n\n pp$3.parseExprSubscripts = function(refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n }\n return result\n };\n\n pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n };\n\n pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types.bracketL);\n if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== \"never\");\n node.computed = !!computed;\n if (computed) { this.expect(types.bracketR); }\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n };\n\n // Parse an atomic expression — either a single token that is an\n // expression, an expression started by a keyword like `function` or\n // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n // or `{}`.\n\n pp$3.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types._function))\n { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types.name && !containsEsc) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case types.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types.num: case types.string:\n return this.parseLiteral(this.value)\n\n case types._null: case types._true: case types._false:\n node = this.startNode();\n node.value = this.type === types._null ? null : this.type === types._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case types._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types._class:\n return this.parseClass(this.startNode(), false)\n\n case types._new:\n return this.parseNew()\n\n case types.backQuote:\n return this.parseTemplate()\n\n case types._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n };\n\n pp$3.parseExprImport = function() {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n var meta = this.parseIdent(true);\n\n switch (this.type) {\n case types.parenL:\n return this.parseDynamicImport(node)\n case types.dot:\n node.meta = meta;\n return this.parseImportMeta(node)\n default:\n this.unexpected();\n }\n };\n\n pp$3.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n // Verify ending.\n if (!this.eat(types.parenR)) {\n var errorPos = this.start;\n if (this.eat(types.comma) && this.eat(types.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n };\n\n pp$3.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\")\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n };\n\n pp$3.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n };\n\n pp$3.parseParenExpression = function() {\n this.expect(types.parenL);\n var val = this.parseExpression();\n this.expect(types.parenR);\n return val\n };\n\n pp$3.parseParenAndDistinguishExpression = function(canBeArrow) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types.parenR) {\n first ? first = false : this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.start, innerEndLoc = this.startLoc;\n this.expect(types.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n };\n\n pp$3.parseParenItem = function(item) {\n return item\n };\n\n pp$3.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n };\n\n // New's precedence is slightly tricky. It must allow its argument to\n // be a `[]` or dot subscript expression, but not a call — at least,\n // not without wrapping it in parentheses. Thus, it uses the noCalls\n // argument to parseSubscripts to prevent it from consuming the\n // argument list.\n\n var empty$1 = [];\n\n pp$3.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.inNonArrowFunction)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\");\n }\n if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty$1; }\n return this.finishNode(node, \"NewExpression\")\n };\n\n // Parse template expression.\n\n pp$3.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n };\n\n pp$3.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n };\n\n pp$3.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n // Parse an object literal or binding pattern.\n\n pp$3.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types.braceR)) {\n if (!first) {\n this.expect(types.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n };\n\n pp$3.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === types.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start;\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start;\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);\n this.parsePropertyName(prop, refDestructuringErrors);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n };\n\n pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types.colon)\n { this.unexpected(); }\n\n if (this.eat(types.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n };\n\n pp$3.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n };\n\n // Initialize empty function node.\n\n pp$3.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n };\n\n // Parse object or class method.\n\n pp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types.parenL);\n node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n };\n\n // Parse arrow function expression with given parameters.\n\n pp$3.parseArrowExpression = function(node, params, isAsync) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n };\n\n // Parse function body and check parameters.\n\n pp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n var isExpression = isArrowFunction && this.type !== types.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n };\n\n pp$3.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n };\n\n // Checks function params for various disallowed patterns such as using \"eval\"\n // or \"arguments\" and duplicate parameters.\n\n pp$3.checkParams = function(node, allowDuplicates) {\n var nameHash = {};\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n };\n\n // Parses a comma-separated list of expressions, and returns them as\n // an array. `close` is the token type that ends the list, and\n // `allowEmpty` can be turned on to allow subsequent commas with\n // nothing in between them to be parsed as `null` (which is needed\n // for array literals).\n\n pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types.comma)\n { elt = null; }\n else if (this.type === types.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n };\n\n pp$3.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n };\n\n // Parse the next token as an identifier. If `liberal` is true (used\n // when parsing properties), it will also convert keywords into\n // identifiers.\n\n pp$3.parseIdent = function(liberal, isBinding) {\n var node = this.startNode();\n if (this.type === types.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n };\n\n // Parses yield expression inside generator.\n\n pp$3.parseYield = function(noIn) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types.star);\n node.argument = this.parseMaybeAssign(noIn);\n }\n return this.finishNode(node, \"YieldExpression\")\n };\n\n pp$3.parseAwait = function() {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n return this.finishNode(node, \"AwaitExpression\")\n };\n\n var pp$4 = Parser.prototype;\n\n // This function is used to raise exceptions on parse errors. It\n // takes an offset integer (into the current `input`) to indicate\n // the location of the error, attaches the position to the end\n // of the error message, and then raises a `SyntaxError` with that\n // message.\n\n pp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n };\n\n pp$4.raiseRecoverable = pp$4.raise;\n\n pp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n };\n\n var pp$5 = Parser.prototype;\n\n var Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n };\n\n // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\n pp$5.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n };\n\n pp$5.exitScope = function() {\n this.scopeStack.pop();\n };\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n pp$5.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n };\n\n pp$5.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n };\n\n pp$5.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n };\n\n pp$5.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n };\n\n pp$5.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n };\n\n // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n pp$5.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n };\n\n var Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n };\n\n // Start an AST node, attaching a start offset.\n\n var pp$6 = Parser.prototype;\n\n pp$6.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n };\n\n pp$6.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n };\n\n // Finish an AST node, adding `type` and `end` properties.\n\n function finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n }\n\n pp$6.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n };\n\n // Finish node at given position\n\n pp$6.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n };\n\n pp$6.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n };\n\n // The algorithm used to determine whether a regexp can appear at a\n\n var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n };\n\n var types$1 = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n };\n\n var pp$7 = Parser.prototype;\n\n pp$7.initialContext = function() {\n return [types$1.b_stat]\n };\n\n pp$7.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types$1.f_expr || parent === types$1.f_stat)\n { return true }\n if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types._return || prevType === types.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)\n { return true }\n if (prevType === types.braceL)\n { return parent === types$1.b_stat }\n if (prevType === types._var || prevType === types._const || prevType === types.name)\n { return false }\n return !this.exprAllowed\n };\n\n pp$7.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n };\n\n pp$7.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n };\n\n // Token-specific context update code\n\n types.parenR.updateContext = types.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types$1.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n };\n\n types.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);\n this.exprAllowed = true;\n };\n\n types.dollarBraceL.updateContext = function() {\n this.context.push(types$1.b_tmpl);\n this.exprAllowed = true;\n };\n\n types.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;\n this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);\n this.exprAllowed = true;\n };\n\n types.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n };\n\n types._function.updateContext = types._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types._else &&\n !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&\n !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))\n { this.context.push(types$1.f_expr); }\n else\n { this.context.push(types$1.f_stat); }\n this.exprAllowed = false;\n };\n\n types.backQuote.updateContext = function() {\n if (this.curContext() === types$1.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types$1.q_tmpl); }\n this.exprAllowed = false;\n };\n\n types.star.updateContext = function(prevType) {\n if (prevType === types._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types$1.f_expr)\n { this.context[index] = types$1.f_expr_gen; }\n else\n { this.context[index] = types$1.f_gen; }\n }\n this.exprAllowed = true;\n };\n\n types.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n };\n\n // This file contains Unicode properties extracted from the ECMAScript\n // specification. The lists are extracted like so:\n // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n // #table-binary-unicode-properties\n var ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\n var ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\n var ecma11BinaryProperties = ecma10BinaryProperties;\n var ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\n var unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties\n };\n\n // #table-unicode-general-category-values\n var unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n // #table-unicode-script-values\n var ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\n var ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\n var ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\n var ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\n var unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues\n };\n\n var data = {};\n function buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n }\n buildUnicodeData(9);\n buildUnicodeData(10);\n buildUnicodeData(11);\n buildUnicodeData(12);\n\n var pp$8 = Parser.prototype;\n\n var RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n };\n\n RegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n };\n\n RegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n };\n\n // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n RegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n };\n\n RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n };\n\n RegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n };\n\n RegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n };\n\n RegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n };\n\n RegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n };\n\n function codePointToString(ch) {\n if (ch <= 0xFFFF) { return String.fromCharCode(ch) }\n ch -= 0x10000;\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n }\n\n /**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$8.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n };\n\n /**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$8.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n pp$8.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n pp$8.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n pp$8.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\n pp$8.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\n pp$8.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n pp$8.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n pp$8.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n };\n pp$8.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n pp$8.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n };\n pp$8.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\n pp$8.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\n pp$8.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n pp$8.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n };\n function isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n // But eat eager.\n pp$8.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\n pp$8.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n };\n\n // GroupSpecifier ::\n // [empty]\n // `?` GroupName\n pp$8.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n };\n\n // GroupName ::\n // `<` RegExpIdentifierName `>`\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$8.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n };\n\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierPart\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$8.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n };\n\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n pp$8.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n }\n\n // RegExpIdentifierPart ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n // <ZWNJ>\n // <ZWJ>\n pp$8.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\n pp$8.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n };\n pp$8.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\n pp$8.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n };\n pp$8.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$8.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n pp$8.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n pp$8.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n function isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n };\n function isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\n pp$8.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n pp$8.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n pp$8.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n };\n function isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n pp$8.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n };\n pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n };\n pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n };\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n pp$8.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n function isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n pp$8.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n function isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n pp$8.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n pp$8.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n pp$8.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\n pp$8.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\n pp$8.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$8.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n pp$8.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n };\n function isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n pp$8.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n };\n function isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n }\n function hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n pp$8.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n };\n function isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$8.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n };\n\n // Object type used to represent tokens. Note that normally, tokens\n // simply exist as properties on the parser object. This is only\n // used for the onToken callback and the external tokenizer.\n\n var Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n };\n\n // ## Tokenizer\n\n var pp$9 = Parser.prototype;\n\n // Move to the next token\n\n pp$9.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n };\n\n pp$9.getToken = function() {\n this.next();\n return new Token(this)\n };\n\n // If we're in an ES6 environment, make parsers iterable\n if (typeof Symbol !== \"undefined\")\n { pp$9[Symbol.iterator] = function() {\n var this$1 = this;\n\n return {\n next: function () {\n var token = this$1.getToken();\n return {\n done: token.type === types.eof,\n value: token\n }\n }\n }\n }; }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n pp$9.curContext = function() {\n return this.context[this.context.length - 1]\n };\n\n // Read a single token, updating the parser object's token-related\n // properties.\n\n pp$9.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n };\n\n pp$9.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n };\n\n pp$9.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xe000) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return (code << 10) + next - 0x35fdc00\n };\n\n pp$9.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n lineBreakG.lastIndex = start;\n var match;\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine;\n this.lineStart = match.index + match[0].length;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n pp$9.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n pp$9.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n };\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `exprAllowed`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n pp$9.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n };\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n //\n pp$9.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types.dot)\n }\n };\n\n pp$9.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.slash, 1)\n };\n\n pp$9.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types.star : types.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(tokentype, size)\n };\n\n pp$9.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)\n };\n\n pp$9.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.bitwiseXOR, 1)\n };\n\n pp$9.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types.assign, 2) }\n return this.finishOp(types.plusMin, 1)\n };\n\n pp$9.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }\n return this.finishOp(types.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types.relational, size)\n };\n\n pp$9.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types.arrow)\n }\n return this.finishOp(code === 61 ? types.eq : types.prefix, 1)\n };\n\n pp$9.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types.assign, 3) }\n }\n return this.finishOp(types.coalesce, 2)\n }\n }\n return this.finishOp(types.question, 1)\n };\n\n pp$9.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types.parenL)\n case 41: ++this.pos; return this.finishToken(types.parenR)\n case 59: ++this.pos; return this.finishToken(types.semi)\n case 44: ++this.pos; return this.finishToken(types.comma)\n case 91: ++this.pos; return this.finishToken(types.bracketL)\n case 93: ++this.pos; return this.finishToken(types.bracketR)\n case 123: ++this.pos; return this.finishToken(types.braceL)\n case 125: ++this.pos; return this.finishToken(types.braceR)\n case 58: ++this.pos; return this.finishToken(types.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types.prefix, 1)\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString$1(code) + \"'\");\n };\n\n pp$9.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n };\n\n pp$9.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})\n };\n\n // Read an integer in the given radix. Return null if zero digits\n // were read, the integer value otherwise. When `len` is given, this\n // will return `null` unless the integer has exactly `len` digits.\n\n pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n };\n\n function stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n }\n\n function stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n }\n\n pp$9.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val)\n };\n\n // Read an integer, octal integer, or floating-point number.\n\n pp$9.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types.num, val)\n };\n\n // Read a string value, interpreting backslash-escapes.\n\n pp$9.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n };\n\n function codePointToString$1(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n }\n\n pp$9.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else {\n if (isNewLine(ch, this.options.ecmaVersion >= 10)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types.string, out)\n };\n\n // Reads template string tokens.\n\n var INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\n pp$9.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n };\n\n pp$9.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n };\n\n pp$9.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n };\n\n // Reads a template token to search for the end, without validating any escape sequences\n pp$9.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") {\n break\n }\n // falls through\n\n case \"`\":\n return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))\n\n // no default\n }\n }\n this.raise(this.start, \"Unterminated template\");\n };\n\n // Used to read escaped characters\n\n pp$9.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString$1(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n\n return null\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n };\n\n // Used to read character escape sequences ('\\x', '\\u', '\\U').\n\n pp$9.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n };\n\n // Read an identifier, and return it as a string. Sets `this.containsEsc`\n // to whether the word contained a '\\u' escape.\n //\n // Incrementally adds only escaped chars, adding other chunks as-is\n // as a micro-optimization.\n\n pp$9.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString$1(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n };\n\n // Read an identifier or keyword token. Will check for reserved\n // words when necessary.\n\n pp$9.readWord = function() {\n var word = this.readWord1();\n var type = types.name;\n if (this.keywords.test(word)) {\n type = keywords$1[word];\n }\n return this.finishToken(type, word)\n };\n\n // Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\n var version = \"8.0.4\";\n\n Parser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types,\n keywordTypes: keywords$1,\n TokContext: TokContext,\n tokContexts: types$1,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n };\n\n // The main exported interface (under `self.acorn` when in the\n // browser) is a `parse` function that takes a code string and\n // returns an abstract syntax tree as specified by [Mozilla parser\n // API][api].\n //\n // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\n function parse(input, options) {\n return Parser.parse(input, options)\n }\n\n // This function tries to parse a single expression at a given\n // offset in a string. Useful for parsing mixed-language formats\n // that embed JavaScript expressions.\n\n function parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n }\n\n // Acorn is organized as a tokenizer and a recursive-descent parser.\n // The `tokenizer` export provides an interface to the tokenizer.\n\n function tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n }\n\n exports.Node = Node;\n exports.Parser = Parser;\n exports.Position = Position;\n exports.SourceLocation = SourceLocation;\n exports.TokContext = TokContext;\n exports.Token = Token;\n exports.TokenType = TokenType;\n exports.defaultOptions = defaultOptions;\n exports.getLineInfo = getLineInfo;\n exports.isIdentifierChar = isIdentifierChar;\n exports.isIdentifierStart = isIdentifierStart;\n exports.isNewLine = isNewLine;\n exports.keywordTypes = keywords$1;\n exports.lineBreak = lineBreak;\n exports.lineBreakG = lineBreakG;\n exports.nonASCIIwhitespace = nonASCIIwhitespace;\n exports.parse = parse;\n exports.parseExpressionAt = parseExpressionAt;\n exports.tokContexts = types$1;\n exports.tokTypes = types;\n exports.tokenizer = tokenizer;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=acorn.js.map\n","\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError;\n if ('function' != typeof fn) throw new TypeError;\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar filter = require('array-filter');\n\nmodule.exports = function availableTypedArrays() {\n\treturn filter([\n\t\t'BigInt64Array',\n\t\t'BigUint64Array',\n\t\t'Float32Array',\n\t\t'Float64Array',\n\t\t'Int16Array',\n\t\t'Int32Array',\n\t\t'Int8Array',\n\t\t'Uint16Array',\n\t\t'Uint32Array',\n\t\t'Uint8Array',\n\t\t'Uint8ClampedArray'\n\t], function (typedArray) {\n\t\treturn typeof global[typedArray] === 'function';\n\t});\n};\n","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\nconst {isArray} = Array;\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\tif (isArray(arguments_[0]) && isArray(arguments_[0].raw)) {\n\t\t\t// Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}`\n\t\t\treturn applyStyle(builder, chalkTag(builder, ...arguments_));\n\t\t}\n\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!isArray(firstString) || !isArray(firstString.raw)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\nmodule.exports = chalk;\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|{[a-f\\d]{1,6}})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMessage);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","// Chance.js 1.1.7\n// http://chancejs.com\n// (c) 2013 Victor Quinn\n// Chance may be freely distributed or modified under the MIT license.\n\n(function () {\n\n // Constants\n var MAX_INT = 9007199254740992;\n var MIN_INT = -MAX_INT;\n var NUMBERS = '0123456789';\n var CHARS_LOWER = 'abcdefghijklmnopqrstuvwxyz';\n var CHARS_UPPER = CHARS_LOWER.toUpperCase();\n var HEX_POOL = NUMBERS + \"abcdef\";\n\n // Errors\n function UnsupportedError(message) {\n this.name = 'UnsupportedError';\n this.message = message || 'This feature is not supported on this platform';\n }\n\n UnsupportedError.prototype = new Error();\n UnsupportedError.prototype.constructor = UnsupportedError;\n\n // Cached array helpers\n var slice = Array.prototype.slice;\n\n // Constructor\n function Chance (seed) {\n if (!(this instanceof Chance)) {\n if (!seed) { seed = null; } // handle other non-truthy seeds, as described in issue #322\n return seed === null ? new Chance() : new Chance(seed);\n }\n\n // if user has provided a function, use that as the generator\n if (typeof seed === 'function') {\n this.random = seed;\n return this;\n }\n\n if (arguments.length) {\n // set a starting value of zero so we can add to it\n this.seed = 0;\n }\n\n // otherwise, leave this.seed blank so that MT will receive a blank\n\n for (var i = 0; i < arguments.length; i++) {\n var seedling = 0;\n if (Object.prototype.toString.call(arguments[i]) === '[object String]') {\n for (var j = 0; j < arguments[i].length; j++) {\n // create a numeric hash for each argument, add to seedling\n var hash = 0;\n for (var k = 0; k < arguments[i].length; k++) {\n hash = arguments[i].charCodeAt(k) + (hash << 6) + (hash << 16) - hash;\n }\n seedling += hash;\n }\n } else {\n seedling = arguments[i];\n }\n this.seed += (arguments.length - i) * seedling;\n }\n\n // If no generator function was provided, use our MT\n this.mt = this.mersenne_twister(this.seed);\n this.bimd5 = this.blueimp_md5();\n this.random = function () {\n return this.mt.random(this.seed);\n };\n\n return this;\n }\n\n Chance.prototype.VERSION = \"1.1.7\";\n\n // Random helper functions\n function initOptions(options, defaults) {\n options = options || {};\n\n if (defaults) {\n for (var i in defaults) {\n if (typeof options[i] === 'undefined') {\n options[i] = defaults[i];\n }\n }\n }\n\n return options;\n }\n\n function range(size) {\n return Array.apply(null, Array(size)).map(function (_, i) {return i;});\n }\n\n function testRange(test, errorMessage) {\n if (test) {\n throw new RangeError(errorMessage);\n }\n }\n\n /**\n * Encode the input string with Base64.\n */\n var base64 = function() {\n throw new Error('No Base64 encoder available.');\n };\n\n // Select proper Base64 encoder.\n (function determineBase64Encoder() {\n if (typeof btoa === 'function') {\n base64 = btoa;\n } else if (typeof Buffer === 'function') {\n base64 = function(input) {\n return new Buffer(input).toString('base64');\n };\n }\n })();\n\n // -- Basics --\n\n /**\n * Return a random bool, either true or false\n *\n * @param {Object} [options={ likelihood: 50 }] alter the likelihood of\n * receiving a true or false value back.\n * @throws {RangeError} if the likelihood is out of bounds\n * @returns {Bool} either true or false\n */\n Chance.prototype.bool = function (options) {\n // likelihood of success (true)\n options = initOptions(options, {likelihood : 50});\n\n // Note, we could get some minor perf optimizations by checking range\n // prior to initializing defaults, but that makes code a bit messier\n // and the check more complicated as we have to check existence of\n // the object then existence of the key before checking constraints.\n // Since the options initialization should be minor computationally,\n // decision made for code cleanliness intentionally. This is mentioned\n // here as it's the first occurrence, will not be mentioned again.\n testRange(\n options.likelihood < 0 || options.likelihood > 100,\n \"Chance: Likelihood accepts values from 0 to 100.\"\n );\n\n return this.random() * 100 < options.likelihood;\n };\n\n Chance.prototype.falsy = function (options) {\n // return a random falsy value\n options = initOptions(options, {pool: [false, null, 0, NaN, '']})\n var pool = options.pool,\n index = this.integer({min: 0, max: pool.length}),\n value = pool[index];\n\n return value;\n }\n\n Chance.prototype.animal = function (options){\n //returns a random animal\n options = initOptions(options);\n\n if(typeof options.type !== 'undefined'){\n //if user does not put in a valid animal type, user will get an error\n testRange(\n !this.get(\"animals\")[options.type.toLowerCase()],\n \"Please pick from desert, ocean, grassland, forest, zoo, pets, farm.\"\n );\n //if user does put in valid animal type, will return a random animal of that type\n return this.pick(this.get(\"animals\")[options.type.toLowerCase()]);\n }\n //if user does not put in any animal type, will return a random animal regardless\n var animalTypeArray = [\"desert\",\"forest\",\"ocean\",\"zoo\",\"farm\",\"pet\",\"grassland\"];\n return this.pick(this.get(\"animals\")[this.pick(animalTypeArray)]);\n };\n\n /**\n * Return a random character.\n *\n * @param {Object} [options={}] can specify a character pool or alpha,\n * numeric, symbols and casing (lower or upper)\n * @returns {String} a single random character\n */\n Chance.prototype.character = function (options) {\n options = initOptions(options);\n\n var symbols = \"!@#$%^&*()[]\",\n letters, pool;\n\n if (options.casing === 'lower') {\n letters = CHARS_LOWER;\n } else if (options.casing === 'upper') {\n letters = CHARS_UPPER;\n } else {\n letters = CHARS_LOWER + CHARS_UPPER;\n }\n\n if (options.pool) {\n pool = options.pool;\n } else {\n pool = '';\n if (options.alpha) {\n pool += letters;\n }\n if (options.numeric) {\n pool += NUMBERS;\n }\n if (options.symbols) {\n pool += symbols;\n }\n if (!pool) {\n pool = letters + NUMBERS + symbols;\n }\n }\n\n return pool.charAt(this.natural({max: (pool.length - 1)}));\n };\n\n // Note, wanted to use \"float\" or \"double\" but those are both JS reserved words.\n\n // Note, fixed means N OR LESS digits after the decimal. This because\n // It could be 14.9000 but in JavaScript, when this is cast as a number,\n // the trailing zeroes are dropped. Left to the consumer if trailing zeroes are\n // needed\n /**\n * Return a random floating point number\n *\n * @param {Object} [options={}] can specify a fixed precision, min, max\n * @returns {Number} a single floating point number\n * @throws {RangeError} Can only specify fixed or precision, not both. Also\n * min cannot be greater than max\n */\n Chance.prototype.floating = function (options) {\n options = initOptions(options, {fixed : 4});\n testRange(\n options.fixed && options.precision,\n \"Chance: Cannot specify both fixed and precision.\"\n );\n\n var num;\n var fixed = Math.pow(10, options.fixed);\n\n var max = MAX_INT / fixed;\n var min = -max;\n\n testRange(\n options.min && options.fixed && options.min < min,\n \"Chance: Min specified is out of range with fixed. Min should be, at least, \" + min\n );\n testRange(\n options.max && options.fixed && options.max > max,\n \"Chance: Max specified is out of range with fixed. Max should be, at most, \" + max\n );\n\n options = initOptions(options, { min : min, max : max });\n\n // Todo - Make this work!\n // options.precision = (typeof options.precision !== \"undefined\") ? options.precision : false;\n\n num = this.integer({min: options.min * fixed, max: options.max * fixed});\n var num_fixed = (num / fixed).toFixed(options.fixed);\n\n return parseFloat(num_fixed);\n };\n\n /**\n * Return a random integer\n *\n * NOTE the max and min are INCLUDED in the range. So:\n * chance.integer({min: 1, max: 3});\n * would return either 1, 2, or 3.\n *\n * @param {Object} [options={}] can specify a min and/or max\n * @returns {Number} a single random integer number\n * @throws {RangeError} min cannot be greater than max\n */\n Chance.prototype.integer = function (options) {\n // 9007199254740992 (2^53) is the max integer number in JavaScript\n // See: http://vq.io/132sa2j\n options = initOptions(options, {min: MIN_INT, max: MAX_INT});\n testRange(options.min > options.max, \"Chance: Min cannot be greater than Max.\");\n\n return Math.floor(this.random() * (options.max - options.min + 1) + options.min);\n };\n\n /**\n * Return a random natural\n *\n * NOTE the max and min are INCLUDED in the range. So:\n * chance.natural({min: 1, max: 3});\n * would return either 1, 2, or 3.\n *\n * @param {Object} [options={}] can specify a min and/or max or a numerals count.\n * @returns {Number} a single random integer number\n * @throws {RangeError} min cannot be greater than max\n */\n Chance.prototype.natural = function (options) {\n options = initOptions(options, {min: 0, max: MAX_INT});\n if (typeof options.numerals === 'number'){\n testRange(options.numerals < 1, \"Chance: Numerals cannot be less than one.\");\n options.min = Math.pow(10, options.numerals - 1);\n options.max = Math.pow(10, options.numerals) - 1;\n }\n testRange(options.min < 0, \"Chance: Min cannot be less than zero.\");\n\n if (options.exclude) {\n testRange(!Array.isArray(options.exclude), \"Chance: exclude must be an array.\")\n\n for (var exclusionIndex in options.exclude) {\n testRange(!Number.isInteger(options.exclude[exclusionIndex]), \"Chance: exclude must be numbers.\")\n }\n\n var random = options.min + this.natural({max: options.max - options.min - options.exclude.length})\n var sortedExclusions = options.exclude.sort();\n for (var exclusionIndex in sortedExclusions) {\n if (random < sortedExclusions[exclusionIndex]) {\n break\n }\n random++\n }\n return random\n }\n return this.integer(options);\n };\n\n /**\n * Return a random prime number\n *\n * NOTE the max and min are INCLUDED in the range.\n *\n * @param {Object} [options={}] can specify a min and/or max\n * @returns {Number} a single random prime number\n * @throws {RangeError} min cannot be greater than max nor negative\n */\n Chance.prototype.prime = function (options) {\n options = initOptions(options, {min: 0, max: 10000});\n testRange(options.min < 0, \"Chance: Min cannot be less than zero.\");\n testRange(options.min > options.max, \"Chance: Min cannot be greater than Max.\");\n\n var lastPrime = data.primes[data.primes.length - 1];\n if (options.max > lastPrime) {\n for (var i = lastPrime + 2; i <= options.max; ++i) {\n if (this.is_prime(i)) {\n data.primes.push(i);\n }\n }\n }\n var targetPrimes = data.primes.filter(function (prime) {\n return prime >= options.min && prime <= options.max;\n });\n return this.pick(targetPrimes);\n };\n\n /**\n * Determine whether a given number is prime or not.\n */\n Chance.prototype.is_prime = function (n) {\n if (n % 1 || n < 2) {\n return false;\n }\n if (n % 2 === 0) {\n return n === 2;\n }\n if (n % 3 === 0) {\n return n === 3;\n }\n var m = Math.sqrt(n);\n for (var i = 5; i <= m; i += 6) {\n if (n % i === 0 || n % (i + 2) === 0) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * Return a random hex number as string\n *\n * NOTE the max and min are INCLUDED in the range. So:\n * chance.hex({min: '9', max: 'B'});\n * would return either '9', 'A' or 'B'.\n *\n * @param {Object} [options={}] can specify a min and/or max and/or casing\n * @returns {String} a single random string hex number\n * @throws {RangeError} min cannot be greater than max\n */\n Chance.prototype.hex = function (options) {\n options = initOptions(options, {min: 0, max: MAX_INT, casing: 'lower'});\n testRange(options.min < 0, \"Chance: Min cannot be less than zero.\");\n\t\tvar integer = this.natural({min: options.min, max: options.max});\n\t\tif (options.casing === 'upper') {\n\t\t\treturn integer.toString(16).toUpperCase();\n\t\t}\n\t\treturn integer.toString(16);\n };\n\n Chance.prototype.letter = function(options) {\n options = initOptions(options, {casing: 'lower'});\n var pool = \"abcdefghijklmnopqrstuvwxyz\";\n var letter = this.character({pool: pool});\n if (options.casing === 'upper') {\n letter = letter.toUpperCase();\n }\n return letter;\n }\n\n /**\n * Return a random string\n *\n * @param {Object} [options={}] can specify a length or min and max\n * @returns {String} a string of random length\n * @throws {RangeError} length cannot be less than zero\n */\n Chance.prototype.string = function (options) {\n options = initOptions(options, { min: 5, max: 20 });\n\n if (!options.length) {\n options.length = this.natural({ min: options.min, max: options.max })\n }\n\n testRange(options.length < 0, \"Chance: Length cannot be less than zero.\");\n var length = options.length,\n text = this.n(this.character, length, options);\n\n return text.join(\"\");\n };\n\n function CopyToken(c) {\n this.c = c\n }\n\n CopyToken.prototype = {\n substitute: function () {\n return this.c\n }\n }\n\n function EscapeToken(c) {\n this.c = c\n }\n\n EscapeToken.prototype = {\n substitute: function () {\n if (!/[{}\\\\]/.test(this.c)) {\n throw new Error('Invalid escape sequence: \"\\\\' + this.c + '\".')\n }\n return this.c\n }\n }\n\n function ReplaceToken(c) {\n this.c = c\n }\n\n ReplaceToken.prototype = {\n replacers: {\n '#': function (chance) { return chance.character({ pool: NUMBERS }) },\n 'A': function (chance) { return chance.character({ pool: CHARS_UPPER }) },\n 'a': function (chance) { return chance.character({ pool: CHARS_LOWER }) },\n },\n\n substitute: function (chance) {\n var replacer = this.replacers[this.c]\n if (!replacer) {\n throw new Error('Invalid replacement character: \"' + this.c + '\".')\n }\n return replacer(chance)\n }\n }\n\n function parseTemplate(template) {\n var tokens = []\n var mode = 'identity'\n for (var i = 0; i<template.length; i++) {\n var c = template[i]\n switch (mode) {\n case 'escape':\n tokens.push(new EscapeToken(c))\n mode = 'identity'\n break\n case 'identity':\n if (c === '{') {\n mode = 'replace'\n } else if (c === '\\\\') {\n mode = 'escape'\n } else {\n tokens.push(new CopyToken(c))\n }\n break\n case 'replace':\n if (c === '}') {\n mode = 'identity'\n } else {\n tokens.push(new ReplaceToken(c))\n }\n break\n }\n }\n return tokens\n }\n\n /**\n * Return a random string matching the given template.\n *\n * The template consists of any number of \"character replacement\" and\n * \"character literal\" sequences. A \"character replacement\" sequence\n * starts with a left brace, has any number of special replacement\n * characters, and ends with a right brace. A character literal can be any\n * character except a brace or a backslash. A literal brace or backslash\n * character can be included in the output by escaping with a backslash.\n *\n * The following replacement characters can be used in a replacement\n * sequence:\n *\n * \"#\": a random digit\n * \"a\": a random lower case letter\n * \"A\": a random upper case letter\n *\n * Example: chance.template('{AA###}-{##}')\n *\n * @param {String} template string.\n * @returns {String} a random string matching the template.\n */\n Chance.prototype.template = function (template) {\n if (!template) {\n throw new Error('Template string is required')\n }\n var self = this\n return parseTemplate(template)\n .map(function (token) { return token.substitute(self) })\n .join('');\n };\n\n\n /**\n * Return a random buffer\n *\n * @param {Object} [options={}] can specify a length\n * @returns {Buffer} a buffer of random length\n * @throws {RangeError} length cannot be less than zero\n */\n Chance.prototype.buffer = function (options) {\n if (typeof Buffer === 'undefined') {\n throw new UnsupportedError('Sorry, the buffer() function is not supported on your platform');\n }\n options = initOptions(options, { length: this.natural({min: 5, max: 20}) });\n testRange(options.length < 0, \"Chance: Length cannot be less than zero.\");\n var length = options.length;\n var content = this.n(this.character, length, options);\n\n return Buffer.from(content);\n };\n\n // -- End Basics --\n\n // -- Helpers --\n\n Chance.prototype.capitalize = function (word) {\n return word.charAt(0).toUpperCase() + word.substr(1);\n };\n\n Chance.prototype.mixin = function (obj) {\n for (var func_name in obj) {\n Chance.prototype[func_name] = obj[func_name];\n }\n return this;\n };\n\n /**\n * Given a function that generates something random and a number of items to generate,\n * return an array of items where none repeat.\n *\n * @param {Function} fn the function that generates something random\n * @param {Number} num number of terms to generate\n * @param {Object} options any options to pass on to the generator function\n * @returns {Array} an array of length `num` with every item generated by `fn` and unique\n *\n * There can be more parameters after these. All additional parameters are provided to the given function\n */\n Chance.prototype.unique = function(fn, num, options) {\n testRange(\n typeof fn !== \"function\",\n \"Chance: The first argument must be a function.\"\n );\n\n var comparator = function(arr, val) { return arr.indexOf(val) !== -1; };\n\n if (options) {\n comparator = options.comparator || comparator;\n }\n\n var arr = [], count = 0, result, MAX_DUPLICATES = num * 50, params = slice.call(arguments, 2);\n\n while (arr.length < num) {\n var clonedParams = JSON.parse(JSON.stringify(params));\n result = fn.apply(this, clonedParams);\n if (!comparator(arr, result)) {\n arr.push(result);\n // reset count when unique found\n count = 0;\n }\n\n if (++count > MAX_DUPLICATES) {\n throw new RangeError(\"Chance: num is likely too large for sample set\");\n }\n }\n return arr;\n };\n\n /**\n * Gives an array of n random terms\n *\n * @param {Function} fn the function that generates something random\n * @param {Number} n number of terms to generate\n * @returns {Array} an array of length `n` with items generated by `fn`\n *\n * There can be more parameters after these. All additional parameters are provided to the given function\n */\n Chance.prototype.n = function(fn, n) {\n testRange(\n typeof fn !== \"function\",\n \"Chance: The first argument must be a function.\"\n );\n\n if (typeof n === 'undefined') {\n n = 1;\n }\n var i = n, arr = [], params = slice.call(arguments, 2);\n\n // Providing a negative count should result in a noop.\n i = Math.max( 0, i );\n\n for (null; i--; null) {\n arr.push(fn.apply(this, params));\n }\n\n return arr;\n };\n\n // H/T to SO for this one: http://vq.io/OtUrZ5\n Chance.prototype.pad = function (number, width, pad) {\n // Default pad to 0 if none provided\n pad = pad || '0';\n // Convert number to a string\n number = number + '';\n return number.length >= width ? number : new Array(width - number.length + 1).join(pad) + number;\n };\n\n // DEPRECATED on 2015-10-01\n Chance.prototype.pick = function (arr, count) {\n if (arr.length === 0) {\n throw new RangeError(\"Chance: Cannot pick() from an empty array\");\n }\n if (!count || count === 1) {\n return arr[this.natural({max: arr.length - 1})];\n } else {\n return this.shuffle(arr).slice(0, count);\n }\n };\n\n // Given an array, returns a single random element\n Chance.prototype.pickone = function (arr) {\n if (arr.length === 0) {\n throw new RangeError(\"Chance: Cannot pickone() from an empty array\");\n }\n return arr[this.natural({max: arr.length - 1})];\n };\n\n // Given an array, returns a random set with 'count' elements\n Chance.prototype.pickset = function (arr, count) {\n if (count === 0) {\n return [];\n }\n if (arr.length === 0) {\n throw new RangeError(\"Chance: Cannot pickset() from an empty array\");\n }\n if (count < 0) {\n throw new RangeError(\"Chance: Count must be a positive number\");\n }\n if (!count || count === 1) {\n return [ this.pickone(arr) ];\n } else {\n var array = arr.slice(0);\n var end = array.length;\n\n return this.n(function () {\n var index = this.natural({max: --end});\n var value = array[index];\n array[index] = array[end];\n return value;\n }, Math.min(end, count));\n }\n };\n\n Chance.prototype.shuffle = function (arr) {\n var new_array = [],\n j = 0,\n length = Number(arr.length),\n source_indexes = range(length),\n last_source_index = length - 1,\n selected_source_index;\n\n for (var i = 0; i < length; i++) {\n // Pick a random index from the array\n selected_source_index = this.natural({max: last_source_index});\n j = source_indexes[selected_source_index];\n\n // Add it to the new array\n new_array[i] = arr[j];\n\n // Mark the source index as used\n source_indexes[selected_source_index] = source_indexes[last_source_index];\n last_source_index -= 1;\n }\n\n return new_array;\n };\n\n // Returns a single item from an array with relative weighting of odds\n Chance.prototype.weighted = function (arr, weights, trim) {\n if (arr.length !== weights.length) {\n throw new RangeError(\"Chance: Length of array and weights must match\");\n }\n\n // scan weights array and sum valid entries\n var sum = 0;\n var val;\n for (var weightIndex = 0; weightIndex < weights.length; ++weightIndex) {\n val = weights[weightIndex];\n if (isNaN(val)) {\n throw new RangeError(\"Chance: All weights must be numbers\");\n }\n\n if (val > 0) {\n sum += val;\n }\n }\n\n if (sum === 0) {\n throw new RangeError(\"Chance: No valid entries in array weights\");\n }\n\n // select a value within range\n var selected = this.random() * sum;\n\n // find array entry corresponding to selected value\n var total = 0;\n var lastGoodIdx = -1;\n var chosenIdx;\n for (weightIndex = 0; weightIndex < weights.length; ++weightIndex) {\n val = weights[weightIndex];\n total += val;\n if (val > 0) {\n if (selected <= total) {\n chosenIdx = weightIndex;\n break;\n }\n lastGoodIdx = weightIndex;\n }\n\n // handle any possible rounding error comparison to ensure something is picked\n if (weightIndex === (weights.length - 1)) {\n chosenIdx = lastGoodIdx;\n }\n }\n\n var chosen = arr[chosenIdx];\n trim = (typeof trim === 'undefined') ? false : trim;\n if (trim) {\n arr.splice(chosenIdx, 1);\n weights.splice(chosenIdx, 1);\n }\n\n return chosen;\n };\n\n // -- End Helpers --\n\n // -- Text --\n\n Chance.prototype.paragraph = function (options) {\n options = initOptions(options);\n\n var sentences = options.sentences || this.natural({min: 3, max: 7}),\n sentence_array = this.n(this.sentence, sentences),\n separator = options.linebreak === true ? '\\n' : ' ';\n\n return sentence_array.join(separator);\n };\n\n // Could get smarter about this than generating random words and\n // chaining them together. Such as: http://vq.io/1a5ceOh\n Chance.prototype.sentence = function (options) {\n options = initOptions(options);\n\n var words = options.words || this.natural({min: 12, max: 18}),\n punctuation = options.punctuation,\n text, word_array = this.n(this.word, words);\n\n text = word_array.join(' ');\n\n // Capitalize first letter of sentence\n text = this.capitalize(text);\n\n // Make sure punctuation has a usable value\n if (punctuation !== false && !/^[.?;!:]$/.test(punctuation)) {\n punctuation = '.';\n }\n\n // Add punctuation mark\n if (punctuation) {\n text += punctuation;\n }\n\n return text;\n };\n\n Chance.prototype.syllable = function (options) {\n options = initOptions(options);\n\n var length = options.length || this.natural({min: 2, max: 3}),\n consonants = 'bcdfghjklmnprstvwz', // consonants except hard to speak ones\n vowels = 'aeiou', // vowels\n all = consonants + vowels, // all\n text = '',\n chr;\n\n // I'm sure there's a more elegant way to do this, but this works\n // decently well.\n for (var i = 0; i < length; i++) {\n if (i === 0) {\n // First character can be anything\n chr = this.character({pool: all});\n } else if (consonants.indexOf(chr) === -1) {\n // Last character was a vowel, now we want a consonant\n chr = this.character({pool: consonants});\n } else {\n // Last character was a consonant, now we want a vowel\n chr = this.character({pool: vowels});\n }\n\n text += chr;\n }\n\n if (options.capitalize) {\n text = this.capitalize(text);\n }\n\n return text;\n };\n\n Chance.prototype.word = function (options) {\n options = initOptions(options);\n\n testRange(\n options.syllables && options.length,\n \"Chance: Cannot specify both syllables AND length.\"\n );\n\n var syllables = options.syllables || this.natural({min: 1, max: 3}),\n text = '';\n\n if (options.length) {\n // Either bound word by length\n do {\n text += this.syllable();\n } while (text.length < options.length);\n text = text.substring(0, options.length);\n } else {\n // Or by number of syllables\n for (var i = 0; i < syllables; i++) {\n text += this.syllable();\n }\n }\n\n if (options.capitalize) {\n text = this.capitalize(text);\n }\n\n return text;\n };\n\n // -- End Text --\n\n // -- Person --\n\n Chance.prototype.age = function (options) {\n options = initOptions(options);\n var ageRange;\n\n switch (options.type) {\n case 'child':\n ageRange = {min: 0, max: 12};\n break;\n case 'teen':\n ageRange = {min: 13, max: 19};\n break;\n case 'adult':\n ageRange = {min: 18, max: 65};\n break;\n case 'senior':\n ageRange = {min: 65, max: 100};\n break;\n case 'all':\n ageRange = {min: 0, max: 100};\n break;\n default:\n ageRange = {min: 18, max: 65};\n break;\n }\n\n return this.natural(ageRange);\n };\n\n Chance.prototype.birthday = function (options) {\n var age = this.age(options);\n var currentYear = new Date().getFullYear();\n\n if (options && options.type) {\n var min = new Date();\n var max = new Date();\n min.setFullYear(currentYear - age - 1);\n max.setFullYear(currentYear - age);\n\n options = initOptions(options, {\n min: min,\n max: max\n });\n } else {\n options = initOptions(options, {\n year: currentYear - age\n });\n }\n\n return this.date(options);\n };\n\n // CPF; ID to identify taxpayers in Brazil\n Chance.prototype.cpf = function (options) {\n options = initOptions(options, {\n formatted: true\n });\n\n var n = this.n(this.natural, 9, { max: 9 });\n var d1 = n[8]*2+n[7]*3+n[6]*4+n[5]*5+n[4]*6+n[3]*7+n[2]*8+n[1]*9+n[0]*10;\n d1 = 11 - (d1 % 11);\n if (d1>=10) {\n d1 = 0;\n }\n var d2 = d1*2+n[8]*3+n[7]*4+n[6]*5+n[5]*6+n[4]*7+n[3]*8+n[2]*9+n[1]*10+n[0]*11;\n d2 = 11 - (d2 % 11);\n if (d2>=10) {\n d2 = 0;\n }\n var cpf = ''+n[0]+n[1]+n[2]+'.'+n[3]+n[4]+n[5]+'.'+n[6]+n[7]+n[8]+'-'+d1+d2;\n return options.formatted ? cpf : cpf.replace(/\\D/g,'');\n };\n\n // CNPJ: ID to identify companies in Brazil\n Chance.prototype.cnpj = function (options) {\n options = initOptions(options, {\n formatted: true\n });\n\n var n = this.n(this.natural, 12, { max: 12 });\n var d1 = n[11]*2+n[10]*3+n[9]*4+n[8]*5+n[7]*6+n[6]*7+n[5]*8+n[4]*9+n[3]*2+n[2]*3+n[1]*4+n[0]*5;\n d1 = 11 - (d1 % 11);\n if (d1<2) {\n d1 = 0;\n }\n var d2 = d1*2+n[11]*3+n[10]*4+n[9]*5+n[8]*6+n[7]*7+n[6]*8+n[5]*9+n[4]*2+n[3]*3+n[2]*4+n[1]*5+n[0]*6;\n d2 = 11 - (d2 % 11);\n if (d2<2) {\n d2 = 0;\n }\n var cnpj = ''+n[0]+n[1]+'.'+n[2]+n[3]+n[4]+'.'+n[5]+n[6]+n[7]+'/'+n[8]+n[9]+n[10]+n[11]+'-'+d1+d2;\n return options.formatted ? cnpj : cnpj.replace(/\\D/g,'');\n };\n\n Chance.prototype.first = function (options) {\n options = initOptions(options, {gender: this.gender(), nationality: 'en'});\n return this.pick(this.get(\"firstNames\")[options.gender.toLowerCase()][options.nationality.toLowerCase()]);\n };\n\n Chance.prototype.profession = function (options) {\n options = initOptions(options);\n if(options.rank){\n return this.pick(['Apprentice ', 'Junior ', 'Senior ', 'Lead ']) + this.pick(this.get(\"profession\"));\n } else{\n return this.pick(this.get(\"profession\"));\n }\n };\n\n Chance.prototype.company = function (){\n return this.pick(this.get(\"company\"));\n };\n\n Chance.prototype.gender = function (options) {\n options = initOptions(options, {extraGenders: []});\n return this.pick(['Male', 'Female'].concat(options.extraGenders));\n };\n\n Chance.prototype.last = function (options) {\n options = initOptions(options, {nationality: '*'});\n if (options.nationality === \"*\") {\n var allLastNames = []\n var lastNames = this.get(\"lastNames\")\n Object.keys(lastNames).forEach(function(key){\n allLastNames = allLastNames.concat(lastNames[key])\n })\n return this.pick(allLastNames)\n }\n else {\n return this.pick(this.get(\"lastNames\")[options.nationality.toLowerCase()]);\n }\n\n };\n\n Chance.prototype.israelId=function(){\n var x=this.string({pool: '0123456789',length:8});\n var y=0;\n for (var i=0;i<x.length;i++){\n var thisDigit= x[i] * (i/2===parseInt(i/2) ? 1 : 2);\n thisDigit=this.pad(thisDigit,2).toString();\n thisDigit=parseInt(thisDigit[0]) + parseInt(thisDigit[1]);\n y=y+thisDigit;\n }\n x=x+(10-parseInt(y.toString().slice(-1))).toString().slice(-1);\n return x;\n };\n\n Chance.prototype.mrz = function (options) {\n var checkDigit = function (input) {\n var alpha = \"<ABCDEFGHIJKLMNOPQRSTUVWXYXZ\".split(''),\n multipliers = [ 7, 3, 1 ],\n runningTotal = 0;\n\n if (typeof input !== 'string') {\n input = input.toString();\n }\n\n input.split('').forEach(function(character, idx) {\n var pos = alpha.indexOf(character);\n\n if(pos !== -1) {\n character = pos === 0 ? 0 : pos + 9;\n } else {\n character = parseInt(character, 10);\n }\n character *= multipliers[idx % multipliers.length];\n runningTotal += character;\n });\n return runningTotal % 10;\n };\n var generate = function (opts) {\n var pad = function (length) {\n return new Array(length + 1).join('<');\n };\n var number = [ 'P<',\n opts.issuer,\n opts.last.toUpperCase(),\n '<<',\n opts.first.toUpperCase(),\n pad(39 - (opts.last.length + opts.first.length + 2)),\n opts.passportNumber,\n checkDigit(opts.passportNumber),\n opts.nationality,\n opts.dob,\n checkDigit(opts.dob),\n opts.gender,\n opts.expiry,\n checkDigit(opts.expiry),\n pad(14),\n checkDigit(pad(14)) ].join('');\n\n return number +\n (checkDigit(number.substr(44, 10) +\n number.substr(57, 7) +\n number.substr(65, 7)));\n };\n\n var that = this;\n\n options = initOptions(options, {\n first: this.first(),\n last: this.last(),\n passportNumber: this.integer({min: 100000000, max: 999999999}),\n dob: (function () {\n var date = that.birthday({type: 'adult'});\n return [date.getFullYear().toString().substr(2),\n that.pad(date.getMonth() + 1, 2),\n that.pad(date.getDate(), 2)].join('');\n }()),\n expiry: (function () {\n var date = new Date();\n return [(date.getFullYear() + 5).toString().substr(2),\n that.pad(date.getMonth() + 1, 2),\n that.pad(date.getDate(), 2)].join('');\n }()),\n gender: this.gender() === 'Female' ? 'F': 'M',\n issuer: 'GBR',\n nationality: 'GBR'\n });\n return generate (options);\n };\n\n Chance.prototype.name = function (options) {\n options = initOptions(options);\n\n var first = this.first(options),\n last = this.last(options),\n name;\n\n if (options.middle) {\n name = first + ' ' + this.first(options) + ' ' + last;\n } else if (options.middle_initial) {\n name = first + ' ' + this.character({alpha: true, casing: 'upper'}) + '. ' + last;\n } else {\n name = first + ' ' + last;\n }\n\n if (options.prefix) {\n name = this.prefix(options) + ' ' + name;\n }\n\n if (options.suffix) {\n name = name + ' ' + this.suffix(options);\n }\n\n return name;\n };\n\n // Return the list of available name prefixes based on supplied gender.\n // @todo introduce internationalization\n Chance.prototype.name_prefixes = function (gender) {\n gender = gender || \"all\";\n gender = gender.toLowerCase();\n\n var prefixes = [\n { name: 'Doctor', abbreviation: 'Dr.' }\n ];\n\n if (gender === \"male\" || gender === \"all\") {\n prefixes.push({ name: 'Mister', abbreviation: 'Mr.' });\n }\n\n if (gender === \"female\" || gender === \"all\") {\n prefixes.push({ name: 'Miss', abbreviation: 'Miss' });\n prefixes.push({ name: 'Misses', abbreviation: 'Mrs.' });\n }\n\n return prefixes;\n };\n\n // Alias for name_prefix\n Chance.prototype.prefix = function (options) {\n return this.name_prefix(options);\n };\n\n Chance.prototype.name_prefix = function (options) {\n options = initOptions(options, { gender: \"all\" });\n return options.full ?\n this.pick(this.name_prefixes(options.gender)).name :\n this.pick(this.name_prefixes(options.gender)).abbreviation;\n };\n //Hungarian ID number\n Chance.prototype.HIDN= function(){\n //Hungarian ID nuber structure: XXXXXXYY (X=number,Y=Capital Latin letter)\n var idn_pool=\"0123456789\";\n var idn_chrs=\"ABCDEFGHIJKLMNOPQRSTUVWXYXZ\";\n var idn=\"\";\n idn+=this.string({pool:idn_pool,length:6});\n idn+=this.string({pool:idn_chrs,length:2});\n return idn;\n };\n\n\n Chance.prototype.ssn = function (options) {\n options = initOptions(options, {ssnFour: false, dashes: true});\n var ssn_pool = \"1234567890\",\n ssn,\n dash = options.dashes ? '-' : '';\n\n if(!options.ssnFour) {\n ssn = this.string({pool: ssn_pool, length: 3}) + dash +\n this.string({pool: ssn_pool, length: 2}) + dash +\n this.string({pool: ssn_pool, length: 4});\n } else {\n ssn = this.string({pool: ssn_pool, length: 4});\n }\n return ssn;\n };\n\n // Aadhar is similar to ssn, used in India to uniquely identify a person\n Chance.prototype.aadhar = function (options) {\n options = initOptions(options, {onlyLastFour: false, separatedByWhiteSpace: true});\n var aadhar_pool = \"1234567890\",\n aadhar,\n whiteSpace = options.separatedByWhiteSpace ? ' ' : '';\n\n if(!options.onlyLastFour) {\n aadhar = this.string({pool: aadhar_pool, length: 4}) + whiteSpace +\n this.string({pool: aadhar_pool, length: 4}) + whiteSpace +\n this.string({pool: aadhar_pool, length: 4});\n } else {\n aadhar = this.string({pool: aadhar_pool, length: 4});\n }\n return aadhar;\n };\n\n // Return the list of available name suffixes\n // @todo introduce internationalization\n Chance.prototype.name_suffixes = function () {\n var suffixes = [\n { name: 'Doctor of Osteopathic Medicine', abbreviation: 'D.O.' },\n { name: 'Doctor of Philosophy', abbreviation: 'Ph.D.' },\n { name: 'Esquire', abbreviation: 'Esq.' },\n { name: 'Junior', abbreviation: 'Jr.' },\n { name: 'Juris Doctor', abbreviation: 'J.D.' },\n { name: 'Master of Arts', abbreviation: 'M.A.' },\n { name: 'Master of Business Administration', abbreviation: 'M.B.A.' },\n { name: 'Master of Science', abbreviation: 'M.S.' },\n { name: 'Medical Doctor', abbreviation: 'M.D.' },\n { name: 'Senior', abbreviation: 'Sr.' },\n { name: 'The Third', abbreviation: 'III' },\n { name: 'The Fourth', abbreviation: 'IV' },\n { name: 'Bachelor of Engineering', abbreviation: 'B.E' },\n { name: 'Bachelor of Technology', abbreviation: 'B.TECH' }\n ];\n return suffixes;\n };\n\n // Alias for name_suffix\n Chance.prototype.suffix = function (options) {\n return this.name_suffix(options);\n };\n\n Chance.prototype.name_suffix = function (options) {\n options = initOptions(options);\n return options.full ?\n this.pick(this.name_suffixes()).name :\n this.pick(this.name_suffixes()).abbreviation;\n };\n\n Chance.prototype.nationalities = function () {\n return this.get(\"nationalities\");\n };\n\n // Generate random nationality based on json list\n Chance.prototype.nationality = function () {\n var nationality = this.pick(this.nationalities());\n return nationality.name;\n };\n\n // -- End Person --\n\n // -- Mobile --\n // Android GCM Registration ID\n Chance.prototype.android_id = function () {\n return \"APA91\" + this.string({ pool: \"0123456789abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\", length: 178 });\n };\n\n // Apple Push Token\n Chance.prototype.apple_token = function () {\n return this.string({ pool: \"abcdef1234567890\", length: 64 });\n };\n\n // Windows Phone 8 ANID2\n Chance.prototype.wp8_anid2 = function () {\n return base64( this.hash( { length : 32 } ) );\n };\n\n // Windows Phone 7 ANID\n Chance.prototype.wp7_anid = function () {\n return 'A=' + this.guid().replace(/-/g, '').toUpperCase() + '&E=' + this.hash({ length:3 }) + '&W=' + this.integer({ min:0, max:9 });\n };\n\n // BlackBerry Device PIN\n Chance.prototype.bb_pin = function () {\n return this.hash({ length: 8 });\n };\n\n // -- End Mobile --\n\n // -- Web --\n Chance.prototype.avatar = function (options) {\n var url = null;\n var URL_BASE = '//www.gravatar.com/avatar/';\n var PROTOCOLS = {\n http: 'http',\n https: 'https'\n };\n var FILE_TYPES = {\n bmp: 'bmp',\n gif: 'gif',\n jpg: 'jpg',\n png: 'png'\n };\n var FALLBACKS = {\n '404': '404', // Return 404 if not found\n mm: 'mm', // Mystery man\n identicon: 'identicon', // Geometric pattern based on hash\n monsterid: 'monsterid', // A generated monster icon\n wavatar: 'wavatar', // A generated face\n retro: 'retro', // 8-bit icon\n blank: 'blank' // A transparent png\n };\n var RATINGS = {\n g: 'g',\n pg: 'pg',\n r: 'r',\n x: 'x'\n };\n var opts = {\n protocol: null,\n email: null,\n fileExtension: null,\n size: null,\n fallback: null,\n rating: null\n };\n\n if (!options) {\n // Set to a random email\n opts.email = this.email();\n options = {};\n }\n else if (typeof options === 'string') {\n opts.email = options;\n options = {};\n }\n else if (typeof options !== 'object') {\n return null;\n }\n else if (options.constructor === 'Array') {\n return null;\n }\n\n opts = initOptions(options, opts);\n\n if (!opts.email) {\n // Set to a random email\n opts.email = this.email();\n }\n\n // Safe checking for params\n opts.protocol = PROTOCOLS[opts.protocol] ? opts.protocol + ':' : '';\n opts.size = parseInt(opts.size, 0) ? opts.size : '';\n opts.rating = RATINGS[opts.rating] ? opts.rating : '';\n opts.fallback = FALLBACKS[opts.fallback] ? opts.fallback : '';\n opts.fileExtension = FILE_TYPES[opts.fileExtension] ? opts.fileExtension : '';\n\n url =\n opts.protocol +\n URL_BASE +\n this.bimd5.md5(opts.email) +\n (opts.fileExtension ? '.' + opts.fileExtension : '') +\n (opts.size || opts.rating || opts.fallback ? '?' : '') +\n (opts.size ? '&s=' + opts.size.toString() : '') +\n (opts.rating ? '&r=' + opts.rating : '') +\n (opts.fallback ? '&d=' + opts.fallback : '')\n ;\n\n return url;\n };\n\n /**\n * #Description:\n * ===============================================\n * Generate random color value base on color type:\n * -> hex\n * -> rgb\n * -> rgba\n * -> 0x\n * -> named color\n *\n * #Examples:\n * ===============================================\n * * Geerate random hex color\n * chance.color() => '#79c157' / 'rgb(110,52,164)' / '0x67ae0b' / '#e2e2e2' / '#29CFA7'\n *\n * * Generate Hex based color value\n * chance.color({format: 'hex'}) => '#d67118'\n *\n * * Generate simple rgb value\n * chance.color({format: 'rgb'}) => 'rgb(110,52,164)'\n *\n * * Generate Ox based color value\n * chance.color({format: '0x'}) => '0x67ae0b'\n *\n * * Generate graiscale based value\n * chance.color({grayscale: true}) => '#e2e2e2'\n *\n * * Return valide color name\n * chance.color({format: 'name'}) => 'red'\n *\n * * Make color uppercase\n * chance.color({casing: 'upper'}) => '#29CFA7'\n *\n * * Min Max values for RGBA\n * var light_red = chance.color({format: 'hex', min_red: 200, max_red: 255, max_green: 0, max_blue: 0, min_alpha: .2, max_alpha: .3});\n *\n * @param [object] options\n * @return [string] color value\n */\n Chance.prototype.color = function (options) {\n function gray(value, delimiter) {\n return [value, value, value].join(delimiter || '');\n }\n\n function rgb(hasAlpha) {\n var rgbValue = (hasAlpha) ? 'rgba' : 'rgb';\n var alphaChannel = (hasAlpha) ? (',' + this.floating({min:min_alpha, max:max_alpha})) : \"\";\n var colorValue = (isGrayscale) ? (gray(this.natural({min: min_rgb, max: max_rgb}), ',')) : (this.natural({min: min_green, max: max_green}) + ',' + this.natural({min: min_blue, max: max_blue}) + ',' + this.natural({max: 255}));\n return rgbValue + '(' + colorValue + alphaChannel + ')';\n }\n\n function hex(start, end, withHash) {\n var symbol = (withHash) ? \"#\" : \"\";\n var hexstring = \"\";\n\n if (isGrayscale) {\n hexstring = gray(this.pad(this.hex({min: min_rgb, max: max_rgb}), 2));\n if (options.format === \"shorthex\") {\n hexstring = gray(this.hex({min: 0, max: 15}));\n }\n }\n else {\n if (options.format === \"shorthex\") {\n hexstring = this.pad(this.hex({min: Math.floor(min_red / 16), max: Math.floor(max_red / 16)}), 1) + this.pad(this.hex({min: Math.floor(min_green / 16), max: Math.floor(max_green / 16)}), 1) + this.pad(this.hex({min: Math.floor(min_blue / 16), max: Math.floor(max_blue / 16)}), 1);\n }\n else if (min_red !== undefined || max_red !== undefined || min_green !== undefined || max_green !== undefined || min_blue !== undefined || max_blue !== undefined) {\n hexstring = this.pad(this.hex({min: min_red, max: max_red}), 2) + this.pad(this.hex({min: min_green, max: max_green}), 2) + this.pad(this.hex({min: min_blue, max: max_blue}), 2);\n }\n else {\n hexstring = this.pad(this.hex({min: min_rgb, max: max_rgb}), 2) + this.pad(this.hex({min: min_rgb, max: max_rgb}), 2) + this.pad(this.hex({min: min_rgb, max: max_rgb}), 2);\n }\n }\n\n return symbol + hexstring;\n }\n\n options = initOptions(options, {\n format: this.pick(['hex', 'shorthex', 'rgb', 'rgba', '0x', 'name']),\n grayscale: false,\n casing: 'lower',\n min: 0,\n max: 255,\n min_red: undefined,\n max_red: undefined,\n min_green: undefined,\n max_green: undefined,\n min_blue: undefined,\n max_blue: undefined,\n min_alpha: 0,\n max_alpha: 1\n });\n\n var isGrayscale = options.grayscale;\n var min_rgb = options.min;\n var max_rgb = options.max;\n var min_red = options.min_red;\n var max_red = options.max_red;\n var min_green = options.min_green;\n var max_green = options.max_green;\n var min_blue = options.min_blue;\n var max_blue = options.max_blue;\n var min_alpha = options.min_alpha;\n var max_alpha = options.max_alpha;\n if (options.min_red === undefined) { min_red = min_rgb; }\n if (options.max_red === undefined) { max_red = max_rgb; }\n if (options.min_green === undefined) { min_green = min_rgb; }\n if (options.max_green === undefined) { max_green = max_rgb; }\n if (options.min_blue === undefined) { min_blue = min_rgb; }\n if (options.max_blue === undefined) { max_blue = max_rgb; }\n if (options.min_alpha === undefined) { min_alpha = 0; }\n if (options.max_alpha === undefined) { max_alpha = 1; }\n if (isGrayscale && min_rgb === 0 && max_rgb === 255 && min_red !== undefined && max_red !== undefined) {\n min_rgb = ((min_red + min_green + min_blue) / 3);\n max_rgb = ((max_red + max_green + max_blue) / 3);\n }\n var colorValue;\n\n if (options.format === 'hex') {\n colorValue = hex.call(this, 2, 6, true);\n }\n else if (options.format === 'shorthex') {\n colorValue = hex.call(this, 1, 3, true);\n }\n else if (options.format === 'rgb') {\n colorValue = rgb.call(this, false);\n }\n else if (options.format === 'rgba') {\n colorValue = rgb.call(this, true);\n }\n else if (options.format === '0x') {\n colorValue = '0x' + hex.call(this, 2, 6);\n }\n else if(options.format === 'name') {\n return this.pick(this.get(\"colorNames\"));\n }\n else {\n throw new RangeError('Invalid format provided. Please provide one of \"hex\", \"shorthex\", \"rgb\", \"rgba\", \"0x\" or \"name\".');\n }\n\n if (options.casing === 'upper' ) {\n colorValue = colorValue.toUpperCase();\n }\n\n return colorValue;\n };\n\n Chance.prototype.domain = function (options) {\n options = initOptions(options);\n return this.word() + '.' + (options.tld || this.tld());\n };\n\n Chance.prototype.email = function (options) {\n options = initOptions(options);\n return this.word({length: options.length}) + '@' + (options.domain || this.domain());\n };\n\n /**\n * #Description:\n * ===============================================\n * Generate a random Facebook id, aka fbid.\n *\n * NOTE: At the moment (Sep 2017), Facebook ids are\n * \"numeric strings\" of length 16.\n * However, Facebook Graph API documentation states that\n * \"it is extremely likely to change over time\".\n * @see https://developers.facebook.com/docs/graph-api/overview/\n *\n * #Examples:\n * ===============================================\n * chance.fbid() => '1000035231661304'\n *\n * @return [string] facebook id\n */\n Chance.prototype.fbid = function () {\n return '10000' + this.string({pool: \"1234567890\", length: 11});\n };\n\n Chance.prototype.google_analytics = function () {\n var account = this.pad(this.natural({max: 999999}), 6);\n var property = this.pad(this.natural({max: 99}), 2);\n\n return 'UA-' + account + '-' + property;\n };\n\n Chance.prototype.hashtag = function () {\n return '#' + this.word();\n };\n\n Chance.prototype.ip = function () {\n // Todo: This could return some reserved IPs. See http://vq.io/137dgYy\n // this should probably be updated to account for that rare as it may be\n return this.natural({min: 1, max: 254}) + '.' +\n this.natural({max: 255}) + '.' +\n this.natural({max: 255}) + '.' +\n this.natural({min: 1, max: 254});\n };\n\n Chance.prototype.ipv6 = function () {\n var ip_addr = this.n(this.hash, 8, {length: 4});\n\n return ip_addr.join(\":\");\n };\n\n Chance.prototype.klout = function () {\n return this.natural({min: 1, max: 99});\n };\n\n Chance.prototype.semver = function (options) {\n options = initOptions(options, { include_prerelease: true });\n\n var range = this.pickone([\"^\", \"~\", \"<\", \">\", \"<=\", \">=\", \"=\"]);\n if (options.range) {\n range = options.range;\n }\n\n var prerelease = \"\";\n if (options.include_prerelease) {\n prerelease = this.weighted([\"\", \"-dev\", \"-beta\", \"-alpha\"], [50, 10, 5, 1]);\n }\n return range + this.rpg('3d10').join('.') + prerelease;\n };\n\n Chance.prototype.tlds = function () {\n return ['com', 'org', 'edu', 'gov', 'co.uk', 'net', 'io', 'ac', 'ad', 'ae', 'af', 'ag', 'ai', 'al', 'am', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'su', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tp', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt', 'za', 'zm', 'zw'];\n };\n\n Chance.prototype.tld = function () {\n return this.pick(this.tlds());\n };\n\n Chance.prototype.twitter = function () {\n return '@' + this.word();\n };\n\n Chance.prototype.url = function (options) {\n options = initOptions(options, { protocol: \"http\", domain: this.domain(options), domain_prefix: \"\", path: this.word(), extensions: []});\n\n var extension = options.extensions.length > 0 ? \".\" + this.pick(options.extensions) : \"\";\n var domain = options.domain_prefix ? options.domain_prefix + \".\" + options.domain : options.domain;\n\n return options.protocol + \"://\" + domain + \"/\" + options.path + extension;\n };\n\n Chance.prototype.port = function() {\n return this.integer({min: 0, max: 65535});\n };\n\n Chance.prototype.locale = function (options) {\n options = initOptions(options);\n if (options.region){\n return this.pick(this.get(\"locale_regions\"));\n } else {\n return this.pick(this.get(\"locale_languages\"));\n }\n };\n\n Chance.prototype.locales = function (options) {\n options = initOptions(options);\n if (options.region){\n return this.get(\"locale_regions\");\n } else {\n return this.get(\"locale_languages\");\n }\n };\n\n Chance.prototype.loremPicsum = function (options) {\n options = initOptions(options, { width: 500, height: 500, greyscale: false, blurred: false });\n\n var greyscale = options.greyscale ? 'g/' : '';\n var query = options.blurred ? '/?blur' : '/?random';\n\n return 'https://picsum.photos/' + greyscale + options.width + '/' + options.height + query;\n }\n\n // -- End Web --\n\n // -- Location --\n\n Chance.prototype.address = function (options) {\n options = initOptions(options);\n return this.natural({min: 5, max: 2000}) + ' ' + this.street(options);\n };\n\n Chance.prototype.altitude = function (options) {\n options = initOptions(options, {fixed: 5, min: 0, max: 8848});\n return this.floating({\n min: options.min,\n max: options.max,\n fixed: options.fixed\n });\n };\n\n Chance.prototype.areacode = function (options) {\n options = initOptions(options, {parens : true});\n // Don't want area codes to start with 1, or have a 9 as the second digit\n var areacode = this.natural({min: 2, max: 9}).toString() +\n this.natural({min: 0, max: 8}).toString() +\n this.natural({min: 0, max: 9}).toString();\n\n return options.parens ? '(' + areacode + ')' : areacode;\n };\n\n Chance.prototype.city = function () {\n return this.capitalize(this.word({syllables: 3}));\n };\n\n Chance.prototype.coordinates = function (options) {\n return this.latitude(options) + ', ' + this.longitude(options);\n };\n\n Chance.prototype.countries = function () {\n return this.get(\"countries\");\n };\n\n Chance.prototype.country = function (options) {\n options = initOptions(options);\n var country = this.pick(this.countries());\n return options.raw ? country : options.full ? country.name : country.abbreviation;\n };\n\n Chance.prototype.depth = function (options) {\n options = initOptions(options, {fixed: 5, min: -10994, max: 0});\n return this.floating({\n min: options.min,\n max: options.max,\n fixed: options.fixed\n });\n };\n\n Chance.prototype.geohash = function (options) {\n options = initOptions(options, { length: 7 });\n return this.string({ length: options.length, pool: '0123456789bcdefghjkmnpqrstuvwxyz' });\n };\n\n Chance.prototype.geojson = function (options) {\n return this.latitude(options) + ', ' + this.longitude(options) + ', ' + this.altitude(options);\n };\n\n Chance.prototype.latitude = function (options) {\n // Constants - Formats\n const [DDM, DMS, DD] = ['ddm', 'dms', 'dd'];\n\n options = initOptions(options, \n options && options.format && [DDM, DMS].includes(options.format.toLowerCase()) ?\n {min: 0, max: 89, fixed: 4} :\n {fixed: 5, min: -90, max: 90, format: DD});\n\n const format = options.format.toLowerCase();\n \n if (format === DDM || format === DMS) {\n testRange(options.min < 0 || options.min > 89, \"Chance: Min specified is out of range. Should be between 0 - 89\");\n testRange(options.max < 0 || options.max > 89, \"Chance: Max specified is out of range. Should be between 0 - 89\");\n testRange(options.fixed > 4, 'Chance: Fixed specified should be below or equal to 4');\n }\n\n switch (format) {\n case DDM: {\n return this.integer({min: options.min, max: options.max}) + '°' + \n this.floating({min: 0, max: 59, fixed: options.fixed});\n }\n case DMS: {\n return this.integer({min: options.min, max: options.max}) + '°' + \n this.integer({min: 0, max: 59}) + '’' + \n this.floating({min: 0, max: 59, fixed: options.fixed}) + '”';\n }\n case DD:\n default: { \n return this.floating({min: options.min, max: options.max, fixed: options.fixed});\n }\n }\n };\n\n Chance.prototype.longitude = function (options) {\n // Constants - Formats\n const [DDM, DMS, DD] = ['ddm', 'dms', 'dd'];\n\n options = initOptions(options, \n options && options.format && [DDM, DMS].includes(options.format.toLowerCase()) ?\n {min: 0, max: 179, fixed: 4} :\n {fixed: 5, min: -180, max: 180, format: DD});\n\n const format = options.format.toLowerCase();\n\n if (format === DDM || format === DMS) {\n testRange(options.min < 0 || options.min > 179, \"Chance: Min specified is out of range. Should be between 0 - 179\");\n testRange(options.max < 0 || options.max > 179, \"Chance: Max specified is out of range. Should be between 0 - 179\");\n testRange(options.fixed > 4, 'Chance: Fixed specified should be below or equal to 4');\n }\n\n switch (format) {\n case DDM: {\n return this.integer({min: options.min, max: options.max}) + '°' + \n this.floating({min: 0, max: 59.9999, fixed: options.fixed})\n }\n case DMS: {\n return this.integer({min: options.min, max: options.max}) + '°' +\n this.integer({min: 0, max: 59}) + '’' +\n this.floating({min: 0, max: 59.9999, fixed: options.fixed}) + '”';\n }\n case DD:\n default: { \n return this.floating({min: options.min, max: options.max, fixed: options.fixed});\n }\n }\n };\n\n Chance.prototype.phone = function (options) {\n var self = this,\n numPick,\n ukNum = function (parts) {\n var section = [];\n //fills the section part of the phone number with random numbers.\n parts.sections.forEach(function(n) {\n section.push(self.string({ pool: '0123456789', length: n}));\n });\n return parts.area + section.join(' ');\n };\n options = initOptions(options, {\n formatted: true,\n country: 'us',\n mobile: false\n });\n if (!options.formatted) {\n options.parens = false;\n }\n var phone;\n switch (options.country) {\n case 'fr':\n if (!options.mobile) {\n numPick = this.pick([\n // Valid zone and département codes.\n '01' + this.pick(['30', '34', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '53', '55', '56', '58', '60', '64', '69', '70', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83']) + self.string({ pool: '0123456789', length: 6}),\n '02' + this.pick(['14', '18', '22', '23', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '40', '41', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '56', '57', '61', '62', '69', '72', '76', '77', '78', '85', '90', '96', '97', '98', '99']) + self.string({ pool: '0123456789', length: 6}),\n '03' + this.pick(['10', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '39', '44', '45', '51', '52', '54', '55', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90']) + self.string({ pool: '0123456789', length: 6}),\n '04' + this.pick(['11', '13', '15', '20', '22', '26', '27', '30', '32', '34', '37', '42', '43', '44', '50', '56', '57', '63', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '88', '89', '90', '91', '92', '93', '94', '95', '97', '98']) + self.string({ pool: '0123456789', length: 6}),\n '05' + this.pick(['08', '16', '17', '19', '24', '31', '32', '33', '34', '35', '40', '45', '46', '47', '49', '53', '55', '56', '57', '58', '59', '61', '62', '63', '64', '65', '67', '79', '81', '82', '86', '87', '90', '94']) + self.string({ pool: '0123456789', length: 6}),\n '09' + self.string({ pool: '0123456789', length: 8}),\n ]);\n phone = options.formatted ? numPick.match(/../g).join(' ') : numPick;\n } else {\n numPick = this.pick(['06', '07']) + self.string({ pool: '0123456789', length: 8});\n phone = options.formatted ? numPick.match(/../g).join(' ') : numPick;\n }\n break;\n case 'uk':\n if (!options.mobile) {\n numPick = this.pick([\n //valid area codes of major cities/counties followed by random numbers in required format.\n\n { area: '01' + this.character({ pool: '234569' }) + '1 ', sections: [3,4] },\n { area: '020 ' + this.character({ pool: '378' }), sections: [3,4] },\n { area: '023 ' + this.character({ pool: '89' }), sections: [3,4] },\n { area: '024 7', sections: [3,4] },\n { area: '028 ' + this.pick(['25','28','37','71','82','90','92','95']), sections: [2,4] },\n { area: '012' + this.pick(['04','08','54','76','97','98']) + ' ', sections: [6] },\n { area: '013' + this.pick(['63','64','84','86']) + ' ', sections: [6] },\n { area: '014' + this.pick(['04','20','60','61','80','88']) + ' ', sections: [6] },\n { area: '015' + this.pick(['24','27','62','66']) + ' ', sections: [6] },\n { area: '016' + this.pick(['06','29','35','47','59','95']) + ' ', sections: [6] },\n { area: '017' + this.pick(['26','44','50','68']) + ' ', sections: [6] },\n { area: '018' + this.pick(['27','37','84','97']) + ' ', sections: [6] },\n { area: '019' + this.pick(['00','05','35','46','49','63','95']) + ' ', sections: [6] }\n ]);\n phone = options.formatted ? ukNum(numPick) : ukNum(numPick).replace(' ', '', 'g');\n } else {\n numPick = this.pick([\n { area: '07' + this.pick(['4','5','7','8','9']), sections: [2,6] },\n { area: '07624 ', sections: [6] }\n ]);\n phone = options.formatted ? ukNum(numPick) : ukNum(numPick).replace(' ', '');\n }\n break;\n case 'za':\n if (!options.mobile) {\n numPick = this.pick([\n '01' + this.pick(['0', '1', '2', '3', '4', '5', '6', '7', '8']) + self.string({ pool: '0123456789', length: 7}),\n '02' + this.pick(['1', '2', '3', '4', '7', '8']) + self.string({ pool: '0123456789', length: 7}),\n '03' + this.pick(['1', '2', '3', '5', '6', '9']) + self.string({ pool: '0123456789', length: 7}),\n '04' + this.pick(['1', '2', '3', '4', '5','6','7', '8','9']) + self.string({ pool: '0123456789', length: 7}),\n '05' + this.pick(['1', '3', '4', '6', '7', '8']) + self.string({ pool: '0123456789', length: 7}),\n ]);\n phone = options.formatted || numPick;\n } else {\n numPick = this.pick([\n '060' + this.pick(['3','4','5','6','7','8','9']) + self.string({ pool: '0123456789', length: 6}),\n '061' + this.pick(['0','1','2','3','4','5','8']) + self.string({ pool: '0123456789', length: 6}),\n '06' + self.string({ pool: '0123456789', length: 7}),\n '071' + this.pick(['0','1','2','3','4','5','6','7','8','9']) + self.string({ pool: '0123456789', length: 6}),\n '07' + this.pick(['2','3','4','6','7','8','9']) + self.string({ pool: '0123456789', length: 7}),\n '08' + this.pick(['0','1','2','3','4','5']) + self.string({ pool: '0123456789', length: 7}),\n ]);\n phone = options.formatted || numPick;\n }\n break;\n case 'us':\n var areacode = this.areacode(options).toString();\n var exchange = this.natural({ min: 2, max: 9 }).toString() +\n this.natural({ min: 0, max: 9 }).toString() +\n this.natural({ min: 0, max: 9 }).toString();\n var subscriber = this.natural({ min: 1000, max: 9999 }).toString(); // this could be random [0-9]{4}\n phone = options.formatted ? areacode + ' ' + exchange + '-' + subscriber : areacode + exchange + subscriber;\n break;\n case 'br':\n var areaCode = this.pick([\"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"21\", \"22\", \"24\", \"27\", \"28\", \"31\", \"32\", \"33\", \"34\", \"35\", \"37\", \"38\", \"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"51\", \"53\", \"54\", \"55\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\", \"71\", \"73\", \"74\", \"75\", \"77\", \"79\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"89\", \"91\", \"92\", \"93\", \"94\", \"95\", \"96\", \"97\", \"98\", \"99\"]);\n var prefix;\n if (options.mobile) {\n // Brasilian official reference (mobile): http://www.anatel.gov.br/setorregulado/plano-de-numeracao-brasileiro?id=330\n prefix = '9' + self.string({ pool: '0123456789', length: 4});\n } else {\n // Brasilian official reference: http://www.anatel.gov.br/setorregulado/plano-de-numeracao-brasileiro?id=331\n prefix = this.natural({ min: 2000, max: 5999 }).toString();\n }\n var mcdu = self.string({ pool: '0123456789', length: 4});\n phone = options.formatted ? '(' + areaCode + ') ' + prefix + '-' + mcdu : areaCode + prefix + mcdu;\n break;\n }\n return phone;\n };\n\n Chance.prototype.postal = function () {\n // Postal District\n var pd = this.character({pool: \"XVTSRPNKLMHJGECBA\"});\n // Forward Sortation Area (FSA)\n var fsa = pd + this.natural({max: 9}) + this.character({alpha: true, casing: \"upper\"});\n // Local Delivery Unut (LDU)\n var ldu = this.natural({max: 9}) + this.character({alpha: true, casing: \"upper\"}) + this.natural({max: 9});\n\n return fsa + \" \" + ldu;\n };\n\n Chance.prototype.postcode = function () {\n // Area\n var area = this.pick(this.get(\"postcodeAreas\")).code;\n // District\n var district = this.natural({max: 9});\n // Sub-District\n var subDistrict = this.bool() ? this.character({alpha: true, casing: \"upper\"}) : \"\";\n // Outward Code\n var outward = area + district + subDistrict;\n // Sector\n var sector = this.natural({max: 9});\n // Unit\n var unit = this.character({alpha: true, casing: \"upper\"}) + this.character({alpha: true, casing: \"upper\"});\n // Inward Code\n var inward = sector + unit;\n\n return outward + \" \" + inward;\n };\n\n Chance.prototype.counties = function (options) {\n options = initOptions(options, { country: 'uk' });\n return this.get(\"counties\")[options.country.toLowerCase()];\n };\n\n Chance.prototype.county = function (options) {\n return this.pick(this.counties(options)).name;\n };\n\n Chance.prototype.provinces = function (options) {\n options = initOptions(options, { country: 'ca' });\n return this.get(\"provinces\")[options.country.toLowerCase()];\n };\n\n Chance.prototype.province = function (options) {\n return (options && options.full) ?\n this.pick(this.provinces(options)).name :\n this.pick(this.provinces(options)).abbreviation;\n };\n\n Chance.prototype.state = function (options) {\n return (options && options.full) ?\n this.pick(this.states(options)).name :\n this.pick(this.states(options)).abbreviation;\n };\n\n Chance.prototype.states = function (options) {\n options = initOptions(options, { country: 'us', us_states_and_dc: true } );\n\n var states;\n\n switch (options.country.toLowerCase()) {\n case 'us':\n var us_states_and_dc = this.get(\"us_states_and_dc\"),\n territories = this.get(\"territories\"),\n armed_forces = this.get(\"armed_forces\");\n\n states = [];\n\n if (options.us_states_and_dc) {\n states = states.concat(us_states_and_dc);\n }\n if (options.territories) {\n states = states.concat(territories);\n }\n if (options.armed_forces) {\n states = states.concat(armed_forces);\n }\n break;\n case 'it':\n case 'mx':\n states = this.get(\"country_regions\")[options.country.toLowerCase()];\n break;\n case 'uk':\n states = this.get(\"counties\")[options.country.toLowerCase()];\n break;\n }\n\n return states;\n };\n\n Chance.prototype.street = function (options) {\n options = initOptions(options, { country: 'us', syllables: 2 });\n var street;\n\n switch (options.country.toLowerCase()) {\n case 'us':\n street = this.word({ syllables: options.syllables });\n street = this.capitalize(street);\n street += ' ';\n street += options.short_suffix ?\n this.street_suffix(options).abbreviation :\n this.street_suffix(options).name;\n break;\n case 'it':\n street = this.word({ syllables: options.syllables });\n street = this.capitalize(street);\n street = (options.short_suffix ?\n this.street_suffix(options).abbreviation :\n this.street_suffix(options).name) + \" \" + street;\n break;\n }\n return street;\n };\n\n Chance.prototype.street_suffix = function (options) {\n options = initOptions(options, { country: 'us' });\n return this.pick(this.street_suffixes(options));\n };\n\n Chance.prototype.street_suffixes = function (options) {\n options = initOptions(options, { country: 'us' });\n // These are the most common suffixes.\n return this.get(\"street_suffixes\")[options.country.toLowerCase()];\n };\n\n // Note: only returning US zip codes, internationalization will be a whole\n // other beast to tackle at some point.\n Chance.prototype.zip = function (options) {\n var zip = this.n(this.natural, 5, {max: 9});\n\n if (options && options.plusfour === true) {\n zip.push('-');\n zip = zip.concat(this.n(this.natural, 4, {max: 9}));\n }\n\n return zip.join(\"\");\n };\n\n // -- End Location --\n\n // -- Time\n\n Chance.prototype.ampm = function () {\n return this.bool() ? 'am' : 'pm';\n };\n\n Chance.prototype.date = function (options) {\n var date_string, date;\n\n // If interval is specified we ignore preset\n if(options && (options.min || options.max)) {\n options = initOptions(options, {\n american: true,\n string: false\n });\n var min = typeof options.min !== \"undefined\" ? options.min.getTime() : 1;\n // 100,000,000 days measured relative to midnight at the beginning of 01 January, 1970 UTC. http://es5.github.io/#x15.9.1.1\n var max = typeof options.max !== \"undefined\" ? options.max.getTime() : 8640000000000000;\n\n date = new Date(this.integer({min: min, max: max}));\n } else {\n var m = this.month({raw: true});\n var daysInMonth = m.days;\n\n if(options && options.month) {\n // Mod 12 to allow months outside range of 0-11 (not encouraged, but also not prevented).\n daysInMonth = this.get('months')[((options.month % 12) + 12) % 12].days;\n }\n\n options = initOptions(options, {\n year: parseInt(this.year(), 10),\n // Necessary to subtract 1 because Date() 0-indexes month but not day or year\n // for some reason.\n month: m.numeric - 1,\n day: this.natural({min: 1, max: daysInMonth}),\n hour: this.hour({twentyfour: true}),\n minute: this.minute(),\n second: this.second(),\n millisecond: this.millisecond(),\n american: true,\n string: false\n });\n\n date = new Date(options.year, options.month, options.day, options.hour, options.minute, options.second, options.millisecond);\n }\n\n if (options.american) {\n // Adding 1 to the month is necessary because Date() 0-indexes\n // months but not day for some odd reason.\n date_string = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();\n } else {\n date_string = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();\n }\n\n return options.string ? date_string : date;\n };\n\n Chance.prototype.hammertime = function (options) {\n return this.date(options).getTime();\n };\n\n Chance.prototype.hour = function (options) {\n options = initOptions(options, {\n min: options && options.twentyfour ? 0 : 1,\n max: options && options.twentyfour ? 23 : 12\n });\n\n testRange(options.min < 0, \"Chance: Min cannot be less than 0.\");\n testRange(options.twentyfour && options.max > 23, \"Chance: Max cannot be greater than 23 for twentyfour option.\");\n testRange(!options.twentyfour && options.max > 12, \"Chance: Max cannot be greater than 12.\");\n testRange(options.min > options.max, \"Chance: Min cannot be greater than Max.\");\n\n return this.natural({min: options.min, max: options.max});\n };\n\n Chance.prototype.millisecond = function () {\n return this.natural({max: 999});\n };\n\n Chance.prototype.minute = Chance.prototype.second = function (options) {\n options = initOptions(options, {min: 0, max: 59});\n\n testRange(options.min < 0, \"Chance: Min cannot be less than 0.\");\n testRange(options.max > 59, \"Chance: Max cannot be greater than 59.\");\n testRange(options.min > options.max, \"Chance: Min cannot be greater than Max.\");\n\n return this.natural({min: options.min, max: options.max});\n };\n\n Chance.prototype.month = function (options) {\n options = initOptions(options, {min: 1, max: 12});\n\n testRange(options.min < 1, \"Chance: Min cannot be less than 1.\");\n testRange(options.max > 12, \"Chance: Max cannot be greater than 12.\");\n testRange(options.min > options.max, \"Chance: Min cannot be greater than Max.\");\n\n var month = this.pick(this.months().slice(options.min - 1, options.max));\n return options.raw ? month : month.name;\n };\n\n Chance.prototype.months = function () {\n return this.get(\"months\");\n };\n\n Chance.prototype.second = function () {\n return this.natural({max: 59});\n };\n\n Chance.prototype.timestamp = function () {\n return this.natural({min: 1, max: parseInt(new Date().getTime() / 1000, 10)});\n };\n\n Chance.prototype.weekday = function (options) {\n options = initOptions(options, {weekday_only: false});\n var weekdays = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\"];\n if (!options.weekday_only) {\n weekdays.push(\"Saturday\");\n weekdays.push(\"Sunday\");\n }\n return this.pickone(weekdays);\n };\n\n Chance.prototype.year = function (options) {\n // Default to current year as min if none specified\n options = initOptions(options, {min: new Date().getFullYear()});\n\n // Default to one century after current year as max if none specified\n options.max = (typeof options.max !== \"undefined\") ? options.max : options.min + 100;\n\n return this.natural(options).toString();\n };\n\n // -- End Time\n\n // -- Finance --\n\n Chance.prototype.cc = function (options) {\n options = initOptions(options);\n\n var type, number, to_generate;\n\n type = (options.type) ?\n this.cc_type({ name: options.type, raw: true }) :\n this.cc_type({ raw: true });\n\n number = type.prefix.split(\"\");\n to_generate = type.length - type.prefix.length - 1;\n\n // Generates n - 1 digits\n number = number.concat(this.n(this.integer, to_generate, {min: 0, max: 9}));\n\n // Generates the last digit according to Luhn algorithm\n number.push(this.luhn_calculate(number.join(\"\")));\n\n return number.join(\"\");\n };\n\n Chance.prototype.cc_types = function () {\n // http://en.wikipedia.org/wiki/Bank_card_number#Issuer_identification_number_.28IIN.29\n return this.get(\"cc_types\");\n };\n\n Chance.prototype.cc_type = function (options) {\n options = initOptions(options);\n var types = this.cc_types(),\n type = null;\n\n if (options.name) {\n for (var i = 0; i < types.length; i++) {\n // Accept either name or short_name to specify card type\n if (types[i].name === options.name || types[i].short_name === options.name) {\n type = types[i];\n break;\n }\n }\n if (type === null) {\n throw new RangeError(\"Chance: Credit card type '\" + options.name + \"' is not supported\");\n }\n } else {\n type = this.pick(types);\n }\n\n return options.raw ? type : type.name;\n };\n\n // return all world currency by ISO 4217\n Chance.prototype.currency_types = function () {\n return this.get(\"currency_types\");\n };\n\n // return random world currency by ISO 4217\n Chance.prototype.currency = function () {\n return this.pick(this.currency_types());\n };\n\n // return all timezones available\n Chance.prototype.timezones = function () {\n return this.get(\"timezones\");\n };\n\n // return random timezone\n Chance.prototype.timezone = function () {\n return this.pick(this.timezones());\n };\n\n //Return random correct currency exchange pair (e.g. EUR/USD) or array of currency code\n Chance.prototype.currency_pair = function (returnAsString) {\n var currencies = this.unique(this.currency, 2, {\n comparator: function(arr, val) {\n\n return arr.reduce(function(acc, item) {\n // If a match has been found, short circuit check and just return\n return acc || (item.code === val.code);\n }, false);\n }\n });\n\n if (returnAsString) {\n return currencies[0].code + '/' + currencies[1].code;\n } else {\n return currencies;\n }\n };\n\n Chance.prototype.dollar = function (options) {\n // By default, a somewhat more sane max for dollar than all available numbers\n options = initOptions(options, {max : 10000, min : 0});\n\n var dollar = this.floating({min: options.min, max: options.max, fixed: 2}).toString(),\n cents = dollar.split('.')[1];\n\n if (cents === undefined) {\n dollar += '.00';\n } else if (cents.length < 2) {\n dollar = dollar + '0';\n }\n\n if (dollar < 0) {\n return '-$' + dollar.replace('-', '');\n } else {\n return '$' + dollar;\n }\n };\n\n Chance.prototype.euro = function (options) {\n return Number(this.dollar(options).replace(\"$\", \"\")).toLocaleString() + \"€\";\n };\n\n Chance.prototype.exp = function (options) {\n options = initOptions(options);\n var exp = {};\n\n exp.year = this.exp_year();\n\n // If the year is this year, need to ensure month is greater than the\n // current month or this expiration will not be valid\n if (exp.year === (new Date().getFullYear()).toString()) {\n exp.month = this.exp_month({future: true});\n } else {\n exp.month = this.exp_month();\n }\n\n return options.raw ? exp : exp.month + '/' + exp.year;\n };\n\n Chance.prototype.exp_month = function (options) {\n options = initOptions(options);\n var month, month_int,\n // Date object months are 0 indexed\n curMonth = new Date().getMonth() + 1;\n\n if (options.future && (curMonth !== 12)) {\n do {\n month = this.month({raw: true}).numeric;\n month_int = parseInt(month, 10);\n } while (month_int <= curMonth);\n } else {\n month = this.month({raw: true}).numeric;\n }\n\n return month;\n };\n\n Chance.prototype.exp_year = function () {\n var curMonth = new Date().getMonth() + 1,\n curYear = new Date().getFullYear();\n\n return this.year({min: ((curMonth === 12) ? (curYear + 1) : curYear), max: (curYear + 10)});\n };\n\n Chance.prototype.vat = function (options) {\n options = initOptions(options, { country: 'it' });\n switch (options.country.toLowerCase()) {\n case 'it':\n return this.it_vat();\n }\n };\n\n /**\n * Generate a string matching IBAN pattern (https://en.wikipedia.org/wiki/International_Bank_Account_Number).\n * No country-specific formats support (yet)\n */\n Chance.prototype.iban = function () {\n var alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n var alphanum = alpha + '0123456789';\n var iban =\n this.string({ length: 2, pool: alpha }) +\n this.pad(this.integer({ min: 0, max: 99 }), 2) +\n this.string({ length: 4, pool: alphanum }) +\n this.pad(this.natural(), this.natural({ min: 6, max: 26 }));\n return iban;\n };\n\n // -- End Finance\n\n // -- Regional\n\n Chance.prototype.it_vat = function () {\n var it_vat = this.natural({min: 1, max: 1800000});\n\n it_vat = this.pad(it_vat, 7) + this.pad(this.pick(this.provinces({ country: 'it' })).code, 3);\n return it_vat + this.luhn_calculate(it_vat);\n };\n\n /*\n * this generator is written following the official algorithm\n * all data can be passed explicitely or randomized by calling chance.cf() without options\n * the code does not check that the input data is valid (it goes beyond the scope of the generator)\n *\n * @param [Object] options = { first: first name,\n * last: last name,\n * gender: female|male,\n birthday: JavaScript date object,\n city: string(4), 1 letter + 3 numbers\n }\n * @return [string] codice fiscale\n *\n */\n Chance.prototype.cf = function (options) {\n options = options || {};\n var gender = !!options.gender ? options.gender : this.gender(),\n first = !!options.first ? options.first : this.first( { gender: gender, nationality: 'it'} ),\n last = !!options.last ? options.last : this.last( { nationality: 'it'} ),\n birthday = !!options.birthday ? options.birthday : this.birthday(),\n city = !!options.city ? options.city : this.pickone(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'M', 'Z']) + this.pad(this.natural({max:999}), 3),\n cf = [],\n name_generator = function(name, isLast) {\n var temp,\n return_value = [];\n\n if (name.length < 3) {\n return_value = name.split(\"\").concat(\"XXX\".split(\"\")).splice(0,3);\n }\n else {\n temp = name.toUpperCase().split('').map(function(c){\n return (\"BCDFGHJKLMNPRSTVWZ\".indexOf(c) !== -1) ? c : undefined;\n }).join('');\n if (temp.length > 3) {\n if (isLast) {\n temp = temp.substr(0,3);\n } else {\n temp = temp[0] + temp.substr(2,2);\n }\n }\n if (temp.length < 3) {\n return_value = temp;\n temp = name.toUpperCase().split('').map(function(c){\n return (\"AEIOU\".indexOf(c) !== -1) ? c : undefined;\n }).join('').substr(0, 3 - return_value.length);\n }\n return_value = return_value + temp;\n }\n\n return return_value;\n },\n date_generator = function(birthday, gender, that) {\n var lettermonths = ['A', 'B', 'C', 'D', 'E', 'H', 'L', 'M', 'P', 'R', 'S', 'T'];\n\n return birthday.getFullYear().toString().substr(2) +\n lettermonths[birthday.getMonth()] +\n that.pad(birthday.getDate() + ((gender.toLowerCase() === \"female\") ? 40 : 0), 2);\n },\n checkdigit_generator = function(cf) {\n var range1 = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n range2 = \"ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n evens = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n odds = \"BAKPLCQDREVOSFTGUHMINJWZYX\",\n digit = 0;\n\n\n for(var i = 0; i < 15; i++) {\n if (i % 2 !== 0) {\n digit += evens.indexOf(range2[range1.indexOf(cf[i])]);\n }\n else {\n digit += odds.indexOf(range2[range1.indexOf(cf[i])]);\n }\n }\n return evens[digit % 26];\n };\n\n cf = cf.concat(name_generator(last, true), name_generator(first), date_generator(birthday, gender, this), city.toUpperCase().split(\"\")).join(\"\");\n cf += checkdigit_generator(cf.toUpperCase(), this);\n\n return cf.toUpperCase();\n };\n\n Chance.prototype.pl_pesel = function () {\n var number = this.natural({min: 1, max: 9999999999});\n var arr = this.pad(number, 10).split('');\n for (var i = 0; i < arr.length; i++) {\n arr[i] = parseInt(arr[i]);\n }\n\n var controlNumber = (1 * arr[0] + 3 * arr[1] + 7 * arr[2] + 9 * arr[3] + 1 * arr[4] + 3 * arr[5] + 7 * arr[6] + 9 * arr[7] + 1 * arr[8] + 3 * arr[9]) % 10;\n if(controlNumber !== 0) {\n controlNumber = 10 - controlNumber;\n }\n\n return arr.join('') + controlNumber;\n };\n\n Chance.prototype.pl_nip = function () {\n var number = this.natural({min: 1, max: 999999999});\n var arr = this.pad(number, 9).split('');\n for (var i = 0; i < arr.length; i++) {\n arr[i] = parseInt(arr[i]);\n }\n\n var controlNumber = (6 * arr[0] + 5 * arr[1] + 7 * arr[2] + 2 * arr[3] + 3 * arr[4] + 4 * arr[5] + 5 * arr[6] + 6 * arr[7] + 7 * arr[8]) % 11;\n if(controlNumber === 10) {\n return this.pl_nip();\n }\n\n return arr.join('') + controlNumber;\n };\n\n Chance.prototype.pl_regon = function () {\n var number = this.natural({min: 1, max: 99999999});\n var arr = this.pad(number, 8).split('');\n for (var i = 0; i < arr.length; i++) {\n arr[i] = parseInt(arr[i]);\n }\n\n var controlNumber = (8 * arr[0] + 9 * arr[1] + 2 * arr[2] + 3 * arr[3] + 4 * arr[4] + 5 * arr[5] + 6 * arr[6] + 7 * arr[7]) % 11;\n if(controlNumber === 10) {\n controlNumber = 0;\n }\n\n return arr.join('') + controlNumber;\n };\n\n // -- End Regional\n\n // -- Music --\n\n Chance.prototype.note = function(options) {\n // choices for 'notes' option:\n // flatKey - chromatic scale with flat notes (default)\n // sharpKey - chromatic scale with sharp notes\n // flats - just flat notes\n // sharps - just sharp notes\n // naturals - just natural notes\n // all - naturals, sharps and flats\n options = initOptions(options, { notes : 'flatKey'});\n var scales = {\n naturals: ['C', 'D', 'E', 'F', 'G', 'A', 'B'],\n flats: ['D♭', 'E♭', 'G♭', 'A♭', 'B♭'],\n sharps: ['C♯', 'D♯', 'F♯', 'G♯', 'A♯']\n };\n scales.all = scales.naturals.concat(scales.flats.concat(scales.sharps))\n scales.flatKey = scales.naturals.concat(scales.flats)\n scales.sharpKey = scales.naturals.concat(scales.sharps)\n return this.pickone(scales[options.notes]);\n }\n\n Chance.prototype.midi_note = function(options) {\n var min = 0;\n var max = 127;\n options = initOptions(options, { min : min, max : max });\n return this.integer({min: options.min, max: options.max});\n }\n\n Chance.prototype.chord_quality = function(options) {\n options = initOptions(options, { jazz: true });\n var chord_qualities = ['maj', 'min', 'aug', 'dim'];\n if (options.jazz){\n chord_qualities = [\n 'maj7',\n 'min7',\n '7',\n 'sus',\n 'dim',\n 'ø'\n ];\n }\n return this.pickone(chord_qualities);\n }\n\n Chance.prototype.chord = function (options) {\n options = initOptions(options);\n return this.note(options) + this.chord_quality(options);\n }\n\n Chance.prototype.tempo = function (options) {\n var min = 40;\n var max = 320;\n options = initOptions(options, {min: min, max: max});\n return this.integer({min: options.min, max: options.max});\n }\n\n // -- End Music\n\n // -- Miscellaneous --\n\n // Coin - Flip, flip, flipadelphia\n Chance.prototype.coin = function() {\n return this.bool() ? \"heads\" : \"tails\";\n }\n\n // Dice - For all the board game geeks out there, myself included ;)\n function diceFn (range) {\n return function () {\n return this.natural(range);\n };\n }\n Chance.prototype.d4 = diceFn({min: 1, max: 4});\n Chance.prototype.d6 = diceFn({min: 1, max: 6});\n Chance.prototype.d8 = diceFn({min: 1, max: 8});\n Chance.prototype.d10 = diceFn({min: 1, max: 10});\n Chance.prototype.d12 = diceFn({min: 1, max: 12});\n Chance.prototype.d20 = diceFn({min: 1, max: 20});\n Chance.prototype.d30 = diceFn({min: 1, max: 30});\n Chance.prototype.d100 = diceFn({min: 1, max: 100});\n\n Chance.prototype.rpg = function (thrown, options) {\n options = initOptions(options);\n if (!thrown) {\n throw new RangeError(\"Chance: A type of die roll must be included\");\n } else {\n var bits = thrown.toLowerCase().split(\"d\"),\n rolls = [];\n\n if (bits.length !== 2 || !parseInt(bits[0], 10) || !parseInt(bits[1], 10)) {\n throw new Error(\"Chance: Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die\");\n }\n for (var i = bits[0]; i > 0; i--) {\n rolls[i - 1] = this.natural({min: 1, max: bits[1]});\n }\n return (typeof options.sum !== 'undefined' && options.sum) ? rolls.reduce(function (p, c) { return p + c; }) : rolls;\n }\n };\n\n // Guid\n Chance.prototype.guid = function (options) {\n options = initOptions(options, { version: 5 });\n\n var guid_pool = \"abcdef1234567890\",\n variant_pool = \"ab89\",\n guid = this.string({ pool: guid_pool, length: 8 }) + '-' +\n this.string({ pool: guid_pool, length: 4 }) + '-' +\n // The Version\n options.version +\n this.string({ pool: guid_pool, length: 3 }) + '-' +\n // The Variant\n this.string({ pool: variant_pool, length: 1 }) +\n this.string({ pool: guid_pool, length: 3 }) + '-' +\n this.string({ pool: guid_pool, length: 12 });\n return guid;\n };\n\n // Hash\n Chance.prototype.hash = function (options) {\n options = initOptions(options, {length : 40, casing: 'lower'});\n var pool = options.casing === 'upper' ? HEX_POOL.toUpperCase() : HEX_POOL;\n return this.string({pool: pool, length: options.length});\n };\n\n Chance.prototype.luhn_check = function (num) {\n var str = num.toString();\n var checkDigit = +str.substring(str.length - 1);\n return checkDigit === this.luhn_calculate(+str.substring(0, str.length - 1));\n };\n\n Chance.prototype.luhn_calculate = function (num) {\n var digits = num.toString().split(\"\").reverse();\n var sum = 0;\n var digit;\n\n for (var i = 0, l = digits.length; l > i; ++i) {\n digit = +digits[i];\n if (i % 2 === 0) {\n digit *= 2;\n if (digit > 9) {\n digit -= 9;\n }\n }\n sum += digit;\n }\n return (sum * 9) % 10;\n };\n\n // MD5 Hash\n Chance.prototype.md5 = function(options) {\n var opts = { str: '', key: null, raw: false };\n\n if (!options) {\n opts.str = this.string();\n options = {};\n }\n else if (typeof options === 'string') {\n opts.str = options;\n options = {};\n }\n else if (typeof options !== 'object') {\n return null;\n }\n else if(options.constructor === 'Array') {\n return null;\n }\n\n opts = initOptions(options, opts);\n\n if(!opts.str){\n throw new Error('A parameter is required to return an md5 hash.');\n }\n\n return this.bimd5.md5(opts.str, opts.key, opts.raw);\n };\n\n /**\n * #Description:\n * =====================================================\n * Generate random file name with extension\n *\n * The argument provide extension type\n * -> raster\n * -> vector\n * -> 3d\n * -> document\n *\n * If nothing is provided the function return random file name with random\n * extension type of any kind\n *\n * The user can validate the file name length range\n * If nothing provided the generated file name is random\n *\n * #Extension Pool :\n * * Currently the supported extensions are\n * -> some of the most popular raster image extensions\n * -> some of the most popular vector image extensions\n * -> some of the most popular 3d image extensions\n * -> some of the most popular document extensions\n *\n * #Examples :\n * =====================================================\n *\n * Return random file name with random extension. The file extension\n * is provided by a predefined collection of extensions. More about the extension\n * pool can be found in #Extension Pool section\n *\n * chance.file()\n * => dsfsdhjf.xml\n *\n * In order to generate a file name with specific length, specify the\n * length property and integer value. The extension is going to be random\n *\n * chance.file({length : 10})\n * => asrtineqos.pdf\n *\n * In order to generate file with extension from some of the predefined groups\n * of the extension pool just specify the extension pool category in fileType property\n *\n * chance.file({fileType : 'raster'})\n * => dshgssds.psd\n *\n * You can provide specific extension for your files\n * chance.file({extension : 'html'})\n * => djfsd.html\n *\n * Or you could pass custom collection of extensions by array or by object\n * chance.file({extensions : [...]})\n * => dhgsdsd.psd\n *\n * chance.file({extensions : { key : [...], key : [...]}})\n * => djsfksdjsd.xml\n *\n * @param [collection] options\n * @return [string]\n *\n */\n Chance.prototype.file = function(options) {\n\n var fileOptions = options || {};\n var poolCollectionKey = \"fileExtension\";\n var typeRange = Object.keys(this.get(\"fileExtension\"));//['raster', 'vector', '3d', 'document'];\n var fileName;\n var fileExtension;\n\n // Generate random file name\n fileName = this.word({length : fileOptions.length});\n\n // Generate file by specific extension provided by the user\n if(fileOptions.extension) {\n\n fileExtension = fileOptions.extension;\n return (fileName + '.' + fileExtension);\n }\n\n // Generate file by specific extension collection\n if(fileOptions.extensions) {\n\n if(Array.isArray(fileOptions.extensions)) {\n\n fileExtension = this.pickone(fileOptions.extensions);\n return (fileName + '.' + fileExtension);\n }\n else if(fileOptions.extensions.constructor === Object) {\n\n var extensionObjectCollection = fileOptions.extensions;\n var keys = Object.keys(extensionObjectCollection);\n\n fileExtension = this.pickone(extensionObjectCollection[this.pickone(keys)]);\n return (fileName + '.' + fileExtension);\n }\n\n throw new Error(\"Chance: Extensions must be an Array or Object\");\n }\n\n // Generate file extension based on specific file type\n if(fileOptions.fileType) {\n\n var fileType = fileOptions.fileType;\n if(typeRange.indexOf(fileType) !== -1) {\n\n fileExtension = this.pickone(this.get(poolCollectionKey)[fileType]);\n return (fileName + '.' + fileExtension);\n }\n\n throw new RangeError(\"Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'\");\n }\n\n // Generate random file name if no extension options are passed\n fileExtension = this.pickone(this.get(poolCollectionKey)[this.pickone(typeRange)]);\n return (fileName + '.' + fileExtension);\n };\n\n var data = {\n\n firstNames: {\n \"male\": {\n \"en\": [\"James\", \"John\", \"Robert\", \"Michael\", \"William\", \"David\", \"Richard\", \"Joseph\", \"Charles\", \"Thomas\", \"Christopher\", \"Daniel\", \"Matthew\", \"George\", \"Donald\", \"Anthony\", \"Paul\", \"Mark\", \"Edward\", \"Steven\", \"Kenneth\", \"Andrew\", \"Brian\", \"Joshua\", \"Kevin\", \"Ronald\", \"Timothy\", \"Jason\", \"Jeffrey\", \"Frank\", \"Gary\", \"Ryan\", \"Nicholas\", \"Eric\", \"Stephen\", \"Jacob\", \"Larry\", \"Jonathan\", \"Scott\", \"Raymond\", \"Justin\", \"Brandon\", \"Gregory\", \"Samuel\", \"Benjamin\", \"Patrick\", \"Jack\", \"Henry\", \"Walter\", \"Dennis\", \"Jerry\", \"Alexander\", \"Peter\", \"Tyler\", \"Douglas\", \"Harold\", \"Aaron\", \"Jose\", \"Adam\", \"Arthur\", \"Zachary\", \"Carl\", \"Nathan\", \"Albert\", \"Kyle\", \"Lawrence\", \"Joe\", \"Willie\", \"Gerald\", \"Roger\", \"Keith\", \"Jeremy\", \"Terry\", \"Harry\", \"Ralph\", \"Sean\", \"Jesse\", \"Roy\", \"Louis\", \"Billy\", \"Austin\", \"Bruce\", \"Eugene\", \"Christian\", \"Bryan\", \"Wayne\", \"Russell\", \"Howard\", \"Fred\", \"Ethan\", \"Jordan\", \"Philip\", \"Alan\", \"Juan\", \"Randy\", \"Vincent\", \"Bobby\", \"Dylan\", \"Johnny\", \"Phillip\", \"Victor\", \"Clarence\", \"Ernest\", \"Martin\", \"Craig\", \"Stanley\", \"Shawn\", \"Travis\", \"Bradley\", \"Leonard\", \"Earl\", \"Gabriel\", \"Jimmy\", \"Francis\", \"Todd\", \"Noah\", \"Danny\", \"Dale\", \"Cody\", \"Carlos\", \"Allen\", \"Frederick\", \"Logan\", \"Curtis\", \"Alex\", \"Joel\", \"Luis\", \"Norman\", \"Marvin\", \"Glenn\", \"Tony\", \"Nathaniel\", \"Rodney\", \"Melvin\", \"Alfred\", \"Steve\", \"Cameron\", \"Chad\", \"Edwin\", \"Caleb\", \"Evan\", \"Antonio\", \"Lee\", \"Herbert\", \"Jeffery\", \"Isaac\", \"Derek\", \"Ricky\", \"Marcus\", \"Theodore\", \"Elijah\", \"Luke\", \"Jesus\", \"Eddie\", \"Troy\", \"Mike\", \"Dustin\", \"Ray\", \"Adrian\", \"Bernard\", \"Leroy\", \"Angel\", \"Randall\", \"Wesley\", \"Ian\", \"Jared\", \"Mason\", \"Hunter\", \"Calvin\", \"Oscar\", \"Clifford\", \"Jay\", \"Shane\", \"Ronnie\", \"Barry\", \"Lucas\", \"Corey\", \"Manuel\", \"Leo\", \"Tommy\", \"Warren\", \"Jackson\", \"Isaiah\", \"Connor\", \"Don\", \"Dean\", \"Jon\", \"Julian\", \"Miguel\", \"Bill\", \"Lloyd\", \"Charlie\", \"Mitchell\", \"Leon\", \"Jerome\", \"Darrell\", \"Jeremiah\", \"Alvin\", \"Brett\", \"Seth\", \"Floyd\", \"Jim\", \"Blake\", \"Micheal\", \"Gordon\", \"Trevor\", \"Lewis\", \"Erik\", \"Edgar\", \"Vernon\", \"Devin\", \"Gavin\", \"Jayden\", \"Chris\", \"Clyde\", \"Tom\", \"Derrick\", \"Mario\", \"Brent\", \"Marc\", \"Herman\", \"Chase\", \"Dominic\", \"Ricardo\", \"Franklin\", \"Maurice\", \"Max\", \"Aiden\", \"Owen\", \"Lester\", \"Gilbert\", \"Elmer\", \"Gene\", \"Francisco\", \"Glen\", \"Cory\", \"Garrett\", \"Clayton\", \"Sam\", \"Jorge\", \"Chester\", \"Alejandro\", \"Jeff\", \"Harvey\", \"Milton\", \"Cole\", \"Ivan\", \"Andre\", \"Duane\", \"Landon\"],\n // Data taken from http://www.dati.gov.it/dataset/comune-di-firenze_0163\n \"it\": [\"Adolfo\", \"Alberto\", \"Aldo\", \"Alessandro\", \"Alessio\", \"Alfredo\", \"Alvaro\", \"Andrea\", \"Angelo\", \"Angiolo\", \"Antonino\", \"Antonio\", \"Attilio\", \"Benito\", \"Bernardo\", \"Bruno\", \"Carlo\", \"Cesare\", \"Christian\", \"Claudio\", \"Corrado\", \"Cosimo\", \"Cristian\", \"Cristiano\", \"Daniele\", \"Dario\", \"David\", \"Davide\", \"Diego\", \"Dino\", \"Domenico\", \"Duccio\", \"Edoardo\", \"Elia\", \"Elio\", \"Emanuele\", \"Emiliano\", \"Emilio\", \"Enrico\", \"Enzo\", \"Ettore\", \"Fabio\", \"Fabrizio\", \"Federico\", \"Ferdinando\", \"Fernando\", \"Filippo\", \"Francesco\", \"Franco\", \"Gabriele\", \"Giacomo\", \"Giampaolo\", \"Giampiero\", \"Giancarlo\", \"Gianfranco\", \"Gianluca\", \"Gianmarco\", \"Gianni\", \"Gino\", \"Giorgio\", \"Giovanni\", \"Giuliano\", \"Giulio\", \"Giuseppe\", \"Graziano\", \"Gregorio\", \"Guido\", \"Iacopo\", \"Jacopo\", \"Lapo\", \"Leonardo\", \"Lorenzo\", \"Luca\", \"Luciano\", \"Luigi\", \"Manuel\", \"Marcello\", \"Marco\", \"Marino\", \"Mario\", \"Massimiliano\", \"Massimo\", \"Matteo\", \"Mattia\", \"Maurizio\", \"Mauro\", \"Michele\", \"Mirko\", \"Mohamed\", \"Nello\", \"Neri\", \"Niccolò\", \"Nicola\", \"Osvaldo\", \"Otello\", \"Paolo\", \"Pier Luigi\", \"Piero\", \"Pietro\", \"Raffaele\", \"Remo\", \"Renato\", \"Renzo\", \"Riccardo\", \"Roberto\", \"Rolando\", \"Romano\", \"Salvatore\", \"Samuele\", \"Sandro\", \"Sergio\", \"Silvano\", \"Simone\", \"Stefano\", \"Thomas\", \"Tommaso\", \"Ubaldo\", \"Ugo\", \"Umberto\", \"Valerio\", \"Valter\", \"Vasco\", \"Vincenzo\", \"Vittorio\"],\n // Data taken from http://www.svbkindernamen.nl/int/nl/kindernamen/index.html\n \"nl\": [\"Aaron\",\"Abel\",\"Adam\",\"Adriaan\",\"Albert\",\"Alexander\",\"Ali\",\"Arjen\",\"Arno\",\"Bart\",\"Bas\",\"Bastiaan\",\"Benjamin\",\"Bob\", \"Boris\",\"Bram\",\"Brent\",\"Cas\",\"Casper\",\"Chris\",\"Christiaan\",\"Cornelis\",\"Daan\",\"Daley\",\"Damian\",\"Dani\",\"Daniel\",\"Daniël\",\"David\",\"Dean\",\"Dirk\",\"Dylan\",\"Egbert\",\"Elijah\",\"Erik\",\"Erwin\",\"Evert\",\"Ezra\",\"Fabian\",\"Fedde\",\"Finn\",\"Florian\",\"Floris\",\"Frank\",\"Frans\",\"Frederik\",\"Freek\",\"Geert\",\"Gerard\",\"Gerben\",\"Gerrit\",\"Gijs\",\"Guus\",\"Hans\",\"Hendrik\",\"Henk\",\"Herman\",\"Hidde\",\"Hugo\",\"Jaap\",\"Jan Jaap\",\"Jan-Willem\",\"Jack\",\"Jacob\",\"Jan\",\"Jason\",\"Jasper\",\"Jayden\",\"Jelle\",\"Jelte\",\"Jens\",\"Jeroen\",\"Jesse\",\"Jim\",\"Job\",\"Joep\",\"Johannes\",\"John\",\"Jonathan\",\"Joris\",\"Joshua\",\"Joël\",\"Julian\",\"Kees\",\"Kevin\",\"Koen\",\"Lars\",\"Laurens\",\"Leendert\",\"Lennard\",\"Lodewijk\",\"Luc\",\"Luca\",\"Lucas\",\"Lukas\",\"Luuk\",\"Maarten\",\"Marcus\",\"Martijn\",\"Martin\",\"Matthijs\",\"Maurits\",\"Max\",\"Mees\",\"Melle\",\"Mick\",\"Mika\",\"Milan\",\"Mohamed\",\"Mohammed\",\"Morris\",\"Muhammed\",\"Nathan\",\"Nick\",\"Nico\",\"Niek\",\"Niels\",\"Noah\",\"Noud\",\"Olivier\",\"Oscar\",\"Owen\",\"Paul\",\"Pepijn\",\"Peter\",\"Pieter\",\"Pim\",\"Quinten\",\"Reinier\",\"Rens\",\"Robin\",\"Ruben\",\"Sam\",\"Samuel\",\"Sander\",\"Sebastiaan\",\"Sem\",\"Sep\",\"Sepp\",\"Siem\",\"Simon\",\"Stan\",\"Stef\",\"Steven\",\"Stijn\",\"Sven\",\"Teun\",\"Thijmen\",\"Thijs\",\"Thomas\",\"Tijn\",\"Tim\",\"Timo\",\"Tobias\",\"Tom\",\"Victor\",\"Vince\",\"Willem\",\"Wim\",\"Wouter\",\"Yusuf\"],\n // Data taken from https://fr.wikipedia.org/wiki/Liste_de_pr%C3%A9noms_fran%C3%A7ais_et_de_la_francophonie\n \"fr\": [\"Aaron\",\"Abdon\",\"Abel\",\"Abélard\",\"Abelin\",\"Abondance\",\"Abraham\",\"Absalon\",\"Acace\",\"Achaire\",\"Achille\",\"Adalard\",\"Adalbald\",\"Adalbéron\",\"Adalbert\",\"Adalric\",\"Adam\",\"Adegrin\",\"Adel\",\"Adelin\",\"Andelin\",\"Adelphe\",\"Adam\",\"Adéodat\",\"Adhémar\",\"Adjutor\",\"Adolphe\",\"Adonis\",\"Adon\",\"Adrien\",\"Agapet\",\"Agathange\",\"Agathon\",\"Agilbert\",\"Agénor\",\"Agnan\",\"Aignan\",\"Agrippin\",\"Aimable\",\"Aimé\",\"Alain\",\"Alban\",\"Albin\",\"Aubin\",\"Albéric\",\"Albert\",\"Albertet\",\"Alcibiade\",\"Alcide\",\"Alcée\",\"Alcime\",\"Aldonce\",\"Aldric\",\"Aldéric\",\"Aleaume\",\"Alexandre\",\"Alexis\",\"Alix\",\"Alliaume\",\"Aleaume\",\"Almine\",\"Almire\",\"Aloïs\",\"Alphée\",\"Alphonse\",\"Alpinien\",\"Alverède\",\"Amalric\",\"Amaury\",\"Amandin\",\"Amant\",\"Ambroise\",\"Amédée\",\"Amélien\",\"Amiel\",\"Amour\",\"Anaël\",\"Anastase\",\"Anatole\",\"Ancelin\",\"Andéol\",\"Andoche\",\"André\",\"Andoche\",\"Ange\",\"Angelin\",\"Angilbe\",\"Anglebert\",\"Angoustan\",\"Anicet\",\"Anne\",\"Annibal\",\"Ansbert\",\"Anselme\",\"Anthelme\",\"Antheaume\",\"Anthime\",\"Antide\",\"Antoine\",\"Antonius\",\"Antonin\",\"Apollinaire\",\"Apollon\",\"Aquilin\",\"Arcade\",\"Archambaud\",\"Archambeau\",\"Archange\",\"Archibald\",\"Arian\",\"Ariel\",\"Ariste\",\"Aristide\",\"Armand\",\"Armel\",\"Armin\",\"Arnould\",\"Arnaud\",\"Arolde\",\"Arsène\",\"Arsinoé\",\"Arthaud\",\"Arthème\",\"Arthur\",\"Ascelin\",\"Athanase\",\"Aubry\",\"Audebert\",\"Audouin\",\"Audran\",\"Audric\",\"Auguste\",\"Augustin\",\"Aurèle\",\"Aurélien\",\"Aurian\",\"Auxence\",\"Axel\",\"Aymard\",\"Aymeric\",\"Aymon\",\"Aymond\",\"Balthazar\",\"Baptiste\",\"Barnabé\",\"Barthélemy\",\"Bartimée\",\"Basile\",\"Bastien\",\"Baudouin\",\"Bénigne\",\"Benjamin\",\"Benoît\",\"Bérenger\",\"Bérard\",\"Bernard\",\"Bertrand\",\"Blaise\",\"Bon\",\"Boniface\",\"Bouchard\",\"Brice\",\"Brieuc\",\"Bruno\",\"Brunon\",\"Calixte\",\"Calliste\",\"Camélien\",\"Camille\",\"Camillien\",\"Candide\",\"Caribert\",\"Carloman\",\"Cassandre\",\"Cassien\",\"Cédric\",\"Céleste\",\"Célestin\",\"Célien\",\"Césaire\",\"César\",\"Charles\",\"Charlemagne\",\"Childebert\",\"Chilpéric\",\"Chrétien\",\"Christian\",\"Christodule\",\"Christophe\",\"Chrysostome\",\"Clarence\",\"Claude\",\"Claudien\",\"Cléandre\",\"Clément\",\"Clotaire\",\"Côme\",\"Constance\",\"Constant\",\"Constantin\",\"Corentin\",\"Cyprien\",\"Cyriaque\",\"Cyrille\",\"Cyril\",\"Damien\",\"Daniel\",\"David\",\"Delphin\",\"Denis\",\"Désiré\",\"Didier\",\"Dieudonné\",\"Dimitri\",\"Dominique\",\"Dorian\",\"Dorothée\",\"Edgard\",\"Edmond\",\"Édouard\",\"Éleuthère\",\"Élie\",\"Élisée\",\"Émeric\",\"Émile\",\"Émilien\",\"Emmanuel\",\"Enguerrand\",\"Épiphane\",\"Éric\",\"Esprit\",\"Ernest\",\"Étienne\",\"Eubert\",\"Eudes\",\"Eudoxe\",\"Eugène\",\"Eusèbe\",\"Eustache\",\"Évariste\",\"Évrard\",\"Fabien\",\"Fabrice\",\"Falba\",\"Félicité\",\"Félix\",\"Ferdinand\",\"Fiacre\",\"Fidèle\",\"Firmin\",\"Flavien\",\"Flodoard\",\"Florent\",\"Florentin\",\"Florestan\",\"Florian\",\"Fortuné\",\"Foulques\",\"Francisque\",\"François\",\"Français\",\"Franciscus\",\"Francs\",\"Frédéric\",\"Fulbert\",\"Fulcran\",\"Fulgence\",\"Gabin\",\"Gabriel\",\"Gaël\",\"Garnier\",\"Gaston\",\"Gaspard\",\"Gatien\",\"Gaud\",\"Gautier\",\"Gédéon\",\"Geoffroy\",\"Georges\",\"Géraud\",\"Gérard\",\"Gerbert\",\"Germain\",\"Gervais\",\"Ghislain\",\"Gilbert\",\"Gilles\",\"Girart\",\"Gislebert\",\"Gondebaud\",\"Gonthier\",\"Gontran\",\"Gonzague\",\"Grégoire\",\"Guérin\",\"Gui\",\"Guillaume\",\"Gustave\",\"Guy\",\"Guyot\",\"Hardouin\",\"Hector\",\"Hédelin\",\"Hélier\",\"Henri\",\"Herbert\",\"Herluin\",\"Hervé\",\"Hilaire\",\"Hildebert\",\"Hincmar\",\"Hippolyte\",\"Honoré\",\"Hubert\",\"Hugues\",\"Innocent\",\"Isabeau\",\"Isidore\",\"Jacques\",\"Japhet\",\"Jason\",\"Jean\",\"Jeannel\",\"Jeannot\",\"Jérémie\",\"Jérôme\",\"Joachim\",\"Joanny\",\"Job\",\"Jocelyn\",\"Joël\",\"Johan\",\"Jonas\",\"Jonathan\",\"Joseph\",\"Josse\",\"Josselin\",\"Jourdain\",\"Jude\",\"Judicaël\",\"Jules\",\"Julien\",\"Juste\",\"Justin\",\"Lambert\",\"Landry\",\"Laurent\",\"Lazare\",\"Léandre\",\"Léon\",\"Léonard\",\"Léopold\",\"Leu\",\"Loup\",\"Leufroy\",\"Libère\",\"Liétald\",\"Lionel\",\"Loïc\",\"Longin\",\"Lorrain\",\"Lorraine\",\"Lothaire\",\"Louis\",\"Loup\",\"Luc\",\"Lucas\",\"Lucien\",\"Ludolphe\",\"Ludovic\",\"Macaire\",\"Malo\",\"Mamert\",\"Manassé\",\"Marc\",\"Marceau\",\"Marcel\",\"Marcelin\",\"Marius\",\"Marseille\",\"Martial\",\"Martin\",\"Mathurin\",\"Matthias\",\"Mathias\",\"Matthieu\",\"Maugis\",\"Maurice\",\"Mauricet\",\"Maxence\",\"Maxime\",\"Maximilien\",\"Mayeul\",\"Médéric\",\"Melchior\",\"Mence\",\"Merlin\",\"Mérovée\",\"Michaël\",\"Michel\",\"Moïse\",\"Morgan\",\"Nathan\",\"Nathanaël\",\"Narcisse\",\"Néhémie\",\"Nestor\",\"Nestor\",\"Nicéphore\",\"Nicolas\",\"Noé\",\"Noël\",\"Norbert\",\"Normand\",\"Normands\",\"Octave\",\"Odilon\",\"Odon\",\"Oger\",\"Olivier\",\"Oury\",\"Pacôme\",\"Palémon\",\"Parfait\",\"Pascal\",\"Paterne\",\"Patrice\",\"Paul\",\"Pépin\",\"Perceval\",\"Philémon\",\"Philibert\",\"Philippe\",\"Philothée\",\"Pie\",\"Pierre\",\"Pierrick\",\"Prosper\",\"Quentin\",\"Raoul\",\"Raphaël\",\"Raymond\",\"Régis\",\"Réjean\",\"Rémi\",\"Renaud\",\"René\",\"Reybaud\",\"Richard\",\"Robert\",\"Roch\",\"Rodolphe\",\"Rodrigue\",\"Roger\",\"Roland\",\"Romain\",\"Romuald\",\"Roméo\",\"Rome\",\"Ronan\",\"Roselin\",\"Salomon\",\"Samuel\",\"Savin\",\"Savinien\",\"Scholastique\",\"Sébastien\",\"Séraphin\",\"Serge\",\"Séverin\",\"Sidoine\",\"Sigebert\",\"Sigismond\",\"Silvère\",\"Simon\",\"Siméon\",\"Sixte\",\"Stanislas\",\"Stéphane\",\"Stephan\",\"Sylvain\",\"Sylvestre\",\"Tancrède\",\"Tanguy\",\"Taurin\",\"Théodore\",\"Théodose\",\"Théophile\",\"Théophraste\",\"Thibault\",\"Thibert\",\"Thierry\",\"Thomas\",\"Timoléon\",\"Timothée\",\"Titien\",\"Tonnin\",\"Toussaint\",\"Trajan\",\"Tristan\",\"Turold\",\"Tim\",\"Ulysse\",\"Urbain\",\"Valentin\",\"Valère\",\"Valéry\",\"Venance\",\"Venant\",\"Venceslas\",\"Vianney\",\"Victor\",\"Victorien\",\"Victorin\",\"Vigile\",\"Vincent\",\"Vital\",\"Vitalien\",\"Vivien\",\"Waleran\",\"Wandrille\",\"Xavier\",\"Xénophon\",\"Yves\",\"Zacharie\",\"Zaché\",\"Zéphirin\"]\n },\n\n \"female\": {\n \"en\": [\"Mary\", \"Emma\", \"Elizabeth\", \"Minnie\", \"Margaret\", \"Ida\", \"Alice\", \"Bertha\", \"Sarah\", \"Annie\", \"Clara\", \"Ella\", \"Florence\", \"Cora\", \"Martha\", \"Laura\", \"Nellie\", \"Grace\", \"Carrie\", \"Maude\", \"Mabel\", \"Bessie\", \"Jennie\", \"Gertrude\", \"Julia\", \"Hattie\", \"Edith\", \"Mattie\", \"Rose\", \"Catherine\", \"Lillian\", \"Ada\", \"Lillie\", \"Helen\", \"Jessie\", \"Louise\", \"Ethel\", \"Lula\", \"Myrtle\", \"Eva\", \"Frances\", \"Lena\", \"Lucy\", \"Edna\", \"Maggie\", \"Pearl\", \"Daisy\", \"Fannie\", \"Josephine\", \"Dora\", \"Rosa\", \"Katherine\", \"Agnes\", \"Marie\", \"Nora\", \"May\", \"Mamie\", \"Blanche\", \"Stella\", \"Ellen\", \"Nancy\", \"Effie\", \"Sallie\", \"Nettie\", \"Della\", \"Lizzie\", \"Flora\", \"Susie\", \"Maud\", \"Mae\", \"Etta\", \"Harriet\", \"Sadie\", \"Caroline\", \"Katie\", \"Lydia\", \"Elsie\", \"Kate\", \"Susan\", \"Mollie\", \"Alma\", \"Addie\", \"Georgia\", \"Eliza\", \"Lulu\", \"Nannie\", \"Lottie\", \"Amanda\", \"Belle\", \"Charlotte\", \"Rebecca\", \"Ruth\", \"Viola\", \"Olive\", \"Amelia\", \"Hannah\", \"Jane\", \"Virginia\", \"Emily\", \"Matilda\", \"Irene\", \"Kathryn\", \"Esther\", \"Willie\", \"Henrietta\", \"Ollie\", \"Amy\", \"Rachel\", \"Sara\", \"Estella\", \"Theresa\", \"Augusta\", \"Ora\", \"Pauline\", \"Josie\", \"Lola\", \"Sophia\", \"Leona\", \"Anne\", \"Mildred\", \"Ann\", \"Beulah\", \"Callie\", \"Lou\", \"Delia\", \"Eleanor\", \"Barbara\", \"Iva\", \"Louisa\", \"Maria\", \"Mayme\", \"Evelyn\", \"Estelle\", \"Nina\", \"Betty\", \"Marion\", \"Bettie\", \"Dorothy\", \"Luella\", \"Inez\", \"Lela\", \"Rosie\", \"Allie\", \"Millie\", \"Janie\", \"Cornelia\", \"Victoria\", \"Ruby\", \"Winifred\", \"Alta\", \"Celia\", \"Christine\", \"Beatrice\", \"Birdie\", \"Harriett\", \"Mable\", \"Myra\", \"Sophie\", \"Tillie\", \"Isabel\", \"Sylvia\", \"Carolyn\", \"Isabelle\", \"Leila\", \"Sally\", \"Ina\", \"Essie\", \"Bertie\", \"Nell\", \"Alberta\", \"Katharine\", \"Lora\", \"Rena\", \"Mina\", \"Rhoda\", \"Mathilda\", \"Abbie\", \"Eula\", \"Dollie\", \"Hettie\", \"Eunice\", \"Fanny\", \"Ola\", \"Lenora\", \"Adelaide\", \"Christina\", \"Lelia\", \"Nelle\", \"Sue\", \"Johanna\", \"Lilly\", \"Lucinda\", \"Minerva\", \"Lettie\", \"Roxie\", \"Cynthia\", \"Helena\", \"Hilda\", \"Hulda\", \"Bernice\", \"Genevieve\", \"Jean\", \"Cordelia\", \"Marian\", \"Francis\", \"Jeanette\", \"Adeline\", \"Gussie\", \"Leah\", \"Lois\", \"Lura\", \"Mittie\", \"Hallie\", \"Isabella\", \"Olga\", \"Phoebe\", \"Teresa\", \"Hester\", \"Lida\", \"Lina\", \"Winnie\", \"Claudia\", \"Marguerite\", \"Vera\", \"Cecelia\", \"Bess\", \"Emilie\", \"Rosetta\", \"Verna\", \"Myrtie\", \"Cecilia\", \"Elva\", \"Olivia\", \"Ophelia\", \"Georgie\", \"Elnora\", \"Violet\", \"Adele\", \"Lily\", \"Linnie\", \"Loretta\", \"Madge\", \"Polly\", \"Virgie\", \"Eugenia\", \"Lucile\", \"Lucille\", \"Mabelle\", \"Rosalie\"],\n // Data taken from http://www.dati.gov.it/dataset/comune-di-firenze_0162\n \"it\": [\"Ada\", \"Adriana\", \"Alessandra\", \"Alessia\", \"Alice\", \"Angela\", \"Anna\", \"Anna Maria\", \"Annalisa\", \"Annita\", \"Annunziata\", \"Antonella\", \"Arianna\", \"Asia\", \"Assunta\", \"Aurora\", \"Barbara\", \"Beatrice\", \"Benedetta\", \"Bianca\", \"Bruna\", \"Camilla\", \"Carla\", \"Carlotta\", \"Carmela\", \"Carolina\", \"Caterina\", \"Catia\", \"Cecilia\", \"Chiara\", \"Cinzia\", \"Clara\", \"Claudia\", \"Costanza\", \"Cristina\", \"Daniela\", \"Debora\", \"Diletta\", \"Dina\", \"Donatella\", \"Elena\", \"Eleonora\", \"Elisa\", \"Elisabetta\", \"Emanuela\", \"Emma\", \"Eva\", \"Federica\", \"Fernanda\", \"Fiorella\", \"Fiorenza\", \"Flora\", \"Franca\", \"Francesca\", \"Gabriella\", \"Gaia\", \"Gemma\", \"Giada\", \"Gianna\", \"Gina\", \"Ginevra\", \"Giorgia\", \"Giovanna\", \"Giulia\", \"Giuliana\", \"Giuseppa\", \"Giuseppina\", \"Grazia\", \"Graziella\", \"Greta\", \"Ida\", \"Ilaria\", \"Ines\", \"Iolanda\", \"Irene\", \"Irma\", \"Isabella\", \"Jessica\", \"Laura\", \"Lea\", \"Letizia\", \"Licia\", \"Lidia\", \"Liliana\", \"Lina\", \"Linda\", \"Lisa\", \"Livia\", \"Loretta\", \"Luana\", \"Lucia\", \"Luciana\", \"Lucrezia\", \"Luisa\", \"Manuela\", \"Mara\", \"Marcella\", \"Margherita\", \"Maria\", \"Maria Cristina\", \"Maria Grazia\", \"Maria Luisa\", \"Maria Pia\", \"Maria Teresa\", \"Marina\", \"Marisa\", \"Marta\", \"Martina\", \"Marzia\", \"Matilde\", \"Melissa\", \"Michela\", \"Milena\", \"Mirella\", \"Monica\", \"Natalina\", \"Nella\", \"Nicoletta\", \"Noemi\", \"Olga\", \"Paola\", \"Patrizia\", \"Piera\", \"Pierina\", \"Raffaella\", \"Rebecca\", \"Renata\", \"Rina\", \"Rita\", \"Roberta\", \"Rosa\", \"Rosanna\", \"Rossana\", \"Rossella\", \"Sabrina\", \"Sandra\", \"Sara\", \"Serena\", \"Silvana\", \"Silvia\", \"Simona\", \"Simonetta\", \"Sofia\", \"Sonia\", \"Stefania\", \"Susanna\", \"Teresa\", \"Tina\", \"Tiziana\", \"Tosca\", \"Valentina\", \"Valeria\", \"Vanda\", \"Vanessa\", \"Vanna\", \"Vera\", \"Veronica\", \"Vilma\", \"Viola\", \"Virginia\", \"Vittoria\"],\n // Data taken from http://www.svbkindernamen.nl/int/nl/kindernamen/index.html\n \"nl\": [\"Ada\", \"Arianne\", \"Afke\", \"Amanda\", \"Amber\", \"Amy\", \"Aniek\", \"Anita\", \"Anja\", \"Anna\", \"Anne\", \"Annelies\", \"Annemarie\", \"Annette\", \"Anouk\", \"Astrid\", \"Aukje\", \"Barbara\", \"Bianca\", \"Carla\", \"Carlijn\", \"Carolien\", \"Chantal\", \"Charlotte\", \"Claudia\", \"Daniëlle\", \"Debora\", \"Diane\", \"Dora\", \"Eline\", \"Elise\", \"Ella\", \"Ellen\", \"Emma\", \"Esmee\", \"Evelien\", \"Esther\", \"Erica\", \"Eva\", \"Femke\", \"Fleur\", \"Floor\", \"Froukje\", \"Gea\", \"Gerda\", \"Hanna\", \"Hanneke\", \"Heleen\", \"Hilde\", \"Ilona\", \"Ina\", \"Inge\", \"Ingrid\", \"Iris\", \"Isabel\", \"Isabelle\", \"Janneke\", \"Jasmijn\", \"Jeanine\", \"Jennifer\", \"Jessica\", \"Johanna\", \"Joke\", \"Julia\", \"Julie\", \"Karen\", \"Karin\", \"Katja\", \"Kim\", \"Lara\", \"Laura\", \"Lena\", \"Lianne\", \"Lieke\", \"Lilian\", \"Linda\", \"Lisa\", \"Lisanne\", \"Lotte\", \"Louise\", \"Maaike\", \"Manon\", \"Marga\", \"Maria\", \"Marissa\", \"Marit\", \"Marjolein\", \"Martine\", \"Marleen\", \"Melissa\", \"Merel\", \"Miranda\", \"Michelle\", \"Mirjam\", \"Mirthe\", \"Naomi\", \"Natalie\", 'Nienke', \"Nina\", \"Noortje\", \"Olivia\", \"Patricia\", \"Paula\", \"Paulien\", \"Ramona\", \"Ria\", \"Rianne\", \"Roos\", \"Rosanne\", \"Ruth\", \"Sabrina\", \"Sandra\", \"Sanne\", \"Sara\", \"Saskia\", \"Silvia\", \"Sofia\", \"Sophie\", \"Sonja\", \"Suzanne\", \"Tamara\", \"Tess\", \"Tessa\", \"Tineke\", \"Valerie\", \"Vanessa\", \"Veerle\", \"Vera\", \"Victoria\", \"Wendy\", \"Willeke\", \"Yvonne\", \"Zoë\"],\n // Data taken from https://fr.wikipedia.org/wiki/Liste_de_pr%C3%A9noms_fran%C3%A7ais_et_de_la_francophonie\n \"fr\": [\"Abdon\",\"Abel\",\"Abigaëlle\",\"Abigaïl\",\"Acacius\",\"Acanthe\",\"Adalbert\",\"Adalsinde\",\"Adegrine\",\"Adélaïde\",\"Adèle\",\"Adélie\",\"Adeline\",\"Adeltrude\",\"Adolphe\",\"Adonis\",\"Adrastée\",\"Adrehilde\",\"Adrienne\",\"Agathe\",\"Agilbert\",\"Aglaé\",\"Aignan\",\"Agneflète\",\"Agnès\",\"Agrippine\",\"Aimé\",\"Alaine\",\"Alaïs\",\"Albane\",\"Albérade\",\"Alberte\",\"Alcide\",\"Alcine\",\"Alcyone\",\"Aldegonde\",\"Aleth\",\"Alexandrine\",\"Alexine\",\"Alice\",\"Aliénor\",\"Aliette\",\"Aline\",\"Alix\",\"Alizé\",\"Aloïse\",\"Aloyse\",\"Alphonsine\",\"Althée\",\"Amaliane\",\"Amalthée\",\"Amande\",\"Amandine\",\"Amant\",\"Amarande\",\"Amaranthe\",\"Amaryllis\",\"Ambre\",\"Ambroisie\",\"Amélie\",\"Améthyste\",\"Aminte\",\"Anaël\",\"Anaïs\",\"Anastasie\",\"Anatole\",\"Ancelin\",\"Andrée\",\"Anémone\",\"Angadrême\",\"Angèle\",\"Angeline\",\"Angélique\",\"Angilbert\",\"Anicet\",\"Annabelle\",\"Anne\",\"Annette\",\"Annick\",\"Annie\",\"Annonciade\",\"Ansbert\",\"Anstrudie\",\"Anthelme\",\"Antigone\",\"Antoinette\",\"Antonine\",\"Aphélie\",\"Apolline\",\"Apollonie\",\"Aquiline\",\"Arabelle\",\"Arcadie\",\"Archange\",\"Argine\",\"Ariane\",\"Aricie\",\"Ariel\",\"Arielle\",\"Arlette\",\"Armance\",\"Armande\",\"Armandine\",\"Armelle\",\"Armide\",\"Armelle\",\"Armin\",\"Arnaud\",\"Arsène\",\"Arsinoé\",\"Artémis\",\"Arthur\",\"Ascelin\",\"Ascension\",\"Assomption\",\"Astarté\",\"Astérie\",\"Astrée\",\"Astrid\",\"Athalie\",\"Athanasie\",\"Athina\",\"Aube\",\"Albert\",\"Aude\",\"Audrey\",\"Augustine\",\"Aure\",\"Aurélie\",\"Aurélien\",\"Aurèle\",\"Aurore\",\"Auxence\",\"Aveline\",\"Abigaëlle\",\"Avoye\",\"Axelle\",\"Aymard\",\"Azalée\",\"Adèle\",\"Adeline\",\"Barbe\",\"Basilisse\",\"Bathilde\",\"Béatrice\",\"Béatrix\",\"Bénédicte\",\"Bérengère\",\"Bernadette\",\"Berthe\",\"Bertille\",\"Beuve\",\"Blanche\",\"Blanc\",\"Blandine\",\"Brigitte\",\"Brune\",\"Brunehilde\",\"Callista\",\"Camille\",\"Capucine\",\"Carine\",\"Caroline\",\"Cassandre\",\"Catherine\",\"Cécile\",\"Céleste\",\"Célestine\",\"Céline\",\"Chantal\",\"Charlène\",\"Charline\",\"Charlotte\",\"Chloé\",\"Christelle\",\"Christiane\",\"Christine\",\"Claire\",\"Clara\",\"Claude\",\"Claudine\",\"Clarisse\",\"Clémence\",\"Clémentine\",\"Cléo\",\"Clio\",\"Clotilde\",\"Coline\",\"Conception\",\"Constance\",\"Coralie\",\"Coraline\",\"Corentine\",\"Corinne\",\"Cyrielle\",\"Daniel\",\"Daniel\",\"Daphné\",\"Débora\",\"Delphine\",\"Denise\",\"Diane\",\"Dieudonné\",\"Dominique\",\"Doriane\",\"Dorothée\",\"Douce\",\"Édith\",\"Edmée\",\"Éléonore\",\"Éliane\",\"Élia\",\"Éliette\",\"Élisabeth\",\"Élise\",\"Ella\",\"Élodie\",\"Éloïse\",\"Elsa\",\"Émeline\",\"Émérance\",\"Émérentienne\",\"Émérencie\",\"Émilie\",\"Emma\",\"Emmanuelle\",\"Emmelie\",\"Ernestine\",\"Esther\",\"Estelle\",\"Eudoxie\",\"Eugénie\",\"Eulalie\",\"Euphrasie\",\"Eusébie\",\"Évangéline\",\"Eva\",\"Ève\",\"Évelyne\",\"Fanny\",\"Fantine\",\"Faustine\",\"Félicie\",\"Fernande\",\"Flavie\",\"Fleur\",\"Flore\",\"Florence\",\"Florie\",\"Fortuné\",\"France\",\"Francia\",\"Françoise\",\"Francine\",\"Gabrielle\",\"Gaëlle\",\"Garance\",\"Geneviève\",\"Georgette\",\"Gerberge\",\"Germaine\",\"Gertrude\",\"Gisèle\",\"Guenièvre\",\"Guilhemine\",\"Guillemette\",\"Gustave\",\"Gwenael\",\"Hélène\",\"Héloïse\",\"Henriette\",\"Hermine\",\"Hermione\",\"Hippolyte\",\"Honorine\",\"Hortense\",\"Huguette\",\"Ines\",\"Irène\",\"Irina\",\"Iris\",\"Isabeau\",\"Isabelle\",\"Iseult\",\"Isolde\",\"Ismérie\",\"Jacinthe\",\"Jacqueline\",\"Jade\",\"Janine\",\"Jeanne\",\"Jocelyne\",\"Joëlle\",\"Joséphine\",\"Judith\",\"Julia\",\"Julie\",\"Jules\",\"Juliette\",\"Justine\",\"Katy\",\"Kathy\",\"Katie\",\"Laura\",\"Laure\",\"Laureline\",\"Laurence\",\"Laurene\",\"Lauriane\",\"Laurianne\",\"Laurine\",\"Léa\",\"Léna\",\"Léonie\",\"Léon\",\"Léontine\",\"Lorraine\",\"Lucie\",\"Lucienne\",\"Lucille\",\"Ludivine\",\"Lydie\",\"Lydie\",\"Megane\",\"Madeleine\",\"Magali\",\"Maguelone\",\"Mallaury\",\"Manon\",\"Marceline\",\"Margot\",\"Marguerite\",\"Marianne\",\"Marie\",\"Myriam\",\"Marie\",\"Marine\",\"Marion\",\"Marlène\",\"Marthe\",\"Martine\",\"Mathilde\",\"Maud\",\"Maureen\",\"Mauricette\",\"Maxime\",\"Mélanie\",\"Melissa\",\"Mélissandre\",\"Mélisande\",\"Mélodie\",\"Michel\",\"Micheline\",\"Mireille\",\"Miriam\",\"Moïse\",\"Monique\",\"Morgane\",\"Muriel\",\"Mylène\",\"Nadège\",\"Nadine\",\"Nathalie\",\"Nicole\",\"Nicolette\",\"Nine\",\"Noël\",\"Noémie\",\"Océane\",\"Odette\",\"Odile\",\"Olive\",\"Olivia\",\"Olympe\",\"Ombline\",\"Ombeline\",\"Ophélie\",\"Oriande\",\"Oriane\",\"Ozanne\",\"Pascale\",\"Pascaline\",\"Paule\",\"Paulette\",\"Pauline\",\"Priscille\",\"Prisca\",\"Prisque\",\"Pécine\",\"Pélagie\",\"Pénélope\",\"Perrine\",\"Pétronille\",\"Philippine\",\"Philomène\",\"Philothée\",\"Primerose\",\"Prudence\",\"Pulchérie\",\"Quentine\",\"Quiéta\",\"Quintia\",\"Quintilla\",\"Rachel\",\"Raphaëlle\",\"Raymonde\",\"Rebecca\",\"Régine\",\"Réjeanne\",\"René\",\"Rita\",\"Rita\",\"Rolande\",\"Romane\",\"Rosalie\",\"Rose\",\"Roseline\",\"Sabine\",\"Salomé\",\"Sandra\",\"Sandrine\",\"Sarah\",\"Ségolène\",\"Séverine\",\"Sibylle\",\"Simone\",\"Sixt\",\"Solange\",\"Soline\",\"Solène\",\"Sophie\",\"Stéphanie\",\"Suzanne\",\"Sylvain\",\"Sylvie\",\"Tatiana\",\"Thaïs\",\"Théodora\",\"Thérèse\",\"Tiphaine\",\"Ursule\",\"Valentine\",\"Valérie\",\"Véronique\",\"Victoire\",\"Victorine\",\"Vinciane\",\"Violette\",\"Virginie\",\"Viviane\",\"Xavière\",\"Yolande\",\"Ysaline\",\"Yvette\",\"Yvonne\",\"Zélie\",\"Zita\",\"Zoé\"]\n }\n },\n\n lastNames: {\n \"en\": ['Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor', 'Anderson', 'Thomas', 'Jackson', 'White', 'Harris', 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson', 'Clark', 'Rodriguez', 'Lewis', 'Lee', 'Walker', 'Hall', 'Allen', 'Young', 'Hernandez', 'King', 'Wright', 'Lopez', 'Hill', 'Scott', 'Green', 'Adams', 'Baker', 'Gonzalez', 'Nelson', 'Carter', 'Mitchell', 'Perez', 'Roberts', 'Turner', 'Phillips', 'Campbell', 'Parker', 'Evans', 'Edwards', 'Collins', 'Stewart', 'Sanchez', 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Murphy', 'Bailey', 'Rivera', 'Cooper', 'Richardson', 'Cox', 'Howard', 'Ward', 'Torres', 'Peterson', 'Gray', 'Ramirez', 'James', 'Watson', 'Brooks', 'Kelly', 'Sanders', 'Price', 'Bennett', 'Wood', 'Barnes', 'Ross', 'Henderson', 'Coleman', 'Jenkins', 'Perry', 'Powell', 'Long', 'Patterson', 'Hughes', 'Flores', 'Washington', 'Butler', 'Simmons', 'Foster', 'Gonzales', 'Bryant', 'Alexander', 'Russell', 'Griffin', 'Diaz', 'Hayes', 'Myers', 'Ford', 'Hamilton', 'Graham', 'Sullivan', 'Wallace', 'Woods', 'Cole', 'West', 'Jordan', 'Owens', 'Reynolds', 'Fisher', 'Ellis', 'Harrison', 'Gibson', 'McDonald', 'Cruz', 'Marshall', 'Ortiz', 'Gomez', 'Murray', 'Freeman', 'Wells', 'Webb', 'Simpson', 'Stevens', 'Tucker', 'Porter', 'Hunter', 'Hicks', 'Crawford', 'Henry', 'Boyd', 'Mason', 'Morales', 'Kennedy', 'Warren', 'Dixon', 'Ramos', 'Reyes', 'Burns', 'Gordon', 'Shaw', 'Holmes', 'Rice', 'Robertson', 'Hunt', 'Black', 'Daniels', 'Palmer', 'Mills', 'Nichols', 'Grant', 'Knight', 'Ferguson', 'Rose', 'Stone', 'Hawkins', 'Dunn', 'Perkins', 'Hudson', 'Spencer', 'Gardner', 'Stephens', 'Payne', 'Pierce', 'Berry', 'Matthews', 'Arnold', 'Wagner', 'Willis', 'Ray', 'Watkins', 'Olson', 'Carroll', 'Duncan', 'Snyder', 'Hart', 'Cunningham', 'Bradley', 'Lane', 'Andrews', 'Ruiz', 'Harper', 'Fox', 'Riley', 'Armstrong', 'Carpenter', 'Weaver', 'Greene', 'Lawrence', 'Elliott', 'Chavez', 'Sims', 'Austin', 'Peters', 'Kelley', 'Franklin', 'Lawson', 'Fields', 'Gutierrez', 'Ryan', 'Schmidt', 'Carr', 'Vasquez', 'Castillo', 'Wheeler', 'Chapman', 'Oliver', 'Montgomery', 'Richards', 'Williamson', 'Johnston', 'Banks', 'Meyer', 'Bishop', 'McCoy', 'Howell', 'Alvarez', 'Morrison', 'Hansen', 'Fernandez', 'Garza', 'Harvey', 'Little', 'Burton', 'Stanley', 'Nguyen', 'George', 'Jacobs', 'Reid', 'Kim', 'Fuller', 'Lynch', 'Dean', 'Gilbert', 'Garrett', 'Romero', 'Welch', 'Larson', 'Frazier', 'Burke', 'Hanson', 'Day', 'Mendoza', 'Moreno', 'Bowman', 'Medina', 'Fowler', 'Brewer', 'Hoffman', 'Carlson', 'Silva', 'Pearson', 'Holland', 'Douglas', 'Fleming', 'Jensen', 'Vargas', 'Byrd', 'Davidson', 'Hopkins', 'May', 'Terry', 'Herrera', 'Wade', 'Soto', 'Walters', 'Curtis', 'Neal', 'Caldwell', 'Lowe', 'Jennings', 'Barnett', 'Graves', 'Jimenez', 'Horton', 'Shelton', 'Barrett', 'Obrien', 'Castro', 'Sutton', 'Gregory', 'McKinney', 'Lucas', 'Miles', 'Craig', 'Rodriquez', 'Chambers', 'Holt', 'Lambert', 'Fletcher', 'Watts', 'Bates', 'Hale', 'Rhodes', 'Pena', 'Beck', 'Newman', 'Haynes', 'McDaniel', 'Mendez', 'Bush', 'Vaughn', 'Parks', 'Dawson', 'Santiago', 'Norris', 'Hardy', 'Love', 'Steele', 'Curry', 'Powers', 'Schultz', 'Barker', 'Guzman', 'Page', 'Munoz', 'Ball', 'Keller', 'Chandler', 'Weber', 'Leonard', 'Walsh', 'Lyons', 'Ramsey', 'Wolfe', 'Schneider', 'Mullins', 'Benson', 'Sharp', 'Bowen', 'Daniel', 'Barber', 'Cummings', 'Hines', 'Baldwin', 'Griffith', 'Valdez', 'Hubbard', 'Salazar', 'Reeves', 'Warner', 'Stevenson', 'Burgess', 'Santos', 'Tate', 'Cross', 'Garner', 'Mann', 'Mack', 'Moss', 'Thornton', 'Dennis', 'McGee', 'Farmer', 'Delgado', 'Aguilar', 'Vega', 'Glover', 'Manning', 'Cohen', 'Harmon', 'Rodgers', 'Robbins', 'Newton', 'Todd', 'Blair', 'Higgins', 'Ingram', 'Reese', 'Cannon', 'Strickland', 'Townsend', 'Potter', 'Goodwin', 'Walton', 'Rowe', 'Hampton', 'Ortega', 'Patton', 'Swanson', 'Joseph', 'Francis', 'Goodman', 'Maldonado', 'Yates', 'Becker', 'Erickson', 'Hodges', 'Rios', 'Conner', 'Adkins', 'Webster', 'Norman', 'Malone', 'Hammond', 'Flowers', 'Cobb', 'Moody', 'Quinn', 'Blake', 'Maxwell', 'Pope', 'Floyd', 'Osborne', 'Paul', 'McCarthy', 'Guerrero', 'Lindsey', 'Estrada', 'Sandoval', 'Gibbs', 'Tyler', 'Gross', 'Fitzgerald', 'Stokes', 'Doyle', 'Sherman', 'Saunders', 'Wise', 'Colon', 'Gill', 'Alvarado', 'Greer', 'Padilla', 'Simon', 'Waters', 'Nunez', 'Ballard', 'Schwartz', 'McBride', 'Houston', 'Christensen', 'Klein', 'Pratt', 'Briggs', 'Parsons', 'McLaughlin', 'Zimmerman', 'French', 'Buchanan', 'Moran', 'Copeland', 'Roy', 'Pittman', 'Brady', 'McCormick', 'Holloway', 'Brock', 'Poole', 'Frank', 'Logan', 'Owen', 'Bass', 'Marsh', 'Drake', 'Wong', 'Jefferson', 'Park', 'Morton', 'Abbott', 'Sparks', 'Patrick', 'Norton', 'Huff', 'Clayton', 'Massey', 'Lloyd', 'Figueroa', 'Carson', 'Bowers', 'Roberson', 'Barton', 'Tran', 'Lamb', 'Harrington', 'Casey', 'Boone', 'Cortez', 'Clarke', 'Mathis', 'Singleton', 'Wilkins', 'Cain', 'Bryan', 'Underwood', 'Hogan', 'McKenzie', 'Collier', 'Luna', 'Phelps', 'McGuire', 'Allison', 'Bridges', 'Wilkerson', 'Nash', 'Summers', 'Atkins'],\n // Data taken from http://www.dati.gov.it/dataset/comune-di-firenze_0164 (first 1000)\n \"it\": [\"Acciai\", \"Aglietti\", \"Agostini\", \"Agresti\", \"Ahmed\", \"Aiazzi\", \"Albanese\", \"Alberti\", \"Alessi\", \"Alfani\", \"Alinari\", \"Alterini\", \"Amato\", \"Ammannati\", \"Ancillotti\", \"Andrei\", \"Andreini\", \"Andreoni\", \"Angeli\", \"Anichini\", \"Antonelli\", \"Antonini\", \"Arena\", \"Ariani\", \"Arnetoli\", \"Arrighi\", \"Baccani\", \"Baccetti\", \"Bacci\", \"Bacherini\", \"Badii\", \"Baggiani\", \"Baglioni\", \"Bagni\", \"Bagnoli\", \"Baldassini\", \"Baldi\", \"Baldini\", \"Ballerini\", \"Balli\", \"Ballini\", \"Balloni\", \"Bambi\", \"Banchi\", \"Bandinelli\", \"Bandini\", \"Bani\", \"Barbetti\", \"Barbieri\", \"Barchielli\", \"Bardazzi\", \"Bardelli\", \"Bardi\", \"Barducci\", \"Bargellini\", \"Bargiacchi\", \"Barni\", \"Baroncelli\", \"Baroncini\", \"Barone\", \"Baroni\", \"Baronti\", \"Bartalesi\", \"Bartoletti\", \"Bartoli\", \"Bartolini\", \"Bartoloni\", \"Bartolozzi\", \"Basagni\", \"Basile\", \"Bassi\", \"Batacchi\", \"Battaglia\", \"Battaglini\", \"Bausi\", \"Becagli\", \"Becattini\", \"Becchi\", \"Becucci\", \"Bellandi\", \"Bellesi\", \"Belli\", \"Bellini\", \"Bellucci\", \"Bencini\", \"Benedetti\", \"Benelli\", \"Beni\", \"Benini\", \"Bensi\", \"Benucci\", \"Benvenuti\", \"Berlincioni\", \"Bernacchioni\", \"Bernardi\", \"Bernardini\", \"Berni\", \"Bernini\", \"Bertelli\", \"Berti\", \"Bertini\", \"Bessi\", \"Betti\", \"Bettini\", \"Biagi\", \"Biagini\", \"Biagioni\", \"Biagiotti\", \"Biancalani\", \"Bianchi\", \"Bianchini\", \"Bianco\", \"Biffoli\", \"Bigazzi\", \"Bigi\", \"Biliotti\", \"Billi\", \"Binazzi\", \"Bindi\", \"Bini\", \"Biondi\", \"Bizzarri\", \"Bocci\", \"Bogani\", \"Bolognesi\", \"Bonaiuti\", \"Bonanni\", \"Bonciani\", \"Boncinelli\", \"Bondi\", \"Bonechi\", \"Bongini\", \"Boni\", \"Bonini\", \"Borchi\", \"Boretti\", \"Borghi\", \"Borghini\", \"Borgioli\", \"Borri\", \"Borselli\", \"Boschi\", \"Bottai\", \"Bracci\", \"Braccini\", \"Brandi\", \"Braschi\", \"Bravi\", \"Brazzini\", \"Breschi\", \"Brilli\", \"Brizzi\", \"Brogelli\", \"Brogi\", \"Brogioni\", \"Brunelli\", \"Brunetti\", \"Bruni\", \"Bruno\", \"Brunori\", \"Bruschi\", \"Bucci\", \"Bucciarelli\", \"Buccioni\", \"Bucelli\", \"Bulli\", \"Burberi\", \"Burchi\", \"Burgassi\", \"Burroni\", \"Bussotti\", \"Buti\", \"Caciolli\", \"Caiani\", \"Calabrese\", \"Calamai\", \"Calamandrei\", \"Caldini\", \"Calo'\", \"Calonaci\", \"Calosi\", \"Calvelli\", \"Cambi\", \"Camiciottoli\", \"Cammelli\", \"Cammilli\", \"Campolmi\", \"Cantini\", \"Capanni\", \"Capecchi\", \"Caponi\", \"Cappelletti\", \"Cappelli\", \"Cappellini\", \"Cappugi\", \"Capretti\", \"Caputo\", \"Carbone\", \"Carboni\", \"Cardini\", \"Carlesi\", \"Carletti\", \"Carli\", \"Caroti\", \"Carotti\", \"Carrai\", \"Carraresi\", \"Carta\", \"Caruso\", \"Casalini\", \"Casati\", \"Caselli\", \"Casini\", \"Castagnoli\", \"Castellani\", \"Castelli\", \"Castellucci\", \"Catalano\", \"Catarzi\", \"Catelani\", \"Cavaciocchi\", \"Cavallaro\", \"Cavallini\", \"Cavicchi\", \"Cavini\", \"Ceccarelli\", \"Ceccatelli\", \"Ceccherelli\", \"Ceccherini\", \"Cecchi\", \"Cecchini\", \"Cecconi\", \"Cei\", \"Cellai\", \"Celli\", \"Cellini\", \"Cencetti\", \"Ceni\", \"Cenni\", \"Cerbai\", \"Cesari\", \"Ceseri\", \"Checcacci\", \"Checchi\", \"Checcucci\", \"Cheli\", \"Chellini\", \"Chen\", \"Cheng\", \"Cherici\", \"Cherubini\", \"Chiaramonti\", \"Chiarantini\", \"Chiarelli\", \"Chiari\", \"Chiarini\", \"Chiarugi\", \"Chiavacci\", \"Chiesi\", \"Chimenti\", \"Chini\", \"Chirici\", \"Chiti\", \"Ciabatti\", \"Ciampi\", \"Cianchi\", \"Cianfanelli\", \"Cianferoni\", \"Ciani\", \"Ciapetti\", \"Ciappi\", \"Ciardi\", \"Ciatti\", \"Cicali\", \"Ciccone\", \"Cinelli\", \"Cini\", \"Ciobanu\", \"Ciolli\", \"Cioni\", \"Cipriani\", \"Cirillo\", \"Cirri\", \"Ciucchi\", \"Ciuffi\", \"Ciulli\", \"Ciullini\", \"Clemente\", \"Cocchi\", \"Cognome\", \"Coli\", \"Collini\", \"Colombo\", \"Colzi\", \"Comparini\", \"Conforti\", \"Consigli\", \"Conte\", \"Conti\", \"Contini\", \"Coppini\", \"Coppola\", \"Corsi\", \"Corsini\", \"Corti\", \"Cortini\", \"Cosi\", \"Costa\", \"Costantini\", \"Costantino\", \"Cozzi\", \"Cresci\", \"Crescioli\", \"Cresti\", \"Crini\", \"Curradi\", \"D'Agostino\", \"D'Alessandro\", \"D'Amico\", \"D'Angelo\", \"Daddi\", \"Dainelli\", \"Dallai\", \"Danti\", \"Davitti\", \"De Angelis\", \"De Luca\", \"De Marco\", \"De Rosa\", \"De Santis\", \"De Simone\", \"De Vita\", \"Degl'Innocenti\", \"Degli Innocenti\", \"Dei\", \"Del Lungo\", \"Del Re\", \"Di Marco\", \"Di Stefano\", \"Dini\", \"Diop\", \"Dobre\", \"Dolfi\", \"Donati\", \"Dondoli\", \"Dong\", \"Donnini\", \"Ducci\", \"Dumitru\", \"Ermini\", \"Esposito\", \"Evangelisti\", \"Fabbri\", \"Fabbrini\", \"Fabbrizzi\", \"Fabbroni\", \"Fabbrucci\", \"Fabiani\", \"Facchini\", \"Faggi\", \"Fagioli\", \"Failli\", \"Faini\", \"Falciani\", \"Falcini\", \"Falcone\", \"Fallani\", \"Falorni\", \"Falsini\", \"Falugiani\", \"Fancelli\", \"Fanelli\", \"Fanetti\", \"Fanfani\", \"Fani\", \"Fantappie'\", \"Fantechi\", \"Fanti\", \"Fantini\", \"Fantoni\", \"Farina\", \"Fattori\", \"Favilli\", \"Fedi\", \"Fei\", \"Ferrante\", \"Ferrara\", \"Ferrari\", \"Ferraro\", \"Ferretti\", \"Ferri\", \"Ferrini\", \"Ferroni\", \"Fiaschi\", \"Fibbi\", \"Fiesoli\", \"Filippi\", \"Filippini\", \"Fini\", \"Fioravanti\", \"Fiore\", \"Fiorentini\", \"Fiorini\", \"Fissi\", \"Focardi\", \"Foggi\", \"Fontana\", \"Fontanelli\", \"Fontani\", \"Forconi\", \"Formigli\", \"Forte\", \"Forti\", \"Fortini\", \"Fossati\", \"Fossi\", \"Francalanci\", \"Franceschi\", \"Franceschini\", \"Franchi\", \"Franchini\", \"Franci\", \"Francini\", \"Francioni\", \"Franco\", \"Frassineti\", \"Frati\", \"Fratini\", \"Frilli\", \"Frizzi\", \"Frosali\", \"Frosini\", \"Frullini\", \"Fusco\", \"Fusi\", \"Gabbrielli\", \"Gabellini\", \"Gagliardi\", \"Galanti\", \"Galardi\", \"Galeotti\", \"Galletti\", \"Galli\", \"Gallo\", \"Gallori\", \"Gambacciani\", \"Gargani\", \"Garofalo\", \"Garuglieri\", \"Gashi\", \"Gasperini\", \"Gatti\", \"Gelli\", \"Gensini\", \"Gentile\", \"Gentili\", \"Geri\", \"Gerini\", \"Gheri\", \"Ghini\", \"Giachetti\", \"Giachi\", \"Giacomelli\", \"Gianassi\", \"Giani\", \"Giannelli\", \"Giannetti\", \"Gianni\", \"Giannini\", \"Giannoni\", \"Giannotti\", \"Giannozzi\", \"Gigli\", \"Giordano\", \"Giorgetti\", \"Giorgi\", \"Giovacchini\", \"Giovannelli\", \"Giovannetti\", \"Giovannini\", \"Giovannoni\", \"Giuliani\", \"Giunti\", \"Giuntini\", \"Giusti\", \"Gonnelli\", \"Goretti\", \"Gori\", \"Gradi\", \"Gramigni\", \"Grassi\", \"Grasso\", \"Graziani\", \"Grazzini\", \"Greco\", \"Grifoni\", \"Grillo\", \"Grimaldi\", \"Grossi\", \"Gualtieri\", \"Guarducci\", \"Guarino\", \"Guarnieri\", \"Guasti\", \"Guerra\", \"Guerri\", \"Guerrini\", \"Guidi\", \"Guidotti\", \"He\", \"Hoxha\", \"Hu\", \"Huang\", \"Iandelli\", \"Ignesti\", \"Innocenti\", \"Jin\", \"La Rosa\", \"Lai\", \"Landi\", \"Landini\", \"Lanini\", \"Lapi\", \"Lapini\", \"Lari\", \"Lascialfari\", \"Lastrucci\", \"Latini\", \"Lazzeri\", \"Lazzerini\", \"Lelli\", \"Lenzi\", \"Leonardi\", \"Leoncini\", \"Leone\", \"Leoni\", \"Lepri\", \"Li\", \"Liao\", \"Lin\", \"Linari\", \"Lippi\", \"Lisi\", \"Livi\", \"Lombardi\", \"Lombardini\", \"Lombardo\", \"Longo\", \"Lopez\", \"Lorenzi\", \"Lorenzini\", \"Lorini\", \"Lotti\", \"Lu\", \"Lucchesi\", \"Lucherini\", \"Lunghi\", \"Lupi\", \"Madiai\", \"Maestrini\", \"Maffei\", \"Maggi\", \"Maggini\", \"Magherini\", \"Magini\", \"Magnani\", \"Magnelli\", \"Magni\", \"Magnolfi\", \"Magrini\", \"Malavolti\", \"Malevolti\", \"Manca\", \"Mancini\", \"Manetti\", \"Manfredi\", \"Mangani\", \"Mannelli\", \"Manni\", \"Mannini\", \"Mannucci\", \"Manuelli\", \"Manzini\", \"Marcelli\", \"Marchese\", \"Marchetti\", \"Marchi\", \"Marchiani\", \"Marchionni\", \"Marconi\", \"Marcucci\", \"Margheri\", \"Mari\", \"Mariani\", \"Marilli\", \"Marinai\", \"Marinari\", \"Marinelli\", \"Marini\", \"Marino\", \"Mariotti\", \"Marsili\", \"Martelli\", \"Martinelli\", \"Martini\", \"Martino\", \"Marzi\", \"Masi\", \"Masini\", \"Masoni\", \"Massai\", \"Materassi\", \"Mattei\", \"Matteini\", \"Matteucci\", \"Matteuzzi\", \"Mattioli\", \"Mattolini\", \"Matucci\", \"Mauro\", \"Mazzanti\", \"Mazzei\", \"Mazzetti\", \"Mazzi\", \"Mazzini\", \"Mazzocchi\", \"Mazzoli\", \"Mazzoni\", \"Mazzuoli\", \"Meacci\", \"Mecocci\", \"Meini\", \"Melani\", \"Mele\", \"Meli\", \"Mengoni\", \"Menichetti\", \"Meoni\", \"Merlini\", \"Messeri\", \"Messina\", \"Meucci\", \"Miccinesi\", \"Miceli\", \"Micheli\", \"Michelini\", \"Michelozzi\", \"Migliori\", \"Migliorini\", \"Milani\", \"Miniati\", \"Misuri\", \"Monaco\", \"Montagnani\", \"Montagni\", \"Montanari\", \"Montelatici\", \"Monti\", \"Montigiani\", \"Montini\", \"Morandi\", \"Morandini\", \"Morelli\", \"Moretti\", \"Morganti\", \"Mori\", \"Morini\", \"Moroni\", \"Morozzi\", \"Mugnai\", \"Mugnaini\", \"Mustafa\", \"Naldi\", \"Naldini\", \"Nannelli\", \"Nanni\", \"Nannini\", \"Nannucci\", \"Nardi\", \"Nardini\", \"Nardoni\", \"Natali\", \"Ndiaye\", \"Nencetti\", \"Nencini\", \"Nencioni\", \"Neri\", \"Nesi\", \"Nesti\", \"Niccolai\", \"Niccoli\", \"Niccolini\", \"Nigi\", \"Nistri\", \"Nocentini\", \"Noferini\", \"Novelli\", \"Nucci\", \"Nuti\", \"Nutini\", \"Oliva\", \"Olivieri\", \"Olmi\", \"Orlandi\", \"Orlandini\", \"Orlando\", \"Orsini\", \"Ortolani\", \"Ottanelli\", \"Pacciani\", \"Pace\", \"Paci\", \"Pacini\", \"Pagani\", \"Pagano\", \"Paggetti\", \"Pagliai\", \"Pagni\", \"Pagnini\", \"Paladini\", \"Palagi\", \"Palchetti\", \"Palloni\", \"Palmieri\", \"Palumbo\", \"Pampaloni\", \"Pancani\", \"Pandolfi\", \"Pandolfini\", \"Panerai\", \"Panichi\", \"Paoletti\", \"Paoli\", \"Paolini\", \"Papi\", \"Papini\", \"Papucci\", \"Parenti\", \"Parigi\", \"Parisi\", \"Parri\", \"Parrini\", \"Pasquini\", \"Passeri\", \"Pecchioli\", \"Pecorini\", \"Pellegrini\", \"Pepi\", \"Perini\", \"Perrone\", \"Peruzzi\", \"Pesci\", \"Pestelli\", \"Petri\", \"Petrini\", \"Petrucci\", \"Pettini\", \"Pezzati\", \"Pezzatini\", \"Piani\", \"Piazza\", \"Piazzesi\", \"Piazzini\", \"Piccardi\", \"Picchi\", \"Piccini\", \"Piccioli\", \"Pieraccini\", \"Pieraccioni\", \"Pieralli\", \"Pierattini\", \"Pieri\", \"Pierini\", \"Pieroni\", \"Pietrini\", \"Pini\", \"Pinna\", \"Pinto\", \"Pinzani\", \"Pinzauti\", \"Piras\", \"Pisani\", \"Pistolesi\", \"Poggesi\", \"Poggi\", \"Poggiali\", \"Poggiolini\", \"Poli\", \"Pollastri\", \"Porciani\", \"Pozzi\", \"Pratellesi\", \"Pratesi\", \"Prosperi\", \"Pruneti\", \"Pucci\", \"Puccini\", \"Puccioni\", \"Pugi\", \"Pugliese\", \"Puliti\", \"Querci\", \"Quercioli\", \"Raddi\", \"Radu\", \"Raffaelli\", \"Ragazzini\", \"Ranfagni\", \"Ranieri\", \"Rastrelli\", \"Raugei\", \"Raveggi\", \"Renai\", \"Renzi\", \"Rettori\", \"Ricci\", \"Ricciardi\", \"Ridi\", \"Ridolfi\", \"Rigacci\", \"Righi\", \"Righini\", \"Rinaldi\", \"Risaliti\", \"Ristori\", \"Rizzo\", \"Rocchi\", \"Rocchini\", \"Rogai\", \"Romagnoli\", \"Romanelli\", \"Romani\", \"Romano\", \"Romei\", \"Romeo\", \"Romiti\", \"Romoli\", \"Romolini\", \"Rontini\", \"Rosati\", \"Roselli\", \"Rosi\", \"Rossetti\", \"Rossi\", \"Rossini\", \"Rovai\", \"Ruggeri\", \"Ruggiero\", \"Russo\", \"Sabatini\", \"Saccardi\", \"Sacchetti\", \"Sacchi\", \"Sacco\", \"Salerno\", \"Salimbeni\", \"Salucci\", \"Salvadori\", \"Salvestrini\", \"Salvi\", \"Salvini\", \"Sanesi\", \"Sani\", \"Sanna\", \"Santi\", \"Santini\", \"Santoni\", \"Santoro\", \"Santucci\", \"Sardi\", \"Sarri\", \"Sarti\", \"Sassi\", \"Sbolci\", \"Scali\", \"Scarpelli\", \"Scarselli\", \"Scopetani\", \"Secci\", \"Selvi\", \"Senatori\", \"Senesi\", \"Serafini\", \"Sereni\", \"Serra\", \"Sestini\", \"Sguanci\", \"Sieni\", \"Signorini\", \"Silvestri\", \"Simoncini\", \"Simonetti\", \"Simoni\", \"Singh\", \"Sodi\", \"Soldi\", \"Somigli\", \"Sorbi\", \"Sorelli\", \"Sorrentino\", \"Sottili\", \"Spina\", \"Spinelli\", \"Staccioli\", \"Staderini\", \"Stefanelli\", \"Stefani\", \"Stefanini\", \"Stella\", \"Susini\", \"Tacchi\", \"Tacconi\", \"Taddei\", \"Tagliaferri\", \"Tamburini\", \"Tanganelli\", \"Tani\", \"Tanini\", \"Tapinassi\", \"Tarchi\", \"Tarchiani\", \"Targioni\", \"Tassi\", \"Tassini\", \"Tempesti\", \"Terzani\", \"Tesi\", \"Testa\", \"Testi\", \"Tilli\", \"Tinti\", \"Tirinnanzi\", \"Toccafondi\", \"Tofanari\", \"Tofani\", \"Tognaccini\", \"Tonelli\", \"Tonini\", \"Torelli\", \"Torrini\", \"Tosi\", \"Toti\", \"Tozzi\", \"Trambusti\", \"Trapani\", \"Tucci\", \"Turchi\", \"Ugolini\", \"Ulivi\", \"Valente\", \"Valenti\", \"Valentini\", \"Vangelisti\", \"Vanni\", \"Vannini\", \"Vannoni\", \"Vannozzi\", \"Vannucchi\", \"Vannucci\", \"Ventura\", \"Venturi\", \"Venturini\", \"Vestri\", \"Vettori\", \"Vichi\", \"Viciani\", \"Vieri\", \"Vigiani\", \"Vignoli\", \"Vignolini\", \"Vignozzi\", \"Villani\", \"Vinci\", \"Visani\", \"Vitale\", \"Vitali\", \"Viti\", \"Viviani\", \"Vivoli\", \"Volpe\", \"Volpi\", \"Wang\", \"Wu\", \"Xu\", \"Yang\", \"Ye\", \"Zagli\", \"Zani\", \"Zanieri\", \"Zanobini\", \"Zecchi\", \"Zetti\", \"Zhang\", \"Zheng\", \"Zhou\", \"Zhu\", \"Zingoni\", \"Zini\", \"Zoppi\"],\n // http://www.voornamelijk.nl/meest-voorkomende-achternamen-in-nederland-en-amsterdam/\n \"nl\":[\"Albers\", \"Alblas\", \"Appelman\", \"Baars\", \"Baas\", \"Bakker\", \"Blank\", \"Bleeker\", \"Blok\", \"Blom\", \"Boer\", \"Boers\", \"Boldewijn\", \"Boon\", \"Boot\", \"Bos\", \"Bosch\", \"Bosma\", \"Bosman\", \"Bouma\", \"Bouman\", \"Bouwman\", \"Brands\", \"Brouwer\", \"Burger\", \"Buijs\", \"Buitenhuis\", \"Ceder\", \"Cohen\", \"Dekker\", \"Dekkers\", \"Dijkman\", \"Dijkstra\", \"Driessen\", \"Drost\", \"Engel\", \"Evers\", \"Faber\", \"Franke\", \"Gerritsen\", \"Goedhart\", \"Goossens\", \"Groen\", \"Groenenberg\", \"Groot\", \"Haan\", \"Hart\", \"Heemskerk\", \"Hendriks\", \"Hermans\", \"Hoekstra\", \"Hofman\", \"Hopman\", \"Huisman\", \"Jacobs\", \"Jansen\", \"Janssen\", \"Jonker\", \"Jaspers\", \"Keijzer\", \"Klaassen\", \"Klein\", \"Koek\", \"Koenders\", \"Kok\", \"Kool\", \"Koopman\", \"Koopmans\", \"Koning\", \"Koster\", \"Kramer\", \"Kroon\", \"Kuijpers\", \"Kuiper\", \"Kuipers\", \"Kurt\", \"Koster\", \"Kwakman\", \"Los\", \"Lubbers\", \"Maas\", \"Markus\", \"Martens\", \"Meijer\", \"Mol\", \"Molenaar\", \"Mulder\", \"Nieuwenhuis\", \"Peeters\", \"Peters\", \"Pengel\", \"Pieters\", \"Pool\", \"Post\", \"Postma\", \"Prins\", \"Pronk\", \"Reijnders\", \"Rietveld\", \"Roest\", \"Roos\", \"Sanders\", \"Schaap\", \"Scheffer\", \"Schenk\", \"Schilder\", \"Schipper\", \"Schmidt\", \"Scholten\", \"Schouten\", \"Schut\", \"Schutte\", \"Schuurman\", \"Simons\", \"Smeets\", \"Smit\", \"Smits\", \"Snel\", \"Swinkels\", \"Tas\", \"Terpstra\", \"Timmermans\", \"Tol\", \"Tromp\", \"Troost\", \"Valk\", \"Veenstra\", \"Veldkamp\", \"Verbeek\", \"Verheul\", \"Verhoeven\", \"Vermeer\", \"Vermeulen\", \"Verweij\", \"Vink\", \"Visser\", \"Voorn\", \"Vos\", \"Wagenaar\", \"Wiersema\", \"Willems\", \"Willemsen\", \"Witteveen\", \"Wolff\", \"Wolters\", \"Zijlstra\", \"Zwart\", \"de Beer\", \"de Boer\", \"de Bruijn\", \"de Bruin\", \"de Graaf\", \"de Groot\", \"de Haan\", \"de Haas\", \"de Jager\", \"de Jong\", \"de Jonge\", \"de Koning\", \"de Lange\", \"de Leeuw\", \"de Ridder\", \"de Rooij\", \"de Ruiter\", \"de Vos\", \"de Vries\", \"de Waal\", \"de Wit\", \"de Zwart\", \"van Beek\", \"van Boven\", \"van Dam\", \"van Dijk\", \"van Dongen\", \"van Doorn\", \"van Egmond\", \"van Eijk\", \"van Es\", \"van Gelder\", \"van Gelderen\", \"van Houten\", \"van Hulst\", \"van Kempen\", \"van Kesteren\", \"van Leeuwen\", \"van Loon\", \"van Mill\", \"van Noord\", \"van Ommen\", \"van Ommeren\", \"van Oosten\", \"van Oostveen\", \"van Rijn\", \"van Schaik\", \"van Veen\", \"van Vliet\", \"van Wijk\", \"van Wijngaarden\", \"van den Poel\", \"van de Pol\", \"van den Ploeg\", \"van de Ven\", \"van den Berg\", \"van den Bosch\", \"van den Brink\", \"van den Broek\", \"van den Heuvel\", \"van der Heijden\", \"van der Horst\", \"van der Hulst\", \"van der Kroon\", \"van der Laan\", \"van der Linden\", \"van der Meer\", \"van der Meij\", \"van der Meulen\", \"van der Molen\", \"van der Sluis\", \"van der Spek\", \"van der Veen\", \"van der Velde\", \"van der Velden\", \"van der Vliet\", \"van der Wal\"],\n // https://surnames.behindthename.com/top/lists/england-wales/1991\n \"uk\":[\"Smith\",\"Jones\",\"Williams\",\"Taylor\",\"Brown\",\"Davies\",\"Evans\",\"Wilson\",\"Thomas\",\"Johnson\",\"Roberts\",\"Robinson\",\"Thompson\",\"Wright\",\"Walker\",\"White\",\"Edwards\",\"Hughes\",\"Green\",\"Hall\",\"Lewis\",\"Harris\",\"Clarke\",\"Patel\",\"Jackson\",\"Wood\",\"Turner\",\"Martin\",\"Cooper\",\"Hill\",\"Ward\",\"Morris\",\"Moore\",\"Clark\",\"Lee\",\"King\",\"Baker\",\"Harrison\",\"Morgan\",\"Allen\",\"James\",\"Scott\",\"Phillips\",\"Watson\",\"Davis\",\"Parker\",\"Price\",\"Bennett\",\"Young\",\"Griffiths\",\"Mitchell\",\"Kelly\",\"Cook\",\"Carter\",\"Richardson\",\"Bailey\",\"Collins\",\"Bell\",\"Shaw\",\"Murphy\",\"Miller\",\"Cox\",\"Richards\",\"Khan\",\"Marshall\",\"Anderson\",\"Simpson\",\"Ellis\",\"Adams\",\"Singh\",\"Begum\",\"Wilkinson\",\"Foster\",\"Chapman\",\"Powell\",\"Webb\",\"Rogers\",\"Gray\",\"Mason\",\"Ali\",\"Hunt\",\"Hussain\",\"Campbell\",\"Matthews\",\"Owen\",\"Palmer\",\"Holmes\",\"Mills\",\"Barnes\",\"Knight\",\"Lloyd\",\"Butler\",\"Russell\",\"Barker\",\"Fisher\",\"Stevens\",\"Jenkins\",\"Murray\",\"Dixon\",\"Harvey\",\"Graham\",\"Pearson\",\"Ahmed\",\"Fletcher\",\"Walsh\",\"Kaur\",\"Gibson\",\"Howard\",\"Andrews\",\"Stewart\",\"Elliott\",\"Reynolds\",\"Saunders\",\"Payne\",\"Fox\",\"Ford\",\"Pearce\",\"Day\",\"Brooks\",\"West\",\"Lawrence\",\"Cole\",\"Atkinson\",\"Bradley\",\"Spencer\",\"Gill\",\"Dawson\",\"Ball\",\"Burton\",\"O'brien\",\"Watts\",\"Rose\",\"Booth\",\"Perry\",\"Ryan\",\"Grant\",\"Wells\",\"Armstrong\",\"Francis\",\"Rees\",\"Hayes\",\"Hart\",\"Hudson\",\"Newman\",\"Barrett\",\"Webster\",\"Hunter\",\"Gregory\",\"Carr\",\"Lowe\",\"Page\",\"Marsh\",\"Riley\",\"Dunn\",\"Woods\",\"Parsons\",\"Berry\",\"Stone\",\"Reid\",\"Holland\",\"Hawkins\",\"Harding\",\"Porter\",\"Robertson\",\"Newton\",\"Oliver\",\"Reed\",\"Kennedy\",\"Williamson\",\"Bird\",\"Gardner\",\"Shah\",\"Dean\",\"Lane\",\"Cooke\",\"Bates\",\"Henderson\",\"Parry\",\"Burgess\",\"Bishop\",\"Walton\",\"Burns\",\"Nicholson\",\"Shepherd\",\"Ross\",\"Cross\",\"Long\",\"Freeman\",\"Warren\",\"Nicholls\",\"Hamilton\",\"Byrne\",\"Sutton\",\"Mcdonald\",\"Yates\",\"Hodgson\",\"Robson\",\"Curtis\",\"Hopkins\",\"O'connor\",\"Harper\",\"Coleman\",\"Watkins\",\"Moss\",\"Mccarthy\",\"Chambers\",\"O'neill\",\"Griffin\",\"Sharp\",\"Hardy\",\"Wheeler\",\"Potter\",\"Osborne\",\"Johnston\",\"Gordon\",\"Doyle\",\"Wallace\",\"George\",\"Jordan\",\"Hutchinson\",\"Rowe\",\"Burke\",\"May\",\"Pritchard\",\"Gilbert\",\"Willis\",\"Higgins\",\"Read\",\"Miles\",\"Stevenson\",\"Stephenson\",\"Hammond\",\"Arnold\",\"Buckley\",\"Walters\",\"Hewitt\",\"Barber\",\"Nelson\",\"Slater\",\"Austin\",\"Sullivan\",\"Whitehead\",\"Mann\",\"Frost\",\"Lambert\",\"Stephens\",\"Blake\",\"Akhtar\",\"Lynch\",\"Goodwin\",\"Barton\",\"Woodward\",\"Thomson\",\"Cunningham\",\"Quinn\",\"Barnett\",\"Baxter\",\"Bibi\",\"Clayton\",\"Nash\",\"Greenwood\",\"Jennings\",\"Holt\",\"Kemp\",\"Poole\",\"Gallagher\",\"Bond\",\"Stokes\",\"Tucker\",\"Davidson\",\"Fowler\",\"Heath\",\"Norman\",\"Middleton\",\"Lawson\",\"Banks\",\"French\",\"Stanley\",\"Jarvis\",\"Gibbs\",\"Ferguson\",\"Hayward\",\"Carroll\",\"Douglas\",\"Dickinson\",\"Todd\",\"Barlow\",\"Peters\",\"Lucas\",\"Knowles\",\"Hartley\",\"Miah\",\"Simmons\",\"Morton\",\"Alexander\",\"Field\",\"Morrison\",\"Norris\",\"Townsend\",\"Preston\",\"Hancock\",\"Thornton\",\"Baldwin\",\"Burrows\",\"Briggs\",\"Parkinson\",\"Reeves\",\"Macdonald\",\"Lamb\",\"Black\",\"Abbott\",\"Sanders\",\"Thorpe\",\"Holden\",\"Tomlinson\",\"Perkins\",\"Ashton\",\"Rhodes\",\"Fuller\",\"Howe\",\"Bryant\",\"Vaughan\",\"Dale\",\"Davey\",\"Weston\",\"Bartlett\",\"Whittaker\",\"Davison\",\"Kent\",\"Skinner\",\"Birch\",\"Morley\",\"Daniels\",\"Glover\",\"Howell\",\"Cartwright\",\"Pugh\",\"Humphreys\",\"Goddard\",\"Brennan\",\"Wall\",\"Kirby\",\"Bowen\",\"Savage\",\"Bull\",\"Wong\",\"Dobson\",\"Smart\",\"Wilkins\",\"Kirk\",\"Fraser\",\"Duffy\",\"Hicks\",\"Patterson\",\"Bradshaw\",\"Little\",\"Archer\",\"Warner\",\"Waters\",\"O'sullivan\",\"Farrell\",\"Brookes\",\"Atkins\",\"Kay\",\"Dodd\",\"Bentley\",\"Flynn\",\"John\",\"Schofield\",\"Short\",\"Haynes\",\"Wade\",\"Butcher\",\"Henry\",\"Sanderson\",\"Crawford\",\"Sheppard\",\"Bolton\",\"Coates\",\"Giles\",\"Gould\",\"Houghton\",\"Gibbons\",\"Pratt\",\"Manning\",\"Law\",\"Hooper\",\"Noble\",\"Dyer\",\"Rahman\",\"Clements\",\"Moran\",\"Sykes\",\"Chan\",\"Doherty\",\"Connolly\",\"Joyce\",\"Franklin\",\"Hobbs\",\"Coles\",\"Herbert\",\"Steele\",\"Kerr\",\"Leach\",\"Winter\",\"Owens\",\"Duncan\",\"Naylor\",\"Fleming\",\"Horton\",\"Finch\",\"Fitzgerald\",\"Randall\",\"Carpenter\",\"Marsden\",\"Browne\",\"Garner\",\"Pickering\",\"Hale\",\"Dennis\",\"Vincent\",\"Chadwick\",\"Chandler\",\"Sharpe\",\"Nolan\",\"Lyons\",\"Hurst\",\"Collier\",\"Peacock\",\"Howarth\",\"Faulkner\",\"Rice\",\"Pollard\",\"Welch\",\"Norton\",\"Gough\",\"Sinclair\",\"Blackburn\",\"Bryan\",\"Conway\",\"Power\",\"Cameron\",\"Daly\",\"Allan\",\"Hanson\",\"Gardiner\",\"Boyle\",\"Myers\",\"Turnbull\",\"Wallis\",\"Mahmood\",\"Sims\",\"Swift\",\"Iqbal\",\"Pope\",\"Brady\",\"Chamberlain\",\"Rowley\",\"Tyler\",\"Farmer\",\"Metcalfe\",\"Hilton\",\"Godfrey\",\"Holloway\",\"Parkin\",\"Bray\",\"Talbot\",\"Donnelly\",\"Nixon\",\"Charlton\",\"Benson\",\"Whitehouse\",\"Barry\",\"Hope\",\"Lord\",\"North\",\"Storey\",\"Connor\",\"Potts\",\"Bevan\",\"Hargreaves\",\"Mclean\",\"Mistry\",\"Bruce\",\"Howells\",\"Hyde\",\"Parkes\",\"Wyatt\",\"Fry\",\"Lees\",\"O'donnell\",\"Craig\",\"Forster\",\"Mckenzie\",\"Humphries\",\"Mellor\",\"Carey\",\"Ingram\",\"Summers\",\"Leonard\"],\n // https://surnames.behindthename.com/top/lists/germany/2017\n \"de\": [\"Müller\",\"Schmidt\",\"Schneider\",\"Fischer\",\"Weber\",\"Meyer\",\"Wagner\",\"Becker\",\"Schulz\",\"Hoffmann\",\"Schäfer\",\"Koch\",\"Bauer\",\"Richter\",\"Klein\",\"Wolf\",\"Schröder\",\"Neumann\",\"Schwarz\",\"Zimmermann\",\"Braun\",\"Krüger\",\"Hofmann\",\"Hartmann\",\"Lange\",\"Schmitt\",\"Werner\",\"Schmitz\",\"Krause\",\"Meier\",\"Lehmann\",\"Schmid\",\"Schulze\",\"Maier\",\"Köhler\",\"Herrmann\",\"König\",\"Walter\",\"Mayer\",\"Huber\",\"Kaiser\",\"Fuchs\",\"Peters\",\"Lang\",\"Scholz\",\"Möller\",\"Weiß\",\"Jung\",\"Hahn\",\"Schubert\",\"Vogel\",\"Friedrich\",\"Keller\",\"Günther\",\"Frank\",\"Berger\",\"Winkler\",\"Roth\",\"Beck\",\"Lorenz\",\"Baumann\",\"Franke\",\"Albrecht\",\"Schuster\",\"Simon\",\"Ludwig\",\"Böhm\",\"Winter\",\"Kraus\",\"Martin\",\"Schumacher\",\"Krämer\",\"Vogt\",\"Stein\",\"Jäger\",\"Otto\",\"Sommer\",\"Groß\",\"Seidel\",\"Heinrich\",\"Brandt\",\"Haas\",\"Schreiber\",\"Graf\",\"Schulte\",\"Dietrich\",\"Ziegler\",\"Kuhn\",\"Kühn\",\"Pohl\",\"Engel\",\"Horn\",\"Busch\",\"Bergmann\",\"Thomas\",\"Voigt\",\"Sauer\",\"Arnold\",\"Wolff\",\"Pfeiffer\"],\n // http://www.japantimes.co.jp/life/2009/10/11/lifestyle/japans-top-100-most-common-family-names/\n \"jp\": [\"Sato\",\"Suzuki\",\"Takahashi\",\"Tanaka\",\"Watanabe\",\"Ito\",\"Yamamoto\",\"Nakamura\",\"Kobayashi\",\"Kato\",\"Yoshida\",\"Yamada\",\"Sasaki\",\"Yamaguchi\",\"Saito\",\"Matsumoto\",\"Inoue\",\"Kimura\",\"Hayashi\",\"Shimizu\",\"Yamazaki\",\"Mori\",\"Abe\",\"Ikeda\",\"Hashimoto\",\"Yamashita\",\"Ishikawa\",\"Nakajima\",\"Maeda\",\"Fujita\",\"Ogawa\",\"Goto\",\"Okada\",\"Hasegawa\",\"Murakami\",\"Kondo\",\"Ishii\",\"Saito\",\"Sakamoto\",\"Endo\",\"Aoki\",\"Fujii\",\"Nishimura\",\"Fukuda\",\"Ota\",\"Miura\",\"Fujiwara\",\"Okamoto\",\"Matsuda\",\"Nakagawa\",\"Nakano\",\"Harada\",\"Ono\",\"Tamura\",\"Takeuchi\",\"Kaneko\",\"Wada\",\"Nakayama\",\"Ishida\",\"Ueda\",\"Morita\",\"Hara\",\"Shibata\",\"Sakai\",\"Kudo\",\"Yokoyama\",\"Miyazaki\",\"Miyamoto\",\"Uchida\",\"Takagi\",\"Ando\",\"Taniguchi\",\"Ohno\",\"Maruyama\",\"Imai\",\"Takada\",\"Fujimoto\",\"Takeda\",\"Murata\",\"Ueno\",\"Sugiyama\",\"Masuda\",\"Sugawara\",\"Hirano\",\"Kojima\",\"Otsuka\",\"Chiba\",\"Kubo\",\"Matsui\",\"Iwasaki\",\"Sakurai\",\"Kinoshita\",\"Noguchi\",\"Matsuo\",\"Nomura\",\"Kikuchi\",\"Sano\",\"Onishi\",\"Sugimoto\",\"Arai\"],\n // http://www.lowchensaustralia.com/names/popular-spanish-names.htm\n \"es\": [\"Garcia\",\"Fernandez\",\"Lopez\",\"Martinez\",\"Gonzalez\",\"Rodriguez\",\"Sanchez\",\"Perez\",\"Martin\",\"Gomez\",\"Ruiz\",\"Diaz\",\"Hernandez\",\"Alvarez\",\"Jimenez\",\"Moreno\",\"Munoz\",\"Alonso\",\"Romero\",\"Navarro\",\"Gutierrez\",\"Torres\",\"Dominguez\",\"Gil\",\"Vazquez\",\"Blanco\",\"Serrano\",\"Ramos\",\"Castro\",\"Suarez\",\"Sanz\",\"Rubio\",\"Ortega\",\"Molina\",\"Delgado\",\"Ortiz\",\"Morales\",\"Ramirez\",\"Marin\",\"Iglesias\",\"Santos\",\"Castillo\",\"Garrido\",\"Calvo\",\"Pena\",\"Cruz\",\"Cano\",\"Nunez\",\"Prieto\",\"Diez\",\"Lozano\",\"Vidal\",\"Pascual\",\"Ferrer\",\"Medina\",\"Vega\",\"Leon\",\"Herrero\",\"Vicente\",\"Mendez\",\"Guerrero\",\"Fuentes\",\"Campos\",\"Nieto\",\"Cortes\",\"Caballero\",\"Ibanez\",\"Lorenzo\",\"Pastor\",\"Gimenez\",\"Saez\",\"Soler\",\"Marquez\",\"Carrasco\",\"Herrera\",\"Montero\",\"Arias\",\"Crespo\",\"Flores\",\"Andres\",\"Aguilar\",\"Hidalgo\",\"Cabrera\",\"Mora\",\"Duran\",\"Velasco\",\"Rey\",\"Pardo\",\"Roman\",\"Vila\",\"Bravo\",\"Merino\",\"Moya\",\"Soto\",\"Izquierdo\",\"Reyes\",\"Redondo\",\"Marcos\",\"Carmona\",\"Menendez\"],\n // Data taken from https://fr.wikipedia.org/wiki/Liste_des_noms_de_famille_les_plus_courants_en_France\n \"fr\": [\"Martin\",\"Bernard\",\"Thomas\",\"Petit\",\"Robert\",\"Richard\",\"Durand\",\"Dubois\",\"Moreau\",\"Laurent\",\"Simon\",\"Michel\",\"Lefèvre\",\"Leroy\",\"Roux\",\"David\",\"Bertrand\",\"Morel\",\"Fournier\",\"Girard\",\"Bonnet\",\"Dupont\",\"Lambert\",\"Fontaine\",\"Rousseau\",\"Vincent\",\"Müller\",\"Lefèvre\",\"Faure\",\"André\",\"Mercier\",\"Blanc\",\"Guérin\",\"Boyer\",\"Garnier\",\"Chevalier\",\"François\",\"Legrand\",\"Gauthier\",\"Garcia\",\"Perrin\",\"Robin\",\"Clément\",\"Morin\",\"Nicolas\",\"Henry\",\"Roussel\",\"Matthieu\",\"Gautier\",\"Masson\",\"Marchand\",\"Duval\",\"Denis\",\"Dumont\",\"Marie\",\"Lemaire\",\"Noël\",\"Meyer\",\"Dufour\",\"Meunier\",\"Brun\",\"Blanchard\",\"Giraud\",\"Joly\",\"Rivière\",\"Lucas\",\"Brunet\",\"Gaillard\",\"Barbier\",\"Arnaud\",\"Martínez\",\"Gérard\",\"Roche\",\"Renard\",\"Schmitt\",\"Roy\",\"Leroux\",\"Colin\",\"Vidal\",\"Caron\",\"Picard\",\"Roger\",\"Fabre\",\"Aubert\",\"Lemoine\",\"Renaud\",\"Dumas\",\"Lacroix\",\"Olivier\",\"Philippe\",\"Bourgeois\",\"Pierre\",\"Benoît\",\"Rey\",\"Leclerc\",\"Payet\",\"Rolland\",\"Leclercq\",\"Guillaume\",\"Lecomte\",\"López\",\"Jean\",\"Dupuy\",\"Guillot\",\"Hubert\",\"Berger\",\"Carpentier\",\"Sánchez\",\"Dupuis\",\"Moulin\",\"Louis\",\"Deschamps\",\"Huet\",\"Vasseur\",\"Perez\",\"Boucher\",\"Fleury\",\"Royer\",\"Klein\",\"Jacquet\",\"Adam\",\"Paris\",\"Poirier\",\"Marty\",\"Aubry\",\"Guyot\",\"Carré\",\"Charles\",\"Renault\",\"Charpentier\",\"Ménard\",\"Maillard\",\"Baron\",\"Bertin\",\"Bailly\",\"Hervé\",\"Schneider\",\"Fernández\",\"Le GallGall\",\"Collet\",\"Léger\",\"Bouvier\",\"Julien\",\"Prévost\",\"Millet\",\"Perrot\",\"Daniel\",\"Le RouxRoux\",\"Cousin\",\"Germain\",\"Breton\",\"Besson\",\"Langlois\",\"Rémi\",\"Le GoffGoff\",\"Pelletier\",\"Lévêque\",\"Perrier\",\"Leblanc\",\"Barré\",\"Lebrun\",\"Marchal\",\"Weber\",\"Mallet\",\"Hamon\",\"Boulanger\",\"Jacob\",\"Monnier\",\"Michaud\",\"Rodríguez\",\"Guichard\",\"Gillet\",\"Étienne\",\"Grondin\",\"Poulain\",\"Tessier\",\"Chevallier\",\"Collin\",\"Chauvin\",\"Da SilvaSilva\",\"Bouchet\",\"Gay\",\"Lemaître\",\"Bénard\",\"Maréchal\",\"Humbert\",\"Reynaud\",\"Antoine\",\"Hoarau\",\"Perret\",\"Barthélemy\",\"Cordier\",\"Pichon\",\"Lejeune\",\"Gilbert\",\"Lamy\",\"Delaunay\",\"Pasquier\",\"Carlier\",\"LaporteLaporte\"]\n },\n\n // Data taken from http://geoportal.statistics.gov.uk/datasets/ons-postcode-directory-latest-centroids\n postcodeAreas: [{code: 'AB'}, {code: 'AL'}, {code: 'B'}, {code: 'BA'}, {code: 'BB'}, {code: 'BD'}, {code: 'BH'}, {code: 'BL'}, {code: 'BN'}, {code: 'BR'}, {code: 'BS'}, {code: 'BT'}, {code: 'CA'}, {code: 'CB'}, {code: 'CF'}, {code: 'CH'}, {code: 'CM'}, {code: 'CO'}, {code: 'CR'}, {code: 'CT'}, {code: 'CV'}, {code: 'CW'}, {code: 'DA'}, {code: 'DD'}, {code: 'DE'}, {code: 'DG'}, {code: 'DH'}, {code: 'DL'}, {code: 'DN'}, {code: 'DT'}, {code: 'DY'}, {code: 'E'}, {code: 'EC'}, {code: 'EH'}, {code: 'EN'}, {code: 'EX'}, {code: 'FK'}, {code: 'FY'}, {code: 'G'}, {code: 'GL'}, {code: 'GU'}, {code: 'GY'}, {code: 'HA'}, {code: 'HD'}, {code: 'HG'}, {code: 'HP'}, {code: 'HR'}, {code: 'HS'}, {code: 'HU'}, {code: 'HX'}, {code: 'IG'}, {code: 'IM'}, {code: 'IP'}, {code: 'IV'}, {code: 'JE'}, {code: 'KA'}, {code: 'KT'}, {code: 'KW'}, {code: 'KY'}, {code: 'L'}, {code: 'LA'}, {code: 'LD'}, {code: 'LE'}, {code: 'LL'}, {code: 'LN'}, {code: 'LS'}, {code: 'LU'}, {code: 'M'}, {code: 'ME'}, {code: 'MK'}, {code: 'ML'}, {code: 'N'}, {code: 'NE'}, {code: 'NG'}, {code: 'NN'}, {code: 'NP'}, {code: 'NR'}, {code: 'NW'}, {code: 'OL'}, {code: 'OX'}, {code: 'PA'}, {code: 'PE'}, {code: 'PH'}, {code: 'PL'}, {code: 'PO'}, {code: 'PR'}, {code: 'RG'}, {code: 'RH'}, {code: 'RM'}, {code: 'S'}, {code: 'SA'}, {code: 'SE'}, {code: 'SG'}, {code: 'SK'}, {code: 'SL'}, {code: 'SM'}, {code: 'SN'}, {code: 'SO'}, {code: 'SP'}, {code: 'SR'}, {code: 'SS'}, {code: 'ST'}, {code: 'SW'}, {code: 'SY'}, {code: 'TA'}, {code: 'TD'}, {code: 'TF'}, {code: 'TN'}, {code: 'TQ'}, {code: 'TR'}, {code: 'TS'}, {code: 'TW'}, {code: 'UB'}, {code: 'W'}, {code: 'WA'}, {code: 'WC'}, {code: 'WD'}, {code: 'WF'}, {code: 'WN'}, {code: 'WR'}, {code: 'WS'}, {code: 'WV'}, {code: 'YO'}, {code: 'ZE'}],\n\n // Data taken from https://github.com/umpirsky/country-list/blob/master/data/en_US/country.json\n countries: [{\"name\":\"Afghanistan\",\"abbreviation\":\"AF\"},{\"name\":\"Åland Islands\",\"abbreviation\":\"AX\"},{\"name\":\"Albania\",\"abbreviation\":\"AL\"},{\"name\":\"Algeria\",\"abbreviation\":\"DZ\"},{\"name\":\"American Samoa\",\"abbreviation\":\"AS\"},{\"name\":\"Andorra\",\"abbreviation\":\"AD\"},{\"name\":\"Angola\",\"abbreviation\":\"AO\"},{\"name\":\"Anguilla\",\"abbreviation\":\"AI\"},{\"name\":\"Antarctica\",\"abbreviation\":\"AQ\"},{\"name\":\"Antigua & Barbuda\",\"abbreviation\":\"AG\"},{\"name\":\"Argentina\",\"abbreviation\":\"AR\"},{\"name\":\"Armenia\",\"abbreviation\":\"AM\"},{\"name\":\"Aruba\",\"abbreviation\":\"AW\"},{\"name\":\"Ascension Island\",\"abbreviation\":\"AC\"},{\"name\":\"Australia\",\"abbreviation\":\"AU\"},{\"name\":\"Austria\",\"abbreviation\":\"AT\"},{\"name\":\"Azerbaijan\",\"abbreviation\":\"AZ\"},{\"name\":\"Bahamas\",\"abbreviation\":\"BS\"},{\"name\":\"Bahrain\",\"abbreviation\":\"BH\"},{\"name\":\"Bangladesh\",\"abbreviation\":\"BD\"},{\"name\":\"Barbados\",\"abbreviation\":\"BB\"},{\"name\":\"Belarus\",\"abbreviation\":\"BY\"},{\"name\":\"Belgium\",\"abbreviation\":\"BE\"},{\"name\":\"Belize\",\"abbreviation\":\"BZ\"},{\"name\":\"Benin\",\"abbreviation\":\"BJ\"},{\"name\":\"Bermuda\",\"abbreviation\":\"BM\"},{\"name\":\"Bhutan\",\"abbreviation\":\"BT\"},{\"name\":\"Bolivia\",\"abbreviation\":\"BO\"},{\"name\":\"Bosnia & Herzegovina\",\"abbreviation\":\"BA\"},{\"name\":\"Botswana\",\"abbreviation\":\"BW\"},{\"name\":\"Brazil\",\"abbreviation\":\"BR\"},{\"name\":\"British Indian Ocean Territory\",\"abbreviation\":\"IO\"},{\"name\":\"British Virgin Islands\",\"abbreviation\":\"VG\"},{\"name\":\"Brunei\",\"abbreviation\":\"BN\"},{\"name\":\"Bulgaria\",\"abbreviation\":\"BG\"},{\"name\":\"Burkina Faso\",\"abbreviation\":\"BF\"},{\"name\":\"Burundi\",\"abbreviation\":\"BI\"},{\"name\":\"Cambodia\",\"abbreviation\":\"KH\"},{\"name\":\"Cameroon\",\"abbreviation\":\"CM\"},{\"name\":\"Canada\",\"abbreviation\":\"CA\"},{\"name\":\"Canary Islands\",\"abbreviation\":\"IC\"},{\"name\":\"Cape Verde\",\"abbreviation\":\"CV\"},{\"name\":\"Caribbean Netherlands\",\"abbreviation\":\"BQ\"},{\"name\":\"Cayman Islands\",\"abbreviation\":\"KY\"},{\"name\":\"Central African Republic\",\"abbreviation\":\"CF\"},{\"name\":\"Ceuta & Melilla\",\"abbreviation\":\"EA\"},{\"name\":\"Chad\",\"abbreviation\":\"TD\"},{\"name\":\"Chile\",\"abbreviation\":\"CL\"},{\"name\":\"China\",\"abbreviation\":\"CN\"},{\"name\":\"Christmas Island\",\"abbreviation\":\"CX\"},{\"name\":\"Cocos (Keeling) Islands\",\"abbreviation\":\"CC\"},{\"name\":\"Colombia\",\"abbreviation\":\"CO\"},{\"name\":\"Comoros\",\"abbreviation\":\"KM\"},{\"name\":\"Congo - Brazzaville\",\"abbreviation\":\"CG\"},{\"name\":\"Congo - Kinshasa\",\"abbreviation\":\"CD\"},{\"name\":\"Cook Islands\",\"abbreviation\":\"CK\"},{\"name\":\"Costa Rica\",\"abbreviation\":\"CR\"},{\"name\":\"Côte d'Ivoire\",\"abbreviation\":\"CI\"},{\"name\":\"Croatia\",\"abbreviation\":\"HR\"},{\"name\":\"Cuba\",\"abbreviation\":\"CU\"},{\"name\":\"Curaçao\",\"abbreviation\":\"CW\"},{\"name\":\"Cyprus\",\"abbreviation\":\"CY\"},{\"name\":\"Czech Republic\",\"abbreviation\":\"CZ\"},{\"name\":\"Denmark\",\"abbreviation\":\"DK\"},{\"name\":\"Diego Garcia\",\"abbreviation\":\"DG\"},{\"name\":\"Djibouti\",\"abbreviation\":\"DJ\"},{\"name\":\"Dominica\",\"abbreviation\":\"DM\"},{\"name\":\"Dominican Republic\",\"abbreviation\":\"DO\"},{\"name\":\"Ecuador\",\"abbreviation\":\"EC\"},{\"name\":\"Egypt\",\"abbreviation\":\"EG\"},{\"name\":\"El Salvador\",\"abbreviation\":\"SV\"},{\"name\":\"Equatorial Guinea\",\"abbreviation\":\"GQ\"},{\"name\":\"Eritrea\",\"abbreviation\":\"ER\"},{\"name\":\"Estonia\",\"abbreviation\":\"EE\"},{\"name\":\"Ethiopia\",\"abbreviation\":\"ET\"},{\"name\":\"Falkland Islands\",\"abbreviation\":\"FK\"},{\"name\":\"Faroe Islands\",\"abbreviation\":\"FO\"},{\"name\":\"Fiji\",\"abbreviation\":\"FJ\"},{\"name\":\"Finland\",\"abbreviation\":\"FI\"},{\"name\":\"France\",\"abbreviation\":\"FR\"},{\"name\":\"French Guiana\",\"abbreviation\":\"GF\"},{\"name\":\"French Polynesia\",\"abbreviation\":\"PF\"},{\"name\":\"French Southern Territories\",\"abbreviation\":\"TF\"},{\"name\":\"Gabon\",\"abbreviation\":\"GA\"},{\"name\":\"Gambia\",\"abbreviation\":\"GM\"},{\"name\":\"Georgia\",\"abbreviation\":\"GE\"},{\"name\":\"Germany\",\"abbreviation\":\"DE\"},{\"name\":\"Ghana\",\"abbreviation\":\"GH\"},{\"name\":\"Gibraltar\",\"abbreviation\":\"GI\"},{\"name\":\"Greece\",\"abbreviation\":\"GR\"},{\"name\":\"Greenland\",\"abbreviation\":\"GL\"},{\"name\":\"Grenada\",\"abbreviation\":\"GD\"},{\"name\":\"Guadeloupe\",\"abbreviation\":\"GP\"},{\"name\":\"Guam\",\"abbreviation\":\"GU\"},{\"name\":\"Guatemala\",\"abbreviation\":\"GT\"},{\"name\":\"Guernsey\",\"abbreviation\":\"GG\"},{\"name\":\"Guinea\",\"abbreviation\":\"GN\"},{\"name\":\"Guinea-Bissau\",\"abbreviation\":\"GW\"},{\"name\":\"Guyana\",\"abbreviation\":\"GY\"},{\"name\":\"Haiti\",\"abbreviation\":\"HT\"},{\"name\":\"Honduras\",\"abbreviation\":\"HN\"},{\"name\":\"Hong Kong SAR China\",\"abbreviation\":\"HK\"},{\"name\":\"Hungary\",\"abbreviation\":\"HU\"},{\"name\":\"Iceland\",\"abbreviation\":\"IS\"},{\"name\":\"India\",\"abbreviation\":\"IN\"},{\"name\":\"Indonesia\",\"abbreviation\":\"ID\"},{\"name\":\"Iran\",\"abbreviation\":\"IR\"},{\"name\":\"Iraq\",\"abbreviation\":\"IQ\"},{\"name\":\"Ireland\",\"abbreviation\":\"IE\"},{\"name\":\"Isle of Man\",\"abbreviation\":\"IM\"},{\"name\":\"Israel\",\"abbreviation\":\"IL\"},{\"name\":\"Italy\",\"abbreviation\":\"IT\"},{\"name\":\"Jamaica\",\"abbreviation\":\"JM\"},{\"name\":\"Japan\",\"abbreviation\":\"JP\"},{\"name\":\"Jersey\",\"abbreviation\":\"JE\"},{\"name\":\"Jordan\",\"abbreviation\":\"JO\"},{\"name\":\"Kazakhstan\",\"abbreviation\":\"KZ\"},{\"name\":\"Kenya\",\"abbreviation\":\"KE\"},{\"name\":\"Kiribati\",\"abbreviation\":\"KI\"},{\"name\":\"Kosovo\",\"abbreviation\":\"XK\"},{\"name\":\"Kuwait\",\"abbreviation\":\"KW\"},{\"name\":\"Kyrgyzstan\",\"abbreviation\":\"KG\"},{\"name\":\"Laos\",\"abbreviation\":\"LA\"},{\"name\":\"Latvia\",\"abbreviation\":\"LV\"},{\"name\":\"Lebanon\",\"abbreviation\":\"LB\"},{\"name\":\"Lesotho\",\"abbreviation\":\"LS\"},{\"name\":\"Liberia\",\"abbreviation\":\"LR\"},{\"name\":\"Libya\",\"abbreviation\":\"LY\"},{\"name\":\"Liechtenstein\",\"abbreviation\":\"LI\"},{\"name\":\"Lithuania\",\"abbreviation\":\"LT\"},{\"name\":\"Luxembourg\",\"abbreviation\":\"LU\"},{\"name\":\"Macau SAR China\",\"abbreviation\":\"MO\"},{\"name\":\"Macedonia\",\"abbreviation\":\"MK\"},{\"name\":\"Madagascar\",\"abbreviation\":\"MG\"},{\"name\":\"Malawi\",\"abbreviation\":\"MW\"},{\"name\":\"Malaysia\",\"abbreviation\":\"MY\"},{\"name\":\"Maldives\",\"abbreviation\":\"MV\"},{\"name\":\"Mali\",\"abbreviation\":\"ML\"},{\"name\":\"Malta\",\"abbreviation\":\"MT\"},{\"name\":\"Marshall Islands\",\"abbreviation\":\"MH\"},{\"name\":\"Martinique\",\"abbreviation\":\"MQ\"},{\"name\":\"Mauritania\",\"abbreviation\":\"MR\"},{\"name\":\"Mauritius\",\"abbreviation\":\"MU\"},{\"name\":\"Mayotte\",\"abbreviation\":\"YT\"},{\"name\":\"Mexico\",\"abbreviation\":\"MX\"},{\"name\":\"Micronesia\",\"abbreviation\":\"FM\"},{\"name\":\"Moldova\",\"abbreviation\":\"MD\"},{\"name\":\"Monaco\",\"abbreviation\":\"MC\"},{\"name\":\"Mongolia\",\"abbreviation\":\"MN\"},{\"name\":\"Montenegro\",\"abbreviation\":\"ME\"},{\"name\":\"Montserrat\",\"abbreviation\":\"MS\"},{\"name\":\"Morocco\",\"abbreviation\":\"MA\"},{\"name\":\"Mozambique\",\"abbreviation\":\"MZ\"},{\"name\":\"Myanmar (Burma)\",\"abbreviation\":\"MM\"},{\"name\":\"Namibia\",\"abbreviation\":\"NA\"},{\"name\":\"Nauru\",\"abbreviation\":\"NR\"},{\"name\":\"Nepal\",\"abbreviation\":\"NP\"},{\"name\":\"Netherlands\",\"abbreviation\":\"NL\"},{\"name\":\"New Caledonia\",\"abbreviation\":\"NC\"},{\"name\":\"New Zealand\",\"abbreviation\":\"NZ\"},{\"name\":\"Nicaragua\",\"abbreviation\":\"NI\"},{\"name\":\"Niger\",\"abbreviation\":\"NE\"},{\"name\":\"Nigeria\",\"abbreviation\":\"NG\"},{\"name\":\"Niue\",\"abbreviation\":\"NU\"},{\"name\":\"Norfolk Island\",\"abbreviation\":\"NF\"},{\"name\":\"North Korea\",\"abbreviation\":\"KP\"},{\"name\":\"Northern Mariana Islands\",\"abbreviation\":\"MP\"},{\"name\":\"Norway\",\"abbreviation\":\"NO\"},{\"name\":\"Oman\",\"abbreviation\":\"OM\"},{\"name\":\"Pakistan\",\"abbreviation\":\"PK\"},{\"name\":\"Palau\",\"abbreviation\":\"PW\"},{\"name\":\"Palestinian Territories\",\"abbreviation\":\"PS\"},{\"name\":\"Panama\",\"abbreviation\":\"PA\"},{\"name\":\"Papua New Guinea\",\"abbreviation\":\"PG\"},{\"name\":\"Paraguay\",\"abbreviation\":\"PY\"},{\"name\":\"Peru\",\"abbreviation\":\"PE\"},{\"name\":\"Philippines\",\"abbreviation\":\"PH\"},{\"name\":\"Pitcairn Islands\",\"abbreviation\":\"PN\"},{\"name\":\"Poland\",\"abbreviation\":\"PL\"},{\"name\":\"Portugal\",\"abbreviation\":\"PT\"},{\"name\":\"Puerto Rico\",\"abbreviation\":\"PR\"},{\"name\":\"Qatar\",\"abbreviation\":\"QA\"},{\"name\":\"Réunion\",\"abbreviation\":\"RE\"},{\"name\":\"Romania\",\"abbreviation\":\"RO\"},{\"name\":\"Russia\",\"abbreviation\":\"RU\"},{\"name\":\"Rwanda\",\"abbreviation\":\"RW\"},{\"name\":\"Samoa\",\"abbreviation\":\"WS\"},{\"name\":\"San Marino\",\"abbreviation\":\"SM\"},{\"name\":\"São Tomé and Príncipe\",\"abbreviation\":\"ST\"},{\"name\":\"Saudi Arabia\",\"abbreviation\":\"SA\"},{\"name\":\"Senegal\",\"abbreviation\":\"SN\"},{\"name\":\"Serbia\",\"abbreviation\":\"RS\"},{\"name\":\"Seychelles\",\"abbreviation\":\"SC\"},{\"name\":\"Sierra Leone\",\"abbreviation\":\"SL\"},{\"name\":\"Singapore\",\"abbreviation\":\"SG\"},{\"name\":\"Sint Maarten\",\"abbreviation\":\"SX\"},{\"name\":\"Slovakia\",\"abbreviation\":\"SK\"},{\"name\":\"Slovenia\",\"abbreviation\":\"SI\"},{\"name\":\"Solomon Islands\",\"abbreviation\":\"SB\"},{\"name\":\"Somalia\",\"abbreviation\":\"SO\"},{\"name\":\"South Africa\",\"abbreviation\":\"ZA\"},{\"name\":\"South Georgia & South Sandwich Islands\",\"abbreviation\":\"GS\"},{\"name\":\"South Korea\",\"abbreviation\":\"KR\"},{\"name\":\"South Sudan\",\"abbreviation\":\"SS\"},{\"name\":\"Spain\",\"abbreviation\":\"ES\"},{\"name\":\"Sri Lanka\",\"abbreviation\":\"LK\"},{\"name\":\"St. Barthélemy\",\"abbreviation\":\"BL\"},{\"name\":\"St. Helena\",\"abbreviation\":\"SH\"},{\"name\":\"St. Kitts & Nevis\",\"abbreviation\":\"KN\"},{\"name\":\"St. Lucia\",\"abbreviation\":\"LC\"},{\"name\":\"St. Martin\",\"abbreviation\":\"MF\"},{\"name\":\"St. Pierre & Miquelon\",\"abbreviation\":\"PM\"},{\"name\":\"St. Vincent & Grenadines\",\"abbreviation\":\"VC\"},{\"name\":\"Sudan\",\"abbreviation\":\"SD\"},{\"name\":\"Suriname\",\"abbreviation\":\"SR\"},{\"name\":\"Svalbard & Jan Mayen\",\"abbreviation\":\"SJ\"},{\"name\":\"Swaziland\",\"abbreviation\":\"SZ\"},{\"name\":\"Sweden\",\"abbreviation\":\"SE\"},{\"name\":\"Switzerland\",\"abbreviation\":\"CH\"},{\"name\":\"Syria\",\"abbreviation\":\"SY\"},{\"name\":\"Taiwan\",\"abbreviation\":\"TW\"},{\"name\":\"Tajikistan\",\"abbreviation\":\"TJ\"},{\"name\":\"Tanzania\",\"abbreviation\":\"TZ\"},{\"name\":\"Thailand\",\"abbreviation\":\"TH\"},{\"name\":\"Timor-Leste\",\"abbreviation\":\"TL\"},{\"name\":\"Togo\",\"abbreviation\":\"TG\"},{\"name\":\"Tokelau\",\"abbreviation\":\"TK\"},{\"name\":\"Tonga\",\"abbreviation\":\"TO\"},{\"name\":\"Trinidad & Tobago\",\"abbreviation\":\"TT\"},{\"name\":\"Tristan da Cunha\",\"abbreviation\":\"TA\"},{\"name\":\"Tunisia\",\"abbreviation\":\"TN\"},{\"name\":\"Turkey\",\"abbreviation\":\"TR\"},{\"name\":\"Turkmenistan\",\"abbreviation\":\"TM\"},{\"name\":\"Turks & Caicos Islands\",\"abbreviation\":\"TC\"},{\"name\":\"Tuvalu\",\"abbreviation\":\"TV\"},{\"name\":\"U.S. Outlying Islands\",\"abbreviation\":\"UM\"},{\"name\":\"U.S. Virgin Islands\",\"abbreviation\":\"VI\"},{\"name\":\"Uganda\",\"abbreviation\":\"UG\"},{\"name\":\"Ukraine\",\"abbreviation\":\"UA\"},{\"name\":\"United Arab Emirates\",\"abbreviation\":\"AE\"},{\"name\":\"United Kingdom\",\"abbreviation\":\"GB\"},{\"name\":\"United States\",\"abbreviation\":\"US\"},{\"name\":\"Uruguay\",\"abbreviation\":\"UY\"},{\"name\":\"Uzbekistan\",\"abbreviation\":\"UZ\"},{\"name\":\"Vanuatu\",\"abbreviation\":\"VU\"},{\"name\":\"Vatican City\",\"abbreviation\":\"VA\"},{\"name\":\"Venezuela\",\"abbreviation\":\"VE\"},{\"name\":\"Vietnam\",\"abbreviation\":\"VN\"},{\"name\":\"Wallis & Futuna\",\"abbreviation\":\"WF\"},{\"name\":\"Western Sahara\",\"abbreviation\":\"EH\"},{\"name\":\"Yemen\",\"abbreviation\":\"YE\"},{\"name\":\"Zambia\",\"abbreviation\":\"ZM\"},{\"name\":\"Zimbabwe\",\"abbreviation\":\"ZW\"}],\n\n counties: {\n // Data taken from http://www.downloadexcelfiles.com/gb_en/download-excel-file-list-counties-uk\n \"uk\": [\n {name: 'Bath and North East Somerset'},\n {name: 'Aberdeenshire'},\n {name: 'Anglesey'},\n {name: 'Angus'},\n {name: 'Bedford'},\n {name: 'Blackburn with Darwen'},\n {name: 'Blackpool'},\n {name: 'Bournemouth'},\n {name: 'Bracknell Forest'},\n {name: 'Brighton & Hove'},\n {name: 'Bristol'},\n {name: 'Buckinghamshire'},\n {name: 'Cambridgeshire'},\n {name: 'Carmarthenshire'},\n {name: 'Central Bedfordshire'},\n {name: 'Ceredigion'},\n {name: 'Cheshire East'},\n {name: 'Cheshire West and Chester'},\n {name: 'Clackmannanshire'},\n {name: 'Conwy'},\n {name: 'Cornwall'},\n {name: 'County Antrim'},\n {name: 'County Armagh'},\n {name: 'County Down'},\n {name: 'County Durham'},\n {name: 'County Fermanagh'},\n {name: 'County Londonderry'},\n {name: 'County Tyrone'},\n {name: 'Cumbria'},\n {name: 'Darlington'},\n {name: 'Denbighshire'},\n {name: 'Derby'},\n {name: 'Derbyshire'},\n {name: 'Devon'},\n {name: 'Dorset'},\n {name: 'Dumfries and Galloway'},\n {name: 'Dundee'},\n {name: 'East Lothian'},\n {name: 'East Riding of Yorkshire'},\n {name: 'East Sussex'},\n {name: 'Edinburgh?'},\n {name: 'Essex'},\n {name: 'Falkirk'},\n {name: 'Fife'},\n {name: 'Flintshire'},\n {name: 'Gloucestershire'},\n {name: 'Greater London'},\n {name: 'Greater Manchester'},\n {name: 'Gwent'},\n {name: 'Gwynedd'},\n {name: 'Halton'},\n {name: 'Hampshire'},\n {name: 'Hartlepool'},\n {name: 'Herefordshire'},\n {name: 'Hertfordshire'},\n {name: 'Highlands'},\n {name: 'Hull'},\n {name: 'Isle of Wight'},\n {name: 'Isles of Scilly'},\n {name: 'Kent'},\n {name: 'Lancashire'},\n {name: 'Leicester'},\n {name: 'Leicestershire'},\n {name: 'Lincolnshire'},\n {name: 'Lothian'},\n {name: 'Luton'},\n {name: 'Medway'},\n {name: 'Merseyside'},\n {name: 'Mid Glamorgan'},\n {name: 'Middlesbrough'},\n {name: 'Milton Keynes'},\n {name: 'Monmouthshire'},\n {name: 'Moray'},\n {name: 'Norfolk'},\n {name: 'North East Lincolnshire'},\n {name: 'North Lincolnshire'},\n {name: 'North Somerset'},\n {name: 'North Yorkshire'},\n {name: 'Northamptonshire'},\n {name: 'Northumberland'},\n {name: 'Nottingham'},\n {name: 'Nottinghamshire'},\n {name: 'Oxfordshire'},\n {name: 'Pembrokeshire'},\n {name: 'Perth and Kinross'},\n {name: 'Peterborough'},\n {name: 'Plymouth'},\n {name: 'Poole'},\n {name: 'Portsmouth'},\n {name: 'Powys'},\n {name: 'Reading'},\n {name: 'Redcar and Cleveland'},\n {name: 'Rutland'},\n {name: 'Scottish Borders'},\n {name: 'Shropshire'},\n {name: 'Slough'},\n {name: 'Somerset'},\n {name: 'South Glamorgan'},\n {name: 'South Gloucestershire'},\n {name: 'South Yorkshire'},\n {name: 'Southampton'},\n {name: 'Southend-on-Sea'},\n {name: 'Staffordshire'},\n {name: 'Stirlingshire'},\n {name: 'Stockton-on-Tees'},\n {name: 'Stoke-on-Trent'},\n {name: 'Strathclyde'},\n {name: 'Suffolk'},\n {name: 'Surrey'},\n {name: 'Swindon'},\n {name: 'Telford and Wrekin'},\n {name: 'Thurrock'},\n {name: 'Torbay'},\n {name: 'Tyne and Wear'},\n {name: 'Warrington'},\n {name: 'Warwickshire'},\n {name: 'West Berkshire'},\n {name: 'West Glamorgan'},\n {name: 'West Lothian'},\n {name: 'West Midlands'},\n {name: 'West Sussex'},\n {name: 'West Yorkshire'},\n {name: 'Western Isles'},\n {name: 'Wiltshire'},\n {name: 'Windsor and Maidenhead'},\n {name: 'Wokingham'},\n {name: 'Worcestershire'},\n {name: 'Wrexham'},\n {name: 'York'}]\n },\n provinces: {\n \"ca\": [\n {name: 'Alberta', abbreviation: 'AB'},\n {name: 'British Columbia', abbreviation: 'BC'},\n {name: 'Manitoba', abbreviation: 'MB'},\n {name: 'New Brunswick', abbreviation: 'NB'},\n {name: 'Newfoundland and Labrador', abbreviation: 'NL'},\n {name: 'Nova Scotia', abbreviation: 'NS'},\n {name: 'Ontario', abbreviation: 'ON'},\n {name: 'Prince Edward Island', abbreviation: 'PE'},\n {name: 'Quebec', abbreviation: 'QC'},\n {name: 'Saskatchewan', abbreviation: 'SK'},\n\n // The case could be made that the following are not actually provinces\n // since they are technically considered \"territories\" however they all\n // look the same on an envelope!\n {name: 'Northwest Territories', abbreviation: 'NT'},\n {name: 'Nunavut', abbreviation: 'NU'},\n {name: 'Yukon', abbreviation: 'YT'}\n ],\n \"it\": [\n { name: \"Agrigento\", abbreviation: \"AG\", code: 84 },\n { name: \"Alessandria\", abbreviation: \"AL\", code: 6 },\n { name: \"Ancona\", abbreviation: \"AN\", code: 42 },\n { name: \"Aosta\", abbreviation: \"AO\", code: 7 },\n { name: \"L'Aquila\", abbreviation: \"AQ\", code: 66 },\n { name: \"Arezzo\", abbreviation: \"AR\", code: 51 },\n { name: \"Ascoli-Piceno\", abbreviation: \"AP\", code: 44 },\n { name: \"Asti\", abbreviation: \"AT\", code: 5 },\n { name: \"Avellino\", abbreviation: \"AV\", code: 64 },\n { name: \"Bari\", abbreviation: \"BA\", code: 72 },\n { name: \"Barletta-Andria-Trani\", abbreviation: \"BT\", code: 72 },\n { name: \"Belluno\", abbreviation: \"BL\", code: 25 },\n { name: \"Benevento\", abbreviation: \"BN\", code: 62 },\n { name: \"Bergamo\", abbreviation: \"BG\", code: 16 },\n { name: \"Biella\", abbreviation: \"BI\", code: 96 },\n { name: \"Bologna\", abbreviation: \"BO\", code: 37 },\n { name: \"Bolzano\", abbreviation: \"BZ\", code: 21 },\n { name: \"Brescia\", abbreviation: \"BS\", code: 17 },\n { name: \"Brindisi\", abbreviation: \"BR\", code: 74 },\n { name: \"Cagliari\", abbreviation: \"CA\", code: 92 },\n { name: \"Caltanissetta\", abbreviation: \"CL\", code: 85 },\n { name: \"Campobasso\", abbreviation: \"CB\", code: 70 },\n { name: \"Carbonia Iglesias\", abbreviation: \"CI\", code: 70 },\n { name: \"Caserta\", abbreviation: \"CE\", code: 61 },\n { name: \"Catania\", abbreviation: \"CT\", code: 87 },\n { name: \"Catanzaro\", abbreviation: \"CZ\", code: 79 },\n { name: \"Chieti\", abbreviation: \"CH\", code: 69 },\n { name: \"Como\", abbreviation: \"CO\", code: 13 },\n { name: \"Cosenza\", abbreviation: \"CS\", code: 78 },\n { name: \"Cremona\", abbreviation: \"CR\", code: 19 },\n { name: \"Crotone\", abbreviation: \"KR\", code: 101 },\n { name: \"Cuneo\", abbreviation: \"CN\", code: 4 },\n { name: \"Enna\", abbreviation: \"EN\", code: 86 },\n { name: \"Fermo\", abbreviation: \"FM\", code: 86 },\n { name: \"Ferrara\", abbreviation: \"FE\", code: 38 },\n { name: \"Firenze\", abbreviation: \"FI\", code: 48 },\n { name: \"Foggia\", abbreviation: \"FG\", code: 71 },\n { name: \"Forli-Cesena\", abbreviation: \"FC\", code: 71 },\n { name: \"Frosinone\", abbreviation: \"FR\", code: 60 },\n { name: \"Genova\", abbreviation: \"GE\", code: 10 },\n { name: \"Gorizia\", abbreviation: \"GO\", code: 31 },\n { name: \"Grosseto\", abbreviation: \"GR\", code: 53 },\n { name: \"Imperia\", abbreviation: \"IM\", code: 8 },\n { name: \"Isernia\", abbreviation: \"IS\", code: 94 },\n { name: \"La-Spezia\", abbreviation: \"SP\", code: 66 },\n { name: \"Latina\", abbreviation: \"LT\", code: 59 },\n { name: \"Lecce\", abbreviation: \"LE\", code: 75 },\n { name: \"Lecco\", abbreviation: \"LC\", code: 97 },\n { name: \"Livorno\", abbreviation: \"LI\", code: 49 },\n { name: \"Lodi\", abbreviation: \"LO\", code: 98 },\n { name: \"Lucca\", abbreviation: \"LU\", code: 46 },\n { name: \"Macerata\", abbreviation: \"MC\", code: 43 },\n { name: \"Mantova\", abbreviation: \"MN\", code: 20 },\n { name: \"Massa-Carrara\", abbreviation: \"MS\", code: 45 },\n { name: \"Matera\", abbreviation: \"MT\", code: 77 },\n { name: \"Medio Campidano\", abbreviation: \"VS\", code: 77 },\n { name: \"Messina\", abbreviation: \"ME\", code: 83 },\n { name: \"Milano\", abbreviation: \"MI\", code: 15 },\n { name: \"Modena\", abbreviation: \"MO\", code: 36 },\n { name: \"Monza-Brianza\", abbreviation: \"MB\", code: 36 },\n { name: \"Napoli\", abbreviation: \"NA\", code: 63 },\n { name: \"Novara\", abbreviation: \"NO\", code: 3 },\n { name: \"Nuoro\", abbreviation: \"NU\", code: 91 },\n { name: \"Ogliastra\", abbreviation: \"OG\", code: 91 },\n { name: \"Olbia Tempio\", abbreviation: \"OT\", code: 91 },\n { name: \"Oristano\", abbreviation: \"OR\", code: 95 },\n { name: \"Padova\", abbreviation: \"PD\", code: 28 },\n { name: \"Palermo\", abbreviation: \"PA\", code: 82 },\n { name: \"Parma\", abbreviation: \"PR\", code: 34 },\n { name: \"Pavia\", abbreviation: \"PV\", code: 18 },\n { name: \"Perugia\", abbreviation: \"PG\", code: 54 },\n { name: \"Pesaro-Urbino\", abbreviation: \"PU\", code: 41 },\n { name: \"Pescara\", abbreviation: \"PE\", code: 68 },\n { name: \"Piacenza\", abbreviation: \"PC\", code: 33 },\n { name: \"Pisa\", abbreviation: \"PI\", code: 50 },\n { name: \"Pistoia\", abbreviation: \"PT\", code: 47 },\n { name: \"Pordenone\", abbreviation: \"PN\", code: 93 },\n { name: \"Potenza\", abbreviation: \"PZ\", code: 76 },\n { name: \"Prato\", abbreviation: \"PO\", code: 100 },\n { name: \"Ragusa\", abbreviation: \"RG\", code: 88 },\n { name: \"Ravenna\", abbreviation: \"RA\", code: 39 },\n { name: \"Reggio-Calabria\", abbreviation: \"RC\", code: 35 },\n { name: \"Reggio-Emilia\", abbreviation: \"RE\", code: 35 },\n { name: \"Rieti\", abbreviation: \"RI\", code: 57 },\n { name: \"Rimini\", abbreviation: \"RN\", code: 99 },\n { name: \"Roma\", abbreviation: \"Roma\", code: 58 },\n { name: \"Rovigo\", abbreviation: \"RO\", code: 29 },\n { name: \"Salerno\", abbreviation: \"SA\", code: 65 },\n { name: \"Sassari\", abbreviation: \"SS\", code: 90 },\n { name: \"Savona\", abbreviation: \"SV\", code: 9 },\n { name: \"Siena\", abbreviation: \"SI\", code: 52 },\n { name: \"Siracusa\", abbreviation: \"SR\", code: 89 },\n { name: \"Sondrio\", abbreviation: \"SO\", code: 14 },\n { name: \"Taranto\", abbreviation: \"TA\", code: 73 },\n { name: \"Teramo\", abbreviation: \"TE\", code: 67 },\n { name: \"Terni\", abbreviation: \"TR\", code: 55 },\n { name: \"Torino\", abbreviation: \"TO\", code: 1 },\n { name: \"Trapani\", abbreviation: \"TP\", code: 81 },\n { name: \"Trento\", abbreviation: \"TN\", code: 22 },\n { name: \"Treviso\", abbreviation: \"TV\", code: 26 },\n { name: \"Trieste\", abbreviation: \"TS\", code: 32 },\n { name: \"Udine\", abbreviation: \"UD\", code: 30 },\n { name: \"Varese\", abbreviation: \"VA\", code: 12 },\n { name: \"Venezia\", abbreviation: \"VE\", code: 27 },\n { name: \"Verbania\", abbreviation: \"VB\", code: 27 },\n { name: \"Vercelli\", abbreviation: \"VC\", code: 2 },\n { name: \"Verona\", abbreviation: \"VR\", code: 23 },\n { name: \"Vibo-Valentia\", abbreviation: \"VV\", code: 102 },\n { name: \"Vicenza\", abbreviation: \"VI\", code: 24 },\n { name: \"Viterbo\", abbreviation: \"VT\", code: 56 }\n ]\n },\n\n // from: https://github.com/samsargent/Useful-Autocomplete-Data/blob/master/data/nationalities.json\n nationalities: [\n {name: 'Afghan'},\n {name: 'Albanian'},\n {name: 'Algerian'},\n {name: 'American'},\n {name: 'Andorran'},\n {name: 'Angolan'},\n {name: 'Antiguans'},\n {name: 'Argentinean'},\n {name: 'Armenian'},\n {name: 'Australian'},\n {name: 'Austrian'},\n {name: 'Azerbaijani'},\n {name: 'Bahami'},\n {name: 'Bahraini'},\n {name: 'Bangladeshi'},\n {name: 'Barbadian'},\n {name: 'Barbudans'},\n {name: 'Batswana'},\n {name: 'Belarusian'},\n {name: 'Belgian'},\n {name: 'Belizean'},\n {name: 'Beninese'},\n {name: 'Bhutanese'},\n {name: 'Bolivian'},\n {name: 'Bosnian'},\n {name: 'Brazilian'},\n {name: 'British'},\n {name: 'Bruneian'},\n {name: 'Bulgarian'},\n {name: 'Burkinabe'},\n {name: 'Burmese'},\n {name: 'Burundian'},\n {name: 'Cambodian'},\n {name: 'Cameroonian'},\n {name: 'Canadian'},\n {name: 'Cape Verdean'},\n {name: 'Central African'},\n {name: 'Chadian'},\n {name: 'Chilean'},\n {name: 'Chinese'},\n {name: 'Colombian'},\n {name: 'Comoran'},\n {name: 'Congolese'},\n {name: 'Costa Rican'},\n {name: 'Croatian'},\n {name: 'Cuban'},\n {name: 'Cypriot'},\n {name: 'Czech'},\n {name: 'Danish'},\n {name: 'Djibouti'},\n {name: 'Dominican'},\n {name: 'Dutch'},\n {name: 'East Timorese'},\n {name: 'Ecuadorean'},\n {name: 'Egyptian'},\n {name: 'Emirian'},\n {name: 'Equatorial Guinean'},\n {name: 'Eritrean'},\n {name: 'Estonian'},\n {name: 'Ethiopian'},\n {name: 'Fijian'},\n {name: 'Filipino'},\n {name: 'Finnish'},\n {name: 'French'},\n {name: 'Gabonese'},\n {name: 'Gambian'},\n {name: 'Georgian'},\n {name: 'German'},\n {name: 'Ghanaian'},\n {name: 'Greek'},\n {name: 'Grenadian'},\n {name: 'Guatemalan'},\n {name: 'Guinea-Bissauan'},\n {name: 'Guinean'},\n {name: 'Guyanese'},\n {name: 'Haitian'},\n {name: 'Herzegovinian'},\n {name: 'Honduran'},\n {name: 'Hungarian'},\n {name: 'I-Kiribati'},\n {name: 'Icelander'},\n {name: 'Indian'},\n {name: 'Indonesian'},\n {name: 'Iranian'},\n {name: 'Iraqi'},\n {name: 'Irish'},\n {name: 'Israeli'},\n {name: 'Italian'},\n {name: 'Ivorian'},\n {name: 'Jamaican'},\n {name: 'Japanese'},\n {name: 'Jordanian'},\n {name: 'Kazakhstani'},\n {name: 'Kenyan'},\n {name: 'Kittian and Nevisian'},\n {name: 'Kuwaiti'},\n {name: 'Kyrgyz'},\n {name: 'Laotian'},\n {name: 'Latvian'},\n {name: 'Lebanese'},\n {name: 'Liberian'},\n {name: 'Libyan'},\n {name: 'Liechtensteiner'},\n {name: 'Lithuanian'},\n {name: 'Luxembourger'},\n {name: 'Macedonian'},\n {name: 'Malagasy'},\n {name: 'Malawian'},\n {name: 'Malaysian'},\n {name: 'Maldivan'},\n {name: 'Malian'},\n {name: 'Maltese'},\n {name: 'Marshallese'},\n {name: 'Mauritanian'},\n {name: 'Mauritian'},\n {name: 'Mexican'},\n {name: 'Micronesian'},\n {name: 'Moldovan'},\n {name: 'Monacan'},\n {name: 'Mongolian'},\n {name: 'Moroccan'},\n {name: 'Mosotho'},\n {name: 'Motswana'},\n {name: 'Mozambican'},\n {name: 'Namibian'},\n {name: 'Nauruan'},\n {name: 'Nepalese'},\n {name: 'New Zealander'},\n {name: 'Nicaraguan'},\n {name: 'Nigerian'},\n {name: 'Nigerien'},\n {name: 'North Korean'},\n {name: 'Northern Irish'},\n {name: 'Norwegian'},\n {name: 'Omani'},\n {name: 'Pakistani'},\n {name: 'Palauan'},\n {name: 'Panamanian'},\n {name: 'Papua New Guinean'},\n {name: 'Paraguayan'},\n {name: 'Peruvian'},\n {name: 'Polish'},\n {name: 'Portuguese'},\n {name: 'Qatari'},\n {name: 'Romani'},\n {name: 'Russian'},\n {name: 'Rwandan'},\n {name: 'Saint Lucian'},\n {name: 'Salvadoran'},\n {name: 'Samoan'},\n {name: 'San Marinese'},\n {name: 'Sao Tomean'},\n {name: 'Saudi'},\n {name: 'Scottish'},\n {name: 'Senegalese'},\n {name: 'Serbian'},\n {name: 'Seychellois'},\n {name: 'Sierra Leonean'},\n {name: 'Singaporean'},\n {name: 'Slovakian'},\n {name: 'Slovenian'},\n {name: 'Solomon Islander'},\n {name: 'Somali'},\n {name: 'South African'},\n {name: 'South Korean'},\n {name: 'Spanish'},\n {name: 'Sri Lankan'},\n {name: 'Sudanese'},\n {name: 'Surinamer'},\n {name: 'Swazi'},\n {name: 'Swedish'},\n {name: 'Swiss'},\n {name: 'Syrian'},\n {name: 'Taiwanese'},\n {name: 'Tajik'},\n {name: 'Tanzanian'},\n {name: 'Thai'},\n {name: 'Togolese'},\n {name: 'Tongan'},\n {name: 'Trinidadian or Tobagonian'},\n {name: 'Tunisian'},\n {name: 'Turkish'},\n {name: 'Tuvaluan'},\n {name: 'Ugandan'},\n {name: 'Ukrainian'},\n {name: 'Uruguaya'},\n {name: 'Uzbekistani'},\n {name: 'Venezuela'},\n {name: 'Vietnamese'},\n {name: 'Wels'},\n {name: 'Yemenit'},\n {name: 'Zambia'},\n {name: 'Zimbabwe'},\n ],\n // http://www.loc.gov/standards/iso639-2/php/code_list.php (ISO-639-1 codes)\n locale_languages: [\n \"aa\",\n \"ab\",\n \"ae\",\n \"af\",\n \"ak\",\n \"am\",\n \"an\",\n \"ar\",\n \"as\",\n \"av\",\n \"ay\",\n \"az\",\n \"ba\",\n \"be\",\n \"bg\",\n \"bh\",\n \"bi\",\n \"bm\",\n \"bn\",\n \"bo\",\n \"br\",\n \"bs\",\n \"ca\",\n \"ce\",\n \"ch\",\n \"co\",\n \"cr\",\n \"cs\",\n \"cu\",\n \"cv\",\n \"cy\",\n \"da\",\n \"de\",\n \"dv\",\n \"dz\",\n \"ee\",\n \"el\",\n \"en\",\n \"eo\",\n \"es\",\n \"et\",\n \"eu\",\n \"fa\",\n \"ff\",\n \"fi\",\n \"fj\",\n \"fo\",\n \"fr\",\n \"fy\",\n \"ga\",\n \"gd\",\n \"gl\",\n \"gn\",\n \"gu\",\n \"gv\",\n \"ha\",\n \"he\",\n \"hi\",\n \"ho\",\n \"hr\",\n \"ht\",\n \"hu\",\n \"hy\",\n \"hz\",\n \"ia\",\n \"id\",\n \"ie\",\n \"ig\",\n \"ii\",\n \"ik\",\n \"io\",\n \"is\",\n \"it\",\n \"iu\",\n \"ja\",\n \"jv\",\n \"ka\",\n \"kg\",\n \"ki\",\n \"kj\",\n \"kk\",\n \"kl\",\n \"km\",\n \"kn\",\n \"ko\",\n \"kr\",\n \"ks\",\n \"ku\",\n \"kv\",\n \"kw\",\n \"ky\",\n \"la\",\n \"lb\",\n \"lg\",\n \"li\",\n \"ln\",\n \"lo\",\n \"lt\",\n \"lu\",\n \"lv\",\n \"mg\",\n \"mh\",\n \"mi\",\n \"mk\",\n \"ml\",\n \"mn\",\n \"mr\",\n \"ms\",\n \"mt\",\n \"my\",\n \"na\",\n \"nb\",\n \"nd\",\n \"ne\",\n \"ng\",\n \"nl\",\n \"nn\",\n \"no\",\n \"nr\",\n \"nv\",\n \"ny\",\n \"oc\",\n \"oj\",\n \"om\",\n \"or\",\n \"os\",\n \"pa\",\n \"pi\",\n \"pl\",\n \"ps\",\n \"pt\",\n \"qu\",\n \"rm\",\n \"rn\",\n \"ro\",\n \"ru\",\n \"rw\",\n \"sa\",\n \"sc\",\n \"sd\",\n \"se\",\n \"sg\",\n \"si\",\n \"sk\",\n \"sl\",\n \"sm\",\n \"sn\",\n \"so\",\n \"sq\",\n \"sr\",\n \"ss\",\n \"st\",\n \"su\",\n \"sv\",\n \"sw\",\n \"ta\",\n \"te\",\n \"tg\",\n \"th\",\n \"ti\",\n \"tk\",\n \"tl\",\n \"tn\",\n \"to\",\n \"tr\",\n \"ts\",\n \"tt\",\n \"tw\",\n \"ty\",\n \"ug\",\n \"uk\",\n \"ur\",\n \"uz\",\n \"ve\",\n \"vi\",\n \"vo\",\n \"wa\",\n \"wo\",\n \"xh\",\n \"yi\",\n \"yo\",\n \"za\",\n \"zh\",\n \"zu\"\n ],\n\n // From http://data.okfn.org/data/core/language-codes#resource-language-codes-full (IETF language tags)\n locale_regions: [\n \"agq-CM\",\n \"asa-TZ\",\n \"ast-ES\",\n \"bas-CM\",\n \"bem-ZM\",\n \"bez-TZ\",\n \"brx-IN\",\n \"cgg-UG\",\n \"chr-US\",\n \"dav-KE\",\n \"dje-NE\",\n \"dsb-DE\",\n \"dua-CM\",\n \"dyo-SN\",\n \"ebu-KE\",\n \"ewo-CM\",\n \"fil-PH\",\n \"fur-IT\",\n \"gsw-CH\",\n \"gsw-FR\",\n \"gsw-LI\",\n \"guz-KE\",\n \"haw-US\",\n \"hsb-DE\",\n \"jgo-CM\",\n \"jmc-TZ\",\n \"kab-DZ\",\n \"kam-KE\",\n \"kde-TZ\",\n \"kea-CV\",\n \"khq-ML\",\n \"kkj-CM\",\n \"kln-KE\",\n \"kok-IN\",\n \"ksb-TZ\",\n \"ksf-CM\",\n \"ksh-DE\",\n \"lag-TZ\",\n \"lkt-US\",\n \"luo-KE\",\n \"luy-KE\",\n \"mas-KE\",\n \"mas-TZ\",\n \"mer-KE\",\n \"mfe-MU\",\n \"mgh-MZ\",\n \"mgo-CM\",\n \"mua-CM\",\n \"naq-NA\",\n \"nmg-CM\",\n \"nnh-CM\",\n \"nus-SD\",\n \"nyn-UG\",\n \"rof-TZ\",\n \"rwk-TZ\",\n \"sah-RU\",\n \"saq-KE\",\n \"sbp-TZ\",\n \"seh-MZ\",\n \"ses-ML\",\n \"shi-Latn\",\n \"shi-Latn-MA\",\n \"shi-Tfng\",\n \"shi-Tfng-MA\",\n \"smn-FI\",\n \"teo-KE\",\n \"teo-UG\",\n \"twq-NE\",\n \"tzm-Latn\",\n \"tzm-Latn-MA\",\n \"vai-Latn\",\n \"vai-Latn-LR\",\n \"vai-Vaii\",\n \"vai-Vaii-LR\",\n \"vun-TZ\",\n \"wae-CH\",\n \"xog-UG\",\n \"yav-CM\",\n \"zgh-MA\",\n \"af-NA\",\n \"af-ZA\",\n \"ak-GH\",\n \"am-ET\",\n \"ar-001\",\n \"ar-AE\",\n \"ar-BH\",\n \"ar-DJ\",\n \"ar-DZ\",\n \"ar-EG\",\n \"ar-EH\",\n \"ar-ER\",\n \"ar-IL\",\n \"ar-IQ\",\n \"ar-JO\",\n \"ar-KM\",\n \"ar-KW\",\n \"ar-LB\",\n \"ar-LY\",\n \"ar-MA\",\n \"ar-MR\",\n \"ar-OM\",\n \"ar-PS\",\n \"ar-QA\",\n \"ar-SA\",\n \"ar-SD\",\n \"ar-SO\",\n \"ar-SS\",\n \"ar-SY\",\n \"ar-TD\",\n \"ar-TN\",\n \"ar-YE\",\n \"as-IN\",\n \"az-Cyrl\",\n \"az-Cyrl-AZ\",\n \"az-Latn\",\n \"az-Latn-AZ\",\n \"be-BY\",\n \"bg-BG\",\n \"bm-Latn\",\n \"bm-Latn-ML\",\n \"bn-BD\",\n \"bn-IN\",\n \"bo-CN\",\n \"bo-IN\",\n \"br-FR\",\n \"bs-Cyrl\",\n \"bs-Cyrl-BA\",\n \"bs-Latn\",\n \"bs-Latn-BA\",\n \"ca-AD\",\n \"ca-ES\",\n \"ca-ES-VALENCIA\",\n \"ca-FR\",\n \"ca-IT\",\n \"cs-CZ\",\n \"cy-GB\",\n \"da-DK\",\n \"da-GL\",\n \"de-AT\",\n \"de-BE\",\n \"de-CH\",\n \"de-DE\",\n \"de-LI\",\n \"de-LU\",\n \"dz-BT\",\n \"ee-GH\",\n \"ee-TG\",\n \"el-CY\",\n \"el-GR\",\n \"en-001\",\n \"en-150\",\n \"en-AG\",\n \"en-AI\",\n \"en-AS\",\n \"en-AU\",\n \"en-BB\",\n \"en-BE\",\n \"en-BM\",\n \"en-BS\",\n \"en-BW\",\n \"en-BZ\",\n \"en-CA\",\n \"en-CC\",\n \"en-CK\",\n \"en-CM\",\n \"en-CX\",\n \"en-DG\",\n \"en-DM\",\n \"en-ER\",\n \"en-FJ\",\n \"en-FK\",\n \"en-FM\",\n \"en-GB\",\n \"en-GD\",\n \"en-GG\",\n \"en-GH\",\n \"en-GI\",\n \"en-GM\",\n \"en-GU\",\n \"en-GY\",\n \"en-HK\",\n \"en-IE\",\n \"en-IM\",\n \"en-IN\",\n \"en-IO\",\n \"en-JE\",\n \"en-JM\",\n \"en-KE\",\n \"en-KI\",\n \"en-KN\",\n \"en-KY\",\n \"en-LC\",\n \"en-LR\",\n \"en-LS\",\n \"en-MG\",\n \"en-MH\",\n \"en-MO\",\n \"en-MP\",\n \"en-MS\",\n \"en-MT\",\n \"en-MU\",\n \"en-MW\",\n \"en-MY\",\n \"en-NA\",\n \"en-NF\",\n \"en-NG\",\n \"en-NR\",\n \"en-NU\",\n \"en-NZ\",\n \"en-PG\",\n \"en-PH\",\n \"en-PK\",\n \"en-PN\",\n \"en-PR\",\n \"en-PW\",\n \"en-RW\",\n \"en-SB\",\n \"en-SC\",\n \"en-SD\",\n \"en-SG\",\n \"en-SH\",\n \"en-SL\",\n \"en-SS\",\n \"en-SX\",\n \"en-SZ\",\n \"en-TC\",\n \"en-TK\",\n \"en-TO\",\n \"en-TT\",\n \"en-TV\",\n \"en-TZ\",\n \"en-UG\",\n \"en-UM\",\n \"en-US\",\n \"en-US-POSIX\",\n \"en-VC\",\n \"en-VG\",\n \"en-VI\",\n \"en-VU\",\n \"en-WS\",\n \"en-ZA\",\n \"en-ZM\",\n \"en-ZW\",\n \"eo-001\",\n \"es-419\",\n \"es-AR\",\n \"es-BO\",\n \"es-CL\",\n \"es-CO\",\n \"es-CR\",\n \"es-CU\",\n \"es-DO\",\n \"es-EA\",\n \"es-EC\",\n \"es-ES\",\n \"es-GQ\",\n \"es-GT\",\n \"es-HN\",\n \"es-IC\",\n \"es-MX\",\n \"es-NI\",\n \"es-PA\",\n \"es-PE\",\n \"es-PH\",\n \"es-PR\",\n \"es-PY\",\n \"es-SV\",\n \"es-US\",\n \"es-UY\",\n \"es-VE\",\n \"et-EE\",\n \"eu-ES\",\n \"fa-AF\",\n \"fa-IR\",\n \"ff-CM\",\n \"ff-GN\",\n \"ff-MR\",\n \"ff-SN\",\n \"fi-FI\",\n \"fo-FO\",\n \"fr-BE\",\n \"fr-BF\",\n \"fr-BI\",\n \"fr-BJ\",\n \"fr-BL\",\n \"fr-CA\",\n \"fr-CD\",\n \"fr-CF\",\n \"fr-CG\",\n \"fr-CH\",\n \"fr-CI\",\n \"fr-CM\",\n \"fr-DJ\",\n \"fr-DZ\",\n \"fr-FR\",\n \"fr-GA\",\n \"fr-GF\",\n \"fr-GN\",\n \"fr-GP\",\n \"fr-GQ\",\n \"fr-HT\",\n \"fr-KM\",\n \"fr-LU\",\n \"fr-MA\",\n \"fr-MC\",\n \"fr-MF\",\n \"fr-MG\",\n \"fr-ML\",\n \"fr-MQ\",\n \"fr-MR\",\n \"fr-MU\",\n \"fr-NC\",\n \"fr-NE\",\n \"fr-PF\",\n \"fr-PM\",\n \"fr-RE\",\n \"fr-RW\",\n \"fr-SC\",\n \"fr-SN\",\n \"fr-SY\",\n \"fr-TD\",\n \"fr-TG\",\n \"fr-TN\",\n \"fr-VU\",\n \"fr-WF\",\n \"fr-YT\",\n \"fy-NL\",\n \"ga-IE\",\n \"gd-GB\",\n \"gl-ES\",\n \"gu-IN\",\n \"gv-IM\",\n \"ha-Latn\",\n \"ha-Latn-GH\",\n \"ha-Latn-NE\",\n \"ha-Latn-NG\",\n \"he-IL\",\n \"hi-IN\",\n \"hr-BA\",\n \"hr-HR\",\n \"hu-HU\",\n \"hy-AM\",\n \"id-ID\",\n \"ig-NG\",\n \"ii-CN\",\n \"is-IS\",\n \"it-CH\",\n \"it-IT\",\n \"it-SM\",\n \"ja-JP\",\n \"ka-GE\",\n \"ki-KE\",\n \"kk-Cyrl\",\n \"kk-Cyrl-KZ\",\n \"kl-GL\",\n \"km-KH\",\n \"kn-IN\",\n \"ko-KP\",\n \"ko-KR\",\n \"ks-Arab\",\n \"ks-Arab-IN\",\n \"kw-GB\",\n \"ky-Cyrl\",\n \"ky-Cyrl-KG\",\n \"lb-LU\",\n \"lg-UG\",\n \"ln-AO\",\n \"ln-CD\",\n \"ln-CF\",\n \"ln-CG\",\n \"lo-LA\",\n \"lt-LT\",\n \"lu-CD\",\n \"lv-LV\",\n \"mg-MG\",\n \"mk-MK\",\n \"ml-IN\",\n \"mn-Cyrl\",\n \"mn-Cyrl-MN\",\n \"mr-IN\",\n \"ms-Latn\",\n \"ms-Latn-BN\",\n \"ms-Latn-MY\",\n \"ms-Latn-SG\",\n \"mt-MT\",\n \"my-MM\",\n \"nb-NO\",\n \"nb-SJ\",\n \"nd-ZW\",\n \"ne-IN\",\n \"ne-NP\",\n \"nl-AW\",\n \"nl-BE\",\n \"nl-BQ\",\n \"nl-CW\",\n \"nl-NL\",\n \"nl-SR\",\n \"nl-SX\",\n \"nn-NO\",\n \"om-ET\",\n \"om-KE\",\n \"or-IN\",\n \"os-GE\",\n \"os-RU\",\n \"pa-Arab\",\n \"pa-Arab-PK\",\n \"pa-Guru\",\n \"pa-Guru-IN\",\n \"pl-PL\",\n \"ps-AF\",\n \"pt-AO\",\n \"pt-BR\",\n \"pt-CV\",\n \"pt-GW\",\n \"pt-MO\",\n \"pt-MZ\",\n \"pt-PT\",\n \"pt-ST\",\n \"pt-TL\",\n \"qu-BO\",\n \"qu-EC\",\n \"qu-PE\",\n \"rm-CH\",\n \"rn-BI\",\n \"ro-MD\",\n \"ro-RO\",\n \"ru-BY\",\n \"ru-KG\",\n \"ru-KZ\",\n \"ru-MD\",\n \"ru-RU\",\n \"ru-UA\",\n \"rw-RW\",\n \"se-FI\",\n \"se-NO\",\n \"se-SE\",\n \"sg-CF\",\n \"si-LK\",\n \"sk-SK\",\n \"sl-SI\",\n \"sn-ZW\",\n \"so-DJ\",\n \"so-ET\",\n \"so-KE\",\n \"so-SO\",\n \"sq-AL\",\n \"sq-MK\",\n \"sq-XK\",\n \"sr-Cyrl\",\n \"sr-Cyrl-BA\",\n \"sr-Cyrl-ME\",\n \"sr-Cyrl-RS\",\n \"sr-Cyrl-XK\",\n \"sr-Latn\",\n \"sr-Latn-BA\",\n \"sr-Latn-ME\",\n \"sr-Latn-RS\",\n \"sr-Latn-XK\",\n \"sv-AX\",\n \"sv-FI\",\n \"sv-SE\",\n \"sw-CD\",\n \"sw-KE\",\n \"sw-TZ\",\n \"sw-UG\",\n \"ta-IN\",\n \"ta-LK\",\n \"ta-MY\",\n \"ta-SG\",\n \"te-IN\",\n \"th-TH\",\n \"ti-ER\",\n \"ti-ET\",\n \"to-TO\",\n \"tr-CY\",\n \"tr-TR\",\n \"ug-Arab\",\n \"ug-Arab-CN\",\n \"uk-UA\",\n \"ur-IN\",\n \"ur-PK\",\n \"uz-Arab\",\n \"uz-Arab-AF\",\n \"uz-Cyrl\",\n \"uz-Cyrl-UZ\",\n \"uz-Latn\",\n \"uz-Latn-UZ\",\n \"vi-VN\",\n \"yi-001\",\n \"yo-BJ\",\n \"yo-NG\",\n \"zh-Hans\",\n \"zh-Hans-CN\",\n \"zh-Hans-HK\",\n \"zh-Hans-MO\",\n \"zh-Hans-SG\",\n \"zh-Hant\",\n \"zh-Hant-HK\",\n \"zh-Hant-MO\",\n \"zh-Hant-TW\",\n \"zu-ZA\"\n ],\n\n us_states_and_dc: [\n {name: 'Alabama', abbreviation: 'AL'},\n {name: 'Alaska', abbreviation: 'AK'},\n {name: 'Arizona', abbreviation: 'AZ'},\n {name: 'Arkansas', abbreviation: 'AR'},\n {name: 'California', abbreviation: 'CA'},\n {name: 'Colorado', abbreviation: 'CO'},\n {name: 'Connecticut', abbreviation: 'CT'},\n {name: 'Delaware', abbreviation: 'DE'},\n {name: 'District of Columbia', abbreviation: 'DC'},\n {name: 'Florida', abbreviation: 'FL'},\n {name: 'Georgia', abbreviation: 'GA'},\n {name: 'Hawaii', abbreviation: 'HI'},\n {name: 'Idaho', abbreviation: 'ID'},\n {name: 'Illinois', abbreviation: 'IL'},\n {name: 'Indiana', abbreviation: 'IN'},\n {name: 'Iowa', abbreviation: 'IA'},\n {name: 'Kansas', abbreviation: 'KS'},\n {name: 'Kentucky', abbreviation: 'KY'},\n {name: 'Louisiana', abbreviation: 'LA'},\n {name: 'Maine', abbreviation: 'ME'},\n {name: 'Maryland', abbreviation: 'MD'},\n {name: 'Massachusetts', abbreviation: 'MA'},\n {name: 'Michigan', abbreviation: 'MI'},\n {name: 'Minnesota', abbreviation: 'MN'},\n {name: 'Mississippi', abbreviation: 'MS'},\n {name: 'Missouri', abbreviation: 'MO'},\n {name: 'Montana', abbreviation: 'MT'},\n {name: 'Nebraska', abbreviation: 'NE'},\n {name: 'Nevada', abbreviation: 'NV'},\n {name: 'New Hampshire', abbreviation: 'NH'},\n {name: 'New Jersey', abbreviation: 'NJ'},\n {name: 'New Mexico', abbreviation: 'NM'},\n {name: 'New York', abbreviation: 'NY'},\n {name: 'North Carolina', abbreviation: 'NC'},\n {name: 'North Dakota', abbreviation: 'ND'},\n {name: 'Ohio', abbreviation: 'OH'},\n {name: 'Oklahoma', abbreviation: 'OK'},\n {name: 'Oregon', abbreviation: 'OR'},\n {name: 'Pennsylvania', abbreviation: 'PA'},\n {name: 'Rhode Island', abbreviation: 'RI'},\n {name: 'South Carolina', abbreviation: 'SC'},\n {name: 'South Dakota', abbreviation: 'SD'},\n {name: 'Tennessee', abbreviation: 'TN'},\n {name: 'Texas', abbreviation: 'TX'},\n {name: 'Utah', abbreviation: 'UT'},\n {name: 'Vermont', abbreviation: 'VT'},\n {name: 'Virginia', abbreviation: 'VA'},\n {name: 'Washington', abbreviation: 'WA'},\n {name: 'West Virginia', abbreviation: 'WV'},\n {name: 'Wisconsin', abbreviation: 'WI'},\n {name: 'Wyoming', abbreviation: 'WY'}\n ],\n\n territories: [\n {name: 'American Samoa', abbreviation: 'AS'},\n {name: 'Federated States of Micronesia', abbreviation: 'FM'},\n {name: 'Guam', abbreviation: 'GU'},\n {name: 'Marshall Islands', abbreviation: 'MH'},\n {name: 'Northern Mariana Islands', abbreviation: 'MP'},\n {name: 'Puerto Rico', abbreviation: 'PR'},\n {name: 'Virgin Islands, U.S.', abbreviation: 'VI'}\n ],\n\n armed_forces: [\n {name: 'Armed Forces Europe', abbreviation: 'AE'},\n {name: 'Armed Forces Pacific', abbreviation: 'AP'},\n {name: 'Armed Forces the Americas', abbreviation: 'AA'}\n ],\n\n country_regions: {\n it: [\n { name: \"Valle d'Aosta\", abbreviation: \"VDA\" },\n { name: \"Piemonte\", abbreviation: \"PIE\" },\n { name: \"Lombardia\", abbreviation: \"LOM\" },\n { name: \"Veneto\", abbreviation: \"VEN\" },\n { name: \"Trentino Alto Adige\", abbreviation: \"TAA\" },\n { name: \"Friuli Venezia Giulia\", abbreviation: \"FVG\" },\n { name: \"Liguria\", abbreviation: \"LIG\" },\n { name: \"Emilia Romagna\", abbreviation: \"EMR\" },\n { name: \"Toscana\", abbreviation: \"TOS\" },\n { name: \"Umbria\", abbreviation: \"UMB\" },\n { name: \"Marche\", abbreviation: \"MAR\" },\n { name: \"Abruzzo\", abbreviation: \"ABR\" },\n { name: \"Lazio\", abbreviation: \"LAZ\" },\n { name: \"Campania\", abbreviation: \"CAM\" },\n { name: \"Puglia\", abbreviation: \"PUG\" },\n { name: \"Basilicata\", abbreviation: \"BAS\" },\n { name: \"Molise\", abbreviation: \"MOL\" },\n { name: \"Calabria\", abbreviation: \"CAL\" },\n { name: \"Sicilia\", abbreviation: \"SIC\" },\n { name: \"Sardegna\", abbreviation: \"SAR\" }\n ],\n mx: [\n { name: 'Aguascalientes', abbreviation: 'AGU' },\n { name: 'Baja California', abbreviation: 'BCN' },\n { name: 'Baja California Sur', abbreviation: 'BCS' },\n { name: 'Campeche', abbreviation: 'CAM' },\n { name: 'Chiapas', abbreviation: 'CHP' },\n { name: 'Chihuahua', abbreviation: 'CHH' },\n { name: 'Ciudad de México', abbreviation: 'DIF' },\n { name: 'Coahuila', abbreviation: 'COA' },\n { name: 'Colima', abbreviation: 'COL' },\n { name: 'Durango', abbreviation: 'DUR' },\n { name: 'Guanajuato', abbreviation: 'GUA' },\n { name: 'Guerrero', abbreviation: 'GRO' },\n { name: 'Hidalgo', abbreviation: 'HID' },\n { name: 'Jalisco', abbreviation: 'JAL' },\n { name: 'México', abbreviation: 'MEX' },\n { name: 'Michoacán', abbreviation: 'MIC' },\n { name: 'Morelos', abbreviation: 'MOR' },\n { name: 'Nayarit', abbreviation: 'NAY' },\n { name: 'Nuevo León', abbreviation: 'NLE' },\n { name: 'Oaxaca', abbreviation: 'OAX' },\n { name: 'Puebla', abbreviation: 'PUE' },\n { name: 'Querétaro', abbreviation: 'QUE' },\n { name: 'Quintana Roo', abbreviation: 'ROO' },\n { name: 'San Luis Potosí', abbreviation: 'SLP' },\n { name: 'Sinaloa', abbreviation: 'SIN' },\n { name: 'Sonora', abbreviation: 'SON' },\n { name: 'Tabasco', abbreviation: 'TAB' },\n { name: 'Tamaulipas', abbreviation: 'TAM' },\n { name: 'Tlaxcala', abbreviation: 'TLA' },\n { name: 'Veracruz', abbreviation: 'VER' },\n { name: 'Yucatán', abbreviation: 'YUC' },\n { name: 'Zacatecas', abbreviation: 'ZAC' }\n ]\n },\n\n street_suffixes: {\n 'us': [\n {name: 'Avenue', abbreviation: 'Ave'},\n {name: 'Boulevard', abbreviation: 'Blvd'},\n {name: 'Center', abbreviation: 'Ctr'},\n {name: 'Circle', abbreviation: 'Cir'},\n {name: 'Court', abbreviation: 'Ct'},\n {name: 'Drive', abbreviation: 'Dr'},\n {name: 'Extension', abbreviation: 'Ext'},\n {name: 'Glen', abbreviation: 'Gln'},\n {name: 'Grove', abbreviation: 'Grv'},\n {name: 'Heights', abbreviation: 'Hts'},\n {name: 'Highway', abbreviation: 'Hwy'},\n {name: 'Junction', abbreviation: 'Jct'},\n {name: 'Key', abbreviation: 'Key'},\n {name: 'Lane', abbreviation: 'Ln'},\n {name: 'Loop', abbreviation: 'Loop'},\n {name: 'Manor', abbreviation: 'Mnr'},\n {name: 'Mill', abbreviation: 'Mill'},\n {name: 'Park', abbreviation: 'Park'},\n {name: 'Parkway', abbreviation: 'Pkwy'},\n {name: 'Pass', abbreviation: 'Pass'},\n {name: 'Path', abbreviation: 'Path'},\n {name: 'Pike', abbreviation: 'Pike'},\n {name: 'Place', abbreviation: 'Pl'},\n {name: 'Plaza', abbreviation: 'Plz'},\n {name: 'Point', abbreviation: 'Pt'},\n {name: 'Ridge', abbreviation: 'Rdg'},\n {name: 'River', abbreviation: 'Riv'},\n {name: 'Road', abbreviation: 'Rd'},\n {name: 'Square', abbreviation: 'Sq'},\n {name: 'Street', abbreviation: 'St'},\n {name: 'Terrace', abbreviation: 'Ter'},\n {name: 'Trail', abbreviation: 'Trl'},\n {name: 'Turnpike', abbreviation: 'Tpke'},\n {name: 'View', abbreviation: 'Vw'},\n {name: 'Way', abbreviation: 'Way'}\n ],\n 'it': [\n { name: 'Accesso', abbreviation: 'Acc.' },\n { name: 'Alzaia', abbreviation: 'Alz.' },\n { name: 'Arco', abbreviation: 'Arco' },\n { name: 'Archivolto', abbreviation: 'Acv.' },\n { name: 'Arena', abbreviation: 'Arena' },\n { name: 'Argine', abbreviation: 'Argine' },\n { name: 'Bacino', abbreviation: 'Bacino' },\n { name: 'Banchi', abbreviation: 'Banchi' },\n { name: 'Banchina', abbreviation: 'Ban.' },\n { name: 'Bastioni', abbreviation: 'Bas.' },\n { name: 'Belvedere', abbreviation: 'Belv.' },\n { name: 'Borgata', abbreviation: 'B.ta' },\n { name: 'Borgo', abbreviation: 'B.go' },\n { name: 'Calata', abbreviation: 'Cal.' },\n { name: 'Calle', abbreviation: 'Calle' },\n { name: 'Campiello', abbreviation: 'Cam.' },\n { name: 'Campo', abbreviation: 'Cam.' },\n { name: 'Canale', abbreviation: 'Can.' },\n { name: 'Carraia', abbreviation: 'Carr.' },\n { name: 'Cascina', abbreviation: 'Cascina' },\n { name: 'Case sparse', abbreviation: 'c.s.' },\n { name: 'Cavalcavia', abbreviation: 'Cv.' },\n { name: 'Circonvallazione', abbreviation: 'Cv.' },\n { name: 'Complanare', abbreviation: 'C.re' },\n { name: 'Contrada', abbreviation: 'C.da' },\n { name: 'Corso', abbreviation: 'C.so' },\n { name: 'Corte', abbreviation: 'C.te' },\n { name: 'Cortile', abbreviation: 'C.le' },\n { name: 'Diramazione', abbreviation: 'Dir.' },\n { name: 'Fondaco', abbreviation: 'F.co' },\n { name: 'Fondamenta', abbreviation: 'F.ta' },\n { name: 'Fondo', abbreviation: 'F.do' },\n { name: 'Frazione', abbreviation: 'Fr.' },\n { name: 'Isola', abbreviation: 'Is.' },\n { name: 'Largo', abbreviation: 'L.go' },\n { name: 'Litoranea', abbreviation: 'Lit.' },\n { name: 'Lungolago', abbreviation: 'L.go lago' },\n { name: 'Lungo Po', abbreviation: 'l.go Po' },\n { name: 'Molo', abbreviation: 'Molo' },\n { name: 'Mura', abbreviation: 'Mura' },\n { name: 'Passaggio privato', abbreviation: 'pass. priv.' },\n { name: 'Passeggiata', abbreviation: 'Pass.' },\n { name: 'Piazza', abbreviation: 'P.zza' },\n { name: 'Piazzale', abbreviation: 'P.le' },\n { name: 'Ponte', abbreviation: 'P.te' },\n { name: 'Portico', abbreviation: 'P.co' },\n { name: 'Rampa', abbreviation: 'Rampa' },\n { name: 'Regione', abbreviation: 'Reg.' },\n { name: 'Rione', abbreviation: 'R.ne' },\n { name: 'Rio', abbreviation: 'Rio' },\n { name: 'Ripa', abbreviation: 'Ripa' },\n { name: 'Riva', abbreviation: 'Riva' },\n { name: 'Rondò', abbreviation: 'Rondò' },\n { name: 'Rotonda', abbreviation: 'Rot.' },\n { name: 'Sagrato', abbreviation: 'Sagr.' },\n { name: 'Salita', abbreviation: 'Sal.' },\n { name: 'Scalinata', abbreviation: 'Scal.' },\n { name: 'Scalone', abbreviation: 'Scal.' },\n { name: 'Slargo', abbreviation: 'Sl.' },\n { name: 'Sottoportico', abbreviation: 'Sott.' },\n { name: 'Strada', abbreviation: 'Str.' },\n { name: 'Stradale', abbreviation: 'Str.le' },\n { name: 'Strettoia', abbreviation: 'Strett.' },\n { name: 'Traversa', abbreviation: 'Trav.' },\n { name: 'Via', abbreviation: 'V.' },\n { name: 'Viale', abbreviation: 'V.le' },\n { name: 'Vicinale', abbreviation: 'Vic.le' },\n { name: 'Vicolo', abbreviation: 'Vic.' }\n ],\n 'uk' : [\n {name: 'Avenue', abbreviation: 'Ave'},\n {name: 'Close', abbreviation: 'Cl'},\n {name: 'Court', abbreviation: 'Ct'},\n {name: 'Crescent', abbreviation: 'Cr'},\n {name: 'Drive', abbreviation: 'Dr'},\n {name: 'Garden', abbreviation: 'Gdn'},\n {name: 'Gardens', abbreviation: 'Gdns'},\n {name: 'Green', abbreviation: 'Gn'},\n {name: 'Grove', abbreviation: 'Gr'},\n {name: 'Lane', abbreviation: 'Ln'},\n {name: 'Mount', abbreviation: 'Mt'},\n {name: 'Place', abbreviation: 'Pl'},\n {name: 'Park', abbreviation: 'Pk'},\n {name: 'Ridge', abbreviation: 'Rdg'},\n {name: 'Road', abbreviation: 'Rd'},\n {name: 'Square', abbreviation: 'Sq'},\n {name: 'Street', abbreviation: 'St'},\n {name: 'Terrace', abbreviation: 'Ter'},\n {name: 'Valley', abbreviation: 'Val'}\n ]\n },\n\n months: [\n {name: 'January', short_name: 'Jan', numeric: '01', days: 31},\n // Not messing with leap years...\n {name: 'February', short_name: 'Feb', numeric: '02', days: 28},\n {name: 'March', short_name: 'Mar', numeric: '03', days: 31},\n {name: 'April', short_name: 'Apr', numeric: '04', days: 30},\n {name: 'May', short_name: 'May', numeric: '05', days: 31},\n {name: 'June', short_name: 'Jun', numeric: '06', days: 30},\n {name: 'July', short_name: 'Jul', numeric: '07', days: 31},\n {name: 'August', short_name: 'Aug', numeric: '08', days: 31},\n {name: 'September', short_name: 'Sep', numeric: '09', days: 30},\n {name: 'October', short_name: 'Oct', numeric: '10', days: 31},\n {name: 'November', short_name: 'Nov', numeric: '11', days: 30},\n {name: 'December', short_name: 'Dec', numeric: '12', days: 31}\n ],\n\n // http://en.wikipedia.org/wiki/Bank_card_number#Issuer_identification_number_.28IIN.29\n cc_types: [\n {name: \"American Express\", short_name: 'amex', prefix: '34', length: 15},\n {name: \"Bankcard\", short_name: 'bankcard', prefix: '5610', length: 16},\n {name: \"China UnionPay\", short_name: 'chinaunion', prefix: '62', length: 16},\n {name: \"Diners Club Carte Blanche\", short_name: 'dccarte', prefix: '300', length: 14},\n {name: \"Diners Club enRoute\", short_name: 'dcenroute', prefix: '2014', length: 15},\n {name: \"Diners Club International\", short_name: 'dcintl', prefix: '36', length: 14},\n {name: \"Diners Club United States & Canada\", short_name: 'dcusc', prefix: '54', length: 16},\n {name: \"Discover Card\", short_name: 'discover', prefix: '6011', length: 16},\n {name: \"InstaPayment\", short_name: 'instapay', prefix: '637', length: 16},\n {name: \"JCB\", short_name: 'jcb', prefix: '3528', length: 16},\n {name: \"Laser\", short_name: 'laser', prefix: '6304', length: 16},\n {name: \"Maestro\", short_name: 'maestro', prefix: '5018', length: 16},\n {name: \"Mastercard\", short_name: 'mc', prefix: '51', length: 16},\n {name: \"Solo\", short_name: 'solo', prefix: '6334', length: 16},\n {name: \"Switch\", short_name: 'switch', prefix: '4903', length: 16},\n {name: \"Visa\", short_name: 'visa', prefix: '4', length: 16},\n {name: \"Visa Electron\", short_name: 'electron', prefix: '4026', length: 16}\n ],\n\n //return all world currency by ISO 4217\n currency_types: [\n {'code' : 'AED', 'name' : 'United Arab Emirates Dirham'},\n {'code' : 'AFN', 'name' : 'Afghanistan Afghani'},\n {'code' : 'ALL', 'name' : 'Albania Lek'},\n {'code' : 'AMD', 'name' : 'Armenia Dram'},\n {'code' : 'ANG', 'name' : 'Netherlands Antilles Guilder'},\n {'code' : 'AOA', 'name' : 'Angola Kwanza'},\n {'code' : 'ARS', 'name' : 'Argentina Peso'},\n {'code' : 'AUD', 'name' : 'Australia Dollar'},\n {'code' : 'AWG', 'name' : 'Aruba Guilder'},\n {'code' : 'AZN', 'name' : 'Azerbaijan New Manat'},\n {'code' : 'BAM', 'name' : 'Bosnia and Herzegovina Convertible Marka'},\n {'code' : 'BBD', 'name' : 'Barbados Dollar'},\n {'code' : 'BDT', 'name' : 'Bangladesh Taka'},\n {'code' : 'BGN', 'name' : 'Bulgaria Lev'},\n {'code' : 'BHD', 'name' : 'Bahrain Dinar'},\n {'code' : 'BIF', 'name' : 'Burundi Franc'},\n {'code' : 'BMD', 'name' : 'Bermuda Dollar'},\n {'code' : 'BND', 'name' : 'Brunei Darussalam Dollar'},\n {'code' : 'BOB', 'name' : 'Bolivia Boliviano'},\n {'code' : 'BRL', 'name' : 'Brazil Real'},\n {'code' : 'BSD', 'name' : 'Bahamas Dollar'},\n {'code' : 'BTN', 'name' : 'Bhutan Ngultrum'},\n {'code' : 'BWP', 'name' : 'Botswana Pula'},\n {'code' : 'BYR', 'name' : 'Belarus Ruble'},\n {'code' : 'BZD', 'name' : 'Belize Dollar'},\n {'code' : 'CAD', 'name' : 'Canada Dollar'},\n {'code' : 'CDF', 'name' : 'Congo/Kinshasa Franc'},\n {'code' : 'CHF', 'name' : 'Switzerland Franc'},\n {'code' : 'CLP', 'name' : 'Chile Peso'},\n {'code' : 'CNY', 'name' : 'China Yuan Renminbi'},\n {'code' : 'COP', 'name' : 'Colombia Peso'},\n {'code' : 'CRC', 'name' : 'Costa Rica Colon'},\n {'code' : 'CUC', 'name' : 'Cuba Convertible Peso'},\n {'code' : 'CUP', 'name' : 'Cuba Peso'},\n {'code' : 'CVE', 'name' : 'Cape Verde Escudo'},\n {'code' : 'CZK', 'name' : 'Czech Republic Koruna'},\n {'code' : 'DJF', 'name' : 'Djibouti Franc'},\n {'code' : 'DKK', 'name' : 'Denmark Krone'},\n {'code' : 'DOP', 'name' : 'Dominican Republic Peso'},\n {'code' : 'DZD', 'name' : 'Algeria Dinar'},\n {'code' : 'EGP', 'name' : 'Egypt Pound'},\n {'code' : 'ERN', 'name' : 'Eritrea Nakfa'},\n {'code' : 'ETB', 'name' : 'Ethiopia Birr'},\n {'code' : 'EUR', 'name' : 'Euro Member Countries'},\n {'code' : 'FJD', 'name' : 'Fiji Dollar'},\n {'code' : 'FKP', 'name' : 'Falkland Islands (Malvinas) Pound'},\n {'code' : 'GBP', 'name' : 'United Kingdom Pound'},\n {'code' : 'GEL', 'name' : 'Georgia Lari'},\n {'code' : 'GGP', 'name' : 'Guernsey Pound'},\n {'code' : 'GHS', 'name' : 'Ghana Cedi'},\n {'code' : 'GIP', 'name' : 'Gibraltar Pound'},\n {'code' : 'GMD', 'name' : 'Gambia Dalasi'},\n {'code' : 'GNF', 'name' : 'Guinea Franc'},\n {'code' : 'GTQ', 'name' : 'Guatemala Quetzal'},\n {'code' : 'GYD', 'name' : 'Guyana Dollar'},\n {'code' : 'HKD', 'name' : 'Hong Kong Dollar'},\n {'code' : 'HNL', 'name' : 'Honduras Lempira'},\n {'code' : 'HRK', 'name' : 'Croatia Kuna'},\n {'code' : 'HTG', 'name' : 'Haiti Gourde'},\n {'code' : 'HUF', 'name' : 'Hungary Forint'},\n {'code' : 'IDR', 'name' : 'Indonesia Rupiah'},\n {'code' : 'ILS', 'name' : 'Israel Shekel'},\n {'code' : 'IMP', 'name' : 'Isle of Man Pound'},\n {'code' : 'INR', 'name' : 'India Rupee'},\n {'code' : 'IQD', 'name' : 'Iraq Dinar'},\n {'code' : 'IRR', 'name' : 'Iran Rial'},\n {'code' : 'ISK', 'name' : 'Iceland Krona'},\n {'code' : 'JEP', 'name' : 'Jersey Pound'},\n {'code' : 'JMD', 'name' : 'Jamaica Dollar'},\n {'code' : 'JOD', 'name' : 'Jordan Dinar'},\n {'code' : 'JPY', 'name' : 'Japan Yen'},\n {'code' : 'KES', 'name' : 'Kenya Shilling'},\n {'code' : 'KGS', 'name' : 'Kyrgyzstan Som'},\n {'code' : 'KHR', 'name' : 'Cambodia Riel'},\n {'code' : 'KMF', 'name' : 'Comoros Franc'},\n {'code' : 'KPW', 'name' : 'Korea (North) Won'},\n {'code' : 'KRW', 'name' : 'Korea (South) Won'},\n {'code' : 'KWD', 'name' : 'Kuwait Dinar'},\n {'code' : 'KYD', 'name' : 'Cayman Islands Dollar'},\n {'code' : 'KZT', 'name' : 'Kazakhstan Tenge'},\n {'code' : 'LAK', 'name' : 'Laos Kip'},\n {'code' : 'LBP', 'name' : 'Lebanon Pound'},\n {'code' : 'LKR', 'name' : 'Sri Lanka Rupee'},\n {'code' : 'LRD', 'name' : 'Liberia Dollar'},\n {'code' : 'LSL', 'name' : 'Lesotho Loti'},\n {'code' : 'LTL', 'name' : 'Lithuania Litas'},\n {'code' : 'LYD', 'name' : 'Libya Dinar'},\n {'code' : 'MAD', 'name' : 'Morocco Dirham'},\n {'code' : 'MDL', 'name' : 'Moldova Leu'},\n {'code' : 'MGA', 'name' : 'Madagascar Ariary'},\n {'code' : 'MKD', 'name' : 'Macedonia Denar'},\n {'code' : 'MMK', 'name' : 'Myanmar (Burma) Kyat'},\n {'code' : 'MNT', 'name' : 'Mongolia Tughrik'},\n {'code' : 'MOP', 'name' : 'Macau Pataca'},\n {'code' : 'MRO', 'name' : 'Mauritania Ouguiya'},\n {'code' : 'MUR', 'name' : 'Mauritius Rupee'},\n {'code' : 'MVR', 'name' : 'Maldives (Maldive Islands) Rufiyaa'},\n {'code' : 'MWK', 'name' : 'Malawi Kwacha'},\n {'code' : 'MXN', 'name' : 'Mexico Peso'},\n {'code' : 'MYR', 'name' : 'Malaysia Ringgit'},\n {'code' : 'MZN', 'name' : 'Mozambique Metical'},\n {'code' : 'NAD', 'name' : 'Namibia Dollar'},\n {'code' : 'NGN', 'name' : 'Nigeria Naira'},\n {'code' : 'NIO', 'name' : 'Nicaragua Cordoba'},\n {'code' : 'NOK', 'name' : 'Norway Krone'},\n {'code' : 'NPR', 'name' : 'Nepal Rupee'},\n {'code' : 'NZD', 'name' : 'New Zealand Dollar'},\n {'code' : 'OMR', 'name' : 'Oman Rial'},\n {'code' : 'PAB', 'name' : 'Panama Balboa'},\n {'code' : 'PEN', 'name' : 'Peru Nuevo Sol'},\n {'code' : 'PGK', 'name' : 'Papua New Guinea Kina'},\n {'code' : 'PHP', 'name' : 'Philippines Peso'},\n {'code' : 'PKR', 'name' : 'Pakistan Rupee'},\n {'code' : 'PLN', 'name' : 'Poland Zloty'},\n {'code' : 'PYG', 'name' : 'Paraguay Guarani'},\n {'code' : 'QAR', 'name' : 'Qatar Riyal'},\n {'code' : 'RON', 'name' : 'Romania New Leu'},\n {'code' : 'RSD', 'name' : 'Serbia Dinar'},\n {'code' : 'RUB', 'name' : 'Russia Ruble'},\n {'code' : 'RWF', 'name' : 'Rwanda Franc'},\n {'code' : 'SAR', 'name' : 'Saudi Arabia Riyal'},\n {'code' : 'SBD', 'name' : 'Solomon Islands Dollar'},\n {'code' : 'SCR', 'name' : 'Seychelles Rupee'},\n {'code' : 'SDG', 'name' : 'Sudan Pound'},\n {'code' : 'SEK', 'name' : 'Sweden Krona'},\n {'code' : 'SGD', 'name' : 'Singapore Dollar'},\n {'code' : 'SHP', 'name' : 'Saint Helena Pound'},\n {'code' : 'SLL', 'name' : 'Sierra Leone Leone'},\n {'code' : 'SOS', 'name' : 'Somalia Shilling'},\n {'code' : 'SPL', 'name' : 'Seborga Luigino'},\n {'code' : 'SRD', 'name' : 'Suriname Dollar'},\n {'code' : 'STD', 'name' : 'São Tomé and Príncipe Dobra'},\n {'code' : 'SVC', 'name' : 'El Salvador Colon'},\n {'code' : 'SYP', 'name' : 'Syria Pound'},\n {'code' : 'SZL', 'name' : 'Swaziland Lilangeni'},\n {'code' : 'THB', 'name' : 'Thailand Baht'},\n {'code' : 'TJS', 'name' : 'Tajikistan Somoni'},\n {'code' : 'TMT', 'name' : 'Turkmenistan Manat'},\n {'code' : 'TND', 'name' : 'Tunisia Dinar'},\n {'code' : 'TOP', 'name' : 'Tonga Pa\\'anga'},\n {'code' : 'TRY', 'name' : 'Turkey Lira'},\n {'code' : 'TTD', 'name' : 'Trinidad and Tobago Dollar'},\n {'code' : 'TVD', 'name' : 'Tuvalu Dollar'},\n {'code' : 'TWD', 'name' : 'Taiwan New Dollar'},\n {'code' : 'TZS', 'name' : 'Tanzania Shilling'},\n {'code' : 'UAH', 'name' : 'Ukraine Hryvnia'},\n {'code' : 'UGX', 'name' : 'Uganda Shilling'},\n {'code' : 'USD', 'name' : 'United States Dollar'},\n {'code' : 'UYU', 'name' : 'Uruguay Peso'},\n {'code' : 'UZS', 'name' : 'Uzbekistan Som'},\n {'code' : 'VEF', 'name' : 'Venezuela Bolivar'},\n {'code' : 'VND', 'name' : 'Viet Nam Dong'},\n {'code' : 'VUV', 'name' : 'Vanuatu Vatu'},\n {'code' : 'WST', 'name' : 'Samoa Tala'},\n {'code' : 'XAF', 'name' : 'Communauté Financière Africaine (BEAC) CFA Franc BEAC'},\n {'code' : 'XCD', 'name' : 'East Caribbean Dollar'},\n {'code' : 'XDR', 'name' : 'International Monetary Fund (IMF) Special Drawing Rights'},\n {'code' : 'XOF', 'name' : 'Communauté Financière Africaine (BCEAO) Franc'},\n {'code' : 'XPF', 'name' : 'Comptoirs Français du Pacifique (CFP) Franc'},\n {'code' : 'YER', 'name' : 'Yemen Rial'},\n {'code' : 'ZAR', 'name' : 'South Africa Rand'},\n {'code' : 'ZMW', 'name' : 'Zambia Kwacha'},\n {'code' : 'ZWD', 'name' : 'Zimbabwe Dollar'}\n ],\n\n // return the names of all valide colors\n colorNames : [ \"AliceBlue\", \"Black\", \"Navy\", \"DarkBlue\", \"MediumBlue\", \"Blue\", \"DarkGreen\", \"Green\", \"Teal\", \"DarkCyan\", \"DeepSkyBlue\", \"DarkTurquoise\", \"MediumSpringGreen\", \"Lime\", \"SpringGreen\",\n \"Aqua\", \"Cyan\", \"MidnightBlue\", \"DodgerBlue\", \"LightSeaGreen\", \"ForestGreen\", \"SeaGreen\", \"DarkSlateGray\", \"LimeGreen\", \"MediumSeaGreen\", \"Turquoise\", \"RoyalBlue\", \"SteelBlue\", \"DarkSlateBlue\", \"MediumTurquoise\",\n \"Indigo\", \"DarkOliveGreen\", \"CadetBlue\", \"CornflowerBlue\", \"RebeccaPurple\", \"MediumAquaMarine\", \"DimGray\", \"SlateBlue\", \"OliveDrab\", \"SlateGray\", \"LightSlateGray\", \"MediumSlateBlue\", \"LawnGreen\", \"Chartreuse\",\n \"Aquamarine\", \"Maroon\", \"Purple\", \"Olive\", \"Gray\", \"SkyBlue\", \"LightSkyBlue\", \"BlueViolet\", \"DarkRed\", \"DarkMagenta\", \"SaddleBrown\", \"Ivory\", \"White\",\n \"DarkSeaGreen\", \"LightGreen\", \"MediumPurple\", \"DarkViolet\", \"PaleGreen\", \"DarkOrchid\", \"YellowGreen\", \"Sienna\", \"Brown\", \"DarkGray\", \"LightBlue\", \"GreenYellow\", \"PaleTurquoise\", \"LightSteelBlue\", \"PowderBlue\",\n \"FireBrick\", \"DarkGoldenRod\", \"MediumOrchid\", \"RosyBrown\", \"DarkKhaki\", \"Silver\", \"MediumVioletRed\", \"IndianRed\", \"Peru\", \"Chocolate\", \"Tan\", \"LightGray\", \"Thistle\", \"Orchid\", \"GoldenRod\", \"PaleVioletRed\",\n \"Crimson\", \"Gainsboro\", \"Plum\", \"BurlyWood\", \"LightCyan\", \"Lavender\", \"DarkSalmon\", \"Violet\", \"PaleGoldenRod\", \"LightCoral\", \"Khaki\", \"AliceBlue\", \"HoneyDew\", \"Azure\", \"SandyBrown\", \"Wheat\", \"Beige\", \"WhiteSmoke\",\n \"MintCream\", \"GhostWhite\", \"Salmon\", \"AntiqueWhite\", \"Linen\", \"LightGoldenRodYellow\", \"OldLace\", \"Red\", \"Fuchsia\", \"Magenta\", \"DeepPink\", \"OrangeRed\", \"Tomato\", \"HotPink\", \"Coral\", \"DarkOrange\", \"LightSalmon\", \"Orange\",\n \"LightPink\", \"Pink\", \"Gold\", \"PeachPuff\", \"NavajoWhite\", \"Moccasin\", \"Bisque\", \"MistyRose\", \"BlanchedAlmond\", \"PapayaWhip\", \"LavenderBlush\", \"SeaShell\", \"Cornsilk\", \"LemonChiffon\", \"FloralWhite\", \"Snow\", \"Yellow\", \"LightYellow\"\n ],\n\n // Data taken from https://www.sec.gov/rules/other/4-460list.htm\n company: [ \"3Com Corp\",\n \"3M Company\",\n \"A.G. Edwards Inc.\",\n \"Abbott Laboratories\",\n \"Abercrombie & Fitch Co.\",\n \"ABM Industries Incorporated\",\n \"Ace Hardware Corporation\",\n \"ACT Manufacturing Inc.\",\n \"Acterna Corp.\",\n \"Adams Resources & Energy, Inc.\",\n \"ADC Telecommunications, Inc.\",\n \"Adelphia Communications Corporation\",\n \"Administaff, Inc.\",\n \"Adobe Systems Incorporated\",\n \"Adolph Coors Company\",\n \"Advance Auto Parts, Inc.\",\n \"Advanced Micro Devices, Inc.\",\n \"AdvancePCS, Inc.\",\n \"Advantica Restaurant Group, Inc.\",\n \"The AES Corporation\",\n \"Aetna Inc.\",\n \"Affiliated Computer Services, Inc.\",\n \"AFLAC Incorporated\",\n \"AGCO Corporation\",\n \"Agilent Technologies, Inc.\",\n \"Agway Inc.\",\n \"Apartment Investment and Management Company\",\n \"Air Products and Chemicals, Inc.\",\n \"Airborne, Inc.\",\n \"Airgas, Inc.\",\n \"AK Steel Holding Corporation\",\n \"Alaska Air Group, Inc.\",\n \"Alberto-Culver Company\",\n \"Albertson's, Inc.\",\n \"Alcoa Inc.\",\n \"Alleghany Corporation\",\n \"Allegheny Energy, Inc.\",\n \"Allegheny Technologies Incorporated\",\n \"Allergan, Inc.\",\n \"ALLETE, Inc.\",\n \"Alliant Energy Corporation\",\n \"Allied Waste Industries, Inc.\",\n \"Allmerica Financial Corporation\",\n \"The Allstate Corporation\",\n \"ALLTEL Corporation\",\n \"The Alpine Group, Inc.\",\n \"Amazon.com, Inc.\",\n \"AMC Entertainment Inc.\",\n \"American Power Conversion Corporation\",\n \"Amerada Hess Corporation\",\n \"AMERCO\",\n \"Ameren Corporation\",\n \"America West Holdings Corporation\",\n \"American Axle & Manufacturing Holdings, Inc.\",\n \"American Eagle Outfitters, Inc.\",\n \"American Electric Power Company, Inc.\",\n \"American Express Company\",\n \"American Financial Group, Inc.\",\n \"American Greetings Corporation\",\n \"American International Group, Inc.\",\n \"American Standard Companies Inc.\",\n \"American Water Works Company, Inc.\",\n \"AmerisourceBergen Corporation\",\n \"Ames Department Stores, Inc.\",\n \"Amgen Inc.\",\n \"Amkor Technology, Inc.\",\n \"AMR Corporation\",\n \"AmSouth Bancorp.\",\n \"Amtran, Inc.\",\n \"Anadarko Petroleum Corporation\",\n \"Analog Devices, Inc.\",\n \"Anheuser-Busch Companies, Inc.\",\n \"Anixter International Inc.\",\n \"AnnTaylor Inc.\",\n \"Anthem, Inc.\",\n \"AOL Time Warner Inc.\",\n \"Aon Corporation\",\n \"Apache Corporation\",\n \"Apple Computer, Inc.\",\n \"Applera Corporation\",\n \"Applied Industrial Technologies, Inc.\",\n \"Applied Materials, Inc.\",\n \"Aquila, Inc.\",\n \"ARAMARK Corporation\",\n \"Arch Coal, Inc.\",\n \"Archer Daniels Midland Company\",\n \"Arkansas Best Corporation\",\n \"Armstrong Holdings, Inc.\",\n \"Arrow Electronics, Inc.\",\n \"ArvinMeritor, Inc.\",\n \"Ashland Inc.\",\n \"Astoria Financial Corporation\",\n \"AT&T Corp.\",\n \"Atmel Corporation\",\n \"Atmos Energy Corporation\",\n \"Audiovox Corporation\",\n \"Autoliv, Inc.\",\n \"Automatic Data Processing, Inc.\",\n \"AutoNation, Inc.\",\n \"AutoZone, Inc.\",\n \"Avaya Inc.\",\n \"Avery Dennison Corporation\",\n \"Avista Corporation\",\n \"Avnet, Inc.\",\n \"Avon Products, Inc.\",\n \"Baker Hughes Incorporated\",\n \"Ball Corporation\",\n \"Bank of America Corporation\",\n \"The Bank of New York Company, Inc.\",\n \"Bank One Corporation\",\n \"Banknorth Group, Inc.\",\n \"Banta Corporation\",\n \"Barnes & Noble, Inc.\",\n \"Bausch & Lomb Incorporated\",\n \"Baxter International Inc.\",\n \"BB&T Corporation\",\n \"The Bear Stearns Companies Inc.\",\n \"Beazer Homes USA, Inc.\",\n \"Beckman Coulter, Inc.\",\n \"Becton, Dickinson and Company\",\n \"Bed Bath & Beyond Inc.\",\n \"Belk, Inc.\",\n \"Bell Microproducts Inc.\",\n \"BellSouth Corporation\",\n \"Belo Corp.\",\n \"Bemis Company, Inc.\",\n \"Benchmark Electronics, Inc.\",\n \"Berkshire Hathaway Inc.\",\n \"Best Buy Co., Inc.\",\n \"Bethlehem Steel Corporation\",\n \"Beverly Enterprises, Inc.\",\n \"Big Lots, Inc.\",\n \"BJ Services Company\",\n \"BJ's Wholesale Club, Inc.\",\n \"The Black & Decker Corporation\",\n \"Black Hills Corporation\",\n \"BMC Software, Inc.\",\n \"The Boeing Company\",\n \"Boise Cascade Corporation\",\n \"Borders Group, Inc.\",\n \"BorgWarner Inc.\",\n \"Boston Scientific Corporation\",\n \"Bowater Incorporated\",\n \"Briggs & Stratton Corporation\",\n \"Brightpoint, Inc.\",\n \"Brinker International, Inc.\",\n \"Bristol-Myers Squibb Company\",\n \"Broadwing, Inc.\",\n \"Brown Shoe Company, Inc.\",\n \"Brown-Forman Corporation\",\n \"Brunswick Corporation\",\n \"Budget Group, Inc.\",\n \"Burlington Coat Factory Warehouse Corporation\",\n \"Burlington Industries, Inc.\",\n \"Burlington Northern Santa Fe Corporation\",\n \"Burlington Resources Inc.\",\n \"C. H. Robinson Worldwide Inc.\",\n \"Cablevision Systems Corp\",\n \"Cabot Corp\",\n \"Cadence Design Systems, Inc.\",\n \"Calpine Corp.\",\n \"Campbell Soup Co.\",\n \"Capital One Financial Corp.\",\n \"Cardinal Health Inc.\",\n \"Caremark Rx Inc.\",\n \"Carlisle Cos. Inc.\",\n \"Carpenter Technology Corp.\",\n \"Casey's General Stores Inc.\",\n \"Caterpillar Inc.\",\n \"CBRL Group Inc.\",\n \"CDI Corp.\",\n \"CDW Computer Centers Inc.\",\n \"CellStar Corp.\",\n \"Cendant Corp\",\n \"Cenex Harvest States Cooperatives\",\n \"Centex Corp.\",\n \"CenturyTel Inc.\",\n \"Ceridian Corp.\",\n \"CH2M Hill Cos. Ltd.\",\n \"Champion Enterprises Inc.\",\n \"Charles Schwab Corp.\",\n \"Charming Shoppes Inc.\",\n \"Charter Communications Inc.\",\n \"Charter One Financial Inc.\",\n \"ChevronTexaco Corp.\",\n \"Chiquita Brands International Inc.\",\n \"Chubb Corp\",\n \"Ciena Corp.\",\n \"Cigna Corp\",\n \"Cincinnati Financial Corp.\",\n \"Cinergy Corp.\",\n \"Cintas Corp.\",\n \"Circuit City Stores Inc.\",\n \"Cisco Systems Inc.\",\n \"Citigroup, Inc\",\n \"Citizens Communications Co.\",\n \"CKE Restaurants Inc.\",\n \"Clear Channel Communications Inc.\",\n \"The Clorox Co.\",\n \"CMGI Inc.\",\n \"CMS Energy Corp.\",\n \"CNF Inc.\",\n \"Coca-Cola Co.\",\n \"Coca-Cola Enterprises Inc.\",\n \"Colgate-Palmolive Co.\",\n \"Collins & Aikman Corp.\",\n \"Comcast Corp.\",\n \"Comdisco Inc.\",\n \"Comerica Inc.\",\n \"Comfort Systems USA Inc.\",\n \"Commercial Metals Co.\",\n \"Community Health Systems Inc.\",\n \"Compass Bancshares Inc\",\n \"Computer Associates International Inc.\",\n \"Computer Sciences Corp.\",\n \"Compuware Corp.\",\n \"Comverse Technology Inc.\",\n \"ConAgra Foods Inc.\",\n \"Concord EFS Inc.\",\n \"Conectiv, Inc\",\n \"Conoco Inc\",\n \"Conseco Inc.\",\n \"Consolidated Freightways Corp.\",\n \"Consolidated Edison Inc.\",\n \"Constellation Brands Inc.\",\n \"Constellation Emergy Group Inc.\",\n \"Continental Airlines Inc.\",\n \"Convergys Corp.\",\n \"Cooper Cameron Corp.\",\n \"Cooper Industries Ltd.\",\n \"Cooper Tire & Rubber Co.\",\n \"Corn Products International Inc.\",\n \"Corning Inc.\",\n \"Costco Wholesale Corp.\",\n \"Countrywide Credit Industries Inc.\",\n \"Coventry Health Care Inc.\",\n \"Cox Communications Inc.\",\n \"Crane Co.\",\n \"Crompton Corp.\",\n \"Crown Cork & Seal Co. Inc.\",\n \"CSK Auto Corp.\",\n \"CSX Corp.\",\n \"Cummins Inc.\",\n \"CVS Corp.\",\n \"Cytec Industries Inc.\",\n \"D&K Healthcare Resources, Inc.\",\n \"D.R. Horton Inc.\",\n \"Dana Corporation\",\n \"Danaher Corporation\",\n \"Darden Restaurants Inc.\",\n \"DaVita Inc.\",\n \"Dean Foods Company\",\n \"Deere & Company\",\n \"Del Monte Foods Co\",\n \"Dell Computer Corporation\",\n \"Delphi Corp.\",\n \"Delta Air Lines Inc.\",\n \"Deluxe Corporation\",\n \"Devon Energy Corporation\",\n \"Di Giorgio Corporation\",\n \"Dial Corporation\",\n \"Diebold Incorporated\",\n \"Dillard's Inc.\",\n \"DIMON Incorporated\",\n \"Dole Food Company, Inc.\",\n \"Dollar General Corporation\",\n \"Dollar Tree Stores, Inc.\",\n \"Dominion Resources, Inc.\",\n \"Domino's Pizza LLC\",\n \"Dover Corporation, Inc.\",\n \"Dow Chemical Company\",\n \"Dow Jones & Company, Inc.\",\n \"DPL Inc.\",\n \"DQE Inc.\",\n \"Dreyer's Grand Ice Cream, Inc.\",\n \"DST Systems, Inc.\",\n \"DTE Energy Co.\",\n \"E.I. Du Pont de Nemours and Company\",\n \"Duke Energy Corp\",\n \"Dun & Bradstreet Inc.\",\n \"DURA Automotive Systems Inc.\",\n \"DynCorp\",\n \"Dynegy Inc.\",\n \"E*Trade Group, Inc.\",\n \"E.W. Scripps Company\",\n \"Earthlink, Inc.\",\n \"Eastman Chemical Company\",\n \"Eastman Kodak Company\",\n \"Eaton Corporation\",\n \"Echostar Communications Corporation\",\n \"Ecolab Inc.\",\n \"Edison International\",\n \"EGL Inc.\",\n \"El Paso Corporation\",\n \"Electronic Arts Inc.\",\n \"Electronic Data Systems Corp.\",\n \"Eli Lilly and Company\",\n \"EMC Corporation\",\n \"Emcor Group Inc.\",\n \"Emerson Electric Co.\",\n \"Encompass Services Corporation\",\n \"Energizer Holdings Inc.\",\n \"Energy East Corporation\",\n \"Engelhard Corporation\",\n \"Enron Corp.\",\n \"Entergy Corporation\",\n \"Enterprise Products Partners L.P.\",\n \"EOG Resources, Inc.\",\n \"Equifax Inc.\",\n \"Equitable Resources Inc.\",\n \"Equity Office Properties Trust\",\n \"Equity Residential Properties Trust\",\n \"Estee Lauder Companies Inc.\",\n \"Exelon Corporation\",\n \"Exide Technologies\",\n \"Expeditors International of Washington Inc.\",\n \"Express Scripts Inc.\",\n \"ExxonMobil Corporation\",\n \"Fairchild Semiconductor International Inc.\",\n \"Family Dollar Stores Inc.\",\n \"Farmland Industries Inc.\",\n \"Federal Mogul Corp.\",\n \"Federated Department Stores Inc.\",\n \"Federal Express Corp.\",\n \"Felcor Lodging Trust Inc.\",\n \"Ferro Corp.\",\n \"Fidelity National Financial Inc.\",\n \"Fifth Third Bancorp\",\n \"First American Financial Corp.\",\n \"First Data Corp.\",\n \"First National of Nebraska Inc.\",\n \"First Tennessee National Corp.\",\n \"FirstEnergy Corp.\",\n \"Fiserv Inc.\",\n \"Fisher Scientific International Inc.\",\n \"FleetBoston Financial Co.\",\n \"Fleetwood Enterprises Inc.\",\n \"Fleming Companies Inc.\",\n \"Flowers Foods Inc.\",\n \"Flowserv Corp\",\n \"Fluor Corp\",\n \"FMC Corp\",\n \"Foamex International Inc\",\n \"Foot Locker Inc\",\n \"Footstar Inc.\",\n \"Ford Motor Co\",\n \"Forest Laboratories Inc.\",\n \"Fortune Brands Inc.\",\n \"Foster Wheeler Ltd.\",\n \"FPL Group Inc.\",\n \"Franklin Resources Inc.\",\n \"Freeport McMoran Copper & Gold Inc.\",\n \"Frontier Oil Corp\",\n \"Furniture Brands International Inc.\",\n \"Gannett Co., Inc.\",\n \"Gap Inc.\",\n \"Gateway Inc.\",\n \"GATX Corporation\",\n \"Gemstar-TV Guide International Inc.\",\n \"GenCorp Inc.\",\n \"General Cable Corporation\",\n \"General Dynamics Corporation\",\n \"General Electric Company\",\n \"General Mills Inc\",\n \"General Motors Corporation\",\n \"Genesis Health Ventures Inc.\",\n \"Gentek Inc.\",\n \"Gentiva Health Services Inc.\",\n \"Genuine Parts Company\",\n \"Genuity Inc.\",\n \"Genzyme Corporation\",\n \"Georgia Gulf Corporation\",\n \"Georgia-Pacific Corporation\",\n \"Gillette Company\",\n \"Gold Kist Inc.\",\n \"Golden State Bancorp Inc.\",\n \"Golden West Financial Corporation\",\n \"Goldman Sachs Group Inc.\",\n \"Goodrich Corporation\",\n \"The Goodyear Tire & Rubber Company\",\n \"Granite Construction Incorporated\",\n \"Graybar Electric Company Inc.\",\n \"Great Lakes Chemical Corporation\",\n \"Great Plains Energy Inc.\",\n \"GreenPoint Financial Corp.\",\n \"Greif Bros. Corporation\",\n \"Grey Global Group Inc.\",\n \"Group 1 Automotive Inc.\",\n \"Guidant Corporation\",\n \"H&R Block Inc.\",\n \"H.B. Fuller Company\",\n \"H.J. Heinz Company\",\n \"Halliburton Co.\",\n \"Harley-Davidson Inc.\",\n \"Harman International Industries Inc.\",\n \"Harrah's Entertainment Inc.\",\n \"Harris Corp.\",\n \"Harsco Corp.\",\n \"Hartford Financial Services Group Inc.\",\n \"Hasbro Inc.\",\n \"Hawaiian Electric Industries Inc.\",\n \"HCA Inc.\",\n \"Health Management Associates Inc.\",\n \"Health Net Inc.\",\n \"Healthsouth Corp\",\n \"Henry Schein Inc.\",\n \"Hercules Inc.\",\n \"Herman Miller Inc.\",\n \"Hershey Foods Corp.\",\n \"Hewlett-Packard Company\",\n \"Hibernia Corp.\",\n \"Hillenbrand Industries Inc.\",\n \"Hilton Hotels Corp.\",\n \"Hollywood Entertainment Corp.\",\n \"Home Depot Inc.\",\n \"Hon Industries Inc.\",\n \"Honeywell International Inc.\",\n \"Hormel Foods Corp.\",\n \"Host Marriott Corp.\",\n \"Household International Corp.\",\n \"Hovnanian Enterprises Inc.\",\n \"Hub Group Inc.\",\n \"Hubbell Inc.\",\n \"Hughes Supply Inc.\",\n \"Humana Inc.\",\n \"Huntington Bancshares Inc.\",\n \"Idacorp Inc.\",\n \"IDT Corporation\",\n \"IKON Office Solutions Inc.\",\n \"Illinois Tool Works Inc.\",\n \"IMC Global Inc.\",\n \"Imperial Sugar Company\",\n \"IMS Health Inc.\",\n \"Ingles Market Inc\",\n \"Ingram Micro Inc.\",\n \"Insight Enterprises Inc.\",\n \"Integrated Electrical Services Inc.\",\n \"Intel Corporation\",\n \"International Paper Co.\",\n \"Interpublic Group of Companies Inc.\",\n \"Interstate Bakeries Corporation\",\n \"International Business Machines Corp.\",\n \"International Flavors & Fragrances Inc.\",\n \"International Multifoods Corporation\",\n \"Intuit Inc.\",\n \"IT Group Inc.\",\n \"ITT Industries Inc.\",\n \"Ivax Corp.\",\n \"J.B. Hunt Transport Services Inc.\",\n \"J.C. Penny Co.\",\n \"J.P. Morgan Chase & Co.\",\n \"Jabil Circuit Inc.\",\n \"Jack In The Box Inc.\",\n \"Jacobs Engineering Group Inc.\",\n \"JDS Uniphase Corp.\",\n \"Jefferson-Pilot Co.\",\n \"John Hancock Financial Services Inc.\",\n \"Johnson & Johnson\",\n \"Johnson Controls Inc.\",\n \"Jones Apparel Group Inc.\",\n \"KB Home\",\n \"Kellogg Company\",\n \"Kellwood Company\",\n \"Kelly Services Inc.\",\n \"Kemet Corp.\",\n \"Kennametal Inc.\",\n \"Kerr-McGee Corporation\",\n \"KeyCorp\",\n \"KeySpan Corp.\",\n \"Kimball International Inc.\",\n \"Kimberly-Clark Corporation\",\n \"Kindred Healthcare Inc.\",\n \"KLA-Tencor Corporation\",\n \"K-Mart Corp.\",\n \"Knight-Ridder Inc.\",\n \"Kohl's Corp.\",\n \"KPMG Consulting Inc.\",\n \"Kroger Co.\",\n \"L-3 Communications Holdings Inc.\",\n \"Laboratory Corporation of America Holdings\",\n \"Lam Research Corporation\",\n \"LandAmerica Financial Group Inc.\",\n \"Lands' End Inc.\",\n \"Landstar System Inc.\",\n \"La-Z-Boy Inc.\",\n \"Lear Corporation\",\n \"Legg Mason Inc.\",\n \"Leggett & Platt Inc.\",\n \"Lehman Brothers Holdings Inc.\",\n \"Lennar Corporation\",\n \"Lennox International Inc.\",\n \"Level 3 Communications Inc.\",\n \"Levi Strauss & Co.\",\n \"Lexmark International Inc.\",\n \"Limited Inc.\",\n \"Lincoln National Corporation\",\n \"Linens 'n Things Inc.\",\n \"Lithia Motors Inc.\",\n \"Liz Claiborne Inc.\",\n \"Lockheed Martin Corporation\",\n \"Loews Corporation\",\n \"Longs Drug Stores Corporation\",\n \"Louisiana-Pacific Corporation\",\n \"Lowe's Companies Inc.\",\n \"LSI Logic Corporation\",\n \"The LTV Corporation\",\n \"The Lubrizol Corporation\",\n \"Lucent Technologies Inc.\",\n \"Lyondell Chemical Company\",\n \"M & T Bank Corporation\",\n \"Magellan Health Services Inc.\",\n \"Mail-Well Inc.\",\n \"Mandalay Resort Group\",\n \"Manor Care Inc.\",\n \"Manpower Inc.\",\n \"Marathon Oil Corporation\",\n \"Mariner Health Care Inc.\",\n \"Markel Corporation\",\n \"Marriott International Inc.\",\n \"Marsh & McLennan Companies Inc.\",\n \"Marsh Supermarkets Inc.\",\n \"Marshall & Ilsley Corporation\",\n \"Martin Marietta Materials Inc.\",\n \"Masco Corporation\",\n \"Massey Energy Company\",\n \"MasTec Inc.\",\n \"Mattel Inc.\",\n \"Maxim Integrated Products Inc.\",\n \"Maxtor Corporation\",\n \"Maxxam Inc.\",\n \"The May Department Stores Company\",\n \"Maytag Corporation\",\n \"MBNA Corporation\",\n \"McCormick & Company Incorporated\",\n \"McDonald's Corporation\",\n \"The McGraw-Hill Companies Inc.\",\n \"McKesson Corporation\",\n \"McLeodUSA Incorporated\",\n \"M.D.C. Holdings Inc.\",\n \"MDU Resources Group Inc.\",\n \"MeadWestvaco Corporation\",\n \"Medtronic Inc.\",\n \"Mellon Financial Corporation\",\n \"The Men's Wearhouse Inc.\",\n \"Merck & Co., Inc.\",\n \"Mercury General Corporation\",\n \"Merrill Lynch & Co. Inc.\",\n \"Metaldyne Corporation\",\n \"Metals USA Inc.\",\n \"MetLife Inc.\",\n \"Metris Companies Inc\",\n \"MGIC Investment Corporation\",\n \"MGM Mirage\",\n \"Michaels Stores Inc.\",\n \"Micron Technology Inc.\",\n \"Microsoft Corporation\",\n \"Milacron Inc.\",\n \"Millennium Chemicals Inc.\",\n \"Mirant Corporation\",\n \"Mohawk Industries Inc.\",\n \"Molex Incorporated\",\n \"The MONY Group Inc.\",\n \"Morgan Stanley Dean Witter & Co.\",\n \"Motorola Inc.\",\n \"MPS Group Inc.\",\n \"Murphy Oil Corporation\",\n \"Nabors Industries Inc\",\n \"Nacco Industries Inc\",\n \"Nash Finch Company\",\n \"National City Corp.\",\n \"National Commerce Financial Corporation\",\n \"National Fuel Gas Company\",\n \"National Oilwell Inc\",\n \"National Rural Utilities Cooperative Finance Corporation\",\n \"National Semiconductor Corporation\",\n \"National Service Industries Inc\",\n \"Navistar International Corporation\",\n \"NCR Corporation\",\n \"The Neiman Marcus Group Inc.\",\n \"New Jersey Resources Corporation\",\n \"New York Times Company\",\n \"Newell Rubbermaid Inc\",\n \"Newmont Mining Corporation\",\n \"Nextel Communications Inc\",\n \"Nicor Inc\",\n \"Nike Inc\",\n \"NiSource Inc\",\n \"Noble Energy Inc\",\n \"Nordstrom Inc\",\n \"Norfolk Southern Corporation\",\n \"Nortek Inc\",\n \"North Fork Bancorporation Inc\",\n \"Northeast Utilities System\",\n \"Northern Trust Corporation\",\n \"Northrop Grumman Corporation\",\n \"NorthWestern Corporation\",\n \"Novellus Systems Inc\",\n \"NSTAR\",\n \"NTL Incorporated\",\n \"Nucor Corp\",\n \"Nvidia Corp\",\n \"NVR Inc\",\n \"Northwest Airlines Corp\",\n \"Occidental Petroleum Corp\",\n \"Ocean Energy Inc\",\n \"Office Depot Inc.\",\n \"OfficeMax Inc\",\n \"OGE Energy Corp\",\n \"Oglethorpe Power Corp.\",\n \"Ohio Casualty Corp.\",\n \"Old Republic International Corp.\",\n \"Olin Corp.\",\n \"OM Group Inc\",\n \"Omnicare Inc\",\n \"Omnicom Group\",\n \"On Semiconductor Corp\",\n \"ONEOK Inc\",\n \"Oracle Corp\",\n \"Oshkosh Truck Corp\",\n \"Outback Steakhouse Inc.\",\n \"Owens & Minor Inc.\",\n \"Owens Corning\",\n \"Owens-Illinois Inc\",\n \"Oxford Health Plans Inc\",\n \"Paccar Inc\",\n \"PacifiCare Health Systems Inc\",\n \"Packaging Corp. of America\",\n \"Pactiv Corp\",\n \"Pall Corp\",\n \"Pantry Inc\",\n \"Park Place Entertainment Corp\",\n \"Parker Hannifin Corp.\",\n \"Pathmark Stores Inc.\",\n \"Paychex Inc\",\n \"Payless Shoesource Inc\",\n \"Penn Traffic Co.\",\n \"Pennzoil-Quaker State Company\",\n \"Pentair Inc\",\n \"Peoples Energy Corp.\",\n \"PeopleSoft Inc\",\n \"Pep Boys Manny, Moe & Jack\",\n \"Potomac Electric Power Co.\",\n \"Pepsi Bottling Group Inc.\",\n \"PepsiAmericas Inc.\",\n \"PepsiCo Inc.\",\n \"Performance Food Group Co.\",\n \"Perini Corp\",\n \"PerkinElmer Inc\",\n \"Perot Systems Corp\",\n \"Petco Animal Supplies Inc.\",\n \"Peter Kiewit Sons', Inc.\",\n \"PETsMART Inc\",\n \"Pfizer Inc\",\n \"Pacific Gas & Electric Corp.\",\n \"Pharmacia Corp\",\n \"Phar Mor Inc.\",\n \"Phelps Dodge Corp.\",\n \"Philip Morris Companies Inc.\",\n \"Phillips Petroleum Co\",\n \"Phillips Van Heusen Corp.\",\n \"Phoenix Companies Inc\",\n \"Pier 1 Imports Inc.\",\n \"Pilgrim's Pride Corporation\",\n \"Pinnacle West Capital Corp\",\n \"Pioneer-Standard Electronics Inc.\",\n \"Pitney Bowes Inc.\",\n \"Pittston Brinks Group\",\n \"Plains All American Pipeline LP\",\n \"PNC Financial Services Group Inc.\",\n \"PNM Resources Inc\",\n \"Polaris Industries Inc.\",\n \"Polo Ralph Lauren Corp\",\n \"PolyOne Corp\",\n \"Popular Inc\",\n \"Potlatch Corp\",\n \"PPG Industries Inc\",\n \"PPL Corp\",\n \"Praxair Inc\",\n \"Precision Castparts Corp\",\n \"Premcor Inc.\",\n \"Pride International Inc\",\n \"Primedia Inc\",\n \"Principal Financial Group Inc.\",\n \"Procter & Gamble Co.\",\n \"Pro-Fac Cooperative Inc.\",\n \"Progress Energy Inc\",\n \"Progressive Corporation\",\n \"Protective Life Corp\",\n \"Provident Financial Group\",\n \"Providian Financial Corp.\",\n \"Prudential Financial Inc.\",\n \"PSS World Medical Inc\",\n \"Public Service Enterprise Group Inc.\",\n \"Publix Super Markets Inc.\",\n \"Puget Energy Inc.\",\n \"Pulte Homes Inc\",\n \"Qualcomm Inc\",\n \"Quanta Services Inc.\",\n \"Quantum Corp\",\n \"Quest Diagnostics Inc.\",\n \"Questar Corp\",\n \"Quintiles Transnational\",\n \"Qwest Communications Intl Inc\",\n \"R.J. Reynolds Tobacco Company\",\n \"R.R. Donnelley & Sons Company\",\n \"Radio Shack Corporation\",\n \"Raymond James Financial Inc.\",\n \"Raytheon Company\",\n \"Reader's Digest Association Inc.\",\n \"Reebok International Ltd.\",\n \"Regions Financial Corp.\",\n \"Regis Corporation\",\n \"Reliance Steel & Aluminum Co.\",\n \"Reliant Energy Inc.\",\n \"Rent A Center Inc\",\n \"Republic Services Inc\",\n \"Revlon Inc\",\n \"RGS Energy Group Inc\",\n \"Rite Aid Corp\",\n \"Riverwood Holding Inc.\",\n \"RoadwayCorp\",\n \"Robert Half International Inc.\",\n \"Rock-Tenn Co\",\n \"Rockwell Automation Inc\",\n \"Rockwell Collins Inc\",\n \"Rohm & Haas Co.\",\n \"Ross Stores Inc\",\n \"RPM Inc.\",\n \"Ruddick Corp\",\n \"Ryder System Inc\",\n \"Ryerson Tull Inc\",\n \"Ryland Group Inc.\",\n \"Sabre Holdings Corp\",\n \"Safeco Corp\",\n \"Safeguard Scientifics Inc.\",\n \"Safeway Inc\",\n \"Saks Inc\",\n \"Sanmina-SCI Inc\",\n \"Sara Lee Corp\",\n \"SBC Communications Inc\",\n \"Scana Corp.\",\n \"Schering-Plough Corp\",\n \"Scholastic Corp\",\n \"SCI Systems Onc.\",\n \"Science Applications Intl. Inc.\",\n \"Scientific-Atlanta Inc\",\n \"Scotts Company\",\n \"Seaboard Corp\",\n \"Sealed Air Corp\",\n \"Sears Roebuck & Co\",\n \"Sempra Energy\",\n \"Sequa Corp\",\n \"Service Corp. International\",\n \"ServiceMaster Co\",\n \"Shaw Group Inc\",\n \"Sherwin-Williams Company\",\n \"Shopko Stores Inc\",\n \"Siebel Systems Inc\",\n \"Sierra Health Services Inc\",\n \"Sierra Pacific Resources\",\n \"Silgan Holdings Inc.\",\n \"Silicon Graphics Inc\",\n \"Simon Property Group Inc\",\n \"SLM Corporation\",\n \"Smith International Inc\",\n \"Smithfield Foods Inc\",\n \"Smurfit-Stone Container Corp\",\n \"Snap-On Inc\",\n \"Solectron Corp\",\n \"Solutia Inc\",\n \"Sonic Automotive Inc.\",\n \"Sonoco Products Co.\",\n \"Southern Company\",\n \"Southern Union Company\",\n \"SouthTrust Corp.\",\n \"Southwest Airlines Co\",\n \"Southwest Gas Corp\",\n \"Sovereign Bancorp Inc.\",\n \"Spartan Stores Inc\",\n \"Spherion Corp\",\n \"Sports Authority Inc\",\n \"Sprint Corp.\",\n \"SPX Corp\",\n \"St. Jude Medical Inc\",\n \"St. Paul Cos.\",\n \"Staff Leasing Inc.\",\n \"StanCorp Financial Group Inc\",\n \"Standard Pacific Corp.\",\n \"Stanley Works\",\n \"Staples Inc\",\n \"Starbucks Corp\",\n \"Starwood Hotels & Resorts Worldwide Inc\",\n \"State Street Corp.\",\n \"Stater Bros. Holdings Inc.\",\n \"Steelcase Inc\",\n \"Stein Mart Inc\",\n \"Stewart & Stevenson Services Inc\",\n \"Stewart Information Services Corp\",\n \"Stilwell Financial Inc\",\n \"Storage Technology Corporation\",\n \"Stryker Corp\",\n \"Sun Healthcare Group Inc.\",\n \"Sun Microsystems Inc.\",\n \"SunGard Data Systems Inc.\",\n \"Sunoco Inc.\",\n \"SunTrust Banks Inc\",\n \"Supervalu Inc\",\n \"Swift Transportation, Co., Inc\",\n \"Symbol Technologies Inc\",\n \"Synovus Financial Corp.\",\n \"Sysco Corp\",\n \"Systemax Inc.\",\n \"Target Corp.\",\n \"Tech Data Corporation\",\n \"TECO Energy Inc\",\n \"Tecumseh Products Company\",\n \"Tektronix Inc\",\n \"Teleflex Incorporated\",\n \"Telephone & Data Systems Inc\",\n \"Tellabs Inc.\",\n \"Temple-Inland Inc\",\n \"Tenet Healthcare Corporation\",\n \"Tenneco Automotive Inc.\",\n \"Teradyne Inc\",\n \"Terex Corp\",\n \"Tesoro Petroleum Corp.\",\n \"Texas Industries Inc.\",\n \"Texas Instruments Incorporated\",\n \"Textron Inc\",\n \"Thermo Electron Corporation\",\n \"Thomas & Betts Corporation\",\n \"Tiffany & Co\",\n \"Timken Company\",\n \"TJX Companies Inc\",\n \"TMP Worldwide Inc\",\n \"Toll Brothers Inc\",\n \"Torchmark Corporation\",\n \"Toro Company\",\n \"Tower Automotive Inc.\",\n \"Toys 'R' Us Inc\",\n \"Trans World Entertainment Corp.\",\n \"TransMontaigne Inc\",\n \"Transocean Inc\",\n \"TravelCenters of America Inc.\",\n \"Triad Hospitals Inc\",\n \"Tribune Company\",\n \"Trigon Healthcare Inc.\",\n \"Trinity Industries Inc\",\n \"Trump Hotels & Casino Resorts Inc.\",\n \"TruServ Corporation\",\n \"TRW Inc\",\n \"TXU Corp\",\n \"Tyson Foods Inc\",\n \"U.S. Bancorp\",\n \"U.S. Industries Inc.\",\n \"UAL Corporation\",\n \"UGI Corporation\",\n \"Unified Western Grocers Inc\",\n \"Union Pacific Corporation\",\n \"Union Planters Corp\",\n \"Unisource Energy Corp\",\n \"Unisys Corporation\",\n \"United Auto Group Inc\",\n \"United Defense Industries Inc.\",\n \"United Parcel Service Inc\",\n \"United Rentals Inc\",\n \"United Stationers Inc\",\n \"United Technologies Corporation\",\n \"UnitedHealth Group Incorporated\",\n \"Unitrin Inc\",\n \"Universal Corporation\",\n \"Universal Forest Products Inc\",\n \"Universal Health Services Inc\",\n \"Unocal Corporation\",\n \"Unova Inc\",\n \"UnumProvident Corporation\",\n \"URS Corporation\",\n \"US Airways Group Inc\",\n \"US Oncology Inc\",\n \"USA Interactive\",\n \"USFreighways Corporation\",\n \"USG Corporation\",\n \"UST Inc\",\n \"Valero Energy Corporation\",\n \"Valspar Corporation\",\n \"Value City Department Stores Inc\",\n \"Varco International Inc\",\n \"Vectren Corporation\",\n \"Veritas Software Corporation\",\n \"Verizon Communications Inc\",\n \"VF Corporation\",\n \"Viacom Inc\",\n \"Viad Corp\",\n \"Viasystems Group Inc\",\n \"Vishay Intertechnology Inc\",\n \"Visteon Corporation\",\n \"Volt Information Sciences Inc\",\n \"Vulcan Materials Company\",\n \"W.R. Berkley Corporation\",\n \"W.R. Grace & Co\",\n \"W.W. Grainger Inc\",\n \"Wachovia Corporation\",\n \"Wakenhut Corporation\",\n \"Walgreen Co\",\n \"Wallace Computer Services Inc\",\n \"Wal-Mart Stores Inc\",\n \"Walt Disney Co\",\n \"Walter Industries Inc\",\n \"Washington Mutual Inc\",\n \"Washington Post Co.\",\n \"Waste Management Inc\",\n \"Watsco Inc\",\n \"Weatherford International Inc\",\n \"Weis Markets Inc.\",\n \"Wellpoint Health Networks Inc\",\n \"Wells Fargo & Company\",\n \"Wendy's International Inc\",\n \"Werner Enterprises Inc\",\n \"WESCO International Inc\",\n \"Western Digital Inc\",\n \"Western Gas Resources Inc\",\n \"WestPoint Stevens Inc\",\n \"Weyerhauser Company\",\n \"WGL Holdings Inc\",\n \"Whirlpool Corporation\",\n \"Whole Foods Market Inc\",\n \"Willamette Industries Inc.\",\n \"Williams Companies Inc\",\n \"Williams Sonoma Inc\",\n \"Winn Dixie Stores Inc\",\n \"Wisconsin Energy Corporation\",\n \"Wm Wrigley Jr Company\",\n \"World Fuel Services Corporation\",\n \"WorldCom Inc\",\n \"Worthington Industries Inc\",\n \"WPS Resources Corporation\",\n \"Wyeth\",\n \"Wyndham International Inc\",\n \"Xcel Energy Inc\",\n \"Xerox Corp\",\n \"Xilinx Inc\",\n \"XO Communications Inc\",\n \"Yellow Corporation\",\n \"York International Corp\",\n \"Yum Brands Inc.\",\n \"Zale Corporation\",\n \"Zions Bancorporation\"\n ],\n\n fileExtension : {\n \"raster\" : [\"bmp\", \"gif\", \"gpl\", \"ico\", \"jpeg\", \"psd\", \"png\", \"psp\", \"raw\", \"tiff\"],\n \"vector\" : [\"3dv\", \"amf\", \"awg\", \"ai\", \"cgm\", \"cdr\", \"cmx\", \"dxf\", \"e2d\", \"egt\", \"eps\", \"fs\", \"odg\", \"svg\", \"xar\"],\n \"3d\" : [\"3dmf\", \"3dm\", \"3mf\", \"3ds\", \"an8\", \"aoi\", \"blend\", \"cal3d\", \"cob\", \"ctm\", \"iob\", \"jas\", \"max\", \"mb\", \"mdx\", \"obj\", \"x\", \"x3d\"],\n \"document\" : [\"doc\", \"docx\", \"dot\", \"html\", \"xml\", \"odt\", \"odm\", \"ott\", \"csv\", \"rtf\", \"tex\", \"xhtml\", \"xps\"]\n },\n\n // Data taken from https://github.com/dmfilipenko/timezones.json/blob/master/timezones.json\n timezones: [\n {\n \"name\": \"Dateline Standard Time\",\n \"abbr\": \"DST\",\n \"offset\": -12,\n \"isdst\": false,\n \"text\": \"(UTC-12:00) International Date Line West\",\n \"utc\": [\n \"Etc/GMT+12\"\n ]\n },\n {\n \"name\": \"UTC-11\",\n \"abbr\": \"U\",\n \"offset\": -11,\n \"isdst\": false,\n \"text\": \"(UTC-11:00) Coordinated Universal Time-11\",\n \"utc\": [\n \"Etc/GMT+11\",\n \"Pacific/Midway\",\n \"Pacific/Niue\",\n \"Pacific/Pago_Pago\"\n ]\n },\n {\n \"name\": \"Hawaiian Standard Time\",\n \"abbr\": \"HST\",\n \"offset\": -10,\n \"isdst\": false,\n \"text\": \"(UTC-10:00) Hawaii\",\n \"utc\": [\n \"Etc/GMT+10\",\n \"Pacific/Honolulu\",\n \"Pacific/Johnston\",\n \"Pacific/Rarotonga\",\n \"Pacific/Tahiti\"\n ]\n },\n {\n \"name\": \"Alaskan Standard Time\",\n \"abbr\": \"AKDT\",\n \"offset\": -8,\n \"isdst\": true,\n \"text\": \"(UTC-09:00) Alaska\",\n \"utc\": [\n \"America/Anchorage\",\n \"America/Juneau\",\n \"America/Nome\",\n \"America/Sitka\",\n \"America/Yakutat\"\n ]\n },\n {\n \"name\": \"Pacific Standard Time (Mexico)\",\n \"abbr\": \"PDT\",\n \"offset\": -7,\n \"isdst\": true,\n \"text\": \"(UTC-08:00) Baja California\",\n \"utc\": [\n \"America/Santa_Isabel\"\n ]\n },\n {\n \"name\": \"Pacific Standard Time\",\n \"abbr\": \"PDT\",\n \"offset\": -7,\n \"isdst\": true,\n \"text\": \"(UTC-08:00) Pacific Time (US & Canada)\",\n \"utc\": [\n \"America/Dawson\",\n \"America/Los_Angeles\",\n \"America/Tijuana\",\n \"America/Vancouver\",\n \"America/Whitehorse\",\n \"PST8PDT\"\n ]\n },\n {\n \"name\": \"US Mountain Standard Time\",\n \"abbr\": \"UMST\",\n \"offset\": -7,\n \"isdst\": false,\n \"text\": \"(UTC-07:00) Arizona\",\n \"utc\": [\n \"America/Creston\",\n \"America/Dawson_Creek\",\n \"America/Hermosillo\",\n \"America/Phoenix\",\n \"Etc/GMT+7\"\n ]\n },\n {\n \"name\": \"Mountain Standard Time (Mexico)\",\n \"abbr\": \"MDT\",\n \"offset\": -6,\n \"isdst\": true,\n \"text\": \"(UTC-07:00) Chihuahua, La Paz, Mazatlan\",\n \"utc\": [\n \"America/Chihuahua\",\n \"America/Mazatlan\"\n ]\n },\n {\n \"name\": \"Mountain Standard Time\",\n \"abbr\": \"MDT\",\n \"offset\": -6,\n \"isdst\": true,\n \"text\": \"(UTC-07:00) Mountain Time (US & Canada)\",\n \"utc\": [\n \"America/Boise\",\n \"America/Cambridge_Bay\",\n \"America/Denver\",\n \"America/Edmonton\",\n \"America/Inuvik\",\n \"America/Ojinaga\",\n \"America/Yellowknife\",\n \"MST7MDT\"\n ]\n },\n {\n \"name\": \"Central America Standard Time\",\n \"abbr\": \"CAST\",\n \"offset\": -6,\n \"isdst\": false,\n \"text\": \"(UTC-06:00) Central America\",\n \"utc\": [\n \"America/Belize\",\n \"America/Costa_Rica\",\n \"America/El_Salvador\",\n \"America/Guatemala\",\n \"America/Managua\",\n \"America/Tegucigalpa\",\n \"Etc/GMT+6\",\n \"Pacific/Galapagos\"\n ]\n },\n {\n \"name\": \"Central Standard Time\",\n \"abbr\": \"CDT\",\n \"offset\": -5,\n \"isdst\": true,\n \"text\": \"(UTC-06:00) Central Time (US & Canada)\",\n \"utc\": [\n \"America/Chicago\",\n \"America/Indiana/Knox\",\n \"America/Indiana/Tell_City\",\n \"America/Matamoros\",\n \"America/Menominee\",\n \"America/North_Dakota/Beulah\",\n \"America/North_Dakota/Center\",\n \"America/North_Dakota/New_Salem\",\n \"America/Rainy_River\",\n \"America/Rankin_Inlet\",\n \"America/Resolute\",\n \"America/Winnipeg\",\n \"CST6CDT\"\n ]\n },\n {\n \"name\": \"Central Standard Time (Mexico)\",\n \"abbr\": \"CDT\",\n \"offset\": -5,\n \"isdst\": true,\n \"text\": \"(UTC-06:00) Guadalajara, Mexico City, Monterrey\",\n \"utc\": [\n \"America/Bahia_Banderas\",\n \"America/Cancun\",\n \"America/Merida\",\n \"America/Mexico_City\",\n \"America/Monterrey\"\n ]\n },\n {\n \"name\": \"Canada Central Standard Time\",\n \"abbr\": \"CCST\",\n \"offset\": -6,\n \"isdst\": false,\n \"text\": \"(UTC-06:00) Saskatchewan\",\n \"utc\": [\n \"America/Regina\",\n \"America/Swift_Current\"\n ]\n },\n {\n \"name\": \"SA Pacific Standard Time\",\n \"abbr\": \"SPST\",\n \"offset\": -5,\n \"isdst\": false,\n \"text\": \"(UTC-05:00) Bogota, Lima, Quito\",\n \"utc\": [\n \"America/Bogota\",\n \"America/Cayman\",\n \"America/Coral_Harbour\",\n \"America/Eirunepe\",\n \"America/Guayaquil\",\n \"America/Jamaica\",\n \"America/Lima\",\n \"America/Panama\",\n \"America/Rio_Branco\",\n \"Etc/GMT+5\"\n ]\n },\n {\n \"name\": \"Eastern Standard Time\",\n \"abbr\": \"EDT\",\n \"offset\": -4,\n \"isdst\": true,\n \"text\": \"(UTC-05:00) Eastern Time (US & Canada)\",\n \"utc\": [\n \"America/Detroit\",\n \"America/Havana\",\n \"America/Indiana/Petersburg\",\n \"America/Indiana/Vincennes\",\n \"America/Indiana/Winamac\",\n \"America/Iqaluit\",\n \"America/Kentucky/Monticello\",\n \"America/Louisville\",\n \"America/Montreal\",\n \"America/Nassau\",\n \"America/New_York\",\n \"America/Nipigon\",\n \"America/Pangnirtung\",\n \"America/Port-au-Prince\",\n \"America/Thunder_Bay\",\n \"America/Toronto\",\n \"EST5EDT\"\n ]\n },\n {\n \"name\": \"US Eastern Standard Time\",\n \"abbr\": \"UEDT\",\n \"offset\": -4,\n \"isdst\": true,\n \"text\": \"(UTC-05:00) Indiana (East)\",\n \"utc\": [\n \"America/Indiana/Marengo\",\n \"America/Indiana/Vevay\",\n \"America/Indianapolis\"\n ]\n },\n {\n \"name\": \"Venezuela Standard Time\",\n \"abbr\": \"VST\",\n \"offset\": -4.5,\n \"isdst\": false,\n \"text\": \"(UTC-04:30) Caracas\",\n \"utc\": [\n \"America/Caracas\"\n ]\n },\n {\n \"name\": \"Paraguay Standard Time\",\n \"abbr\": \"PST\",\n \"offset\": -4,\n \"isdst\": false,\n \"text\": \"(UTC-04:00) Asuncion\",\n \"utc\": [\n \"America/Asuncion\"\n ]\n },\n {\n \"name\": \"Atlantic Standard Time\",\n \"abbr\": \"ADT\",\n \"offset\": -3,\n \"isdst\": true,\n \"text\": \"(UTC-04:00) Atlantic Time (Canada)\",\n \"utc\": [\n \"America/Glace_Bay\",\n \"America/Goose_Bay\",\n \"America/Halifax\",\n \"America/Moncton\",\n \"America/Thule\",\n \"Atlantic/Bermuda\"\n ]\n },\n {\n \"name\": \"Central Brazilian Standard Time\",\n \"abbr\": \"CBST\",\n \"offset\": -4,\n \"isdst\": false,\n \"text\": \"(UTC-04:00) Cuiaba\",\n \"utc\": [\n \"America/Campo_Grande\",\n \"America/Cuiaba\"\n ]\n },\n {\n \"name\": \"SA Western Standard Time\",\n \"abbr\": \"SWST\",\n \"offset\": -4,\n \"isdst\": false,\n \"text\": \"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan\",\n \"utc\": [\n \"America/Anguilla\",\n \"America/Antigua\",\n \"America/Aruba\",\n \"America/Barbados\",\n \"America/Blanc-Sablon\",\n \"America/Boa_Vista\",\n \"America/Curacao\",\n \"America/Dominica\",\n \"America/Grand_Turk\",\n \"America/Grenada\",\n \"America/Guadeloupe\",\n \"America/Guyana\",\n \"America/Kralendijk\",\n \"America/La_Paz\",\n \"America/Lower_Princes\",\n \"America/Manaus\",\n \"America/Marigot\",\n \"America/Martinique\",\n \"America/Montserrat\",\n \"America/Port_of_Spain\",\n \"America/Porto_Velho\",\n \"America/Puerto_Rico\",\n \"America/Santo_Domingo\",\n \"America/St_Barthelemy\",\n \"America/St_Kitts\",\n \"America/St_Lucia\",\n \"America/St_Thomas\",\n \"America/St_Vincent\",\n \"America/Tortola\",\n \"Etc/GMT+4\"\n ]\n },\n {\n \"name\": \"Pacific SA Standard Time\",\n \"abbr\": \"PSST\",\n \"offset\": -4,\n \"isdst\": false,\n \"text\": \"(UTC-04:00) Santiago\",\n \"utc\": [\n \"America/Santiago\",\n \"Antarctica/Palmer\"\n ]\n },\n {\n \"name\": \"Newfoundland Standard Time\",\n \"abbr\": \"NDT\",\n \"offset\": -2.5,\n \"isdst\": true,\n \"text\": \"(UTC-03:30) Newfoundland\",\n \"utc\": [\n \"America/St_Johns\"\n ]\n },\n {\n \"name\": \"E. South America Standard Time\",\n \"abbr\": \"ESAST\",\n \"offset\": -3,\n \"isdst\": false,\n \"text\": \"(UTC-03:00) Brasilia\",\n \"utc\": [\n \"America/Sao_Paulo\"\n ]\n },\n {\n \"name\": \"Argentina Standard Time\",\n \"abbr\": \"AST\",\n \"offset\": -3,\n \"isdst\": false,\n \"text\": \"(UTC-03:00) Buenos Aires\",\n \"utc\": [\n \"America/Argentina/La_Rioja\",\n \"America/Argentina/Rio_Gallegos\",\n \"America/Argentina/Salta\",\n \"America/Argentina/San_Juan\",\n \"America/Argentina/San_Luis\",\n \"America/Argentina/Tucuman\",\n \"America/Argentina/Ushuaia\",\n \"America/Buenos_Aires\",\n \"America/Catamarca\",\n \"America/Cordoba\",\n \"America/Jujuy\",\n \"America/Mendoza\"\n ]\n },\n {\n \"name\": \"SA Eastern Standard Time\",\n \"abbr\": \"SEST\",\n \"offset\": -3,\n \"isdst\": false,\n \"text\": \"(UTC-03:00) Cayenne, Fortaleza\",\n \"utc\": [\n \"America/Araguaina\",\n \"America/Belem\",\n \"America/Cayenne\",\n \"America/Fortaleza\",\n \"America/Maceio\",\n \"America/Paramaribo\",\n \"America/Recife\",\n \"America/Santarem\",\n \"Antarctica/Rothera\",\n \"Atlantic/Stanley\",\n \"Etc/GMT+3\"\n ]\n },\n {\n \"name\": \"Greenland Standard Time\",\n \"abbr\": \"GDT\",\n \"offset\": -2,\n \"isdst\": true,\n \"text\": \"(UTC-03:00) Greenland\",\n \"utc\": [\n \"America/Godthab\"\n ]\n },\n {\n \"name\": \"Montevideo Standard Time\",\n \"abbr\": \"MST\",\n \"offset\": -3,\n \"isdst\": false,\n \"text\": \"(UTC-03:00) Montevideo\",\n \"utc\": [\n \"America/Montevideo\"\n ]\n },\n {\n \"name\": \"Bahia Standard Time\",\n \"abbr\": \"BST\",\n \"offset\": -3,\n \"isdst\": false,\n \"text\": \"(UTC-03:00) Salvador\",\n \"utc\": [\n \"America/Bahia\"\n ]\n },\n {\n \"name\": \"UTC-02\",\n \"abbr\": \"U\",\n \"offset\": -2,\n \"isdst\": false,\n \"text\": \"(UTC-02:00) Coordinated Universal Time-02\",\n \"utc\": [\n \"America/Noronha\",\n \"Atlantic/South_Georgia\",\n \"Etc/GMT+2\"\n ]\n },\n {\n \"name\": \"Mid-Atlantic Standard Time\",\n \"abbr\": \"MDT\",\n \"offset\": -1,\n \"isdst\": true,\n \"text\": \"(UTC-02:00) Mid-Atlantic - Old\"\n },\n {\n \"name\": \"Azores Standard Time\",\n \"abbr\": \"ADT\",\n \"offset\": 0,\n \"isdst\": true,\n \"text\": \"(UTC-01:00) Azores\",\n \"utc\": [\n \"America/Scoresbysund\",\n \"Atlantic/Azores\"\n ]\n },\n {\n \"name\": \"Cape Verde Standard Time\",\n \"abbr\": \"CVST\",\n \"offset\": -1,\n \"isdst\": false,\n \"text\": \"(UTC-01:00) Cape Verde Is.\",\n \"utc\": [\n \"Atlantic/Cape_Verde\",\n \"Etc/GMT+1\"\n ]\n },\n {\n \"name\": \"Morocco Standard Time\",\n \"abbr\": \"MDT\",\n \"offset\": 1,\n \"isdst\": true,\n \"text\": \"(UTC) Casablanca\",\n \"utc\": [\n \"Africa/Casablanca\",\n \"Africa/El_Aaiun\"\n ]\n },\n {\n \"name\": \"UTC\",\n \"abbr\": \"CUT\",\n \"offset\": 0,\n \"isdst\": false,\n \"text\": \"(UTC) Coordinated Universal Time\",\n \"utc\": [\n \"America/Danmarkshavn\",\n \"Etc/GMT\"\n ]\n },\n {\n \"name\": \"GMT Standard Time\",\n \"abbr\": \"GDT\",\n \"offset\": 1,\n \"isdst\": true,\n \"text\": \"(UTC) Dublin, Edinburgh, Lisbon, London\",\n \"utc\": [\n \"Atlantic/Canary\",\n \"Atlantic/Faeroe\",\n \"Atlantic/Madeira\",\n \"Europe/Dublin\",\n \"Europe/Guernsey\",\n \"Europe/Isle_of_Man\",\n \"Europe/Jersey\",\n \"Europe/Lisbon\",\n \"Europe/London\"\n ]\n },\n {\n \"name\": \"Greenwich Standard Time\",\n \"abbr\": \"GST\",\n \"offset\": 0,\n \"isdst\": false,\n \"text\": \"(UTC) Monrovia, Reykjavik\",\n \"utc\": [\n \"Africa/Abidjan\",\n \"Africa/Accra\",\n \"Africa/Bamako\",\n \"Africa/Banjul\",\n \"Africa/Bissau\",\n \"Africa/Conakry\",\n \"Africa/Dakar\",\n \"Africa/Freetown\",\n \"Africa/Lome\",\n \"Africa/Monrovia\",\n \"Africa/Nouakchott\",\n \"Africa/Ouagadougou\",\n \"Africa/Sao_Tome\",\n \"Atlantic/Reykjavik\",\n \"Atlantic/St_Helena\"\n ]\n },\n {\n \"name\": \"W. Europe Standard Time\",\n \"abbr\": \"WEDT\",\n \"offset\": 2,\n \"isdst\": true,\n \"text\": \"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna\",\n \"utc\": [\n \"Arctic/Longyearbyen\",\n \"Europe/Amsterdam\",\n \"Europe/Andorra\",\n \"Europe/Berlin\",\n \"Europe/Busingen\",\n \"Europe/Gibraltar\",\n \"Europe/Luxembourg\",\n \"Europe/Malta\",\n \"Europe/Monaco\",\n \"Europe/Oslo\",\n \"Europe/Rome\",\n \"Europe/San_Marino\",\n \"Europe/Stockholm\",\n \"Europe/Vaduz\",\n \"Europe/Vatican\",\n \"Europe/Vienna\",\n \"Europe/Zurich\"\n ]\n },\n {\n \"name\": \"Central Europe Standard Time\",\n \"abbr\": \"CEDT\",\n \"offset\": 2,\n \"isdst\": true,\n \"text\": \"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague\",\n \"utc\": [\n \"Europe/Belgrade\",\n \"Europe/Bratislava\",\n \"Europe/Budapest\",\n \"Europe/Ljubljana\",\n \"Europe/Podgorica\",\n \"Europe/Prague\",\n \"Europe/Tirane\"\n ]\n },\n {\n \"name\": \"Romance Standard Time\",\n \"abbr\": \"RDT\",\n \"offset\": 2,\n \"isdst\": true,\n \"text\": \"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris\",\n \"utc\": [\n \"Africa/Ceuta\",\n \"Europe/Brussels\",\n \"Europe/Copenhagen\",\n \"Europe/Madrid\",\n \"Europe/Paris\"\n ]\n },\n {\n \"name\": \"Central European Standard Time\",\n \"abbr\": \"CEDT\",\n \"offset\": 2,\n \"isdst\": true,\n \"text\": \"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb\",\n \"utc\": [\n \"Europe/Sarajevo\",\n \"Europe/Skopje\",\n \"Europe/Warsaw\",\n \"Europe/Zagreb\"\n ]\n },\n {\n \"name\": \"W. Central Africa Standard Time\",\n \"abbr\": \"WCAST\",\n \"offset\": 1,\n \"isdst\": false,\n \"text\": \"(UTC+01:00) West Central Africa\",\n \"utc\": [\n \"Africa/Algiers\",\n \"Africa/Bangui\",\n \"Africa/Brazzaville\",\n \"Africa/Douala\",\n \"Africa/Kinshasa\",\n \"Africa/Lagos\",\n \"Africa/Libreville\",\n \"Africa/Luanda\",\n \"Africa/Malabo\",\n \"Africa/Ndjamena\",\n \"Africa/Niamey\",\n \"Africa/Porto-Novo\",\n \"Africa/Tunis\",\n \"Etc/GMT-1\"\n ]\n },\n {\n \"name\": \"Namibia Standard Time\",\n \"abbr\": \"NST\",\n \"offset\": 1,\n \"isdst\": false,\n \"text\": \"(UTC+01:00) Windhoek\",\n \"utc\": [\n \"Africa/Windhoek\"\n ]\n },\n {\n \"name\": \"GTB Standard Time\",\n \"abbr\": \"GDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Athens, Bucharest\",\n \"utc\": [\n \"Asia/Nicosia\",\n \"Europe/Athens\",\n \"Europe/Bucharest\",\n \"Europe/Chisinau\"\n ]\n },\n {\n \"name\": \"Middle East Standard Time\",\n \"abbr\": \"MEDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Beirut\",\n \"utc\": [\n \"Asia/Beirut\"\n ]\n },\n {\n \"name\": \"Egypt Standard Time\",\n \"abbr\": \"EST\",\n \"offset\": 2,\n \"isdst\": false,\n \"text\": \"(UTC+02:00) Cairo\",\n \"utc\": [\n \"Africa/Cairo\"\n ]\n },\n {\n \"name\": \"Syria Standard Time\",\n \"abbr\": \"SDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Damascus\",\n \"utc\": [\n \"Asia/Damascus\"\n ]\n },\n {\n \"name\": \"E. Europe Standard Time\",\n \"abbr\": \"EEDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) E. Europe\"\n },\n {\n \"name\": \"South Africa Standard Time\",\n \"abbr\": \"SAST\",\n \"offset\": 2,\n \"isdst\": false,\n \"text\": \"(UTC+02:00) Harare, Pretoria\",\n \"utc\": [\n \"Africa/Blantyre\",\n \"Africa/Bujumbura\",\n \"Africa/Gaborone\",\n \"Africa/Harare\",\n \"Africa/Johannesburg\",\n \"Africa/Kigali\",\n \"Africa/Lubumbashi\",\n \"Africa/Lusaka\",\n \"Africa/Maputo\",\n \"Africa/Maseru\",\n \"Africa/Mbabane\",\n \"Etc/GMT-2\"\n ]\n },\n {\n \"name\": \"FLE Standard Time\",\n \"abbr\": \"FDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius\",\n \"utc\": [\n \"Europe/Helsinki\",\n \"Europe/Kiev\",\n \"Europe/Mariehamn\",\n \"Europe/Riga\",\n \"Europe/Sofia\",\n \"Europe/Tallinn\",\n \"Europe/Uzhgorod\",\n \"Europe/Vilnius\",\n \"Europe/Zaporozhye\"\n ]\n },\n {\n \"name\": \"Turkey Standard Time\",\n \"abbr\": \"TDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Istanbul\",\n \"utc\": [\n \"Europe/Istanbul\"\n ]\n },\n {\n \"name\": \"Israel Standard Time\",\n \"abbr\": \"JDT\",\n \"offset\": 3,\n \"isdst\": true,\n \"text\": \"(UTC+02:00) Jerusalem\",\n \"utc\": [\n \"Asia/Jerusalem\"\n ]\n },\n {\n \"name\": \"Libya Standard Time\",\n \"abbr\": \"LST\",\n \"offset\": 2,\n \"isdst\": false,\n \"text\": \"(UTC+02:00) Tripoli\",\n \"utc\": [\n \"Africa/Tripoli\"\n ]\n },\n {\n \"name\": \"Jordan Standard Time\",\n \"abbr\": \"JST\",\n \"offset\": 3,\n \"isdst\": false,\n \"text\": \"(UTC+03:00) Amman\",\n \"utc\": [\n \"Asia/Amman\"\n ]\n },\n {\n \"name\": \"Arabic Standard Time\",\n \"abbr\": \"AST\",\n \"offset\": 3,\n \"isdst\": false,\n \"text\": \"(UTC+03:00) Baghdad\",\n \"utc\": [\n \"Asia/Baghdad\"\n ]\n },\n {\n \"name\": \"Kaliningrad Standard Time\",\n \"abbr\": \"KST\",\n \"offset\": 3,\n \"isdst\": false,\n \"text\": \"(UTC+03:00) Kaliningrad, Minsk\",\n \"utc\": [\n \"Europe/Kaliningrad\",\n \"Europe/Minsk\"\n ]\n },\n {\n \"name\": \"Arab Standard Time\",\n \"abbr\": \"AST\",\n \"offset\": 3,\n \"isdst\": false,\n \"text\": \"(UTC+03:00) Kuwait, Riyadh\",\n \"utc\": [\n \"Asia/Aden\",\n \"Asia/Bahrain\",\n \"Asia/Kuwait\",\n \"Asia/Qatar\",\n \"Asia/Riyadh\"\n ]\n },\n {\n \"name\": \"E. Africa Standard Time\",\n \"abbr\": \"EAST\",\n \"offset\": 3,\n \"isdst\": false,\n \"text\": \"(UTC+03:00) Nairobi\",\n \"utc\": [\n \"Africa/Addis_Ababa\",\n \"Africa/Asmera\",\n \"Africa/Dar_es_Salaam\",\n \"Africa/Djibouti\",\n \"Africa/Juba\",\n \"Africa/Kampala\",\n \"Africa/Khartoum\",\n \"Africa/Mogadishu\",\n \"Africa/Nairobi\",\n \"Antarctica/Syowa\",\n \"Etc/GMT-3\",\n \"Indian/Antananarivo\",\n \"Indian/Comoro\",\n \"Indian/Mayotte\"\n ]\n },\n {\n \"name\": \"Iran Standard Time\",\n \"abbr\": \"IDT\",\n \"offset\": 4.5,\n \"isdst\": true,\n \"text\": \"(UTC+03:30) Tehran\",\n \"utc\": [\n \"Asia/Tehran\"\n ]\n },\n {\n \"name\": \"Arabian Standard Time\",\n \"abbr\": \"AST\",\n \"offset\": 4,\n \"isdst\": false,\n \"text\": \"(UTC+04:00) Abu Dhabi, Muscat\",\n \"utc\": [\n \"Asia/Dubai\",\n \"Asia/Muscat\",\n \"Etc/GMT-4\"\n ]\n },\n {\n \"name\": \"Azerbaijan Standard Time\",\n \"abbr\": \"ADT\",\n \"offset\": 5,\n \"isdst\": true,\n \"text\": \"(UTC+04:00) Baku\",\n \"utc\": [\n \"Asia/Baku\"\n ]\n },\n {\n \"name\": \"Russian Standard Time\",\n \"abbr\": \"RST\",\n \"offset\": 4,\n \"isdst\": false,\n \"text\": \"(UTC+04:00) Moscow, St. Petersburg, Volgograd\",\n \"utc\": [\n \"Europe/Moscow\",\n \"Europe/Samara\",\n \"Europe/Simferopol\",\n \"Europe/Volgograd\"\n ]\n },\n {\n \"name\": \"Mauritius Standard Time\",\n \"abbr\": \"MST\",\n \"offset\": 4,\n \"isdst\": false,\n \"text\": \"(UTC+04:00) Port Louis\",\n \"utc\": [\n \"Indian/Mahe\",\n \"Indian/Mauritius\",\n \"Indian/Reunion\"\n ]\n },\n {\n \"name\": \"Georgian Standard Time\",\n \"abbr\": \"GST\",\n \"offset\": 4,\n \"isdst\": false,\n \"text\": \"(UTC+04:00) Tbilisi\",\n \"utc\": [\n \"Asia/Tbilisi\"\n ]\n },\n {\n \"name\": \"Caucasus Standard Time\",\n \"abbr\": \"CST\",\n \"offset\": 4,\n \"isdst\": false,\n \"text\": \"(UTC+04:00) Yerevan\",\n \"utc\": [\n \"Asia/Yerevan\"\n ]\n },\n {\n \"name\": \"Afghanistan Standard Time\",\n \"abbr\": \"AST\",\n \"offset\": 4.5,\n \"isdst\": false,\n \"text\": \"(UTC+04:30) Kabul\",\n \"utc\": [\n \"Asia/Kabul\"\n ]\n },\n {\n \"name\": \"West Asia Standard Time\",\n \"abbr\": \"WAST\",\n \"offset\": 5,\n \"isdst\": false,\n \"text\": \"(UTC+05:00) Ashgabat, Tashkent\",\n \"utc\": [\n \"Antarctica/Mawson\",\n \"Asia/Aqtau\",\n \"Asia/Aqtobe\",\n \"Asia/Ashgabat\",\n \"Asia/Dushanbe\",\n \"Asia/Oral\",\n \"Asia/Samarkand\",\n \"Asia/Tashkent\",\n \"Etc/GMT-5\",\n \"Indian/Kerguelen\",\n \"Indian/Maldives\"\n ]\n },\n {\n \"name\": \"Pakistan Standard Time\",\n \"abbr\": \"PST\",\n \"offset\": 5,\n \"isdst\": false,\n \"text\": \"(UTC+05:00) Islamabad, Karachi\",\n \"utc\": [\n \"Asia/Karachi\"\n ]\n },\n {\n \"name\": \"India Standard Time\",\n \"abbr\": \"IST\",\n \"offset\": 5.5,\n \"isdst\": false,\n \"text\": \"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi\",\n \"utc\": [\n \"Asia/Calcutta\"\n ]\n },\n {\n \"name\": \"Sri Lanka Standard Time\",\n \"abbr\": \"SLST\",\n \"offset\": 5.5,\n \"isdst\": false,\n \"text\": \"(UTC+05:30) Sri Jayawardenepura\",\n \"utc\": [\n \"Asia/Colombo\"\n ]\n },\n {\n \"name\": \"Nepal Standard Time\",\n \"abbr\": \"NST\",\n \"offset\": 5.75,\n \"isdst\": false,\n \"text\": \"(UTC+05:45) Kathmandu\",\n \"utc\": [\n \"Asia/Katmandu\"\n ]\n },\n {\n \"name\": \"Central Asia Standard Time\",\n \"abbr\": \"CAST\",\n \"offset\": 6,\n \"isdst\": false,\n \"text\": \"(UTC+06:00) Astana\",\n \"utc\": [\n \"Antarctica/Vostok\",\n \"Asia/Almaty\",\n \"Asia/Bishkek\",\n \"Asia/Qyzylorda\",\n \"Asia/Urumqi\",\n \"Etc/GMT-6\",\n \"Indian/Chagos\"\n ]\n },\n {\n \"name\": \"Bangladesh Standard Time\",\n \"abbr\": \"BST\",\n \"offset\": 6,\n \"isdst\": false,\n \"text\": \"(UTC+06:00) Dhaka\",\n \"utc\": [\n \"Asia/Dhaka\",\n \"Asia/Thimphu\"\n ]\n },\n {\n \"name\": \"Ekaterinburg Standard Time\",\n \"abbr\": \"EST\",\n \"offset\": 6,\n \"isdst\": false,\n \"text\": \"(UTC+06:00) Ekaterinburg\",\n \"utc\": [\n \"Asia/Yekaterinburg\"\n ]\n },\n {\n \"name\": \"Myanmar Standard Time\",\n \"abbr\": \"MST\",\n \"offset\": 6.5,\n \"isdst\": false,\n \"text\": \"(UTC+06:30) Yangon (Rangoon)\",\n \"utc\": [\n \"Asia/Rangoon\",\n \"Indian/Cocos\"\n ]\n },\n {\n \"name\": \"SE Asia Standard Time\",\n \"abbr\": \"SAST\",\n \"offset\": 7,\n \"isdst\": false,\n \"text\": \"(UTC+07:00) Bangkok, Hanoi, Jakarta\",\n \"utc\": [\n \"Antarctica/Davis\",\n \"Asia/Bangkok\",\n \"Asia/Hovd\",\n \"Asia/Jakarta\",\n \"Asia/Phnom_Penh\",\n \"Asia/Pontianak\",\n \"Asia/Saigon\",\n \"Asia/Vientiane\",\n \"Etc/GMT-7\",\n \"Indian/Christmas\"\n ]\n },\n {\n \"name\": \"N. Central Asia Standard Time\",\n \"abbr\": \"NCAST\",\n \"offset\": 7,\n \"isdst\": false,\n \"text\": \"(UTC+07:00) Novosibirsk\",\n \"utc\": [\n \"Asia/Novokuznetsk\",\n \"Asia/Novosibirsk\",\n \"Asia/Omsk\"\n ]\n },\n {\n \"name\": \"China Standard Time\",\n \"abbr\": \"CST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi\",\n \"utc\": [\n \"Asia/Hong_Kong\",\n \"Asia/Macau\",\n \"Asia/Shanghai\"\n ]\n },\n {\n \"name\": \"North Asia Standard Time\",\n \"abbr\": \"NAST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Krasnoyarsk\",\n \"utc\": [\n \"Asia/Krasnoyarsk\"\n ]\n },\n {\n \"name\": \"Singapore Standard Time\",\n \"abbr\": \"MPST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Kuala Lumpur, Singapore\",\n \"utc\": [\n \"Asia/Brunei\",\n \"Asia/Kuala_Lumpur\",\n \"Asia/Kuching\",\n \"Asia/Makassar\",\n \"Asia/Manila\",\n \"Asia/Singapore\",\n \"Etc/GMT-8\"\n ]\n },\n {\n \"name\": \"W. Australia Standard Time\",\n \"abbr\": \"WAST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Perth\",\n \"utc\": [\n \"Antarctica/Casey\",\n \"Australia/Perth\"\n ]\n },\n {\n \"name\": \"Taipei Standard Time\",\n \"abbr\": \"TST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Taipei\",\n \"utc\": [\n \"Asia/Taipei\"\n ]\n },\n {\n \"name\": \"Ulaanbaatar Standard Time\",\n \"abbr\": \"UST\",\n \"offset\": 8,\n \"isdst\": false,\n \"text\": \"(UTC+08:00) Ulaanbaatar\",\n \"utc\": [\n \"Asia/Choibalsan\",\n \"Asia/Ulaanbaatar\"\n ]\n },\n {\n \"name\": \"North Asia East Standard Time\",\n \"abbr\": \"NAEST\",\n \"offset\": 9,\n \"isdst\": false,\n \"text\": \"(UTC+09:00) Irkutsk\",\n \"utc\": [\n \"Asia/Irkutsk\"\n ]\n },\n {\n \"name\": \"Tokyo Standard Time\",\n \"abbr\": \"TST\",\n \"offset\": 9,\n \"isdst\": false,\n \"text\": \"(UTC+09:00) Osaka, Sapporo, Tokyo\",\n \"utc\": [\n \"Asia/Dili\",\n \"Asia/Jayapura\",\n \"Asia/Tokyo\",\n \"Etc/GMT-9\",\n \"Pacific/Palau\"\n ]\n },\n {\n \"name\": \"Korea Standard Time\",\n \"abbr\": \"KST\",\n \"offset\": 9,\n \"isdst\": false,\n \"text\": \"(UTC+09:00) Seoul\",\n \"utc\": [\n \"Asia/Pyongyang\",\n \"Asia/Seoul\"\n ]\n },\n {\n \"name\": \"Cen. Australia Standard Time\",\n \"abbr\": \"CAST\",\n \"offset\": 9.5,\n \"isdst\": false,\n \"text\": \"(UTC+09:30) Adelaide\",\n \"utc\": [\n \"Australia/Adelaide\",\n \"Australia/Broken_Hill\"\n ]\n },\n {\n \"name\": \"AUS Central Standard Time\",\n \"abbr\": \"ACST\",\n \"offset\": 9.5,\n \"isdst\": false,\n \"text\": \"(UTC+09:30) Darwin\",\n \"utc\": [\n \"Australia/Darwin\"\n ]\n },\n {\n \"name\": \"E. Australia Standard Time\",\n \"abbr\": \"EAST\",\n \"offset\": 10,\n \"isdst\": false,\n \"text\": \"(UTC+10:00) Brisbane\",\n \"utc\": [\n \"Australia/Brisbane\",\n \"Australia/Lindeman\"\n ]\n },\n {\n \"name\": \"AUS Eastern Standard Time\",\n \"abbr\": \"AEST\",\n \"offset\": 10,\n \"isdst\": false,\n \"text\": \"(UTC+10:00) Canberra, Melbourne, Sydney\",\n \"utc\": [\n \"Australia/Melbourne\",\n \"Australia/Sydney\"\n ]\n },\n {\n \"name\": \"West Pacific Standard Time\",\n \"abbr\": \"WPST\",\n \"offset\": 10,\n \"isdst\": false,\n \"text\": \"(UTC+10:00) Guam, Port Moresby\",\n \"utc\": [\n \"Antarctica/DumontDUrville\",\n \"Etc/GMT-10\",\n \"Pacific/Guam\",\n \"Pacific/Port_Moresby\",\n \"Pacific/Saipan\",\n \"Pacific/Truk\"\n ]\n },\n {\n \"name\": \"Tasmania Standard Time\",\n \"abbr\": \"TST\",\n \"offset\": 10,\n \"isdst\": false,\n \"text\": \"(UTC+10:00) Hobart\",\n \"utc\": [\n \"Australia/Currie\",\n \"Australia/Hobart\"\n ]\n },\n {\n \"name\": \"Yakutsk Standard Time\",\n \"abbr\": \"YST\",\n \"offset\": 10,\n \"isdst\": false,\n \"text\": \"(UTC+10:00) Yakutsk\",\n \"utc\": [\n \"Asia/Chita\",\n \"Asia/Khandyga\",\n \"Asia/Yakutsk\"\n ]\n },\n {\n \"name\": \"Central Pacific Standard Time\",\n \"abbr\": \"CPST\",\n \"offset\": 11,\n \"isdst\": false,\n \"text\": \"(UTC+11:00) Solomon Is., New Caledonia\",\n \"utc\": [\n \"Antarctica/Macquarie\",\n \"Etc/GMT-11\",\n \"Pacific/Efate\",\n \"Pacific/Guadalcanal\",\n \"Pacific/Kosrae\",\n \"Pacific/Noumea\",\n \"Pacific/Ponape\"\n ]\n },\n {\n \"name\": \"Vladivostok Standard Time\",\n \"abbr\": \"VST\",\n \"offset\": 11,\n \"isdst\": false,\n \"text\": \"(UTC+11:00) Vladivostok\",\n \"utc\": [\n \"Asia/Sakhalin\",\n \"Asia/Ust-Nera\",\n \"Asia/Vladivostok\"\n ]\n },\n {\n \"name\": \"New Zealand Standard Time\",\n \"abbr\": \"NZST\",\n \"offset\": 12,\n \"isdst\": false,\n \"text\": \"(UTC+12:00) Auckland, Wellington\",\n \"utc\": [\n \"Antarctica/McMurdo\",\n \"Pacific/Auckland\"\n ]\n },\n {\n \"name\": \"UTC+12\",\n \"abbr\": \"U\",\n \"offset\": 12,\n \"isdst\": false,\n \"text\": \"(UTC+12:00) Coordinated Universal Time+12\",\n \"utc\": [\n \"Etc/GMT-12\",\n \"Pacific/Funafuti\",\n \"Pacific/Kwajalein\",\n \"Pacific/Majuro\",\n \"Pacific/Nauru\",\n \"Pacific/Tarawa\",\n \"Pacific/Wake\",\n \"Pacific/Wallis\"\n ]\n },\n {\n \"name\": \"Fiji Standard Time\",\n \"abbr\": \"FST\",\n \"offset\": 12,\n \"isdst\": false,\n \"text\": \"(UTC+12:00) Fiji\",\n \"utc\": [\n \"Pacific/Fiji\"\n ]\n },\n {\n \"name\": \"Magadan Standard Time\",\n \"abbr\": \"MST\",\n \"offset\": 12,\n \"isdst\": false,\n \"text\": \"(UTC+12:00) Magadan\",\n \"utc\": [\n \"Asia/Anadyr\",\n \"Asia/Kamchatka\",\n \"Asia/Magadan\",\n \"Asia/Srednekolymsk\"\n ]\n },\n {\n \"name\": \"Kamchatka Standard Time\",\n \"abbr\": \"KDT\",\n \"offset\": 13,\n \"isdst\": true,\n \"text\": \"(UTC+12:00) Petropavlovsk-Kamchatsky - Old\"\n },\n {\n \"name\": \"Tonga Standard Time\",\n \"abbr\": \"TST\",\n \"offset\": 13,\n \"isdst\": false,\n \"text\": \"(UTC+13:00) Nuku'alofa\",\n \"utc\": [\n \"Etc/GMT-13\",\n \"Pacific/Enderbury\",\n \"Pacific/Fakaofo\",\n \"Pacific/Tongatapu\"\n ]\n },\n {\n \"name\": \"Samoa Standard Time\",\n \"abbr\": \"SST\",\n \"offset\": 13,\n \"isdst\": false,\n \"text\": \"(UTC+13:00) Samoa\",\n \"utc\": [\n \"Pacific/Apia\"\n ]\n }\n ],\n //List source: http://answers.google.com/answers/threadview/id/589312.html\n profession: [\n \"Airline Pilot\",\n \"Academic Team\",\n \"Accountant\",\n \"Account Executive\",\n \"Actor\",\n \"Actuary\",\n \"Acquisition Analyst\",\n \"Administrative Asst.\",\n \"Administrative Analyst\",\n \"Administrator\",\n \"Advertising Director\",\n \"Aerospace Engineer\",\n \"Agent\",\n \"Agricultural Inspector\",\n \"Agricultural Scientist\",\n \"Air Traffic Controller\",\n \"Animal Trainer\",\n \"Anthropologist\",\n \"Appraiser\",\n \"Architect\",\n \"Art Director\",\n \"Artist\",\n \"Astronomer\",\n \"Athletic Coach\",\n \"Auditor\",\n \"Author\",\n \"Baker\",\n \"Banker\",\n \"Bankruptcy Attorney\",\n \"Benefits Manager\",\n \"Biologist\",\n \"Bio-feedback Specialist\",\n \"Biomedical Engineer\",\n \"Biotechnical Researcher\",\n \"Broadcaster\",\n \"Broker\",\n \"Building Manager\",\n \"Building Contractor\",\n \"Building Inspector\",\n \"Business Analyst\",\n \"Business Planner\",\n \"Business Manager\",\n \"Buyer\",\n \"Call Center Manager\",\n \"Career Counselor\",\n \"Cash Manager\",\n \"Ceramic Engineer\",\n \"Chief Executive Officer\",\n \"Chief Operation Officer\",\n \"Chef\",\n \"Chemical Engineer\",\n \"Chemist\",\n \"Child Care Manager\",\n \"Chief Medical Officer\",\n \"Chiropractor\",\n \"Cinematographer\",\n \"City Housing Manager\",\n \"City Manager\",\n \"Civil Engineer\",\n \"Claims Manager\",\n \"Clinical Research Assistant\",\n \"Collections Manager\",\n \"Compliance Manager\",\n \"Comptroller\",\n \"Computer Manager\",\n \"Commercial Artist\",\n \"Communications Affairs Director\",\n \"Communications Director\",\n \"Communications Engineer\",\n \"Compensation Analyst\",\n \"Computer Programmer\",\n \"Computer Ops. Manager\",\n \"Computer Engineer\",\n \"Computer Operator\",\n \"Computer Graphics Specialist\",\n \"Construction Engineer\",\n \"Construction Manager\",\n \"Consultant\",\n \"Consumer Relations Manager\",\n \"Contract Administrator\",\n \"Copyright Attorney\",\n \"Copywriter\",\n \"Corporate Planner\",\n \"Corrections Officer\",\n \"Cosmetologist\",\n \"Credit Analyst\",\n \"Cruise Director\",\n \"Chief Information Officer\",\n \"Chief Technology Officer\",\n \"Customer Service Manager\",\n \"Cryptologist\",\n \"Dancer\",\n \"Data Security Manager\",\n \"Database Manager\",\n \"Day Care Instructor\",\n \"Dentist\",\n \"Designer\",\n \"Design Engineer\",\n \"Desktop Publisher\",\n \"Developer\",\n \"Development Officer\",\n \"Diamond Merchant\",\n \"Dietitian\",\n \"Direct Marketer\",\n \"Director\",\n \"Distribution Manager\",\n \"Diversity Manager\",\n \"Economist\",\n \"EEO Compliance Manager\",\n \"Editor\",\n \"Education Adminator\",\n \"Electrical Engineer\",\n \"Electro Optical Engineer\",\n \"Electronics Engineer\",\n \"Embassy Management\",\n \"Employment Agent\",\n \"Engineer Technician\",\n \"Entrepreneur\",\n \"Environmental Analyst\",\n \"Environmental Attorney\",\n \"Environmental Engineer\",\n \"Environmental Specialist\",\n \"Escrow Officer\",\n \"Estimator\",\n \"Executive Assistant\",\n \"Executive Director\",\n \"Executive Recruiter\",\n \"Facilities Manager\",\n \"Family Counselor\",\n \"Fashion Events Manager\",\n \"Fashion Merchandiser\",\n \"Fast Food Manager\",\n \"Film Producer\",\n \"Film Production Assistant\",\n \"Financial Analyst\",\n \"Financial Planner\",\n \"Financier\",\n \"Fine Artist\",\n \"Wildlife Specialist\",\n \"Fitness Consultant\",\n \"Flight Attendant\",\n \"Flight Engineer\",\n \"Floral Designer\",\n \"Food & Beverage Director\",\n \"Food Service Manager\",\n \"Forestry Technician\",\n \"Franchise Management\",\n \"Franchise Sales\",\n \"Fraud Investigator\",\n \"Freelance Writer\",\n \"Fund Raiser\",\n \"General Manager\",\n \"Geologist\",\n \"General Counsel\",\n \"Geriatric Specialist\",\n \"Gerontologist\",\n \"Glamour Photographer\",\n \"Golf Club Manager\",\n \"Gourmet Chef\",\n \"Graphic Designer\",\n \"Grounds Keeper\",\n \"Hazardous Waste Manager\",\n \"Health Care Manager\",\n \"Health Therapist\",\n \"Health Service Administrator\",\n \"Hearing Officer\",\n \"Home Economist\",\n \"Horticulturist\",\n \"Hospital Administrator\",\n \"Hotel Manager\",\n \"Human Resources Manager\",\n \"Importer\",\n \"Industrial Designer\",\n \"Industrial Engineer\",\n \"Information Director\",\n \"Inside Sales\",\n \"Insurance Adjuster\",\n \"Interior Decorator\",\n \"Internal Controls Director\",\n \"International Acct.\",\n \"International Courier\",\n \"International Lawyer\",\n \"Interpreter\",\n \"Investigator\",\n \"Investment Banker\",\n \"Investment Manager\",\n \"IT Architect\",\n \"IT Project Manager\",\n \"IT Systems Analyst\",\n \"Jeweler\",\n \"Joint Venture Manager\",\n \"Journalist\",\n \"Labor Negotiator\",\n \"Labor Organizer\",\n \"Labor Relations Manager\",\n \"Lab Services Director\",\n \"Lab Technician\",\n \"Land Developer\",\n \"Landscape Architect\",\n \"Law Enforcement Officer\",\n \"Lawyer\",\n \"Lead Software Engineer\",\n \"Lead Software Test Engineer\",\n \"Leasing Manager\",\n \"Legal Secretary\",\n \"Library Manager\",\n \"Litigation Attorney\",\n \"Loan Officer\",\n \"Lobbyist\",\n \"Logistics Manager\",\n \"Maintenance Manager\",\n \"Management Consultant\",\n \"Managed Care Director\",\n \"Managing Partner\",\n \"Manufacturing Director\",\n \"Manpower Planner\",\n \"Marine Biologist\",\n \"Market Res. Analyst\",\n \"Marketing Director\",\n \"Materials Manager\",\n \"Mathematician\",\n \"Membership Chairman\",\n \"Mechanic\",\n \"Mechanical Engineer\",\n \"Media Buyer\",\n \"Medical Investor\",\n \"Medical Secretary\",\n \"Medical Technician\",\n \"Mental Health Counselor\",\n \"Merchandiser\",\n \"Metallurgical Engineering\",\n \"Meteorologist\",\n \"Microbiologist\",\n \"MIS Manager\",\n \"Motion Picture Director\",\n \"Multimedia Director\",\n \"Musician\",\n \"Network Administrator\",\n \"Network Specialist\",\n \"Network Operator\",\n \"New Product Manager\",\n \"Novelist\",\n \"Nuclear Engineer\",\n \"Nuclear Specialist\",\n \"Nutritionist\",\n \"Nursing Administrator\",\n \"Occupational Therapist\",\n \"Oceanographer\",\n \"Office Manager\",\n \"Operations Manager\",\n \"Operations Research Director\",\n \"Optical Technician\",\n \"Optometrist\",\n \"Organizational Development Manager\",\n \"Outplacement Specialist\",\n \"Paralegal\",\n \"Park Ranger\",\n \"Patent Attorney\",\n \"Payroll Specialist\",\n \"Personnel Specialist\",\n \"Petroleum Engineer\",\n \"Pharmacist\",\n \"Photographer\",\n \"Physical Therapist\",\n \"Physician\",\n \"Physician Assistant\",\n \"Physicist\",\n \"Planning Director\",\n \"Podiatrist\",\n \"Political Analyst\",\n \"Political Scientist\",\n \"Politician\",\n \"Portfolio Manager\",\n \"Preschool Management\",\n \"Preschool Teacher\",\n \"Principal\",\n \"Private Banker\",\n \"Private Investigator\",\n \"Probation Officer\",\n \"Process Engineer\",\n \"Producer\",\n \"Product Manager\",\n \"Product Engineer\",\n \"Production Engineer\",\n \"Production Planner\",\n \"Professional Athlete\",\n \"Professional Coach\",\n \"Professor\",\n \"Project Engineer\",\n \"Project Manager\",\n \"Program Manager\",\n \"Property Manager\",\n \"Public Administrator\",\n \"Public Safety Director\",\n \"PR Specialist\",\n \"Publisher\",\n \"Purchasing Agent\",\n \"Publishing Director\",\n \"Quality Assurance Specialist\",\n \"Quality Control Engineer\",\n \"Quality Control Inspector\",\n \"Radiology Manager\",\n \"Railroad Engineer\",\n \"Real Estate Broker\",\n \"Recreational Director\",\n \"Recruiter\",\n \"Redevelopment Specialist\",\n \"Regulatory Affairs Manager\",\n \"Registered Nurse\",\n \"Rehabilitation Counselor\",\n \"Relocation Manager\",\n \"Reporter\",\n \"Research Specialist\",\n \"Restaurant Manager\",\n \"Retail Store Manager\",\n \"Risk Analyst\",\n \"Safety Engineer\",\n \"Sales Engineer\",\n \"Sales Trainer\",\n \"Sales Promotion Manager\",\n \"Sales Representative\",\n \"Sales Manager\",\n \"Service Manager\",\n \"Sanitation Engineer\",\n \"Scientific Programmer\",\n \"Scientific Writer\",\n \"Securities Analyst\",\n \"Security Consultant\",\n \"Security Director\",\n \"Seminar Presenter\",\n \"Ship's Officer\",\n \"Singer\",\n \"Social Director\",\n \"Social Program Planner\",\n \"Social Research\",\n \"Social Scientist\",\n \"Social Worker\",\n \"Sociologist\",\n \"Software Developer\",\n \"Software Engineer\",\n \"Software Test Engineer\",\n \"Soil Scientist\",\n \"Special Events Manager\",\n \"Special Education Teacher\",\n \"Special Projects Director\",\n \"Speech Pathologist\",\n \"Speech Writer\",\n \"Sports Event Manager\",\n \"Statistician\",\n \"Store Manager\",\n \"Strategic Alliance Director\",\n \"Strategic Planning Director\",\n \"Stress Reduction Specialist\",\n \"Stockbroker\",\n \"Surveyor\",\n \"Structural Engineer\",\n \"Superintendent\",\n \"Supply Chain Director\",\n \"System Engineer\",\n \"Systems Analyst\",\n \"Systems Programmer\",\n \"System Administrator\",\n \"Tax Specialist\",\n \"Teacher\",\n \"Technical Support Specialist\",\n \"Technical Illustrator\",\n \"Technical Writer\",\n \"Technology Director\",\n \"Telecom Analyst\",\n \"Telemarketer\",\n \"Theatrical Director\",\n \"Title Examiner\",\n \"Tour Escort\",\n \"Tour Guide Director\",\n \"Traffic Manager\",\n \"Trainer Translator\",\n \"Transportation Manager\",\n \"Travel Agent\",\n \"Treasurer\",\n \"TV Programmer\",\n \"Underwriter\",\n \"Union Representative\",\n \"University Administrator\",\n \"University Dean\",\n \"Urban Planner\",\n \"Veterinarian\",\n \"Vendor Relations Director\",\n \"Viticulturist\",\n \"Warehouse Manager\"\n ],\n animals : {\n //list of ocean animals comes from https://owlcation.com/stem/list-of-ocean-animals\n \"ocean\" : [\"Acantharea\",\"Anemone\",\"Angelfish King\",\"Ahi Tuna\",\"Albacore\",\"American Oyster\",\"Anchovy\",\"Armored Snail\",\"Arctic Char\",\"Atlantic Bluefin Tuna\",\"Atlantic Cod\",\"Atlantic Goliath Grouper\",\"Atlantic Trumpetfish\",\"Atlantic Wolffish\",\"Baleen Whale\",\"Banded Butterflyfish\",\"Banded Coral Shrimp\",\"Banded Sea Krait\",\"Barnacle\",\"Barndoor Skate\",\"Barracuda\",\"Basking Shark\",\"Bass\",\"Beluga Whale\",\"Bluebanded Goby\",\"Bluehead Wrasse\",\"Bluefish\",\"Bluestreak Cleaner-Wrasse\",\"Blue Marlin\",\"Blue Shark\",\"Blue Spiny Lobster\",\"Blue Tang\",\"Blue Whale\",\"Broadclub Cuttlefish\",\"Bull Shark\",\"Chambered Nautilus\",\"Chilean Basket Star\",\"Chilean Jack Mackerel\",\"Chinook Salmon\",\"Christmas Tree Worm\",\"Clam\",\"Clown Anemonefish\",\"Clown Triggerfish\",\"Cod\",\"Coelacanth\",\"Cockscomb Cup Coral\",\"Common Fangtooth\",\"Conch\",\"Cookiecutter Shark\",\"Copepod\",\"Coral\",\"Corydoras\",\"Cownose Ray\",\"Crab\",\"Crown-of-Thorns Starfish\",\"Cushion Star\",\"Cuttlefish\",\"California Sea Otters\",\"Dolphin\",\"Dolphinfish\",\"Dory\",\"Devil Fish\",\"Dugong\",\"Dumbo Octopus\",\"Dungeness Crab\",\"Eccentric Sand Dollar\",\"Edible Sea Cucumber\",\"Eel\",\"Elephant Seal\",\"Elkhorn Coral\",\"Emperor Shrimp\",\"Estuarine Crocodile\",\"Fathead Sculpin\",\"Fiddler Crab\",\"Fin Whale\",\"Flameback\",\"Flamingo Tongue Snail\",\"Flashlight Fish\",\"Flatback Turtle\",\"Flatfish\",\"Flying Fish\",\"Flounder\",\"Fluke\",\"French Angelfish\",\"Frilled Shark\",\"Fugu (also called Pufferfish)\",\"Gar\",\"Geoduck\",\"Giant Barrel Sponge\",\"Giant Caribbean Sea Anemone\",\"Giant Clam\",\"Giant Isopod\",\"Giant Kingfish\",\"Giant Oarfish\",\"Giant Pacific Octopus\",\"Giant Pyrosome\",\"Giant Sea Star\",\"Giant Squid\",\"Glowing Sucker Octopus\",\"Giant Tube Worm\",\"Goblin Shark\",\"Goosefish\",\"Great White Shark\",\"Greenland Shark\",\"Grey Atlantic Seal\",\"Grouper\",\"Grunion\",\"Guineafowl Puffer\",\"Haddock\",\"Hake\",\"Halibut\",\"Hammerhead Shark\",\"Hapuka\",\"Harbor Porpoise\",\"Harbor Seal\",\"Hatchetfish\",\"Hawaiian Monk Seal\",\"Hawksbill Turtle\",\"Hector's Dolphin\",\"Hermit Crab\",\"Herring\",\"Hoki\",\"Horn Shark\",\"Horseshoe Crab\",\"Humpback Anglerfish\",\"Humpback Whale\",\"Icefish\",\"Imperator Angelfish\",\"Irukandji Jellyfish\",\"Isopod\",\"Ivory Bush Coral\",\"Japanese Spider Crab\",\"Jellyfish\",\"John Dory\",\"Juan Fernandez Fur Seal\",\"Killer Whale\",\"Kiwa Hirsuta\",\"Krill\",\"Lagoon Triggerfish\",\"Lamprey\",\"Leafy Seadragon\",\"Leopard Seal\",\"Limpet\",\"Ling\",\"Lionfish\",\"Lions Mane Jellyfish\",\"Lobe Coral\",\"Lobster\",\"Loggerhead Turtle\",\"Longnose Sawshark\",\"Longsnout Seahorse\",\"Lophelia Coral\",\"Marrus Orthocanna\",\"Manatee\",\"Manta Ray\",\"Marlin\",\"Megamouth Shark\",\"Mexican Lookdown\",\"Mimic Octopus\",\"Moon Jelly\",\"Mollusk\",\"Monkfish\",\"Moray Eel\",\"Mullet\",\"Mussel\",\"Megaladon\",\"Napoleon Wrasse\",\"Nassau Grouper\",\"Narwhal\",\"Nautilus\",\"Needlefish\",\"Northern Seahorse\",\"North Atlantic Right Whale\",\"Northern Red Snapper\",\"Norway Lobster\",\"Nudibranch\",\"Nurse Shark\",\"Oarfish\",\"Ocean Sunfish\",\"Oceanic Whitetip Shark\",\"Octopus\",\"Olive Sea Snake\",\"Orange Roughy\",\"Ostracod\",\"Otter\",\"Oyster\",\"Pacific Angelshark\",\"Pacific Blackdragon\",\"Pacific Halibut\",\"Pacific Sardine\",\"Pacific Sea Nettle Jellyfish\",\"Pacific White Sided Dolphin\",\"Pantropical Spotted Dolphin\",\"Patagonian Toothfish\",\"Peacock Mantis Shrimp\",\"Pelagic Thresher Shark\",\"Penguin\",\"Peruvian Anchoveta\",\"Pilchard\",\"Pink Salmon\",\"Pinniped\",\"Plankton\",\"Porpoise\",\"Polar Bear\",\"Portuguese Man o' War\",\"Pycnogonid Sea Spider\",\"Quahog\",\"Queen Angelfish\",\"Queen Conch\",\"Queen Parrotfish\",\"Queensland Grouper\",\"Ragfish\",\"Ratfish\",\"Rattail Fish\",\"Ray\",\"Red Drum\",\"Red King Crab\",\"Ringed Seal\",\"Risso's Dolphin\",\"Ross Seals\",\"Sablefish\",\"Salmon\",\"Sand Dollar\",\"Sandbar Shark\",\"Sawfish\",\"Sarcastic Fringehead\",\"Scalloped Hammerhead Shark\",\"Seahorse\",\"Sea Cucumber\",\"Sea Lion\",\"Sea Urchin\",\"Seal\",\"Shark\",\"Shortfin Mako Shark\",\"Shovelnose Guitarfish\",\"Shrimp\",\"Silverside Fish\",\"Skipjack Tuna\",\"Slender Snipe Eel\",\"Smalltooth Sawfish\",\"Smelts\",\"Sockeye Salmon\",\"Southern Stingray\",\"Sponge\",\"Spotted Porcupinefish\",\"Spotted Dolphin\",\"Spotted Eagle Ray\",\"Spotted Moray\",\"Squid\",\"Squidworm\",\"Starfish\",\"Stickleback\",\"Stonefish\",\"Stoplight Loosejaw\",\"Sturgeon\",\"Swordfish\",\"Tan Bristlemouth\",\"Tasseled Wobbegong\",\"Terrible Claw Lobster\",\"Threespot Damselfish\",\"Tiger Prawn\",\"Tiger Shark\",\"Tilefish\",\"Toadfish\",\"Tropical Two-Wing Flyfish\",\"Tuna\",\"Umbrella Squid\",\"Velvet Crab\",\"Venus Flytrap Sea Anemone\",\"Vigtorniella Worm\",\"Viperfish\",\"Vampire Squid\",\"Vaquita\",\"Wahoo\",\"Walrus\",\"West Indian Manatee\",\"Whale\",\"Whale Shark\",\"Whiptail Gulper\",\"White-Beaked Dolphin\",\"White-Ring Garden Eel\",\"White Shrimp\",\"Wobbegong\",\"Wrasse\",\"Wreckfish\",\"Xiphosura\",\"Yellowtail Damselfish\",\"Yelloweye Rockfish\",\"Yellow Cup Black Coral\",\"Yellow Tube Sponge\",\"Yellowfin Tuna\",\"Zebrashark\",\"Zooplankton\"],\n //list of desert, grassland, and forest animals comes from http://www.skyenimals.com/\n \"desert\" : [\"Aardwolf\",\"Addax\",\"African Wild Ass\",\"Ant\",\"Antelope\",\"Armadillo\",\"Baboon\",\"Badger\",\"Bat\",\"Bearded Dragon\",\"Beetle\",\"Bird\",\"Black-footed Cat\",\"Boa\",\"Brown Bear\",\"Bustard\",\"Butterfly\",\"Camel\",\"Caracal\",\"Caracara\",\"Caterpillar\",\"Centipede\",\"Cheetah\",\"Chipmunk\",\"Chuckwalla\",\"Climbing Mouse\",\"Coati\",\"Cobra\",\"Cotton Rat\",\"Cougar\",\"Courser\",\"Crane Fly\",\"Crow\",\"Dassie Rat\",\"Dove\",\"Dunnart\",\"Eagle\",\"Echidna\",\"Elephant\",\"Emu\",\"Falcon\",\"Fly\",\"Fox\",\"Frogmouth\",\"Gecko\",\"Geoffroy's Cat\",\"Gerbil\",\"Grasshopper\",\"Guanaco\",\"Gundi\",\"Hamster\",\"Hawk\",\"Hedgehog\",\"Hyena\",\"Hyrax\",\"Jackal\",\"Kangaroo\",\"Kangaroo Rat\",\"Kestrel\",\"Kowari\",\"Kultarr\",\"Leopard\",\"Lion\",\"Macaw\",\"Meerkat\",\"Mouse\",\"Oryx\",\"Ostrich\",\"Owl\",\"Pronghorn\",\"Python\",\"Rabbit\",\"Raccoon\",\"Rattlesnake\",\"Rhinoceros\",\"Sand Cat\",\"Spectacled Bear\",\"Spiny Mouse\",\"Starling\",\"Stick Bug\",\"Tarantula\",\"Tit\",\"Toad\",\"Tortoise\",\"Tyrant Flycatcher\",\"Viper\",\"Vulture\",\"Waxwing\",\"Xerus\",\"Zebra\"],\n \"grassland\" : [\"Aardvark\",\"Aardwolf\",\"Accentor\",\"African Buffalo\",\"African Wild Dog\",\"Alpaca\",\"Anaconda\",\"Ant\",\"Anteater\",\"Antelope\",\"Armadillo\",\"Baboon\",\"Badger\",\"Bandicoot\",\"Barbet\",\"Bat\",\"Bee\",\"Bee-eater\",\"Beetle\",\"Bird\",\"Bison\",\"Black-footed Cat\",\"Black-footed Ferret\",\"Bluebird\",\"Boa\",\"Bowerbird\",\"Brown Bear\",\"Bush Dog\",\"Bushshrike\",\"Bustard\",\"Butterfly\",\"Buzzard\",\"Caracal\",\"Caracara\",\"Cardinal\",\"Caterpillar\",\"Cheetah\",\"Chipmunk\",\"Civet\",\"Climbing Mouse\",\"Clouded Leopard\",\"Coati\",\"Cobra\",\"Cockatoo\",\"Cockroach\",\"Common Genet\",\"Cotton Rat\",\"Cougar\",\"Courser\",\"Coyote\",\"Crane\",\"Crane Fly\",\"Cricket\",\"Crow\",\"Culpeo\",\"Death Adder\",\"Deer\",\"Deer Mouse\",\"Dingo\",\"Dinosaur\",\"Dove\",\"Drongo\",\"Duck\",\"Duiker\",\"Dunnart\",\"Eagle\",\"Echidna\",\"Elephant\",\"Elk\",\"Emu\",\"Falcon\",\"Finch\",\"Flea\",\"Fly\",\"Flying Frog\",\"Fox\",\"Frog\",\"Frogmouth\",\"Garter Snake\",\"Gazelle\",\"Gecko\",\"Geoffroy's Cat\",\"Gerbil\",\"Giant Tortoise\",\"Giraffe\",\"Grasshopper\",\"Grison\",\"Groundhog\",\"Grouse\",\"Guanaco\",\"Guinea Pig\",\"Hamster\",\"Harrier\",\"Hartebeest\",\"Hawk\",\"Hedgehog\",\"Helmetshrike\",\"Hippopotamus\",\"Hornbill\",\"Hyena\",\"Hyrax\",\"Impala\",\"Jackal\",\"Jaguar\",\"Jaguarundi\",\"Kangaroo\",\"Kangaroo Rat\",\"Kestrel\",\"Kultarr\",\"Ladybug\",\"Leopard\",\"Lion\",\"Macaw\",\"Meerkat\",\"Mouse\",\"Newt\",\"Oryx\",\"Ostrich\",\"Owl\",\"Pangolin\",\"Pheasant\",\"Prairie Dog\",\"Pronghorn\",\"Przewalski's Horse\",\"Python\",\"Quoll\",\"Rabbit\",\"Raven\",\"Rhinoceros\",\"Shelduck\",\"Sloth Bear\",\"Spectacled Bear\",\"Squirrel\",\"Starling\",\"Stick Bug\",\"Tamandua\",\"Tasmanian Devil\",\"Thornbill\",\"Thrush\",\"Toad\",\"Tortoise\"],\n \"forest\" : [\"Agouti\",\"Anaconda\",\"Anoa\",\"Ant\",\"Anteater\",\"Antelope\",\"Armadillo\",\"Asian Black Bear\",\"Aye-aye\",\"Babirusa\",\"Baboon\",\"Badger\",\"Bandicoot\",\"Banteng\",\"Barbet\",\"Basilisk\",\"Bat\",\"Bearded Dragon\",\"Bee\",\"Bee-eater\",\"Beetle\",\"Bettong\",\"Binturong\",\"Bird-of-paradise\",\"Bongo\",\"Bowerbird\",\"Bulbul\",\"Bush Dog\",\"Bushbaby\",\"Bushshrike\",\"Butterfly\",\"Buzzard\",\"Caecilian\",\"Cardinal\",\"Cassowary\",\"Caterpillar\",\"Centipede\",\"Chameleon\",\"Chimpanzee\",\"Cicada\",\"Civet\",\"Clouded Leopard\",\"Coati\",\"Cobra\",\"Cockatoo\",\"Cockroach\",\"Colugo\",\"Cotinga\",\"Cotton Rat\",\"Cougar\",\"Crane Fly\",\"Cricket\",\"Crocodile\",\"Crow\",\"Cuckoo\",\"Cuscus\",\"Death Adder\",\"Deer\",\"Dhole\",\"Dingo\",\"Dinosaur\",\"Drongo\",\"Duck\",\"Duiker\",\"Eagle\",\"Echidna\",\"Elephant\",\"Finch\",\"Flat-headed Cat\",\"Flea\",\"Flowerpecker\",\"Fly\",\"Flying Frog\",\"Fossa\",\"Frog\",\"Frogmouth\",\"Gaur\",\"Gecko\",\"Gorilla\",\"Grison\",\"Hawaiian Honeycreeper\",\"Hawk\",\"Hedgehog\",\"Helmetshrike\",\"Hornbill\",\"Hyrax\",\"Iguana\",\"Jackal\",\"Jaguar\",\"Jaguarundi\",\"Kestrel\",\"Ladybug\",\"Lemur\",\"Leopard\",\"Lion\",\"Macaw\",\"Mandrill\",\"Margay\",\"Monkey\",\"Mouse\",\"Mouse Deer\",\"Newt\",\"Okapi\",\"Old World Flycatcher\",\"Orangutan\",\"Owl\",\"Pangolin\",\"Peafowl\",\"Pheasant\",\"Possum\",\"Python\",\"Quokka\",\"Rabbit\",\"Raccoon\",\"Red Panda\",\"Red River Hog\",\"Rhinoceros\",\"Sloth Bear\",\"Spectacled Bear\",\"Squirrel\",\"Starling\",\"Stick Bug\",\"Sun Bear\",\"Tamandua\",\"Tamarin\",\"Tapir\",\"Tarantula\",\"Thrush\",\"Tiger\",\"Tit\",\"Toad\",\"Tortoise\",\"Toucan\",\"Trogon\",\"Trumpeter\",\"Turaco\",\"Turtle\",\"Tyrant Flycatcher\",\"Viper\",\"Vulture\",\"Wallaby\",\"Warbler\",\"Wasp\",\"Waxwing\",\"Weaver\",\"Weaver-finch\",\"Whistler\",\"White-eye\",\"Whydah\",\"Woodswallow\",\"Worm\",\"Wren\",\"Xenops\",\"Yellowjacket\",\"Accentor\",\"African Buffalo\",\"American Black Bear\",\"Anole\",\"Bird\",\"Bison\",\"Boa\",\"Brown Bear\",\"Chipmunk\",\"Common Genet\",\"Copperhead\",\"Coyote\",\"Deer Mouse\",\"Dormouse\",\"Elk\",\"Emu\",\"Fisher\",\"Fox\",\"Garter Snake\",\"Giant Panda\",\"Giant Tortoise\",\"Groundhog\",\"Grouse\",\"Guanaco\",\"Himalayan Tahr\",\"Kangaroo\",\"Koala\",\"Numbat\",\"Quoll\",\"Raccoon dog\",\"Tasmanian Devil\",\"Thornbill\",\"Turkey\",\"Vole\",\"Weasel\",\"Wildcat\",\"Wolf\",\"Wombat\",\"Woodchuck\",\"Woodpecker\"],\n //list of farm animals comes from https://www.buzzle.com/articles/farm-animals-list.html\n \"farm\" : [\"Alpaca\",\"Buffalo\",\"Banteng\",\"Cow\",\"Cat\",\"Chicken\",\"Carp\",\"Camel\",\"Donkey\",\"Dog\",\"Duck\",\"Emu\",\"Goat\",\"Gayal\",\"Guinea\",\"Goose\",\"Horse\",\"Honey\",\"Llama\",\"Pig\",\"Pigeon\",\"Rhea\",\"Rabbit\",\"Sheep\",\"Silkworm\",\"Turkey\",\"Yak\",\"Zebu\"],\n //list of pet animals comes from https://www.dogbreedinfo.com/pets/pet.htm\n \"pet\" : [\"Bearded Dragon\",\"Birds\",\"Burro\",\"Cats\",\"Chameleons\",\"Chickens\",\"Chinchillas\",\"Chinese Water Dragon\",\"Cows\",\"Dogs\",\"Donkey\",\"Ducks\",\"Ferrets\",\"Fish\",\"Geckos\",\"Geese\",\"Gerbils\",\"Goats\",\"Guinea Fowl\",\"Guinea Pigs\",\"Hamsters\",\"Hedgehogs\",\"Horses\",\"Iguanas\",\"Llamas\",\"Lizards\",\"Mice\",\"Mule\",\"Peafowl\",\"Pigs and Hogs\",\"Pigeons\",\"Ponies\",\"Pot Bellied Pig\",\"Rabbits\",\"Rats\",\"Sheep\",\"Skinks\",\"Snakes\",\"Stick Insects\",\"Sugar Gliders\",\"Tarantula\",\"Turkeys\",\"Turtles\"],\n //list of zoo animals comes from https://bronxzoo.com/animals\n \"zoo\" : [\"Aardvark\",\"African Wild Dog\",\"Aldabra Tortoise\",\"American Alligator\",\"American Bison\",\"Amur Tiger\",\"Anaconda\",\"Andean Condor\",\"Asian Elephant\",\"Baby Doll Sheep\",\"Bald Eagle\",\"Barred Owl\",\"Blue Iguana\",\"Boer Goat\",\"California Sea Lion\",\"Caribbean Flamingo\",\"Chinchilla\",\"Collared Lemur\",\"Coquerel's Sifaka\",\"Cuban Amazon Parrot\",\"Ebony Langur\",\"Fennec Fox\",\"Fossa\",\"Gelada\",\"Giant Anteater\",\"Giraffe\",\"Gorilla\",\"Grizzly Bear\",\"Henkel's Leaf-tailed Gecko\",\"Indian Gharial\",\"Indian Rhinoceros\",\"King Cobra\",\"King Vulture\",\"Komodo Dragon\",\"Linne's Two-toed Sloth\",\"Lion\",\"Little Penguin\",\"Madagascar Tree Boa\",\"Magellanic Penguin\",\"Malayan Tapir\",\"Malayan Tiger\",\"Matschies Tree Kangaroo\",\"Mini Donkey\",\"Monarch Butterfly\",\"Nile crocodile\",\"North American Porcupine\",\"Nubian Ibex\",\"Okapi\",\"Poison Dart Frog\",\"Polar Bear\",\"Pygmy Marmoset\",\"Radiated Tortoise\",\"Red Panda\",\"Red Ruffed Lemur\",\"Ring-tailed Lemur\",\"Ring-tailed Mongoose\",\"Rock Hyrax\",\"Small Clawed Asian Otter\",\"Snow Leopard\",\"Snowy Owl\",\"Southern White-faced Owl\",\"Southern White Rhinocerous\",\"Squirrel Monkey\",\"Tufted Puffin\",\"White Cheeked Gibbon\",\"White-throated Bee Eater\",\"Zebra\"]\n },\n primes: [\n // 1230 first primes, i.e. all primes up to the first one greater than 10000, inclusive.\n 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007\n ],\n emotions: [\n \"love\",\n \"joy\",\n \"surprise\",\n \"anger\",\n \"sadness\",\n \"fear\"\n ],\n };\n\n var o_hasOwnProperty = Object.prototype.hasOwnProperty;\n var o_keys = (Object.keys || function(obj) {\n var result = [];\n for (var key in obj) {\n if (o_hasOwnProperty.call(obj, key)) {\n result.push(key);\n }\n }\n\n return result;\n });\n\n\n function _copyObject(source, target) {\n var keys = o_keys(source);\n var key;\n\n for (var i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n target[key] = source[key] || target[key];\n }\n }\n\n function _copyArray(source, target) {\n for (var i = 0, l = source.length; i < l; i++) {\n target[i] = source[i];\n }\n }\n\n function copyObject(source, _target) {\n var isArray = Array.isArray(source);\n var target = _target || (isArray ? new Array(source.length) : {});\n\n if (isArray) {\n _copyArray(source, target);\n } else {\n _copyObject(source, target);\n }\n\n return target;\n }\n\n /** Get the data based on key**/\n Chance.prototype.get = function (name) {\n return copyObject(data[name]);\n };\n\n // Mac Address\n Chance.prototype.mac_address = function(options){\n // typically mac addresses are separated by \":\"\n // however they can also be separated by \"-\"\n // the network variant uses a dot every fourth byte\n\n options = initOptions(options);\n if(!options.separator) {\n options.separator = options.networkVersion ? \".\" : \":\";\n }\n\n var mac_pool=\"ABCDEF1234567890\",\n mac = \"\";\n if(!options.networkVersion) {\n mac = this.n(this.string, 6, { pool: mac_pool, length:2 }).join(options.separator);\n } else {\n mac = this.n(this.string, 3, { pool: mac_pool, length:4 }).join(options.separator);\n }\n\n return mac;\n };\n\n Chance.prototype.normal = function (options) {\n options = initOptions(options, {mean : 0, dev : 1, pool : []});\n\n testRange(\n options.pool.constructor !== Array,\n \"Chance: The pool option must be a valid array.\"\n );\n testRange(\n typeof options.mean !== 'number',\n \"Chance: Mean (mean) must be a number\"\n );\n testRange(\n typeof options.dev !== 'number',\n \"Chance: Standard deviation (dev) must be a number\"\n );\n\n // If a pool has been passed, then we are returning an item from that pool,\n // using the normal distribution settings that were passed in\n if (options.pool.length > 0) {\n return this.normal_pool(options);\n }\n\n // The Marsaglia Polar method\n var s, u, v, norm,\n mean = options.mean,\n dev = options.dev;\n\n do {\n // U and V are from the uniform distribution on (-1, 1)\n u = this.random() * 2 - 1;\n v = this.random() * 2 - 1;\n\n s = u * u + v * v;\n } while (s >= 1);\n\n // Compute the standard normal variate\n norm = u * Math.sqrt(-2 * Math.log(s) / s);\n\n // Shape and scale\n return dev * norm + mean;\n };\n\n Chance.prototype.normal_pool = function(options) {\n var performanceCounter = 0;\n do {\n var idx = Math.round(this.normal({ mean: options.mean, dev: options.dev }));\n if (idx < options.pool.length && idx >= 0) {\n return options.pool[idx];\n } else {\n performanceCounter++;\n }\n } while(performanceCounter < 100);\n\n throw new RangeError(\"Chance: Your pool is too small for the given mean and standard deviation. Please adjust.\");\n };\n\n Chance.prototype.radio = function (options) {\n // Initial Letter (Typically Designated by Side of Mississippi River)\n options = initOptions(options, {side : \"?\"});\n var fl = \"\";\n switch (options.side.toLowerCase()) {\n case \"east\":\n case \"e\":\n fl = \"W\";\n break;\n case \"west\":\n case \"w\":\n fl = \"K\";\n break;\n default:\n fl = this.character({pool: \"KW\"});\n break;\n }\n\n return fl + this.character({alpha: true, casing: \"upper\"}) +\n this.character({alpha: true, casing: \"upper\"}) +\n this.character({alpha: true, casing: \"upper\"});\n };\n\n // Set the data as key and data or the data map\n Chance.prototype.set = function (name, values) {\n if (typeof name === \"string\") {\n data[name] = values;\n } else {\n data = copyObject(name, data);\n }\n };\n\n Chance.prototype.tv = function (options) {\n return this.radio(options);\n };\n\n // ID number for Brazil companies\n Chance.prototype.cnpj = function () {\n var n = this.n(this.natural, 8, { max: 9 });\n var d1 = 2+n[7]*6+n[6]*7+n[5]*8+n[4]*9+n[3]*2+n[2]*3+n[1]*4+n[0]*5;\n d1 = 11 - (d1 % 11);\n if (d1>=10){\n d1 = 0;\n }\n var d2 = d1*2+3+n[7]*7+n[6]*8+n[5]*9+n[4]*2+n[3]*3+n[2]*4+n[1]*5+n[0]*6;\n d2 = 11 - (d2 % 11);\n if (d2>=10){\n d2 = 0;\n }\n return ''+n[0]+n[1]+'.'+n[2]+n[3]+n[4]+'.'+n[5]+n[6]+n[7]+'/0001-'+d1+d2;\n };\n\n Chance.prototype.emotion = function () {\n return this.pick(this.get(\"emotions\"));\n };\n\n // -- End Miscellaneous --\n\n Chance.prototype.mersenne_twister = function (seed) {\n return new MersenneTwister(seed);\n };\n\n Chance.prototype.blueimp_md5 = function () {\n return new BlueImpMD5();\n };\n\n // Mersenne Twister from https://gist.github.com/banksean/300494\n /*\n A C-program for MT19937, with initialization improved 2002/1/26.\n Coded by Takuji Nishimura and Makoto Matsumoto.\n\n Before using, initialize the state by using init_genrand(seed)\n or init_by_array(init_key, key_length).\n\n Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions\n are met:\n\n 1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n 3. The names of its contributors may not be used to endorse or promote\n products derived from this software without specific prior written\n permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n Any feedback is very welcome.\n http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html\n email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)\n */\n var MersenneTwister = function (seed) {\n if (seed === undefined) {\n // kept random number same size as time used previously to ensure no unexpected results downstream\n seed = Math.floor(Math.random()*Math.pow(10,13));\n }\n /* Period parameters */\n this.N = 624;\n this.M = 397;\n this.MATRIX_A = 0x9908b0df; /* constant vector a */\n this.UPPER_MASK = 0x80000000; /* most significant w-r bits */\n this.LOWER_MASK = 0x7fffffff; /* least significant r bits */\n\n this.mt = new Array(this.N); /* the array for the state vector */\n this.mti = this.N + 1; /* mti==N + 1 means mt[N] is not initialized */\n\n this.init_genrand(seed);\n };\n\n /* initializes mt[N] with a seed */\n MersenneTwister.prototype.init_genrand = function (s) {\n this.mt[0] = s >>> 0;\n for (this.mti = 1; this.mti < this.N; this.mti++) {\n s = this.mt[this.mti - 1] ^ (this.mt[this.mti - 1] >>> 30);\n this.mt[this.mti] = (((((s & 0xffff0000) >>> 16) * 1812433253) << 16) + (s & 0x0000ffff) * 1812433253) + this.mti;\n /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */\n /* In the previous versions, MSBs of the seed affect */\n /* only MSBs of the array mt[]. */\n /* 2002/01/09 modified by Makoto Matsumoto */\n this.mt[this.mti] >>>= 0;\n /* for >32 bit machines */\n }\n };\n\n /* initialize by an array with array-length */\n /* init_key is the array for initializing keys */\n /* key_length is its length */\n /* slight change for C++, 2004/2/26 */\n MersenneTwister.prototype.init_by_array = function (init_key, key_length) {\n var i = 1, j = 0, k, s;\n this.init_genrand(19650218);\n k = (this.N > key_length ? this.N : key_length);\n for (; k; k--) {\n s = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30);\n this.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1664525) << 16) + ((s & 0x0000ffff) * 1664525))) + init_key[j] + j; /* non linear */\n this.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n i++;\n j++;\n if (i >= this.N) { this.mt[0] = this.mt[this.N - 1]; i = 1; }\n if (j >= key_length) { j = 0; }\n }\n for (k = this.N - 1; k; k--) {\n s = this.mt[i - 1] ^ (this.mt[i - 1] >>> 30);\n this.mt[i] = (this.mt[i] ^ (((((s & 0xffff0000) >>> 16) * 1566083941) << 16) + (s & 0x0000ffff) * 1566083941)) - i; /* non linear */\n this.mt[i] >>>= 0; /* for WORDSIZE > 32 machines */\n i++;\n if (i >= this.N) { this.mt[0] = this.mt[this.N - 1]; i = 1; }\n }\n\n this.mt[0] = 0x80000000; /* MSB is 1; assuring non-zero initial array */\n };\n\n /* generates a random number on [0,0xffffffff]-interval */\n MersenneTwister.prototype.genrand_int32 = function () {\n var y;\n var mag01 = new Array(0x0, this.MATRIX_A);\n /* mag01[x] = x * MATRIX_A for x=0,1 */\n\n if (this.mti >= this.N) { /* generate N words at one time */\n var kk;\n\n if (this.mti === this.N + 1) { /* if init_genrand() has not been called, */\n this.init_genrand(5489); /* a default initial seed is used */\n }\n for (kk = 0; kk < this.N - this.M; kk++) {\n y = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk + 1]&this.LOWER_MASK);\n this.mt[kk] = this.mt[kk + this.M] ^ (y >>> 1) ^ mag01[y & 0x1];\n }\n for (;kk < this.N - 1; kk++) {\n y = (this.mt[kk]&this.UPPER_MASK)|(this.mt[kk + 1]&this.LOWER_MASK);\n this.mt[kk] = this.mt[kk + (this.M - this.N)] ^ (y >>> 1) ^ mag01[y & 0x1];\n }\n y = (this.mt[this.N - 1]&this.UPPER_MASK)|(this.mt[0]&this.LOWER_MASK);\n this.mt[this.N - 1] = this.mt[this.M - 1] ^ (y >>> 1) ^ mag01[y & 0x1];\n\n this.mti = 0;\n }\n\n y = this.mt[this.mti++];\n\n /* Tempering */\n y ^= (y >>> 11);\n y ^= (y << 7) & 0x9d2c5680;\n y ^= (y << 15) & 0xefc60000;\n y ^= (y >>> 18);\n\n return y >>> 0;\n };\n\n /* generates a random number on [0,0x7fffffff]-interval */\n MersenneTwister.prototype.genrand_int31 = function () {\n return (this.genrand_int32() >>> 1);\n };\n\n /* generates a random number on [0,1]-real-interval */\n MersenneTwister.prototype.genrand_real1 = function () {\n return this.genrand_int32() * (1.0 / 4294967295.0);\n /* divided by 2^32-1 */\n };\n\n /* generates a random number on [0,1)-real-interval */\n MersenneTwister.prototype.random = function () {\n return this.genrand_int32() * (1.0 / 4294967296.0);\n /* divided by 2^32 */\n };\n\n /* generates a random number on (0,1)-real-interval */\n MersenneTwister.prototype.genrand_real3 = function () {\n return (this.genrand_int32() + 0.5) * (1.0 / 4294967296.0);\n /* divided by 2^32 */\n };\n\n /* generates a random number on [0,1) with 53-bit resolution*/\n MersenneTwister.prototype.genrand_res53 = function () {\n var a = this.genrand_int32()>>>5, b = this.genrand_int32()>>>6;\n return (a * 67108864.0 + b) * (1.0 / 9007199254740992.0);\n };\n\n // BlueImp MD5 hashing algorithm from https://github.com/blueimp/JavaScript-MD5\n var BlueImpMD5 = function () {};\n\n BlueImpMD5.prototype.VERSION = '1.0.1';\n\n /*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n BlueImpMD5.prototype.safe_add = function safe_add(x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n\n /*\n * Bitwise rotate a 32-bit number to the left.\n */\n BlueImpMD5.prototype.bit_roll = function (num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n };\n\n /*\n * These functions implement the five basic operations the algorithm uses.\n */\n BlueImpMD5.prototype.md5_cmn = function (q, a, b, x, s, t) {\n return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(a, q), this.safe_add(x, t)), s), b);\n };\n BlueImpMD5.prototype.md5_ff = function (a, b, c, d, x, s, t) {\n return this.md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);\n };\n BlueImpMD5.prototype.md5_gg = function (a, b, c, d, x, s, t) {\n return this.md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);\n };\n BlueImpMD5.prototype.md5_hh = function (a, b, c, d, x, s, t) {\n return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);\n };\n BlueImpMD5.prototype.md5_ii = function (a, b, c, d, x, s, t) {\n return this.md5_cmn(c ^ (b | (~d)), a, b, x, s, t);\n };\n\n /*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n BlueImpMD5.prototype.binl_md5 = function (x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << (len % 32);\n x[(((len + 64) >>> 9) << 4) + 14] = len;\n\n var i, olda, oldb, oldc, oldd,\n a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n\n a = this.md5_ff(a, b, c, d, x[i], 7, -680876936);\n d = this.md5_ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = this.md5_ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = this.md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = this.md5_ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = this.md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = this.md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = this.md5_ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = this.md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = this.md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = this.md5_ff(c, d, a, b, x[i + 10], 17, -42063);\n b = this.md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = this.md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = this.md5_ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = this.md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = this.md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);\n\n a = this.md5_gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = this.md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = this.md5_gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = this.md5_gg(b, c, d, a, x[i], 20, -373897302);\n a = this.md5_gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = this.md5_gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = this.md5_gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = this.md5_gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = this.md5_gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = this.md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = this.md5_gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = this.md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = this.md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = this.md5_gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = this.md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = this.md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);\n\n a = this.md5_hh(a, b, c, d, x[i + 5], 4, -378558);\n d = this.md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = this.md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = this.md5_hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = this.md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = this.md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = this.md5_hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = this.md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = this.md5_hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = this.md5_hh(d, a, b, c, x[i], 11, -358537222);\n c = this.md5_hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = this.md5_hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = this.md5_hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = this.md5_hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = this.md5_hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = this.md5_hh(b, c, d, a, x[i + 2], 23, -995338651);\n\n a = this.md5_ii(a, b, c, d, x[i], 6, -198630844);\n d = this.md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = this.md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = this.md5_ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = this.md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = this.md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = this.md5_ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = this.md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = this.md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = this.md5_ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = this.md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = this.md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = this.md5_ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = this.md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = this.md5_ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = this.md5_ii(b, c, d, a, x[i + 9], 21, -343485551);\n\n a = this.safe_add(a, olda);\n b = this.safe_add(b, oldb);\n c = this.safe_add(c, oldc);\n d = this.safe_add(d, oldd);\n }\n return [a, b, c, d];\n };\n\n /*\n * Convert an array of little-endian words to a string\n */\n BlueImpMD5.prototype.binl2rstr = function (input) {\n var i,\n output = '';\n for (i = 0; i < input.length * 32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);\n }\n return output;\n };\n\n /*\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n BlueImpMD5.prototype.rstr2binl = function (input) {\n var i,\n output = [];\n output[(input.length >> 2) - 1] = undefined;\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n for (i = 0; i < input.length * 8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);\n }\n return output;\n };\n\n /*\n * Calculate the MD5 of a raw string\n */\n BlueImpMD5.prototype.rstr_md5 = function (s) {\n return this.binl2rstr(this.binl_md5(this.rstr2binl(s), s.length * 8));\n };\n\n /*\n * Calculate the HMAC-MD5, of a key and some data (raw strings)\n */\n BlueImpMD5.prototype.rstr_hmac_md5 = function (key, data) {\n var i,\n bkey = this.rstr2binl(key),\n ipad = [],\n opad = [],\n hash;\n ipad[15] = opad[15] = undefined;\n if (bkey.length > 16) {\n bkey = this.binl_md5(bkey, key.length * 8);\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5C5C5C5C;\n }\n hash = this.binl_md5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8);\n return this.binl2rstr(this.binl_md5(opad.concat(hash), 512 + 128));\n };\n\n /*\n * Convert a raw string to a hex string\n */\n BlueImpMD5.prototype.rstr2hex = function (input) {\n var hex_tab = '0123456789abcdef',\n output = '',\n x,\n i;\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i);\n output += hex_tab.charAt((x >>> 4) & 0x0F) +\n hex_tab.charAt(x & 0x0F);\n }\n return output;\n };\n\n /*\n * Encode a string as utf-8\n */\n BlueImpMD5.prototype.str2rstr_utf8 = function (input) {\n return unescape(encodeURIComponent(input));\n };\n\n /*\n * Take string arguments and return either raw or hex encoded strings\n */\n BlueImpMD5.prototype.raw_md5 = function (s) {\n return this.rstr_md5(this.str2rstr_utf8(s));\n };\n BlueImpMD5.prototype.hex_md5 = function (s) {\n return this.rstr2hex(this.raw_md5(s));\n };\n BlueImpMD5.prototype.raw_hmac_md5 = function (k, d) {\n return this.rstr_hmac_md5(this.str2rstr_utf8(k), this.str2rstr_utf8(d));\n };\n BlueImpMD5.prototype.hex_hmac_md5 = function (k, d) {\n return this.rstr2hex(this.raw_hmac_md5(k, d));\n };\n\n BlueImpMD5.prototype.md5 = function (string, key, raw) {\n if (!key) {\n if (!raw) {\n return this.hex_md5(string);\n }\n\n return this.raw_md5(string);\n }\n\n if (!raw) {\n return this.hex_hmac_md5(key, string);\n }\n\n return this.raw_hmac_md5(key, string);\n };\n\n // CommonJS module\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Chance;\n }\n exports.Chance = Chance;\n }\n\n // Register as an anonymous AMD module\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return Chance;\n });\n }\n\n // if there is a importsScrips object define chance for worker\n // allows worker to use full Chance functionality with seed\n if (typeof importScripts !== 'undefined') {\n chance = new Chance();\n self.Chance = Chance;\n }\n\n // If there is a window object, that at least has a document property,\n // instantiate and define chance on the window\n if (typeof window === \"object\" && typeof window.document === \"object\") {\n window.Chance = Chance;\n window.chance = new Chance();\n }\n})();\n","\"use strict\"\r\n\r\n// Based on: https://github.com/lodash/lodash/blob/6018350ac10d5ce6a5b7db625140b82aeab804df/.internal/unicodeSize.js\r\n\r\nmodule.exports = () => {\r\n\t// Used to compose unicode character classes.\r\n\tconst astralRange = \"\\\\ud800-\\\\udfff\"\r\n\tconst comboMarksRange = \"\\\\u0300-\\\\u036f\"\r\n\tconst comboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\"\r\n\tconst comboSymbolsRange = \"\\\\u20d0-\\\\u20ff\"\r\n\tconst comboMarksExtendedRange = \"\\\\u1ab0-\\\\u1aff\"\r\n\tconst comboMarksSupplementRange = \"\\\\u1dc0-\\\\u1dff\"\r\n\tconst comboRange = comboMarksRange + comboHalfMarksRange + comboSymbolsRange + comboMarksExtendedRange + comboMarksSupplementRange\r\n\tconst varRange = \"\\\\ufe0e\\\\ufe0f\"\r\n\tconst familyRange = \"\\\\uD83D\\\\uDC69\\\\uD83C\\\\uDFFB\\\\u200D\\\\uD83C\\\\uDF93\"\r\n\r\n\t// Used to compose unicode capture groups.\r\n\tconst astral = `[${astralRange}]`\r\n\tconst combo = `[${comboRange}]`\r\n\tconst fitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\"\r\n\tconst modifier = `(?:${combo}|${fitz})`\r\n\tconst nonAstral = `[^${astralRange}]`\r\n\tconst regional = \"(?:\\\\uD83C[\\\\uDDE6-\\\\uDDFF]){2}\"\r\n\tconst surrogatePair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\"\r\n\tconst zwj = \"\\\\u200d\"\r\n\tconst blackFlag = \"(?:\\\\ud83c\\\\udff4\\\\udb40\\\\udc67\\\\udb40\\\\udc62\\\\udb40(?:\\\\udc65|\\\\udc73|\\\\udc77)\\\\udb40(?:\\\\udc6e|\\\\udc63|\\\\udc6c)\\\\udb40(?:\\\\udc67|\\\\udc74|\\\\udc73)\\\\udb40\\\\udc7f)\"\r\n\tconst family = `[${familyRange}]`\r\n\r\n\t// Used to compose unicode regexes.\r\n\tconst optModifier = `${modifier}?`\r\n\tconst optVar = `[${varRange}]?`\r\n\tconst optJoin = `(?:${zwj}(?:${[nonAstral, regional, surrogatePair].join(\"|\")})${optVar + optModifier})*`\r\n\tconst seq = optVar + optModifier + optJoin\r\n\tconst nonAstralCombo = `${nonAstral}${combo}?`\r\n\tconst symbol = `(?:${[nonAstralCombo, combo, regional, surrogatePair, astral, family].join(\"|\")})`\r\n\r\n\t// Used to match [String symbols](https://mathiasbynens.be/notes/javascript-unicode).\r\n\treturn new RegExp(`${blackFlag}|${fitz}(?=${fitz})|${symbol + seq}`, \"g\")\r\n}\r\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationMetadata(args) {\n /**\n * Validation groups used for this validation.\n */\n this.groups = [];\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n this.always = false;\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n this.each = false;\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n this.context = undefined;\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n\n//# sourceMappingURL=ValidationMetadata.js.map\n","import { ValidationMetadata } from \"../metadata/ValidationMetadata\";\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n function ValidationSchemaToMetadataTransformer() {\n }\n ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n var metadatas = [];\n Object.keys(schema.properties).forEach(function (property) {\n schema.properties[property].forEach(function (validation) {\n var validationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each\n };\n var args = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n };\n return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map\n","import { ValidationSchemaToMetadataTransformer } from \"../validation-schema/ValidationSchemaToMetadataTransformer\";\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n if (typeof window !== \"undefined\") {\n window.global = window;\n }\n if (!global.classValidatorMetadataStorage)\n global.classValidatorMetadataStorage = new MetadataStorage();\n return global.classValidatorMetadataStorage;\n}\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n this.validationMetadatas = [];\n this.constraintMetadatas = [];\n }\n Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n get: function () {\n return !!this.validationMetadatas.length;\n },\n enumerable: true,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationSchema = function (schema) {\n var _this = this;\n var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n };\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n this.validationMetadatas.push(metadata);\n };\n /**\n * Adds a new constraint metadata.\n */\n MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n this.constraintMetadatas.push(metadata);\n };\n /**\n * Groups metadata by their property names.\n */\n MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n var grouped = {};\n metadata.forEach(function (metadata) {\n if (!grouped[metadata.propertyName])\n grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n };\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, groups) {\n // get directly related to a target metadatas\n var originalMetadatas = this.validationMetadatas.filter(function (metadata) {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n return false;\n if (metadata.always)\n return true;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // get metadatas for inherited classes\n var inheritedMetadatas = this.validationMetadatas.filter(function (metadata) {\n // if target is a string it's means we validate agains a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === \"string\")\n return false;\n if (metadata.target === targetConstructor)\n return false;\n if (metadata.target instanceof Function &&\n !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (metadata.always)\n return true;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n return !originalMetadatas.find(function (originalMetadata) {\n return originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type;\n });\n });\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n };\n /**\n * Gets all validator constraints for the given object.\n */\n MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n return this.constraintMetadatas.filter(function (metadata) { return metadata.target === target; });\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n\n//# sourceMappingURL=MetadataStorage.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Validation error description.\n */\nvar ValidationError = /** @class */ (function () {\n function ValidationError() {\n }\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath) {\n var _this = this;\n if (shouldDecorate === void 0) { shouldDecorate = false; }\n if (hasParent === void 0) { hasParent = false; }\n if (parentPath === void 0) { parentPath = \"\"; }\n var boldStart = shouldDecorate ? \"\\u001B[1m\" : \"\";\n var boldEnd = shouldDecorate ? \"\\u001B[22m\" : \"\";\n var propConstraintFailed = function (propertyName) { return \" - property \" + boldStart + parentPath + propertyName + boldEnd + \" has failed the following constraints: \" + boldStart + Object.keys(_this.constraints).join(\", \") + boldEnd + \" \\n\"; };\n if (!hasParent) {\n return \"An instance of \" + boldStart + (this.target ? this.target.constructor.name : \"an object\") + boldEnd + \" has failed the validation:\\n\" +\n (this.constraints ? propConstraintFailed(this.property) : \"\") +\n this.children\n .map(function (childError) { return childError.toString(shouldDecorate, true, _this.property); })\n .join(\"\");\n }\n else {\n // we format numbers as array indexes for better readability.\n var formattedProperty_1 = Number.isInteger(+this.property) ? \"[\" + this.property + \"]\" : \"\" + (parentPath ? \".\" : \"\") + this.property;\n if (this.constraints) {\n return propConstraintFailed(formattedProperty_1);\n }\n else {\n return this.children\n .map(function (childError) { return childError.toString(shouldDecorate, true, \"\" + parentPath + formattedProperty_1); })\n .join(\"\");\n }\n }\n };\n return ValidationError;\n}());\nexport { ValidationError };\n\n//# sourceMappingURL=ValidationError.js.map\n","/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n function ValidationTypes() {\n }\n /**\n * Checks if validation type is valid.\n */\n ValidationTypes.isValid = function (type) {\n var _this = this;\n return type !== \"isValid\" &&\n type !== \"getMessage\" &&\n Object.keys(this).map(function (key) { return _this[key]; }).indexOf(type) !== -1;\n };\n /* system */\n ValidationTypes.CUSTOM_VALIDATION = \"customValidation\"; // done\n ValidationTypes.NESTED_VALIDATION = \"nestedValidation\"; // done\n ValidationTypes.PROMISE_VALIDATION = \"promiseValidation\"; // done\n ValidationTypes.CONDITIONAL_VALIDATION = \"conditionalValidation\"; // done\n ValidationTypes.WHITELIST = \"whitelistValidation\"; // done\n ValidationTypes.IS_DEFINED = \"isDefined\"; // done\n return ValidationTypes;\n}());\nexport { ValidationTypes };\n\n//# sourceMappingURL=ValidationTypes.js.map\n","var ValidationUtils = /** @class */ (function () {\n function ValidationUtils() {\n }\n ValidationUtils.replaceMessageSpecialTokens = function (message, validationArguments) {\n var messageString;\n if (message instanceof Function) {\n messageString = message(validationArguments);\n }\n else if (typeof message === \"string\") {\n messageString = message;\n }\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach(function (constraint, index) {\n messageString = messageString.replace(new RegExp(\"\\\\$constraint\" + (index + 1), \"g\"), constraint);\n });\n }\n if (messageString && validationArguments.value !== undefined && validationArguments.value !== null && typeof validationArguments.value === \"string\")\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString)\n messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString)\n messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n return messageString;\n };\n return ValidationUtils;\n}());\nexport { ValidationUtils };\n\n//# sourceMappingURL=ValidationUtils.js.map\n","// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\nexport function isPromise(p) {\n return p !== null && typeof p === \"object\" && typeof p.then === \"function\";\n}\n/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val) {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n\n//# sourceMappingURL=utils.js.map\n","import { ValidationError } from \"./ValidationError\";\nimport { ValidationTypes } from \"./ValidationTypes\";\nimport { ValidationUtils } from \"./ValidationUtils\";\nimport { isPromise, convertToArray } from \"../utils\";\nimport { getMetadataStorage } from \"../metadata/MetadataStorage\";\n/**\n * Executes validation over given object.\n */\nvar ValidationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationExecutor(validator, validatorOptions) {\n this.validator = validator;\n this.validatorOptions = validatorOptions;\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.awaitingPromises = [];\n this.ignoreAsyncValidations = false;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.metadataStorage = getMetadataStorage();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.execute = function (object, targetSchema, validationErrors) {\n var _this = this;\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData) {\n console.warn(\"No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.\");\n }\n var groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n var targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, groups);\n var groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: \"an unknown value was passed to the validate function\" };\n validationErrors.push(validationError);\n return;\n }\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n // General validation\n Object.keys(groupedMetadatas).forEach(function (propertyName) {\n var value = object[propertyName];\n var definedMetadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type === ValidationTypes.IS_DEFINED; });\n var metadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST; });\n if (value instanceof Promise && metadatas.find(function (metadata) { return metadata.type === ValidationTypes.PROMISE_VALIDATION; })) {\n _this.awaitingPromises.push(value.then(function (resolvedValue) {\n _this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n }));\n }\n else {\n _this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n };\n ValidationExecutor.prototype.whitelist = function (object, groupedMetadatas, validationErrors) {\n var _this = this;\n var notAllowedProperties = [];\n Object.keys(object).forEach(function (propertyName) {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(function (property) {\n var _a;\n var validationError = _this.generateValidationError(object, object[property], property);\n validationError.constraints = (_a = {}, _a[ValidationTypes.WHITELIST] = \"property \" + property + \" should not exist\", _a);\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n }\n else {\n // strip non allowed properties\n notAllowedProperties.forEach(function (property) { return delete object[property]; });\n }\n }\n };\n ValidationExecutor.prototype.stripEmptyErrors = function (errors) {\n var _this = this;\n return errors.filter(function (error) {\n if (error.children) {\n error.children = _this.stripEmptyErrors(error.children);\n }\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n }\n else {\n delete error.constraints;\n }\n }\n return true;\n });\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.performValidations = function (object, value, propertyName, definedMetadatas, metadatas, validationErrors) {\n var customValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CUSTOM_VALIDATION; });\n var nestedValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.NESTED_VALIDATION; });\n var conditionalValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CONDITIONAL_VALIDATION; });\n var validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n var canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n if ((value === null || value === undefined) && this.validatorOptions && this.validatorOptions.skipMissingProperties === true) {\n return;\n }\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n };\n ValidationExecutor.prototype.generateValidationError = function (object, value, propertyName) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true)\n validationError.value = value;\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n return validationError;\n };\n ValidationExecutor.prototype.conditionalValidations = function (object, value, metadatas) {\n return metadatas\n .map(function (metadata) { return metadata.constraints[0](object, value); })\n .reduce(function (resultA, resultB) { return resultA && resultB; }, true);\n };\n ValidationExecutor.prototype.customValidations = function (object, value, metadatas, error) {\n var _this = this;\n metadatas.forEach(function (metadata) {\n _this.metadataStorage\n .getTargetValidatorConstraints(metadata.constraintCls)\n .forEach(function (customConstraintMetadata) {\n if (customConstraintMetadata.async && _this.ignoreAsyncValidations)\n return;\n var validationArguments = {\n targetName: object.constructor ? object.constructor.name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints\n };\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n var validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n var promise = validatedValue.then(function (isValid) {\n if (!isValid) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign((error.contexts[type] || {}), metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(promise);\n }\n else {\n if (!validatedValue) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n }\n }\n return;\n }\n // convert set and map into array\n var arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n var validatedSubValues = arrayValue.map(function (subValue) { return customConstraintMetadata.instance.validate(subValue, validationArguments); });\n var validationIsAsync = validatedSubValues\n .some(function (validatedSubValue) { return isPromise(validatedSubValue); });\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n var asyncValidatedSubValues = validatedSubValues\n .map(function (validatedSubValue) { return isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue); });\n var asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues)\n .then(function (flatValidatedValues) {\n var validationResult = flatValidatedValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign((error.contexts[type] || {}), metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n return;\n }\n var validationResult = validatedSubValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _b = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _b[0], message = _b[1];\n error.constraints[type] = message;\n }\n });\n });\n };\n ValidationExecutor.prototype.nestedValidations = function (value, metadatas, errors) {\n var _this = this;\n if (value === void 0) {\n return;\n }\n metadatas.forEach(function (metadata) {\n var _a;\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION &&\n metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n var arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach(function (subValue, index) {\n _this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n }\n else if (value instanceof Object) {\n var targetSchema = typeof metadata.target === \"string\" ? metadata.target : metadata.target.name;\n _this.execute(value, targetSchema, errors);\n }\n else {\n var error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target;\n var _b = _this.createValidationError(metadata.target, value, metadata), type = _b[0], message = _b[1];\n error.constraints = (_a = {},\n _a[type] = message,\n _a);\n errors.push(error);\n }\n });\n };\n ValidationExecutor.prototype.mapContexts = function (object, value, metadatas, error) {\n var _this = this;\n return metadatas\n .forEach(function (metadata) {\n if (metadata.context) {\n var customConstraint = void 0;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n var customConstraints = _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n var type = _this.getConstraintType(metadata, customConstraint);\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign((error.contexts[type] || {}), metadata.context);\n }\n }\n });\n };\n ValidationExecutor.prototype.createValidationError = function (object, value, metadata, customValidatorMetadata) {\n var targetName = object.constructor ? object.constructor.name : undefined;\n var type = this.getConstraintType(metadata, customValidatorMetadata);\n var validationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints\n };\n var message = metadata.message || \"\";\n if (!metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n var messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n };\n ValidationExecutor.prototype.getConstraintType = function (metadata, customValidatorMetadata) {\n var type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n };\n return ValidationExecutor;\n}());\nexport { ValidationExecutor };\n\n//# sourceMappingURL=ValidationExecutor.js.map\n","/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n function class_1() {\n this.instances = [];\n }\n class_1.prototype.get = function (someClass) {\n var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n };\n return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n if (userContainer) {\n try {\n var instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n\n//# sourceMappingURL=container.js.map\n","import * as tslib_1 from \"tslib\";\nimport { ValidationExecutor } from \"./ValidationExecutor\";\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nvar Validator = /** @class */ (function () {\n function Validator() {\n }\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n Validator.prototype.coreValidate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === \"string\" ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === \"string\" ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === \"string\" ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return Promise.all(executor.awaitingPromises).then(function () {\n return executor.stripEmptyErrors(validationErrors);\n });\n };\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n };\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n Validator.prototype.validateOrReject = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var errors;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions)];\n case 1:\n errors = _a.sent();\n if (errors.length)\n return [2 /*return*/, Promise.reject(errors)];\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validateSync = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === \"string\" ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === \"string\" ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === \"string\" ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n };\n return Validator;\n}());\nexport { Validator };\n\n//# sourceMappingURL=Validator.js.map\n","import { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=Allow.js.map\n","import { getFromContainer } from \"../container\";\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ConstraintMetadata(target, name, async) {\n if (async === void 0) { async = false; }\n this.target = target;\n this.name = name;\n this.async = async;\n }\n Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get: function () {\n return getFromContainer(this.target);\n },\n enumerable: true,\n configurable: true\n });\n return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n\n//# sourceMappingURL=ConstraintMetadata.js.map\n","import { ConstraintMetadata } from \"./metadata/ConstraintMetadata\";\nimport { ValidationMetadata } from \"./metadata/ValidationMetadata\";\nimport { ValidationTypes } from \"./validation/ValidationTypes\";\nimport { getFromContainer } from \"./container\";\nimport { MetadataStorage, getMetadataStorage } from \"./metadata/MetadataStorage\";\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n var constraintCls;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \" + options.target + \":\" + options.propertyName;\n }\n }\n else {\n var validator_1 = options.validator;\n constraintCls = /** @class */ (function () {\n function CustomConstraint() {\n }\n CustomConstraint.prototype.validate = function (value, validationArguments) {\n return validator_1.validate(value, validationArguments);\n };\n CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n if (validator_1.defaultMessage) {\n return validator_1.defaultMessage(validationArguments);\n }\n return \"\";\n };\n return CustomConstraint;\n }());\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n var validationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n\n//# sourceMappingURL=register-decorator.js.map\n","import { registerDecorator } from \"../../register-decorator\";\nexport function buildMessage(impl, validationOptions) {\n return function (validationArguments) {\n var eachPrefix = validationOptions && validationOptions.each\n ? \"each value in \"\n : \"\";\n return impl(eachPrefix, validationArguments);\n };\n}\nexport function ValidateBy(options, validationOptions) {\n return function (object, propertyName) {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator\n });\n };\n}\n\n//# sourceMappingURL=ValidateBy.js.map\n","import { buildMessage, ValidateBy } from \"./ValidateBy\";\nimport { ValidationTypes } from \"../../validation/ValidationTypes\";\n// isDefined is (yet) a special case\nexport var IS_DEFINED = ValidationTypes.IS_DEFINED;\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions) {\n return ValidateBy({\n name: IS_DEFINED,\n validator: {\n validate: function (value) { return isDefined(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not be null or undefined\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDefined.js.map\n","import { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [function (object, value) {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n }],\n validationOptions: validationOptions\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=IsOptional.js.map\n","import { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\nimport { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ConstraintMetadata } from \"../../metadata/ConstraintMetadata\";\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options) {\n return function (target) {\n var isAsync = options && options.async ? true : false;\n var name = options && options.name ? options.name : \"\";\n if (!name) {\n name = target.name;\n if (!name) // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, function (x, y) { return \"_\" + y.toLowerCase(); }).replace(/^_/, \"\");\n }\n var metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\nexport function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array) ? constraintsOrValidationOptions : maybeValidationOptions\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=Validate.js.map\n","import { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateIf(condition, validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=ValidateIf.js.map\n","import * as tslib_1 from \"tslib\";\nimport { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions) {\n var opts = tslib_1.__assign({}, validationOptions);\n var eachPrefix = opts.each ? \"each value in \" : \"\";\n opts.message = opts.message || eachPrefix + \"nested property $property must be either object or array\";\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=ValidateNested.js.map\n","import { ValidationTypes } from \"../../validation/ValidationTypes\";\nimport { ValidationMetadata } from \"../../metadata/ValidationMetadata\";\nimport { getMetadataStorage } from \"../../metadata/MetadataStorage\";\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n\n//# sourceMappingURL=ValidatePromise.js.map\n","import { buildMessage, ValidateBy } from \"./ValidateBy\";\nimport validator from \"validator\";\nexport var IS_LATLONG = \"isLatLong\";\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value) {\n return typeof value === \"string\" && validator.isLatLong(value);\n}\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions) {\n return ValidateBy({\n name: IS_LATLONG,\n validator: {\n validate: function (value, args) { return isLatLong(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a latitude,longitude string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsLatLong.js.map\n","import { buildMessage, ValidateBy } from \"./ValidateBy\";\nimport { isLatLong } from \"./IsLatLong\";\nexport var IS_LATITUDE = \"isLatitude\";\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value) {\n return (typeof value === \"number\" || typeof value === \"string\") && isLatLong(value + \",0\");\n}\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions) {\n return ValidateBy({\n name: IS_LATITUDE,\n validator: {\n validate: function (value, args) { return isLatitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a latitude string or number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsLatitude.js.map\n","import { buildMessage, ValidateBy } from \"./ValidateBy\";\nimport { isLatLong } from \"./IsLatLong\";\nexport var IS_LONGITUDE = \"isLongitude\";\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value) {\n return (typeof value === \"number\" || typeof value === \"string\") && isLatLong(\"0,\" + value);\n}\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions) {\n return ValidateBy({\n name: IS_LONGITUDE,\n validator: {\n validate: function (value, args) { return isLongitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a longitude string or number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsLongitude.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var EQUALS = \"equals\";\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value, comparison) {\n return value === comparison;\n}\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison, validationOptions) {\n return ValidateBy({\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return equals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be equal to $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Equals.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var NOT_EQUALS = \"notEquals\";\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value, comparison) {\n return value !== comparison;\n}\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison, validationOptions) {\n return ValidateBy({\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return notEquals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not be equal to $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=NotEquals.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_EMPTY = \"isEmpty\";\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value) {\n return value === \"\" || value === null || value === undefined;\n}\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions) {\n return ValidateBy({\n name: IS_EMPTY,\n validator: {\n validate: function (value, args) { return isEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be empty\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsEmpty.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_NOT_EMPTY = \"isNotEmpty\";\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value) {\n return value !== \"\" && value !== null && value !== undefined;\n}\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return isNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not be empty\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNotEmpty.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_IN = \"isIn\";\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values, validationOptions) {\n return ValidateBy({\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be one of the following values: $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsIn.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_NOT_IN = \"isNotIn\";\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || !possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values, validationOptions) {\n return ValidateBy({\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isNotIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not be one of the following values: $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNotIn.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_DIVISIBLE_BY = \"isDivisibleBy\";\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value, num) {\n return typeof value === \"number\" &&\n typeof num === \"number\" &&\n validator.isDivisibleBy(String(value), num);\n}\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num, validationOptions) {\n return ValidateBy({\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: function (value, args) { return isDivisibleBy(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be divisible by $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDivisibleBy.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_POSITIVE = \"isPositive\";\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value) {\n return typeof value === \"number\" && value > 0;\n}\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions) {\n return ValidateBy({\n name: IS_POSITIVE,\n validator: {\n validate: function (value, args) { return isPositive(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a positive number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsPositive.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_NEGATIVE = \"isNegative\";\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value) {\n return typeof value === \"number\" && value < 0;\n}\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions) {\n return ValidateBy({\n name: IS_NEGATIVE,\n validator: {\n validate: function (value, args) { return isNegative(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a negative number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNegative.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var MAX = \"max\";\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num, max) {\n return typeof num === \"number\" && typeof max === \"number\" && num <= max;\n}\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue, validationOptions) {\n return ValidateBy({\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: function (value, args) { return max(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must not be greater than $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Max.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var MIN = \"min\";\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num, min) {\n return typeof num === \"number\" && typeof min === \"number\" && num >= min;\n}\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue, validationOptions) {\n return ValidateBy({\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: function (value, args) { return min(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must not be less than $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Min.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var MIN_DATE = \"minDate\";\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date, minDate) {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date, validationOptions) {\n return ValidateBy({\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return minDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return \"minimal allowed date for \" + eachPrefix + \"$property is $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=MinDate.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var MAX_DATE = \"maxDate\";\n/**\n* Checks if the value is a date that's before the specified date.\n*/\nexport function maxDate(date, maxDate) {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date, validationOptions) {\n return ValidateBy({\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return maxDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return \"maximal allowed date for \" + eachPrefix + \"$property is $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=MaxDate.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var CONTAINS = \"contains\";\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value, seed) {\n return typeof value === \"string\" && validator.contains(value, seed);\n}\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed, validationOptions) {\n return ValidateBy({\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return contains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain a $constraint1 string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Contains.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var NOT_CONTAINS = \"notContains\";\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value, seed) {\n return typeof value === \"string\" && !validator.contains(value, seed);\n}\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed, validationOptions) {\n return ValidateBy({\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return notContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not contain a $constraint1 string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=NotContains.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_ALPHA = \"isAlpha\";\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value, locale) {\n return typeof value === \"string\" && ValidatorJS.isAlpha(value, locale);\n}\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlpha(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain only letters (a-zA-Z)\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsAlpha.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_ALPHANUMERIC = \"isAlphanumeric\";\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value, locale) {\n return typeof value === \"string\" && ValidatorJS.isAlphanumeric(value, locale);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlphanumeric(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain only letters and numbers\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsAlphanumeric.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_DECIMAL = \"isDecimal\";\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value, options) {\n return typeof value === \"string\" && ValidatorJS.isDecimal(value, options);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(options, validationOptions) {\n return ValidateBy({\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isDecimal(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property is not a valid decimal number.\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDecimal.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ASCII = \"isAscii\";\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value) {\n return typeof value === \"string\" && validator.isAscii(value);\n}\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions) {\n return ValidateBy({\n name: IS_ASCII,\n validator: {\n validate: function (value, args) { return isAscii(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain only ASCII characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsAscii.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BASE64 = \"isBase64\";\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value) {\n return typeof value === \"string\" && validator.isBase64(value);\n}\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions) {\n return ValidateBy({\n name: IS_BASE64,\n validator: {\n validate: function (value, args) { return isBase64(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be base64 encoded\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBase64.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BYTE_LENGTH = \"isByteLength\";\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value, min, max) {\n return typeof value === \"string\" && validator.isByteLength(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min, max, validationOptions) {\n return ValidateBy({\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return isByteLength(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsByteLength.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_CREDIT_CARD = \"isCreditCard\";\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value) {\n return typeof value === \"string\" && validator.isCreditCard(value);\n}\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions) {\n return ValidateBy({\n name: IS_CREDIT_CARD,\n validator: {\n validate: function (value, args) { return isCreditCard(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a credit card\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsCreditCard.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_CURRENCY = \"isCurrency\";\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value, options) {\n return typeof value === \"string\" && ValidatorJS.isCurrency(value, options);\n}\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(options, validationOptions) {\n return ValidateBy({\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isCurrency(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a currency\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsCurrency.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_EMAIL = \"isEmail\";\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value, options) {\n return typeof value === \"string\" && ValidatorJS.isEmail(value, options);\n}\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(options, validationOptions) {\n return ValidateBy({\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isEmail(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an email\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsEmail.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_FQDN = \"isFqdn\";\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value, options) {\n return typeof value === \"string\" && ValidatorJS.isFQDN(value, options);\n}\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options, validationOptions) {\n return ValidateBy({\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isFQDN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid domain name\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsFQDN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_FULL_WIDTH = \"isFullWidth\";\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value) {\n return typeof value === \"string\" && validator.isFullWidth(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions) {\n return ValidateBy({\n name: IS_FULL_WIDTH,\n validator: {\n validate: function (value, args) { return isFullWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain a full-width characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsFullWidth.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_HALF_WIDTH = \"isHalfWidth\";\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value) {\n return typeof value === \"string\" && validator.isHalfWidth(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions) {\n return ValidateBy({\n name: IS_HALF_WIDTH,\n validator: {\n validate: function (value, args) { return isHalfWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain a half-width characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsHalfWidth.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_VARIABLE_WIDTH = \"isVariableWidth\";\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value) {\n return typeof value === \"string\" && validator.isVariableWidth(value);\n}\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions) {\n return ValidateBy({\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: function (value, args) { return isVariableWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain a full-width and half-width characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsVariableWidth.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_HEX_COLOR = \"isHexColor\";\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value) {\n return typeof value === \"string\" && validator.isHexColor(value);\n}\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions) {\n return ValidateBy({\n name: IS_HEX_COLOR,\n validator: {\n validate: function (value, args) { return isHexColor(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a hexadecimal color\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsHexColor.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_HEXADECIMAL = \"isHexadecimal\";\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value) {\n return typeof value === \"string\" && validator.isHexadecimal(value);\n}\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions) {\n return ValidateBy({\n name: IS_HEXADECIMAL,\n validator: {\n validate: function (value, args) { return isHexadecimal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a hexadecimal number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsHexadecimal.js.map\n","export function isValidationOptions(val) {\n if (!val) {\n return false;\n }\n return \"each\" in val\n || \"message\" in val\n || \"groups\" in val\n || \"always\" in val\n || \"context\" in val;\n}\n\n//# sourceMappingURL=ValidationOptions.js.map\n","import { isValidationOptions } from \"../ValidationOptions\";\nimport { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_MAC_ADDRESS = \"isMacAddress\";\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value, options) {\n return typeof value === \"string\" && ValidatorJS.isMACAddress(value, options);\n}\nexport function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) {\n var options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n var validationOptions = isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : validationOptionsArg;\n return ValidateBy({\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isMACAddress(value, options); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a MAC Address\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMacAddress.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_IP = \"isIp\";\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === \"string\" && ValidatorJS.isIP(value, versionStr);\n}\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version, validationOptions) {\n return ValidateBy({\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isIP(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an ip address\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsIP.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_PORT = \"isPort\";\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value) {\n return typeof value === \"string\" && validator.isPort(value);\n}\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions) {\n return ValidateBy({\n name: IS_PORT,\n validator: {\n validate: function (value, args) { return isPort(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a port\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsPort.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_ISBN = \"isIsbn\";\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === \"string\" && ValidatorJS.isISBN(value, versionStr);\n}\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version, validationOptions) {\n return ValidateBy({\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isISBN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an ISBN\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISBN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ISIN = \"isIsin\";\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value) {\n return typeof value === \"string\" && validator.isISIN(value);\n}\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions) {\n return ValidateBy({\n name: IS_ISIN,\n validator: {\n validate: function (value, args) { return isISIN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an ISIN (stock/security identifier)\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISIN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_ISO8601 = \"isIso8601\";\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value, options) {\n return typeof value === \"string\" && ValidatorJS.isISO8601(value, options);\n}\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(options, validationOptions) {\n return ValidateBy({\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISO8601(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid ISO 8601 date string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISO8601.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_JSON = \"isJson\";\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value) {\n return typeof value === \"string\" && validator.isJSON(value);\n}\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions) {\n return ValidateBy({\n name: IS_JSON,\n validator: {\n validate: function (value, args) { return isJSON(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a json string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsJSON.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_JWT = \"isJwt\";\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value) {\n return typeof value === \"string\" && validator.isJWT(value);\n}\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions) {\n return ValidateBy({\n name: IS_JWT,\n validator: {\n validate: function (value, args) { return isJWT(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a jwt string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsJWT.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_LOWERCASE = \"isLowercase\";\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value) {\n return typeof value === \"string\" && validator.isLowercase(value);\n}\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions) {\n return ValidateBy({\n name: IS_LOWERCASE,\n validator: {\n validate: function (value, args) { return isLowercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a lowercase string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsLowercase.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MOBILE_PHONE = \"isMobilePhone\";\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(value, locale, options) {\n return typeof value === \"string\" && validator.isMobilePhone(value, locale, options);\n}\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(locale, options, validationOptions) {\n return ValidateBy({\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: function (value, args) { return isMobilePhone(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a phone number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMobilePhone.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ISO31661_ALPHA_2 = \"isISO31661Alpha2\";\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value) {\n return typeof value === \"string\" && validator.isISO31661Alpha2(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: function (value, args) { return isISO31661Alpha2(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid ISO31661 Alpha2 code\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISO31661Alpha2.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ISO31661_ALPHA_3 = \"isISO31661Alpha3\";\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value) {\n return typeof value === \"string\" && validator.isISO31661Alpha3(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: function (value, args) { return isISO31661Alpha3(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid ISO31661 Alpha3 code\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISO31661Alpha3.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MONGO_ID = \"isMongoId\";\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value) {\n return typeof value === \"string\" && validator.isMongoId(value);\n}\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions) {\n return ValidateBy({\n name: IS_MONGO_ID,\n validator: {\n validate: function (value, args) { return isMongoId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a mongodb id\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMongoId.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MULTIBYTE = \"isMultibyte\";\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value) {\n return typeof value === \"string\" && validator.isMultibyte(value);\n}\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions) {\n return ValidateBy({\n name: IS_MULTIBYTE,\n validator: {\n validate: function (value, args) { return isMultibyte(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain one or more multibyte chars\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMultibyte.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_SURROGATE_PAIR = \"isSurrogatePair\";\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value) {\n return typeof value === \"string\" && validator.isSurrogatePair(value);\n}\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions) {\n return ValidateBy({\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: function (value, args) { return isSurrogatePair(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain any surrogate pairs chars\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsSurrogatePair.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_URL = \"isUrl\";\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value, options) {\n return typeof value === \"string\" && ValidatorJS.isURL(value, options);\n}\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options, validationOptions) {\n return ValidateBy({\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isURL(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an URL address\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsUrl.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_UUID = \"isUuid\";\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value, version) {\n return typeof value === \"string\" && validator.isUUID(value, version);\n}\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version, validationOptions) {\n return ValidateBy({\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isUUID(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an UUID\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsUUID.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_FIREBASE_PUSH_ID = \"IsFirebasePushId\";\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value) {\n var webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === \"string\" && value.length === 20 && webSafeRegex.test(value);\n}\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions) {\n return ValidateBy({\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: function (value, args) { return isFirebasePushId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a Firebase Push Id\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsFirebasePushId.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_UPPERCASE = \"isUppercase\";\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value) {\n return typeof value === \"string\" && validator.isUppercase(value);\n}\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions) {\n return ValidateBy({\n name: IS_UPPERCASE,\n validator: {\n validate: function (value, args) { return isUppercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be uppercase\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsUppercase.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var LENGTH = \"length\";\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value, min, max) {\n return typeof value === \"string\" && validator.isLength(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min, max, validationOptions) {\n return ValidateBy({\n name: LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return length(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n var isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n var isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + \"$property must be longer than or equal to $constraint1 characters\";\n }\n else if (isMaxLength && (args.value.length > args.constraints[1])) {\n return eachPrefix + \"$property must be shorter than or equal to $constraint2 characters\";\n }\n return eachPrefix + \"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters\";\n }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Length.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var MAX_LENGTH = \"maxLength\";\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value, max) {\n return typeof value === \"string\" && validator.isLength(value, { min: 0, max: max });\n}\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max, validationOptions) {\n return ValidateBy({\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: function (value, args) { return maxLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be shorter than or equal to $constraint1 characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=MaxLength.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var MIN_LENGTH = \"minLength\";\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value, min) {\n return typeof value === \"string\" && validator.isLength(value, { min: min });\n}\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min, validationOptions) {\n return ValidateBy({\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: function (value, args) { return minLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be longer than or equal to $constraint1 characters\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=MinLength.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var MATCHES = \"matches\";\nexport function matches(value, pattern, modifiers) {\n return typeof value === \"string\" && validator.matches(value, pattern, modifiers);\n}\nexport function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) {\n var modifiers;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n }\n else {\n modifiers = modifiersOrAnnotationOptions;\n }\n return ValidateBy({\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: function (value, args) { return matches(value, args.constraints[0], args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix, args) { return eachPrefix + \"$property must match $constraint1 regular expression\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=Matches.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport { PhoneNumberUtil } from \"google-libphonenumber\";\nexport var IS_PHONE_NUMBER = \"isPhoneNumber\";\n/**\n * Checks if the string is a valid phone number.\n * @param value the potential phone number string to test\n * @param {string} region 2 characters uppercase country code (e.g. DE, US, CH).\n * If users must enter the intl. prefix (e.g. +41), then you may pass \"ZZ\" or null as region.\n * See [google-libphonenumber, metadata.js:countryCodeToRegionCodeMap on github]{@link https://github.com/ruimarinho/google-libphonenumber/blob/1e46138878cff479aafe2ce62175c6c49cb58720/src/metadata.js#L33}\n */\nexport function isPhoneNumber(value, region) {\n var phoneUtil = PhoneNumberUtil.getInstance();\n try {\n var phoneNum = phoneUtil.parseAndKeepRawInput(value, region);\n var result = phoneUtil.isValidNumber(phoneNum);\n return result;\n }\n catch (error) {\n // logging?\n return false;\n }\n}\n/**\n * Checks if the string is a valid phone number.\n * @param region 2 characters uppercase country code (e.g. DE, US, CH).\n * If users must enter the intl. prefix (e.g. +41), then you may pass \"ZZ\" or null as region.\n * See [google-libphonenumber, metadata.js:countryCodeToRegionCodeMap on github]{@link https://github.com/ruimarinho/google-libphonenumber/blob/1e46138878cff479aafe2ce62175c6c49cb58720/src/metadata.js#L33}\n */\nexport function IsPhoneNumber(region, validationOptions) {\n return ValidateBy({\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: function (value, args) { return isPhoneNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid phone number\"; }, validationOptions),\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsPhoneNumber.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MILITARY_TIME = \"isMilitaryTime\";\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value) {\n var militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === \"string\" && validator.matches(value, militaryTimeRegex);\n}\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions) {\n return ValidateBy({\n name: IS_MILITARY_TIME,\n validator: {\n validate: function (value, args) { return isMilitaryTime(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid representation of military time in the format HH:MM\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMilitaryTime.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_HASH = \"isHash\";\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value, algorithm) {\n return typeof value === \"string\" && ValidatorJS.isHash(value, algorithm);\n}\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm, validationOptions) {\n return ValidateBy({\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: function (value, args) { return isHash(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a hash of type $constraint1\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsHash.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_ISSN = \"isISSN\";\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value, options) {\n return typeof value === \"string\" && ValidatorJS.isISSN(value, options);\n}\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options, validationOptions) {\n return ValidateBy({\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISSN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a ISSN\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISSN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_DATE_STRING = \"isDateString\";\n/**\n * Checks if a given value is a ISOString date.\n */\nexport function isDateString(value) {\n var regex = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|[\\+\\-][0-2]\\d(?:\\:[0-5]\\d)?)?$/g;\n return typeof value === \"string\" && regex.test(value);\n}\n/**\n * Checks if a given value is a ISOString date.\n */\nexport function IsDateString(validationOptions) {\n return ValidateBy({\n name: IS_DATE_STRING,\n validator: {\n validate: function (value, args) { return isDateString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a ISOString\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDateString.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BOOLEAN_STRING = \"isBooleanString\";\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value) {\n return typeof value === \"string\" && validator.isBoolean(value);\n}\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: function (value, args) { return isBooleanString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a boolean string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBooleanString.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_NUMBER_STRING = \"isNumberString\";\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value, options) {\n return typeof value === \"string\" && ValidatorJS.isNumeric(value, options);\n}\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(options, validationOptions) {\n return ValidateBy({\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumberString(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a number string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNumberString.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BASE32 = \"isBase32\";\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value) {\n return typeof value === \"string\" && validator.isBase32(value);\n}\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions) {\n return ValidateBy({\n name: IS_BASE32,\n validator: {\n validate: function (value, args) { return isBase32(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be base32 encoded\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBase32.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BIC = \"isBIC\";\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value) {\n return typeof value === \"string\" && validator.isBIC(value);\n}\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions) {\n return ValidateBy({\n name: IS_BIC,\n validator: {\n validate: function (value, args) { return isBIC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a BIC or SWIFT code\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBIC.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_BTC_ADDRESS = \"isBtcAddress\";\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value) {\n return typeof value === \"string\" && validator.isBtcAddress(value);\n}\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions) {\n return ValidateBy({\n name: IS_BTC_ADDRESS,\n validator: {\n validate: function (value, args) { return isBtcAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a BTC address\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBtcAddress.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_DATA_URI = \"isDataURI\";\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value) {\n return typeof value === \"string\" && validator.isDataURI(value);\n}\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions) {\n return ValidateBy({\n name: IS_DATA_URI,\n validator: {\n validate: function (value, args) { return isDataURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a data uri format\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDataURI.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_EAN = \"isEAN\";\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value) {\n return typeof value === \"string\" && validator.isEAN(value);\n}\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions) {\n return ValidateBy({\n name: IS_EAN,\n validator: {\n validate: function (value, args) { return isEAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an EAN (European Article Number)\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsEAN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ETHEREUM_ADDRESS = \"isEthereumAddress\";\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value) {\n return typeof value === \"string\" && validator.isEthereumAddress(value);\n}\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions) {\n return ValidateBy({\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: function (value, args) { return isEthereumAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an Ethereum address\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsEthereumAddress.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_HSL = \"isHSL\";\n/**\n* Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value) {\n return typeof value === \"string\" && validator.isHSL(value);\n}\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions) {\n return ValidateBy({\n name: IS_HSL,\n validator: {\n validate: function (value, args) { return isHSL(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a HSL color\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsHSL.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_IBAN = \"isIBAN\";\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value) {\n return typeof value === \"string\" && validator.isIBAN(value);\n}\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions) {\n return ValidateBy({\n name: IS_IBAN,\n validator: {\n validate: function (value, args) { return isIBAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an IBAN\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsIBAN.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport ValidatorJS from \"validator\";\nexport var IS_IDENTITY_CARD = \"isIdentityCard\";\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value, locale) {\n return typeof value === \"string\" && ValidatorJS.isIdentityCard(value, locale);\n}\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(locale, validationOptions) {\n return ValidateBy({\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isIdentityCard(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a identity card number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsIdentityCard.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_ISRC = \"isISRC\";\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value) {\n return typeof value === \"string\" && validator.isISRC(value);\n}\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions) {\n return ValidateBy({\n name: IS_ISRC,\n validator: {\n validate: function (value, args) { return isISRC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an ISRC\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsISRC.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_LOCALE = \"isLocale\";\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value) {\n return typeof value === \"string\" && validator.isLocale(value);\n}\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions) {\n return ValidateBy({\n name: IS_LOCALE,\n validator: {\n validate: function (value, args) { return isLocale(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be locale\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsLocale.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MAGNET_URI = \"isMagnetURI\";\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value) {\n return typeof value === \"string\" && validator.isMagnetURI(value);\n}\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions) {\n return ValidateBy({\n name: IS_MAGNET_URI,\n validator: {\n validate: function (value, args) { return isMagnetURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be magnet uri format\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMagnetURI.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_MIME_TYPE = \"isMimeType\";\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value) {\n return typeof value === \"string\" && validator.isMimeType(value);\n}\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions) {\n return ValidateBy({\n name: IS_MIME_TYPE,\n validator: {\n validate: function (value, args) { return isMimeType(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be MIME type format\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsMimeType.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_OCTAL = \"isOctal\";\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value) {\n return typeof value === \"string\" && validator.isOctal(value);\n}\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions) {\n return ValidateBy({\n name: IS_OCTAL,\n validator: {\n validate: function (value, args) { return isOctal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be valid octal number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsOctal.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_PASSPORT_NUMBER = \"isPassportNumber\";\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value, countryCode) {\n return typeof value === \"string\" && validator.isPassportNumber(value, countryCode);\n}\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode, validationOptions) {\n return ValidateBy({\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: function (value, args) { return isPassportNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be valid passport number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsPassportNumber.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_POSTAL_CODE = \"isPostalCode\";\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value, locale) {\n return typeof value === \"string\" && validator.isPostalCode(value, locale);\n}\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(locale, validationOptions) {\n return ValidateBy({\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isPostalCode(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a postal code\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsPostalCode.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_RFC_3339 = \"isRFC3339\";\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value) {\n return typeof value === \"string\" && validator.isRFC3339(value);\n}\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions) {\n return ValidateBy({\n name: IS_RFC_3339,\n validator: {\n validate: function (value, args) { return isRFC3339(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be RFC 3339 date\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsRFC3339.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_RGB_COLOR = \"isRgbColor\";\n/**\n* Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value, includePercentValues) {\n return typeof value === \"string\" && validator.isRgbColor(value, includePercentValues);\n}\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues, validationOptions) {\n return ValidateBy({\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: function (value, args) { return isRgbColor(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be RGB color\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsRgbColor.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport validator from \"validator\";\nexport var IS_SEM_VER = \"isSemVer\";\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value) {\n return typeof value === \"string\" && validator.isSemVer(value);\n}\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions) {\n return ValidateBy({\n name: IS_SEM_VER,\n validator: {\n validate: function (value, args) { return isSemVer(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a Semantic Versioning Specification\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsSemVer.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_BOOLEAN = \"isBoolean\";\n/**\n * Checks if a given value is a number.\n */\nexport function isBoolean(value) {\n return value instanceof Boolean || typeof value === \"boolean\";\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsBoolean(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN,\n validator: {\n validate: function (value, args) { return isBoolean(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a boolean value\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsBoolean.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_DATE = \"isDate\";\n/**\n * Checks if a given value is a number.\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.getTime());\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsDate(validationOptions) {\n return ValidateBy({\n name: IS_DATE,\n validator: {\n validate: function (value, args) { return isDate(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a Date instance\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsDate.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_NUMBER = \"isNumber\";\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value, options) {\n if (options === void 0) { options = {}; }\n if (typeof value !== \"number\") {\n return false;\n }\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n if (options.maxDecimalPlaces !== undefined) {\n var decimalPlaces = 0;\n if ((value % 1) !== 0) {\n decimalPlaces = value.toString().split(\".\")[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n return Number.isFinite(value);\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options, validationOptions) {\n if (options === void 0) { options = {}; }\n return ValidateBy({\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a number conforming to the specified constraints\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNumber.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_ENUM = \"isEnum\";\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value, entity) {\n var enumValues = Object.keys(entity)\n .map(function (k) { return entity[k]; });\n return enumValues.indexOf(value) >= 0;\n}\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity, validationOptions) {\n return ValidateBy({\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: function (value, args) { return isEnum(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a valid enum value\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsEnum.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_INT = \"isInt\";\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val) {\n return typeof val === \"number\" && Number.isInteger(val);\n}\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions) {\n return ValidateBy({\n name: IS_INT,\n validator: {\n validate: function (value, args) { return isInt(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an integer number\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsInt.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_STRING = \"isString\";\n/**\n* Checks if a given value is a real string.\n*/\nexport function isString(value) {\n return value instanceof String || typeof value === \"string\";\n}\n/**\n* Checks if a given value is a real string.\n*/\nexport function IsString(validationOptions) {\n return ValidateBy({\n name: IS_STRING,\n validator: {\n validate: function (value, args) { return isString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a string\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsString.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_ARRAY = \"isArray\";\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value) {\n return value instanceof Array;\n}\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions) {\n return ValidateBy({\n name: IS_ARRAY,\n validator: {\n validate: function (value, args) { return isArray(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an array\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsArray.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_OBJECT = \"isObject\";\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value) {\n return value != null && (typeof value === \"object\" || typeof value === \"function\") && !Array.isArray(value);\n}\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions) {\n return ValidateBy({\n name: IS_OBJECT,\n validator: {\n validate: function (value, args) { return isObject(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be an object\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsObject.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_CONTAINS = \"arrayContains\";\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) !== -1; });\n}\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain $constraint1 values\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayContains.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_NOT_CONTAINS = \"arrayNotContains\";\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) === -1; });\n}\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayNotContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not contain $constraint1 values\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayNotContains.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_NOT_EMPTY = \"arrayNotEmpty\";\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array) {\n return array instanceof Array && array.length > 0;\n}\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return arrayNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property should not be empty\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayNotEmpty.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_MIN_SIZE = \"arrayMinSize\";\n/**\n * Checks if array's length is as minimal this number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array, min) {\n return array instanceof Array && array.length >= min;\n}\n/**\n * Checks if array's length is as minimal this number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min, validationOptions) {\n return ValidateBy({\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: function (value, args) { return arrayMinSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain at least $constraint1 elements\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayMinSize.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_MAX_SIZE = \"arrayMaxSize\";\n/**\n * Checks if array's length is as maximal this number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array, max) {\n return array instanceof Array && array.length <= max;\n}\n/**\n * Checks if array's length is as maximal this number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max, validationOptions) {\n return ValidateBy({\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: function (value, args) { return arrayMaxSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must contain not more than $constraint1 elements\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayMaxSize.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var ARRAY_UNIQUE = \"arrayUnique\";\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array) {\n if (!(array instanceof Array))\n return false;\n var uniqueItems = array.filter(function (a, b, c) { return c.indexOf(a) === b; });\n return array.length === uniqueItems.length;\n}\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(validationOptions) {\n return ValidateBy({\n name: ARRAY_UNIQUE,\n validator: {\n validate: function (value, args) { return arrayUnique(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"All $property's elements must be unique\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=ArrayUnique.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nimport { isObject } from \"../typechecker/IsObject\";\nexport var IS_NOT_EMPTY_OBJECT = \"isNotEmptyObject\";\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value) {\n if (!isObject(value)) {\n return false;\n }\n for (var key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY_OBJECT,\n validator: {\n validate: function (value, args) { return isNotEmptyObject(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property must be a non-empty object\"; }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsNotEmptyObject.js.map\n","import { buildMessage, ValidateBy } from \"../common/ValidateBy\";\nexport var IS_INSTANCE = \"isInstance\";\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object, targetTypeConstructor) {\n return targetTypeConstructor\n && typeof targetTypeConstructor === \"function\"\n && object instanceof targetTypeConstructor;\n}\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(targetType, validationOptions) {\n return ValidateBy({\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: function (value, args) { return isInstance(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n if (args.constraints[0]) {\n return eachPrefix + (\"$property must be an instance of \" + args.constraints[0].name);\n }\n else {\n return eachPrefix + (IS_INSTANCE + \" decorator expects and object as value, but got falsy value.\");\n }\n }, validationOptions)\n }\n }, validationOptions);\n}\n\n//# sourceMappingURL=IsInstance.js.map\n","import { getMetadataStorage } from \"./metadata/MetadataStorage\";\nimport { Validator } from \"./validation/Validator\";\nimport { getFromContainer } from \"./container\";\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\nexport * from \"./container\";\nexport * from \"./decorator/decorators\";\nexport * from \"./decorator/ValidationOptions\";\nexport * from \"./validation/ValidationError\";\nexport * from \"./validation/ValidationTypes\";\nexport * from \"./validation/Validator\";\nexport * from \"./register-decorator\";\nexport * from \"./metadata/MetadataStorage\";\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === \"string\") {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === \"string\") {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === \"string\") {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema) {\n getMetadataStorage().addValidationSchema(schema);\n}\n\n//# sourceMappingURL=index.js.map\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\nconst Variable = require(\"./variable\");\n\n/**\n * @class Definition\n */\nclass Definition {\n constructor(type, name, node, parent, index, kind) {\n\n /**\n * @member {String} Definition#type - type of the occurrence (e.g. \"Parameter\", \"Variable\", ...).\n */\n this.type = type;\n\n /**\n * @member {espree.Identifier} Definition#name - the identifier AST node of the occurrence.\n */\n this.name = name;\n\n /**\n * @member {espree.Node} Definition#node - the enclosing node of the identifier.\n */\n this.node = node;\n\n /**\n * @member {espree.Node?} Definition#parent - the enclosing statement node of the identifier.\n */\n this.parent = parent;\n\n /**\n * @member {Number?} Definition#index - the index in the declaration statement.\n */\n this.index = index;\n\n /**\n * @member {String?} Definition#kind - the kind of the declaration statement.\n */\n this.kind = kind;\n }\n}\n\n/**\n * @class ParameterDefinition\n */\nclass ParameterDefinition extends Definition {\n constructor(name, node, index, rest) {\n super(Variable.Parameter, name, node, null, index, null);\n\n /**\n * Whether the parameter definition is a part of a rest parameter.\n * @member {boolean} ParameterDefinition#rest\n */\n this.rest = rest;\n }\n}\n\nmodule.exports = {\n ParameterDefinition,\n Definition\n};\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2012-2014 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2013 Alex Seville <hi@alexanderseville.com>\n Copyright (C) 2014 Thiago de Arruda <tpadilha84@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/**\n * Escope (<a href=\"http://github.com/estools/escope\">escope</a>) is an <a\n * href=\"http://www.ecma-international.org/publications/standards/Ecma-262.htm\">ECMAScript</a>\n * scope analyzer extracted from the <a\n * href=\"http://github.com/estools/esmangle\">esmangle project</a/>.\n * <p>\n * <em>escope</em> finds lexical scopes in a source program, i.e. areas of that\n * program where different occurrences of the same identifier refer to the same\n * variable. With each scope the contained variables are collected, and each\n * identifier reference in code is linked to its corresponding variable (if\n * possible).\n * <p>\n * <em>escope</em> works on a syntax tree of the parsed source code which has\n * to adhere to the <a\n * href=\"https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\">\n * Mozilla Parser API</a>. E.g. <a href=\"https://github.com/eslint/espree\">espree</a> is a parser\n * that produces such syntax trees.\n * <p>\n * The main interface is the {@link analyze} function.\n * @module escope\n */\n\"use strict\";\n\n/* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"__currentScope\"] }] */\n\nconst assert = require(\"assert\");\n\nconst ScopeManager = require(\"./scope-manager\");\nconst Referencer = require(\"./referencer\");\nconst Reference = require(\"./reference\");\nconst Variable = require(\"./variable\");\nconst Scope = require(\"./scope\").Scope;\nconst version = require(\"../package.json\").version;\n\n/**\n * Set the default options\n * @returns {Object} options\n */\nfunction defaultOptions() {\n return {\n optimistic: false,\n directive: false,\n nodejsScope: false,\n impliedStrict: false,\n sourceType: \"script\", // one of ['script', 'module']\n ecmaVersion: 5,\n childVisitorKeys: null,\n fallback: \"iteration\"\n };\n}\n\n/**\n * Preform deep update on option object\n * @param {Object} target - Options\n * @param {Object} override - Updates\n * @returns {Object} Updated options\n */\nfunction updateDeeply(target, override) {\n\n /**\n * Is hash object\n * @param {Object} value - Test value\n * @returns {boolean} Result\n */\n function isHashObject(value) {\n return typeof value === \"object\" && value instanceof Object && !(value instanceof Array) && !(value instanceof RegExp);\n }\n\n for (const key in override) {\n if (Object.prototype.hasOwnProperty.call(override, key)) {\n const val = override[key];\n\n if (isHashObject(val)) {\n if (isHashObject(target[key])) {\n updateDeeply(target[key], val);\n } else {\n target[key] = updateDeeply({}, val);\n }\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n}\n\n/**\n * Main interface function. Takes an Espree syntax tree and returns the\n * analyzed scopes.\n * @function analyze\n * @param {espree.Tree} tree - Abstract Syntax Tree\n * @param {Object} providedOptions - Options that tailor the scope analysis\n * @param {boolean} [providedOptions.optimistic=false] - the optimistic flag\n * @param {boolean} [providedOptions.directive=false]- the directive flag\n * @param {boolean} [providedOptions.ignoreEval=false]- whether to check 'eval()' calls\n * @param {boolean} [providedOptions.nodejsScope=false]- whether the whole\n * script is executed under node.js environment. When enabled, escope adds\n * a function scope immediately following the global scope.\n * @param {boolean} [providedOptions.impliedStrict=false]- implied strict mode\n * (if ecmaVersion >= 5).\n * @param {string} [providedOptions.sourceType='script']- the source type of the script. one of 'script' and 'module'\n * @param {number} [providedOptions.ecmaVersion=5]- which ECMAScript version is considered\n * @param {Object} [providedOptions.childVisitorKeys=null] - Additional known visitor keys. See [esrecurse](https://github.com/estools/esrecurse)'s the `childVisitorKeys` option.\n * @param {string} [providedOptions.fallback='iteration'] - A kind of the fallback in order to encounter with unknown node. See [esrecurse](https://github.com/estools/esrecurse)'s the `fallback` option.\n * @returns {ScopeManager} ScopeManager\n */\nfunction analyze(tree, providedOptions) {\n const options = updateDeeply(defaultOptions(), providedOptions);\n const scopeManager = new ScopeManager(options);\n const referencer = new Referencer(options, scopeManager);\n\n referencer.visit(tree);\n\n assert(scopeManager.__currentScope === null, \"currentScope should be null.\");\n\n return scopeManager;\n}\n\nmodule.exports = {\n\n /** @name module:escope.version */\n version,\n\n /** @name module:escope.Reference */\n Reference,\n\n /** @name module:escope.Variable */\n Variable,\n\n /** @name module:escope.Scope */\n Scope,\n\n /** @name module:escope.ScopeManager */\n ScopeManager,\n analyze\n};\n\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\n/* eslint-disable no-undefined */\n\nconst Syntax = require(\"estraverse\").Syntax;\nconst esrecurse = require(\"esrecurse\");\n\n/**\n * Get last array element\n * @param {array} xs - array\n * @returns {any} Last elment\n */\nfunction getLast(xs) {\n return xs[xs.length - 1] || null;\n}\n\nclass PatternVisitor extends esrecurse.Visitor {\n static isPattern(node) {\n const nodeType = node.type;\n\n return (\n nodeType === Syntax.Identifier ||\n nodeType === Syntax.ObjectPattern ||\n nodeType === Syntax.ArrayPattern ||\n nodeType === Syntax.SpreadElement ||\n nodeType === Syntax.RestElement ||\n nodeType === Syntax.AssignmentPattern\n );\n }\n\n constructor(options, rootPattern, callback) {\n super(null, options);\n this.rootPattern = rootPattern;\n this.callback = callback;\n this.assignments = [];\n this.rightHandNodes = [];\n this.restElements = [];\n }\n\n Identifier(pattern) {\n const lastRestElement = getLast(this.restElements);\n\n this.callback(pattern, {\n topLevel: pattern === this.rootPattern,\n rest: lastRestElement !== null && lastRestElement !== undefined && lastRestElement.argument === pattern,\n assignments: this.assignments\n });\n }\n\n Property(property) {\n\n // Computed property's key is a right hand node.\n if (property.computed) {\n this.rightHandNodes.push(property.key);\n }\n\n // If it's shorthand, its key is same as its value.\n // If it's shorthand and has its default value, its key is same as its value.left (the value is AssignmentPattern).\n // If it's not shorthand, the name of new variable is its value's.\n this.visit(property.value);\n }\n\n ArrayPattern(pattern) {\n for (let i = 0, iz = pattern.elements.length; i < iz; ++i) {\n const element = pattern.elements[i];\n\n this.visit(element);\n }\n }\n\n AssignmentPattern(pattern) {\n this.assignments.push(pattern);\n this.visit(pattern.left);\n this.rightHandNodes.push(pattern.right);\n this.assignments.pop();\n }\n\n RestElement(pattern) {\n this.restElements.push(pattern);\n this.visit(pattern.argument);\n this.restElements.pop();\n }\n\n MemberExpression(node) {\n\n // Computed property's key is a right hand node.\n if (node.computed) {\n this.rightHandNodes.push(node.property);\n }\n\n // the object is only read, write to its property.\n this.rightHandNodes.push(node.object);\n }\n\n //\n // ForInStatement.left and AssignmentExpression.left are LeftHandSideExpression.\n // By spec, LeftHandSideExpression is Pattern or MemberExpression.\n // (see also: https://github.com/estree/estree/pull/20#issuecomment-74584758)\n // But espree 2.0 parses to ArrayExpression, ObjectExpression, etc...\n //\n\n SpreadElement(node) {\n this.visit(node.argument);\n }\n\n ArrayExpression(node) {\n node.elements.forEach(this.visit, this);\n }\n\n AssignmentExpression(node) {\n this.assignments.push(node);\n this.visit(node.left);\n this.rightHandNodes.push(node.right);\n this.assignments.pop();\n }\n\n CallExpression(node) {\n\n // arguments are right hand nodes.\n node.arguments.forEach(a => {\n this.rightHandNodes.push(a);\n });\n this.visit(node.callee);\n }\n}\n\nmodule.exports = PatternVisitor;\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\nconst READ = 0x1;\nconst WRITE = 0x2;\nconst RW = READ | WRITE;\n\n/**\n * A Reference represents a single occurrence of an identifier in code.\n * @class Reference\n */\nclass Reference {\n constructor(ident, scope, flag, writeExpr, maybeImplicitGlobal, partial, init) {\n\n /**\n * Identifier syntax node.\n * @member {espreeIdentifier} Reference#identifier\n */\n this.identifier = ident;\n\n /**\n * Reference to the enclosing Scope.\n * @member {Scope} Reference#from\n */\n this.from = scope;\n\n /**\n * Whether the reference comes from a dynamic scope (such as 'eval',\n * 'with', etc.), and may be trapped by dynamic scopes.\n * @member {boolean} Reference#tainted\n */\n this.tainted = false;\n\n /**\n * The variable this reference is resolved with.\n * @member {Variable} Reference#resolved\n */\n this.resolved = null;\n\n /**\n * The read-write mode of the reference. (Value is one of {@link\n * Reference.READ}, {@link Reference.RW}, {@link Reference.WRITE}).\n * @member {number} Reference#flag\n * @private\n */\n this.flag = flag;\n if (this.isWrite()) {\n\n /**\n * If reference is writeable, this is the tree being written to it.\n * @member {espreeNode} Reference#writeExpr\n */\n this.writeExpr = writeExpr;\n\n /**\n * Whether the Reference might refer to a partial value of writeExpr.\n * @member {boolean} Reference#partial\n */\n this.partial = partial;\n\n /**\n * Whether the Reference is to write of initialization.\n * @member {boolean} Reference#init\n */\n this.init = init;\n }\n this.__maybeImplicitGlobal = maybeImplicitGlobal;\n }\n\n /**\n * Whether the reference is static.\n * @method Reference#isStatic\n * @returns {boolean} static\n */\n isStatic() {\n return !this.tainted && this.resolved && this.resolved.scope.isStatic();\n }\n\n /**\n * Whether the reference is writeable.\n * @method Reference#isWrite\n * @returns {boolean} write\n */\n isWrite() {\n return !!(this.flag & Reference.WRITE);\n }\n\n /**\n * Whether the reference is readable.\n * @method Reference#isRead\n * @returns {boolean} read\n */\n isRead() {\n return !!(this.flag & Reference.READ);\n }\n\n /**\n * Whether the reference is read-only.\n * @method Reference#isReadOnly\n * @returns {boolean} read only\n */\n isReadOnly() {\n return this.flag === Reference.READ;\n }\n\n /**\n * Whether the reference is write-only.\n * @method Reference#isWriteOnly\n * @returns {boolean} write only\n */\n isWriteOnly() {\n return this.flag === Reference.WRITE;\n }\n\n /**\n * Whether the reference is read-write.\n * @method Reference#isReadWrite\n * @returns {boolean} read write\n */\n isReadWrite() {\n return this.flag === Reference.RW;\n }\n}\n\n/**\n * @constant Reference.READ\n * @private\n */\nReference.READ = READ;\n\n/**\n * @constant Reference.WRITE\n * @private\n */\nReference.WRITE = WRITE;\n\n/**\n * @constant Reference.RW\n * @private\n */\nReference.RW = RW;\n\nmodule.exports = Reference;\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-undefined */\n\nconst Syntax = require(\"estraverse\").Syntax;\nconst esrecurse = require(\"esrecurse\");\nconst Reference = require(\"./reference\");\nconst Variable = require(\"./variable\");\nconst PatternVisitor = require(\"./pattern-visitor\");\nconst definition = require(\"./definition\");\nconst assert = require(\"assert\");\n\nconst ParameterDefinition = definition.ParameterDefinition;\nconst Definition = definition.Definition;\n\n/**\n * Traverse identifier in pattern\n * @param {Object} options - options\n * @param {pattern} rootPattern - root pattern\n * @param {Refencer} referencer - referencer\n * @param {callback} callback - callback\n * @returns {void}\n */\nfunction traverseIdentifierInPattern(options, rootPattern, referencer, callback) {\n\n // Call the callback at left hand identifier nodes, and Collect right hand nodes.\n const visitor = new PatternVisitor(options, rootPattern, callback);\n\n visitor.visit(rootPattern);\n\n // Process the right hand nodes recursively.\n if (referencer !== null && referencer !== undefined) {\n visitor.rightHandNodes.forEach(referencer.visit, referencer);\n }\n}\n\n// Importing ImportDeclaration.\n// http://people.mozilla.org/~jorendorff/es6-draft.html#sec-moduledeclarationinstantiation\n// https://github.com/estree/estree/blob/master/es6.md#importdeclaration\n// FIXME: Now, we don't create module environment, because the context is\n// implementation dependent.\n\nclass Importer extends esrecurse.Visitor {\n constructor(declaration, referencer) {\n super(null, referencer.options);\n this.declaration = declaration;\n this.referencer = referencer;\n }\n\n visitImport(id, specifier) {\n this.referencer.visitPattern(id, pattern => {\n this.referencer.currentScope().__define(pattern,\n new Definition(\n Variable.ImportBinding,\n pattern,\n specifier,\n this.declaration,\n null,\n null\n ));\n });\n }\n\n ImportNamespaceSpecifier(node) {\n const local = (node.local || node.id);\n\n if (local) {\n this.visitImport(local, node);\n }\n }\n\n ImportDefaultSpecifier(node) {\n const local = (node.local || node.id);\n\n this.visitImport(local, node);\n }\n\n ImportSpecifier(node) {\n const local = (node.local || node.id);\n\n if (node.name) {\n this.visitImport(node.name, node);\n } else {\n this.visitImport(local, node);\n }\n }\n}\n\n// Referencing variables and creating bindings.\nclass Referencer extends esrecurse.Visitor {\n constructor(options, scopeManager) {\n super(null, options);\n this.options = options;\n this.scopeManager = scopeManager;\n this.parent = null;\n this.isInnerMethodDefinition = false;\n }\n\n currentScope() {\n return this.scopeManager.__currentScope;\n }\n\n close(node) {\n while (this.currentScope() && node === this.currentScope().block) {\n this.scopeManager.__currentScope = this.currentScope().__close(this.scopeManager);\n }\n }\n\n pushInnerMethodDefinition(isInnerMethodDefinition) {\n const previous = this.isInnerMethodDefinition;\n\n this.isInnerMethodDefinition = isInnerMethodDefinition;\n return previous;\n }\n\n popInnerMethodDefinition(isInnerMethodDefinition) {\n this.isInnerMethodDefinition = isInnerMethodDefinition;\n }\n\n referencingDefaultValue(pattern, assignments, maybeImplicitGlobal, init) {\n const scope = this.currentScope();\n\n assignments.forEach(assignment => {\n scope.__referencing(\n pattern,\n Reference.WRITE,\n assignment.right,\n maybeImplicitGlobal,\n pattern !== assignment.left,\n init\n );\n });\n }\n\n visitPattern(node, options, callback) {\n let visitPatternOptions = options;\n let visitPatternCallback = callback;\n\n if (typeof options === \"function\") {\n visitPatternCallback = options;\n visitPatternOptions = { processRightHandNodes: false };\n }\n\n traverseIdentifierInPattern(\n this.options,\n node,\n visitPatternOptions.processRightHandNodes ? this : null,\n visitPatternCallback\n );\n }\n\n visitFunction(node) {\n let i, iz;\n\n // FunctionDeclaration name is defined in upper scope\n // NOTE: Not referring variableScope. It is intended.\n // Since\n // in ES5, FunctionDeclaration should be in FunctionBody.\n // in ES6, FunctionDeclaration should be block scoped.\n\n if (node.type === Syntax.FunctionDeclaration) {\n\n // id is defined in upper scope\n this.currentScope().__define(node.id,\n new Definition(\n Variable.FunctionName,\n node.id,\n node,\n null,\n null,\n null\n ));\n }\n\n // FunctionExpression with name creates its special scope;\n // FunctionExpressionNameScope.\n if (node.type === Syntax.FunctionExpression && node.id) {\n this.scopeManager.__nestFunctionExpressionNameScope(node);\n }\n\n // Consider this function is in the MethodDefinition.\n this.scopeManager.__nestFunctionScope(node, this.isInnerMethodDefinition);\n\n const that = this;\n\n /**\n * Visit pattern callback\n * @param {pattern} pattern - pattern\n * @param {Object} info - info\n * @returns {void}\n */\n function visitPatternCallback(pattern, info) {\n that.currentScope().__define(pattern,\n new ParameterDefinition(\n pattern,\n node,\n i,\n info.rest\n ));\n\n that.referencingDefaultValue(pattern, info.assignments, null, true);\n }\n\n // Process parameter declarations.\n for (i = 0, iz = node.params.length; i < iz; ++i) {\n this.visitPattern(node.params[i], { processRightHandNodes: true }, visitPatternCallback);\n }\n\n // if there's a rest argument, add that\n if (node.rest) {\n this.visitPattern({\n type: \"RestElement\",\n argument: node.rest\n }, pattern => {\n this.currentScope().__define(pattern,\n new ParameterDefinition(\n pattern,\n node,\n node.params.length,\n true\n ));\n });\n }\n\n // In TypeScript there are a number of function-like constructs which have no body,\n // so check it exists before traversing\n if (node.body) {\n\n // Skip BlockStatement to prevent creating BlockStatement scope.\n if (node.body.type === Syntax.BlockStatement) {\n this.visitChildren(node.body);\n } else {\n this.visit(node.body);\n }\n }\n\n this.close(node);\n }\n\n visitClass(node) {\n if (node.type === Syntax.ClassDeclaration) {\n this.currentScope().__define(node.id,\n new Definition(\n Variable.ClassName,\n node.id,\n node,\n null,\n null,\n null\n ));\n }\n\n this.visit(node.superClass);\n\n this.scopeManager.__nestClassScope(node);\n\n if (node.id) {\n this.currentScope().__define(node.id,\n new Definition(\n Variable.ClassName,\n node.id,\n node\n ));\n }\n this.visit(node.body);\n\n this.close(node);\n }\n\n visitProperty(node) {\n let previous;\n\n if (node.computed) {\n this.visit(node.key);\n }\n\n const isMethodDefinition = node.type === Syntax.MethodDefinition;\n\n if (isMethodDefinition) {\n previous = this.pushInnerMethodDefinition(true);\n }\n this.visit(node.value);\n if (isMethodDefinition) {\n this.popInnerMethodDefinition(previous);\n }\n }\n\n visitForIn(node) {\n if (node.left.type === Syntax.VariableDeclaration && node.left.kind !== \"var\") {\n this.scopeManager.__nestForScope(node);\n }\n\n if (node.left.type === Syntax.VariableDeclaration) {\n this.visit(node.left);\n this.visitPattern(node.left.declarations[0].id, pattern => {\n this.currentScope().__referencing(pattern, Reference.WRITE, node.right, null, true, true);\n });\n } else {\n this.visitPattern(node.left, { processRightHandNodes: true }, (pattern, info) => {\n let maybeImplicitGlobal = null;\n\n if (!this.currentScope().isStrict) {\n maybeImplicitGlobal = {\n pattern,\n node\n };\n }\n this.referencingDefaultValue(pattern, info.assignments, maybeImplicitGlobal, false);\n this.currentScope().__referencing(pattern, Reference.WRITE, node.right, maybeImplicitGlobal, true, false);\n });\n }\n this.visit(node.right);\n this.visit(node.body);\n\n this.close(node);\n }\n\n visitVariableDeclaration(variableTargetScope, type, node, index) {\n\n const decl = node.declarations[index];\n const init = decl.init;\n\n this.visitPattern(decl.id, { processRightHandNodes: true }, (pattern, info) => {\n variableTargetScope.__define(\n pattern,\n new Definition(\n type,\n pattern,\n decl,\n node,\n index,\n node.kind\n )\n );\n\n this.referencingDefaultValue(pattern, info.assignments, null, true);\n if (init) {\n this.currentScope().__referencing(pattern, Reference.WRITE, init, null, !info.topLevel, true);\n }\n });\n }\n\n AssignmentExpression(node) {\n if (PatternVisitor.isPattern(node.left)) {\n if (node.operator === \"=\") {\n this.visitPattern(node.left, { processRightHandNodes: true }, (pattern, info) => {\n let maybeImplicitGlobal = null;\n\n if (!this.currentScope().isStrict) {\n maybeImplicitGlobal = {\n pattern,\n node\n };\n }\n this.referencingDefaultValue(pattern, info.assignments, maybeImplicitGlobal, false);\n this.currentScope().__referencing(pattern, Reference.WRITE, node.right, maybeImplicitGlobal, !info.topLevel, false);\n });\n } else {\n this.currentScope().__referencing(node.left, Reference.RW, node.right);\n }\n } else {\n this.visit(node.left);\n }\n this.visit(node.right);\n }\n\n CatchClause(node) {\n this.scopeManager.__nestCatchScope(node);\n\n this.visitPattern(node.param, { processRightHandNodes: true }, (pattern, info) => {\n this.currentScope().__define(pattern,\n new Definition(\n Variable.CatchClause,\n node.param,\n node,\n null,\n null,\n null\n ));\n this.referencingDefaultValue(pattern, info.assignments, null, true);\n });\n this.visit(node.body);\n\n this.close(node);\n }\n\n Program(node) {\n this.scopeManager.__nestGlobalScope(node);\n\n if (this.scopeManager.__isNodejsScope()) {\n\n // Force strictness of GlobalScope to false when using node.js scope.\n this.currentScope().isStrict = false;\n this.scopeManager.__nestFunctionScope(node, false);\n }\n\n if (this.scopeManager.__isES6() && this.scopeManager.isModule()) {\n this.scopeManager.__nestModuleScope(node);\n }\n\n if (this.scopeManager.isStrictModeSupported() && this.scopeManager.isImpliedStrict()) {\n this.currentScope().isStrict = true;\n }\n\n this.visitChildren(node);\n this.close(node);\n }\n\n Identifier(node) {\n this.currentScope().__referencing(node);\n }\n\n UpdateExpression(node) {\n if (PatternVisitor.isPattern(node.argument)) {\n this.currentScope().__referencing(node.argument, Reference.RW, null);\n } else {\n this.visitChildren(node);\n }\n }\n\n MemberExpression(node) {\n this.visit(node.object);\n if (node.computed) {\n this.visit(node.property);\n }\n }\n\n Property(node) {\n this.visitProperty(node);\n }\n\n MethodDefinition(node) {\n this.visitProperty(node);\n }\n\n BreakStatement() {} // eslint-disable-line class-methods-use-this\n\n ContinueStatement() {} // eslint-disable-line class-methods-use-this\n\n LabeledStatement(node) {\n this.visit(node.body);\n }\n\n ForStatement(node) {\n\n // Create ForStatement declaration.\n // NOTE: In ES6, ForStatement dynamically generates\n // per iteration environment. However, escope is\n // a static analyzer, we only generate one scope for ForStatement.\n if (node.init && node.init.type === Syntax.VariableDeclaration && node.init.kind !== \"var\") {\n this.scopeManager.__nestForScope(node);\n }\n\n this.visitChildren(node);\n\n this.close(node);\n }\n\n ClassExpression(node) {\n this.visitClass(node);\n }\n\n ClassDeclaration(node) {\n this.visitClass(node);\n }\n\n CallExpression(node) {\n\n // Check this is direct call to eval\n if (!this.scopeManager.__ignoreEval() && node.callee.type === Syntax.Identifier && node.callee.name === \"eval\") {\n\n // NOTE: This should be `variableScope`. Since direct eval call always creates Lexical environment and\n // let / const should be enclosed into it. Only VariableDeclaration affects on the caller's environment.\n this.currentScope().variableScope.__detectEval();\n }\n this.visitChildren(node);\n }\n\n BlockStatement(node) {\n if (this.scopeManager.__isES6()) {\n this.scopeManager.__nestBlockScope(node);\n }\n\n this.visitChildren(node);\n\n this.close(node);\n }\n\n ThisExpression() {\n this.currentScope().variableScope.__detectThis();\n }\n\n WithStatement(node) {\n this.visit(node.object);\n\n // Then nest scope for WithStatement.\n this.scopeManager.__nestWithScope(node);\n\n this.visit(node.body);\n\n this.close(node);\n }\n\n VariableDeclaration(node) {\n const variableTargetScope = (node.kind === \"var\") ? this.currentScope().variableScope : this.currentScope();\n\n for (let i = 0, iz = node.declarations.length; i < iz; ++i) {\n const decl = node.declarations[i];\n\n this.visitVariableDeclaration(variableTargetScope, Variable.Variable, node, i);\n if (decl.init) {\n this.visit(decl.init);\n }\n }\n }\n\n // sec 13.11.8\n SwitchStatement(node) {\n this.visit(node.discriminant);\n\n if (this.scopeManager.__isES6()) {\n this.scopeManager.__nestSwitchScope(node);\n }\n\n for (let i = 0, iz = node.cases.length; i < iz; ++i) {\n this.visit(node.cases[i]);\n }\n\n this.close(node);\n }\n\n FunctionDeclaration(node) {\n this.visitFunction(node);\n }\n\n FunctionExpression(node) {\n this.visitFunction(node);\n }\n\n ForOfStatement(node) {\n this.visitForIn(node);\n }\n\n ForInStatement(node) {\n this.visitForIn(node);\n }\n\n ArrowFunctionExpression(node) {\n this.visitFunction(node);\n }\n\n ImportDeclaration(node) {\n assert(this.scopeManager.__isES6() && this.scopeManager.isModule(), \"ImportDeclaration should appear when the mode is ES6 and in the module context.\");\n\n const importer = new Importer(node, this);\n\n importer.visit(node);\n }\n\n visitExportDeclaration(node) {\n if (node.source) {\n return;\n }\n if (node.declaration) {\n this.visit(node.declaration);\n return;\n }\n\n this.visitChildren(node);\n }\n\n // TODO: ExportDeclaration doesn't exist. for bc?\n ExportDeclaration(node) {\n this.visitExportDeclaration(node);\n }\n\n ExportAllDeclaration(node) {\n this.visitExportDeclaration(node);\n }\n\n ExportDefaultDeclaration(node) {\n this.visitExportDeclaration(node);\n }\n\n ExportNamedDeclaration(node) {\n this.visitExportDeclaration(node);\n }\n\n ExportSpecifier(node) {\n\n // TODO: `node.id` doesn't exist. for bc?\n const local = (node.id || node.local);\n\n this.visit(local);\n }\n\n MetaProperty() { // eslint-disable-line class-methods-use-this\n\n // do nothing.\n }\n}\n\nmodule.exports = Referencer;\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\n/* eslint-disable no-underscore-dangle */\n\nconst Scope = require(\"./scope\");\nconst assert = require(\"assert\");\n\nconst GlobalScope = Scope.GlobalScope;\nconst CatchScope = Scope.CatchScope;\nconst WithScope = Scope.WithScope;\nconst ModuleScope = Scope.ModuleScope;\nconst ClassScope = Scope.ClassScope;\nconst SwitchScope = Scope.SwitchScope;\nconst FunctionScope = Scope.FunctionScope;\nconst ForScope = Scope.ForScope;\nconst FunctionExpressionNameScope = Scope.FunctionExpressionNameScope;\nconst BlockScope = Scope.BlockScope;\n\n/**\n * @class ScopeManager\n */\nclass ScopeManager {\n constructor(options) {\n this.scopes = [];\n this.globalScope = null;\n this.__nodeToScope = new WeakMap();\n this.__currentScope = null;\n this.__options = options;\n this.__declaredVariables = new WeakMap();\n }\n\n __useDirective() {\n return this.__options.directive;\n }\n\n __isOptimistic() {\n return this.__options.optimistic;\n }\n\n __ignoreEval() {\n return this.__options.ignoreEval;\n }\n\n __isNodejsScope() {\n return this.__options.nodejsScope;\n }\n\n isModule() {\n return this.__options.sourceType === \"module\";\n }\n\n isImpliedStrict() {\n return this.__options.impliedStrict;\n }\n\n isStrictModeSupported() {\n return this.__options.ecmaVersion >= 5;\n }\n\n // Returns appropriate scope for this node.\n __get(node) {\n return this.__nodeToScope.get(node);\n }\n\n /**\n * Get variables that are declared by the node.\n *\n * \"are declared by the node\" means the node is same as `Variable.defs[].node` or `Variable.defs[].parent`.\n * If the node declares nothing, this method returns an empty array.\n * CAUTION: This API is experimental. See https://github.com/estools/escope/pull/69 for more details.\n *\n * @param {Espree.Node} node - a node to get.\n * @returns {Variable[]} variables that declared by the node.\n */\n getDeclaredVariables(node) {\n return this.__declaredVariables.get(node) || [];\n }\n\n /**\n * acquire scope from node.\n * @method ScopeManager#acquire\n * @param {Espree.Node} node - node for the acquired scope.\n * @param {boolean=} inner - look up the most inner scope, default value is false.\n * @returns {Scope?} Scope from node\n */\n acquire(node, inner) {\n\n /**\n * predicate\n * @param {Scope} testScope - scope to test\n * @returns {boolean} predicate\n */\n function predicate(testScope) {\n if (testScope.type === \"function\" && testScope.functionExpressionScope) {\n return false;\n }\n return true;\n }\n\n const scopes = this.__get(node);\n\n if (!scopes || scopes.length === 0) {\n return null;\n }\n\n // Heuristic selection from all scopes.\n // If you would like to get all scopes, please use ScopeManager#acquireAll.\n if (scopes.length === 1) {\n return scopes[0];\n }\n\n if (inner) {\n for (let i = scopes.length - 1; i >= 0; --i) {\n const scope = scopes[i];\n\n if (predicate(scope)) {\n return scope;\n }\n }\n } else {\n for (let i = 0, iz = scopes.length; i < iz; ++i) {\n const scope = scopes[i];\n\n if (predicate(scope)) {\n return scope;\n }\n }\n }\n\n return null;\n }\n\n /**\n * acquire all scopes from node.\n * @method ScopeManager#acquireAll\n * @param {Espree.Node} node - node for the acquired scope.\n * @returns {Scopes?} Scope array\n */\n acquireAll(node) {\n return this.__get(node);\n }\n\n /**\n * release the node.\n * @method ScopeManager#release\n * @param {Espree.Node} node - releasing node.\n * @param {boolean=} inner - look up the most inner scope, default value is false.\n * @returns {Scope?} upper scope for the node.\n */\n release(node, inner) {\n const scopes = this.__get(node);\n\n if (scopes && scopes.length) {\n const scope = scopes[0].upper;\n\n if (!scope) {\n return null;\n }\n return this.acquire(scope.block, inner);\n }\n return null;\n }\n\n attach() { } // eslint-disable-line class-methods-use-this\n\n detach() { } // eslint-disable-line class-methods-use-this\n\n __nestScope(scope) {\n if (scope instanceof GlobalScope) {\n assert(this.__currentScope === null);\n this.globalScope = scope;\n }\n this.__currentScope = scope;\n return scope;\n }\n\n __nestGlobalScope(node) {\n return this.__nestScope(new GlobalScope(this, node));\n }\n\n __nestBlockScope(node) {\n return this.__nestScope(new BlockScope(this, this.__currentScope, node));\n }\n\n __nestFunctionScope(node, isMethodDefinition) {\n return this.__nestScope(new FunctionScope(this, this.__currentScope, node, isMethodDefinition));\n }\n\n __nestForScope(node) {\n return this.__nestScope(new ForScope(this, this.__currentScope, node));\n }\n\n __nestCatchScope(node) {\n return this.__nestScope(new CatchScope(this, this.__currentScope, node));\n }\n\n __nestWithScope(node) {\n return this.__nestScope(new WithScope(this, this.__currentScope, node));\n }\n\n __nestClassScope(node) {\n return this.__nestScope(new ClassScope(this, this.__currentScope, node));\n }\n\n __nestSwitchScope(node) {\n return this.__nestScope(new SwitchScope(this, this.__currentScope, node));\n }\n\n __nestModuleScope(node) {\n return this.__nestScope(new ModuleScope(this, this.__currentScope, node));\n }\n\n __nestFunctionExpressionNameScope(node) {\n return this.__nestScope(new FunctionExpressionNameScope(this, this.__currentScope, node));\n }\n\n __isES6() {\n return this.__options.ecmaVersion >= 6;\n }\n}\n\nmodule.exports = ScopeManager;\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable no-undefined */\n\nconst Syntax = require(\"estraverse\").Syntax;\n\nconst Reference = require(\"./reference\");\nconst Variable = require(\"./variable\");\nconst Definition = require(\"./definition\").Definition;\nconst assert = require(\"assert\");\n\n/**\n * Test if scope is struct\n * @param {Scope} scope - scope\n * @param {Block} block - block\n * @param {boolean} isMethodDefinition - is method definition\n * @param {boolean} useDirective - use directive\n * @returns {boolean} is strict scope\n */\nfunction isStrictScope(scope, block, isMethodDefinition, useDirective) {\n let body;\n\n // When upper scope is exists and strict, inner scope is also strict.\n if (scope.upper && scope.upper.isStrict) {\n return true;\n }\n\n if (isMethodDefinition) {\n return true;\n }\n\n if (scope.type === \"class\" || scope.type === \"module\") {\n return true;\n }\n\n if (scope.type === \"block\" || scope.type === \"switch\") {\n return false;\n }\n\n if (scope.type === \"function\") {\n if (block.type === Syntax.ArrowFunctionExpression && block.body.type !== Syntax.BlockStatement) {\n return false;\n }\n\n if (block.type === Syntax.Program) {\n body = block;\n } else {\n body = block.body;\n }\n\n if (!body) {\n return false;\n }\n } else if (scope.type === \"global\") {\n body = block;\n } else {\n return false;\n }\n\n // Search 'use strict' directive.\n if (useDirective) {\n for (let i = 0, iz = body.body.length; i < iz; ++i) {\n const stmt = body.body[i];\n\n if (stmt.type !== Syntax.DirectiveStatement) {\n break;\n }\n if (stmt.raw === \"\\\"use strict\\\"\" || stmt.raw === \"'use strict'\") {\n return true;\n }\n }\n } else {\n for (let i = 0, iz = body.body.length; i < iz; ++i) {\n const stmt = body.body[i];\n\n if (stmt.type !== Syntax.ExpressionStatement) {\n break;\n }\n const expr = stmt.expression;\n\n if (expr.type !== Syntax.Literal || typeof expr.value !== \"string\") {\n break;\n }\n if (expr.raw !== null && expr.raw !== undefined) {\n if (expr.raw === \"\\\"use strict\\\"\" || expr.raw === \"'use strict'\") {\n return true;\n }\n } else {\n if (expr.value === \"use strict\") {\n return true;\n }\n }\n }\n }\n return false;\n}\n\n/**\n * Register scope\n * @param {ScopeManager} scopeManager - scope manager\n * @param {Scope} scope - scope\n * @returns {void}\n */\nfunction registerScope(scopeManager, scope) {\n scopeManager.scopes.push(scope);\n\n const scopes = scopeManager.__nodeToScope.get(scope.block);\n\n if (scopes) {\n scopes.push(scope);\n } else {\n scopeManager.__nodeToScope.set(scope.block, [scope]);\n }\n}\n\n/**\n * Should be statically\n * @param {Object} def - def\n * @returns {boolean} should be statically\n */\nfunction shouldBeStatically(def) {\n return (\n (def.type === Variable.ClassName) ||\n (def.type === Variable.Variable && def.parent.kind !== \"var\")\n );\n}\n\n/**\n * @class Scope\n */\nclass Scope {\n constructor(scopeManager, type, upperScope, block, isMethodDefinition) {\n\n /**\n * One of 'module', 'block', 'switch', 'function', 'catch', 'with', 'function', 'class', 'global'.\n * @member {String} Scope#type\n */\n this.type = type;\n\n /**\n * The scoped {@link Variable}s of this scope, as <code>{ Variable.name\n * : Variable }</code>.\n * @member {Map} Scope#set\n */\n this.set = new Map();\n\n /**\n * The tainted variables of this scope, as <code>{ Variable.name :\n * boolean }</code>.\n * @member {Map} Scope#taints */\n this.taints = new Map();\n\n /**\n * Generally, through the lexical scoping of JS you can always know\n * which variable an identifier in the source code refers to. There are\n * a few exceptions to this rule. With 'global' and 'with' scopes you\n * can only decide at runtime which variable a reference refers to.\n * Moreover, if 'eval()' is used in a scope, it might introduce new\n * bindings in this or its parent scopes.\n * All those scopes are considered 'dynamic'.\n * @member {boolean} Scope#dynamic\n */\n this.dynamic = this.type === \"global\" || this.type === \"with\";\n\n /**\n * A reference to the scope-defining syntax node.\n * @member {espree.Node} Scope#block\n */\n this.block = block;\n\n /**\n * The {@link Reference|references} that are not resolved with this scope.\n * @member {Reference[]} Scope#through\n */\n this.through = [];\n\n /**\n * The scoped {@link Variable}s of this scope. In the case of a\n * 'function' scope this includes the automatic argument <em>arguments</em> as\n * its first element, as well as all further formal arguments.\n * @member {Variable[]} Scope#variables\n */\n this.variables = [];\n\n /**\n * Any variable {@link Reference|reference} found in this scope. This\n * includes occurrences of local variables as well as variables from\n * parent scopes (including the global scope). For local variables\n * this also includes defining occurrences (like in a 'var' statement).\n * In a 'function' scope this does not include the occurrences of the\n * formal parameter in the parameter list.\n * @member {Reference[]} Scope#references\n */\n this.references = [];\n\n /**\n * For 'global' and 'function' scopes, this is a self-reference. For\n * other scope types this is the <em>variableScope</em> value of the\n * parent scope.\n * @member {Scope} Scope#variableScope\n */\n this.variableScope =\n (this.type === \"global\" || this.type === \"function\" || this.type === \"module\") ? this : upperScope.variableScope;\n\n /**\n * Whether this scope is created by a FunctionExpression.\n * @member {boolean} Scope#functionExpressionScope\n */\n this.functionExpressionScope = false;\n\n /**\n * Whether this is a scope that contains an 'eval()' invocation.\n * @member {boolean} Scope#directCallToEvalScope\n */\n this.directCallToEvalScope = false;\n\n /**\n * @member {boolean} Scope#thisFound\n */\n this.thisFound = false;\n\n this.__left = [];\n\n /**\n * Reference to the parent {@link Scope|scope}.\n * @member {Scope} Scope#upper\n */\n this.upper = upperScope;\n\n /**\n * Whether 'use strict' is in effect in this scope.\n * @member {boolean} Scope#isStrict\n */\n this.isStrict = isStrictScope(this, block, isMethodDefinition, scopeManager.__useDirective());\n\n /**\n * List of nested {@link Scope}s.\n * @member {Scope[]} Scope#childScopes\n */\n this.childScopes = [];\n if (this.upper) {\n this.upper.childScopes.push(this);\n }\n\n this.__declaredVariables = scopeManager.__declaredVariables;\n\n registerScope(scopeManager, this);\n }\n\n __shouldStaticallyClose(scopeManager) {\n return (!this.dynamic || scopeManager.__isOptimistic());\n }\n\n __shouldStaticallyCloseForGlobal(ref) {\n\n // On global scope, let/const/class declarations should be resolved statically.\n const name = ref.identifier.name;\n\n if (!this.set.has(name)) {\n return false;\n }\n\n const variable = this.set.get(name);\n const defs = variable.defs;\n\n return defs.length > 0 && defs.every(shouldBeStatically);\n }\n\n __staticCloseRef(ref) {\n if (!this.__resolve(ref)) {\n this.__delegateToUpperScope(ref);\n }\n }\n\n __dynamicCloseRef(ref) {\n\n // notify all names are through to global\n let current = this;\n\n do {\n current.through.push(ref);\n current = current.upper;\n } while (current);\n }\n\n __globalCloseRef(ref) {\n\n // let/const/class declarations should be resolved statically.\n // others should be resolved dynamically.\n if (this.__shouldStaticallyCloseForGlobal(ref)) {\n this.__staticCloseRef(ref);\n } else {\n this.__dynamicCloseRef(ref);\n }\n }\n\n __close(scopeManager) {\n let closeRef;\n\n if (this.__shouldStaticallyClose(scopeManager)) {\n closeRef = this.__staticCloseRef;\n } else if (this.type !== \"global\") {\n closeRef = this.__dynamicCloseRef;\n } else {\n closeRef = this.__globalCloseRef;\n }\n\n // Try Resolving all references in this scope.\n for (let i = 0, iz = this.__left.length; i < iz; ++i) {\n const ref = this.__left[i];\n\n closeRef.call(this, ref);\n }\n this.__left = null;\n\n return this.upper;\n }\n\n // To override by function scopes.\n // References in default parameters isn't resolved to variables which are in their function body.\n __isValidResolution(ref, variable) { // eslint-disable-line class-methods-use-this, no-unused-vars\n return true;\n }\n\n __resolve(ref) {\n const name = ref.identifier.name;\n\n if (!this.set.has(name)) {\n return false;\n }\n const variable = this.set.get(name);\n\n if (!this.__isValidResolution(ref, variable)) {\n return false;\n }\n variable.references.push(ref);\n variable.stack = variable.stack && ref.from.variableScope === this.variableScope;\n if (ref.tainted) {\n variable.tainted = true;\n this.taints.set(variable.name, true);\n }\n ref.resolved = variable;\n\n return true;\n }\n\n __delegateToUpperScope(ref) {\n if (this.upper) {\n this.upper.__left.push(ref);\n }\n this.through.push(ref);\n }\n\n __addDeclaredVariablesOfNode(variable, node) {\n if (node === null || node === undefined) {\n return;\n }\n\n let variables = this.__declaredVariables.get(node);\n\n if (variables === null || variables === undefined) {\n variables = [];\n this.__declaredVariables.set(node, variables);\n }\n if (variables.indexOf(variable) === -1) {\n variables.push(variable);\n }\n }\n\n __defineGeneric(name, set, variables, node, def) {\n let variable;\n\n variable = set.get(name);\n if (!variable) {\n variable = new Variable(name, this);\n set.set(name, variable);\n variables.push(variable);\n }\n\n if (def) {\n variable.defs.push(def);\n this.__addDeclaredVariablesOfNode(variable, def.node);\n this.__addDeclaredVariablesOfNode(variable, def.parent);\n }\n if (node) {\n variable.identifiers.push(node);\n }\n }\n\n __define(node, def) {\n if (node && node.type === Syntax.Identifier) {\n this.__defineGeneric(\n node.name,\n this.set,\n this.variables,\n node,\n def\n );\n }\n }\n\n __referencing(node, assign, writeExpr, maybeImplicitGlobal, partial, init) {\n\n // because Array element may be null\n if (!node || node.type !== Syntax.Identifier) {\n return;\n }\n\n // Specially handle like `this`.\n if (node.name === \"super\") {\n return;\n }\n\n const ref = new Reference(node, this, assign || Reference.READ, writeExpr, maybeImplicitGlobal, !!partial, !!init);\n\n this.references.push(ref);\n this.__left.push(ref);\n }\n\n __detectEval() {\n let current = this;\n\n this.directCallToEvalScope = true;\n do {\n current.dynamic = true;\n current = current.upper;\n } while (current);\n }\n\n __detectThis() {\n this.thisFound = true;\n }\n\n __isClosed() {\n return this.__left === null;\n }\n\n /**\n * returns resolved {Reference}\n * @method Scope#resolve\n * @param {Espree.Identifier} ident - identifier to be resolved.\n * @returns {Reference} reference\n */\n resolve(ident) {\n let ref, i, iz;\n\n assert(this.__isClosed(), \"Scope should be closed.\");\n assert(ident.type === Syntax.Identifier, \"Target should be identifier.\");\n for (i = 0, iz = this.references.length; i < iz; ++i) {\n ref = this.references[i];\n if (ref.identifier === ident) {\n return ref;\n }\n }\n return null;\n }\n\n /**\n * returns this scope is static\n * @method Scope#isStatic\n * @returns {boolean} static\n */\n isStatic() {\n return !this.dynamic;\n }\n\n /**\n * returns this scope has materialized arguments\n * @method Scope#isArgumentsMaterialized\n * @returns {boolean} arguemnts materialized\n */\n isArgumentsMaterialized() { // eslint-disable-line class-methods-use-this\n return true;\n }\n\n /**\n * returns this scope has materialized `this` reference\n * @method Scope#isThisMaterialized\n * @returns {boolean} this materialized\n */\n isThisMaterialized() { // eslint-disable-line class-methods-use-this\n return true;\n }\n\n isUsedName(name) {\n if (this.set.has(name)) {\n return true;\n }\n for (let i = 0, iz = this.through.length; i < iz; ++i) {\n if (this.through[i].identifier.name === name) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass GlobalScope extends Scope {\n constructor(scopeManager, block) {\n super(scopeManager, \"global\", null, block, false);\n this.implicit = {\n set: new Map(),\n variables: [],\n\n /**\n * List of {@link Reference}s that are left to be resolved (i.e. which\n * need to be linked to the variable they refer to).\n * @member {Reference[]} Scope#implicit#left\n */\n left: []\n };\n }\n\n __close(scopeManager) {\n const implicit = [];\n\n for (let i = 0, iz = this.__left.length; i < iz; ++i) {\n const ref = this.__left[i];\n\n if (ref.__maybeImplicitGlobal && !this.set.has(ref.identifier.name)) {\n implicit.push(ref.__maybeImplicitGlobal);\n }\n }\n\n // create an implicit global variable from assignment expression\n for (let i = 0, iz = implicit.length; i < iz; ++i) {\n const info = implicit[i];\n\n this.__defineImplicit(info.pattern,\n new Definition(\n Variable.ImplicitGlobalVariable,\n info.pattern,\n info.node,\n null,\n null,\n null\n ));\n\n }\n\n this.implicit.left = this.__left;\n\n return super.__close(scopeManager);\n }\n\n __defineImplicit(node, def) {\n if (node && node.type === Syntax.Identifier) {\n this.__defineGeneric(\n node.name,\n this.implicit.set,\n this.implicit.variables,\n node,\n def\n );\n }\n }\n}\n\nclass ModuleScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"module\", upperScope, block, false);\n }\n}\n\nclass FunctionExpressionNameScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"function-expression-name\", upperScope, block, false);\n this.__define(block.id,\n new Definition(\n Variable.FunctionName,\n block.id,\n block,\n null,\n null,\n null\n ));\n this.functionExpressionScope = true;\n }\n}\n\nclass CatchScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"catch\", upperScope, block, false);\n }\n}\n\nclass WithScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"with\", upperScope, block, false);\n }\n\n __close(scopeManager) {\n if (this.__shouldStaticallyClose(scopeManager)) {\n return super.__close(scopeManager);\n }\n\n for (let i = 0, iz = this.__left.length; i < iz; ++i) {\n const ref = this.__left[i];\n\n ref.tainted = true;\n this.__delegateToUpperScope(ref);\n }\n this.__left = null;\n\n return this.upper;\n }\n}\n\nclass BlockScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"block\", upperScope, block, false);\n }\n}\n\nclass SwitchScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"switch\", upperScope, block, false);\n }\n}\n\nclass FunctionScope extends Scope {\n constructor(scopeManager, upperScope, block, isMethodDefinition) {\n super(scopeManager, \"function\", upperScope, block, isMethodDefinition);\n\n // section 9.2.13, FunctionDeclarationInstantiation.\n // NOTE Arrow functions never have an arguments objects.\n if (this.block.type !== Syntax.ArrowFunctionExpression) {\n this.__defineArguments();\n }\n }\n\n isArgumentsMaterialized() {\n\n // TODO(Constellation)\n // We can more aggressive on this condition like this.\n //\n // function t() {\n // // arguments of t is always hidden.\n // function arguments() {\n // }\n // }\n if (this.block.type === Syntax.ArrowFunctionExpression) {\n return false;\n }\n\n if (!this.isStatic()) {\n return true;\n }\n\n const variable = this.set.get(\"arguments\");\n\n assert(variable, \"Always have arguments variable.\");\n return variable.tainted || variable.references.length !== 0;\n }\n\n isThisMaterialized() {\n if (!this.isStatic()) {\n return true;\n }\n return this.thisFound;\n }\n\n __defineArguments() {\n this.__defineGeneric(\n \"arguments\",\n this.set,\n this.variables,\n null,\n null\n );\n this.taints.set(\"arguments\", true);\n }\n\n // References in default parameters isn't resolved to variables which are in their function body.\n // const x = 1\n // function f(a = x) { // This `x` is resolved to the `x` in the outer scope.\n // const x = 2\n // console.log(a)\n // }\n __isValidResolution(ref, variable) {\n\n // If `options.nodejsScope` is true, `this.block` becomes a Program node.\n if (this.block.type === \"Program\") {\n return true;\n }\n\n const bodyStart = this.block.body.range[0];\n\n // It's invalid resolution in the following case:\n return !(\n variable.scope === this &&\n ref.identifier.range[0] < bodyStart && // the reference is in the parameter part.\n variable.defs.every(d => d.name.range[0] >= bodyStart) // the variable is in the body.\n );\n }\n}\n\nclass ForScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"for\", upperScope, block, false);\n }\n}\n\nclass ClassScope extends Scope {\n constructor(scopeManager, upperScope, block) {\n super(scopeManager, \"class\", upperScope, block, false);\n }\n}\n\nmodule.exports = {\n Scope,\n GlobalScope,\n ModuleScope,\n FunctionExpressionNameScope,\n CatchScope,\n WithScope,\n BlockScope,\n SwitchScope,\n FunctionScope,\n ForScope,\n ClassScope\n};\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\"use strict\";\n\n/**\n * A Variable represents a locally scoped identifier. These include arguments to\n * functions.\n * @class Variable\n */\nclass Variable {\n constructor(name, scope) {\n\n /**\n * The variable name, as given in the source code.\n * @member {String} Variable#name\n */\n this.name = name;\n\n /**\n * List of defining occurrences of this variable (like in 'var ...'\n * statements or as parameter), as AST nodes.\n * @member {espree.Identifier[]} Variable#identifiers\n */\n this.identifiers = [];\n\n /**\n * List of {@link Reference|references} of this variable (excluding parameter entries)\n * in its defining scope and all nested scopes. For defining\n * occurrences only see {@link Variable#defs}.\n * @member {Reference[]} Variable#references\n */\n this.references = [];\n\n /**\n * List of defining occurrences of this variable (like in 'var ...'\n * statements or as parameter), as custom objects.\n * @member {Definition[]} Variable#defs\n */\n this.defs = [];\n\n this.tainted = false;\n\n /**\n * Whether this is a stack variable.\n * @member {boolean} Variable#stack\n */\n this.stack = true;\n\n /**\n * Reference to the enclosing Scope.\n * @member {Scope} Variable#scope\n */\n this.scope = scope;\n }\n}\n\nVariable.CatchClause = \"CatchClause\";\nVariable.Parameter = \"Parameter\";\nVariable.FunctionName = \"FunctionName\";\nVariable.ClassName = \"ClassName\";\nVariable.Variable = \"Variable\";\nVariable.ImportBinding = \"ImportBinding\";\nVariable.ImplicitGlobalVariable = \"ImplicitGlobalVariable\";\n\nmodule.exports = Variable;\n\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n 'use strict';\n\n var Syntax,\n VisitorOption,\n VisitorKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n AssignmentPattern: 'AssignmentPattern',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportAllDeclaration: 'ExportAllDeclaration',\n ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n ExportNamedDeclaration: 'ExportNamedDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportExpression: 'ImportExpression',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n MetaProperty: 'MetaProperty',\n MethodDefinition: 'MethodDefinition',\n ModuleSpecifier: 'ModuleSpecifier',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n ObjectPattern: 'ObjectPattern',\n Program: 'Program',\n Property: 'Property',\n RestElement: 'RestElement',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SpreadElement: 'SpreadElement',\n Super: 'Super',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n TaggedTemplateExpression: 'TaggedTemplateExpression',\n TemplateElement: 'TemplateElement',\n TemplateLiteral: 'TemplateLiteral',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement',\n YieldExpression: 'YieldExpression'\n };\n\n VisitorKeys = {\n AssignmentExpression: ['left', 'right'],\n AssignmentPattern: ['left', 'right'],\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'body'],\n AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n BlockStatement: ['body'],\n BinaryExpression: ['left', 'right'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ClassBody: ['body'],\n ClassDeclaration: ['id', 'superClass', 'body'],\n ClassExpression: ['id', 'superClass', 'body'],\n ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.\n ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n DirectiveStatement: [],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportAllDeclaration: ['source'],\n ExportDefaultDeclaration: ['declaration'],\n ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n ExportSpecifier: ['exported', 'local'],\n ExpressionStatement: ['expression'],\n ForStatement: ['init', 'test', 'update', 'body'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n FunctionDeclaration: ['id', 'params', 'body'],\n FunctionExpression: ['id', 'params', 'body'],\n GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportExpression: ['source'],\n ImportDeclaration: ['specifiers', 'source'],\n ImportDefaultSpecifier: ['local'],\n ImportNamespaceSpecifier: ['local'],\n ImportSpecifier: ['imported', 'local'],\n Literal: [],\n LabeledStatement: ['label', 'body'],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MetaProperty: ['meta', 'property'],\n MethodDefinition: ['key', 'value'],\n ModuleSpecifier: [],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n Program: ['body'],\n Property: ['key', 'value'],\n RestElement: [ 'argument' ],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n Super: [],\n SwitchStatement: ['discriminant', 'cases'],\n SwitchCase: ['test', 'consequent'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handler', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n WithStatement: ['object', 'body'],\n YieldExpression: ['argument']\n };\n\n // unique id\n BREAK = {};\n SKIP = {};\n REMOVE = {};\n\n VisitorOption = {\n Break: BREAK,\n Skip: SKIP,\n Remove: REMOVE\n };\n\n function Reference(parent, key) {\n this.parent = parent;\n this.key = key;\n }\n\n Reference.prototype.replace = function replace(node) {\n this.parent[this.key] = node;\n };\n\n Reference.prototype.remove = function remove() {\n if (Array.isArray(this.parent)) {\n this.parent.splice(this.key, 1);\n return true;\n } else {\n this.replace(null);\n return false;\n }\n };\n\n function Element(node, path, wrap, ref) {\n this.node = node;\n this.path = path;\n this.wrap = wrap;\n this.ref = ref;\n }\n\n function Controller() { }\n\n // API:\n // return property path array from root to current node\n Controller.prototype.path = function path() {\n var i, iz, j, jz, result, element;\n\n function addToPath(result, path) {\n if (Array.isArray(path)) {\n for (j = 0, jz = path.length; j < jz; ++j) {\n result.push(path[j]);\n }\n } else {\n result.push(path);\n }\n }\n\n // root node\n if (!this.__current.path) {\n return null;\n }\n\n // first node is sentinel, second node is root element\n result = [];\n for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n element = this.__leavelist[i];\n addToPath(result, element.path);\n }\n addToPath(result, this.__current.path);\n return result;\n };\n\n // API:\n // return type of current node\n Controller.prototype.type = function () {\n var node = this.current();\n return node.type || this.__current.wrap;\n };\n\n // API:\n // return array of parent elements\n Controller.prototype.parents = function parents() {\n var i, iz, result;\n\n // first node is sentinel\n result = [];\n for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n result.push(this.__leavelist[i].node);\n }\n\n return result;\n };\n\n // API:\n // return current node\n Controller.prototype.current = function current() {\n return this.__current.node;\n };\n\n Controller.prototype.__execute = function __execute(callback, element) {\n var previous, result;\n\n result = undefined;\n\n previous = this.__current;\n this.__current = element;\n this.__state = null;\n if (callback) {\n result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n }\n this.__current = previous;\n\n return result;\n };\n\n // API:\n // notify control skip / break\n Controller.prototype.notify = function notify(flag) {\n this.__state = flag;\n };\n\n // API:\n // skip child nodes of current node\n Controller.prototype.skip = function () {\n this.notify(SKIP);\n };\n\n // API:\n // break traversals\n Controller.prototype['break'] = function () {\n this.notify(BREAK);\n };\n\n // API:\n // remove node\n Controller.prototype.remove = function () {\n this.notify(REMOVE);\n };\n\n Controller.prototype.__initialize = function(root, visitor) {\n this.visitor = visitor;\n this.root = root;\n this.__worklist = [];\n this.__leavelist = [];\n this.__current = null;\n this.__state = null;\n this.__fallback = null;\n if (visitor.fallback === 'iteration') {\n this.__fallback = Object.keys;\n } else if (typeof visitor.fallback === 'function') {\n this.__fallback = visitor.fallback;\n }\n\n this.__keys = VisitorKeys;\n if (visitor.keys) {\n this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n }\n };\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n }\n\n Controller.prototype.traverse = function traverse(root, visitor) {\n var worklist,\n leavelist,\n element,\n node,\n nodeType,\n ret,\n key,\n current,\n current2,\n candidates,\n candidate,\n sentinel;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n worklist.push(new Element(root, null, null, null));\n leavelist.push(new Element(null, null, null, null));\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n ret = this.__execute(visitor.leave, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n continue;\n }\n\n if (element.node) {\n\n ret = this.__execute(visitor.enter, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || ret === SKIP) {\n continue;\n }\n\n node = element.node;\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', null);\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, null);\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, null));\n }\n }\n }\n }\n };\n\n Controller.prototype.replace = function replace(root, visitor) {\n var worklist,\n leavelist,\n node,\n nodeType,\n target,\n element,\n current,\n current2,\n candidates,\n candidate,\n sentinel,\n outer,\n key;\n\n function removeElem(element) {\n var i,\n key,\n nextElem,\n parent;\n\n if (element.ref.remove()) {\n // When the reference is an element of an array.\n key = element.ref.key;\n parent = element.ref.parent;\n\n // If removed from array, then decrease following items' keys.\n i = worklist.length;\n while (i--) {\n nextElem = worklist[i];\n if (nextElem.ref && nextElem.ref.parent === parent) {\n if (nextElem.ref.key < key) {\n break;\n }\n --nextElem.ref.key;\n }\n }\n }\n }\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n outer = {\n root: root\n };\n element = new Element(root, null, null, new Reference(outer, 'root'));\n worklist.push(element);\n leavelist.push(element);\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n target = this.__execute(visitor.leave, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n continue;\n }\n\n target = this.__execute(visitor.enter, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n element.node = target;\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n element.node = null;\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n\n // node may be null\n node = element.node;\n if (!node) {\n continue;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || target === SKIP) {\n continue;\n }\n\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n }\n }\n }\n\n return outer.root;\n };\n\n function traverse(root, visitor) {\n var controller = new Controller();\n return controller.traverse(root, visitor);\n }\n\n function replace(root, visitor) {\n var controller = new Controller();\n return controller.replace(root, visitor);\n }\n\n function extendCommentRange(comment, tokens) {\n var target;\n\n target = upperBound(tokens, function search(token) {\n return token.range[0] > comment.range[0];\n });\n\n comment.extendedRange = [comment.range[0], comment.range[1]];\n\n if (target !== tokens.length) {\n comment.extendedRange[1] = tokens[target].range[0];\n }\n\n target -= 1;\n if (target >= 0) {\n comment.extendedRange[0] = tokens[target].range[1];\n }\n\n return comment;\n }\n\n function attachComments(tree, providedComments, tokens) {\n // At first, we should calculate extended comment ranges.\n var comments = [], comment, len, i, cursor;\n\n if (!tree.range) {\n throw new Error('attachComments needs range information');\n }\n\n // tokens array is empty, we attach comments to tree as 'leadingComments'\n if (!tokens.length) {\n if (providedComments.length) {\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comment = deepCopy(providedComments[i]);\n comment.extendedRange = [0, tree.range[0]];\n comments.push(comment);\n }\n tree.leadingComments = comments;\n }\n return tree;\n }\n\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n }\n\n // This is based on John Freeman's implementation.\n cursor = 0;\n traverse(tree, {\n enter: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (comment.extendedRange[1] > node.range[0]) {\n break;\n }\n\n if (comment.extendedRange[1] === node.range[0]) {\n if (!node.leadingComments) {\n node.leadingComments = [];\n }\n node.leadingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n cursor = 0;\n traverse(tree, {\n leave: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (node.range[1] < comment.extendedRange[0]) {\n break;\n }\n\n if (node.range[1] === comment.extendedRange[0]) {\n if (!node.trailingComments) {\n node.trailingComments = [];\n }\n node.trailingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n return tree;\n }\n\n exports.version = require('./package.json').version;\n exports.Syntax = Syntax;\n exports.traverse = traverse;\n exports.replace = replace;\n exports.attachComments = attachComments;\n exports.VisitorKeys = VisitorKeys;\n exports.VisitorOption = VisitorOption;\n exports.Controller = Controller;\n exports.cloneEnvironment = function () { return clone({}); };\n\n return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2014 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n(function () {\n 'use strict';\n\n var estraverse = require('estraverse');\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === estraverse.Syntax.ObjectExpression || nodeType === estraverse.Syntax.ObjectPattern) && key === 'properties';\n }\n\n function Visitor(visitor, options) {\n options = options || {};\n\n this.__visitor = visitor || this;\n this.__childVisitorKeys = options.childVisitorKeys\n ? Object.assign({}, estraverse.VisitorKeys, options.childVisitorKeys)\n : estraverse.VisitorKeys;\n if (options.fallback === 'iteration') {\n this.__fallback = Object.keys;\n } else if (typeof options.fallback === 'function') {\n this.__fallback = options.fallback;\n }\n }\n\n /* Default method for visiting children.\n * When you need to call default visiting operation inside custom visiting\n * operation, you can use it with `this.visitChildren(node)`.\n */\n Visitor.prototype.visitChildren = function (node) {\n var type, children, i, iz, j, jz, child;\n\n if (node == null) {\n return;\n }\n\n type = node.type || estraverse.Syntax.Property;\n\n children = this.__childVisitorKeys[type];\n if (!children) {\n if (this.__fallback) {\n children = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + type + '.');\n }\n }\n\n for (i = 0, iz = children.length; i < iz; ++i) {\n child = node[children[i]];\n if (child) {\n if (Array.isArray(child)) {\n for (j = 0, jz = child.length; j < jz; ++j) {\n if (child[j]) {\n if (isNode(child[j]) || isProperty(type, children[i])) {\n this.visit(child[j]);\n }\n }\n }\n } else if (isNode(child)) {\n this.visit(child);\n }\n }\n }\n };\n\n /* Dispatching node. */\n Visitor.prototype.visit = function (node) {\n var type;\n\n if (node == null) {\n return;\n }\n\n type = node.type || estraverse.Syntax.Property;\n if (this.__visitor[type]) {\n this.__visitor[type].call(this, node);\n return;\n }\n this.visitChildren(node);\n };\n\n exports.version = require('./package.json').version;\n exports.Visitor = Visitor;\n exports.visit = function (node, visitor, options) {\n var v = new Visitor(visitor, options);\n v.visit(node);\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n 'use strict';\n\n var Syntax,\n VisitorOption,\n VisitorKeys,\n BREAK,\n SKIP,\n REMOVE;\n\n function deepCopy(obj) {\n var ret = {}, key, val;\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n val = obj[key];\n if (typeof val === 'object' && val !== null) {\n ret[key] = deepCopy(val);\n } else {\n ret[key] = val;\n }\n }\n }\n return ret;\n }\n\n // based on LLVM libc++ upper_bound / lower_bound\n // MIT License\n\n function upperBound(array, func) {\n var diff, len, i, current;\n\n len = array.length;\n i = 0;\n\n while (len) {\n diff = len >>> 1;\n current = i + diff;\n if (func(array[current])) {\n len = diff;\n } else {\n i = current + 1;\n len -= diff + 1;\n }\n }\n return i;\n }\n\n Syntax = {\n AssignmentExpression: 'AssignmentExpression',\n AssignmentPattern: 'AssignmentPattern',\n ArrayExpression: 'ArrayExpression',\n ArrayPattern: 'ArrayPattern',\n ArrowFunctionExpression: 'ArrowFunctionExpression',\n AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n BlockStatement: 'BlockStatement',\n BinaryExpression: 'BinaryExpression',\n BreakStatement: 'BreakStatement',\n CallExpression: 'CallExpression',\n CatchClause: 'CatchClause',\n ChainExpression: 'ChainExpression',\n ClassBody: 'ClassBody',\n ClassDeclaration: 'ClassDeclaration',\n ClassExpression: 'ClassExpression',\n ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7.\n ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7.\n ConditionalExpression: 'ConditionalExpression',\n ContinueStatement: 'ContinueStatement',\n DebuggerStatement: 'DebuggerStatement',\n DirectiveStatement: 'DirectiveStatement',\n DoWhileStatement: 'DoWhileStatement',\n EmptyStatement: 'EmptyStatement',\n ExportAllDeclaration: 'ExportAllDeclaration',\n ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n ExportNamedDeclaration: 'ExportNamedDeclaration',\n ExportSpecifier: 'ExportSpecifier',\n ExpressionStatement: 'ExpressionStatement',\n ForStatement: 'ForStatement',\n ForInStatement: 'ForInStatement',\n ForOfStatement: 'ForOfStatement',\n FunctionDeclaration: 'FunctionDeclaration',\n FunctionExpression: 'FunctionExpression',\n GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7.\n Identifier: 'Identifier',\n IfStatement: 'IfStatement',\n ImportExpression: 'ImportExpression',\n ImportDeclaration: 'ImportDeclaration',\n ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n ImportSpecifier: 'ImportSpecifier',\n Literal: 'Literal',\n LabeledStatement: 'LabeledStatement',\n LogicalExpression: 'LogicalExpression',\n MemberExpression: 'MemberExpression',\n MetaProperty: 'MetaProperty',\n MethodDefinition: 'MethodDefinition',\n ModuleSpecifier: 'ModuleSpecifier',\n NewExpression: 'NewExpression',\n ObjectExpression: 'ObjectExpression',\n ObjectPattern: 'ObjectPattern',\n Program: 'Program',\n Property: 'Property',\n RestElement: 'RestElement',\n ReturnStatement: 'ReturnStatement',\n SequenceExpression: 'SequenceExpression',\n SpreadElement: 'SpreadElement',\n Super: 'Super',\n SwitchStatement: 'SwitchStatement',\n SwitchCase: 'SwitchCase',\n TaggedTemplateExpression: 'TaggedTemplateExpression',\n TemplateElement: 'TemplateElement',\n TemplateLiteral: 'TemplateLiteral',\n ThisExpression: 'ThisExpression',\n ThrowStatement: 'ThrowStatement',\n TryStatement: 'TryStatement',\n UnaryExpression: 'UnaryExpression',\n UpdateExpression: 'UpdateExpression',\n VariableDeclaration: 'VariableDeclaration',\n VariableDeclarator: 'VariableDeclarator',\n WhileStatement: 'WhileStatement',\n WithStatement: 'WithStatement',\n YieldExpression: 'YieldExpression'\n };\n\n VisitorKeys = {\n AssignmentExpression: ['left', 'right'],\n AssignmentPattern: ['left', 'right'],\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'body'],\n AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n BlockStatement: ['body'],\n BinaryExpression: ['left', 'right'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ChainExpression: ['expression'],\n ClassBody: ['body'],\n ClassDeclaration: ['id', 'superClass', 'body'],\n ClassExpression: ['id', 'superClass', 'body'],\n ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7.\n ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n DirectiveStatement: [],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportAllDeclaration: ['source'],\n ExportDefaultDeclaration: ['declaration'],\n ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n ExportSpecifier: ['exported', 'local'],\n ExpressionStatement: ['expression'],\n ForStatement: ['init', 'test', 'update', 'body'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n FunctionDeclaration: ['id', 'params', 'body'],\n FunctionExpression: ['id', 'params', 'body'],\n GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7.\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportExpression: ['source'],\n ImportDeclaration: ['specifiers', 'source'],\n ImportDefaultSpecifier: ['local'],\n ImportNamespaceSpecifier: ['local'],\n ImportSpecifier: ['imported', 'local'],\n Literal: [],\n LabeledStatement: ['label', 'body'],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MetaProperty: ['meta', 'property'],\n MethodDefinition: ['key', 'value'],\n ModuleSpecifier: [],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n Program: ['body'],\n Property: ['key', 'value'],\n RestElement: [ 'argument' ],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n Super: [],\n SwitchStatement: ['discriminant', 'cases'],\n SwitchCase: ['test', 'consequent'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handler', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n WithStatement: ['object', 'body'],\n YieldExpression: ['argument']\n };\n\n // unique id\n BREAK = {};\n SKIP = {};\n REMOVE = {};\n\n VisitorOption = {\n Break: BREAK,\n Skip: SKIP,\n Remove: REMOVE\n };\n\n function Reference(parent, key) {\n this.parent = parent;\n this.key = key;\n }\n\n Reference.prototype.replace = function replace(node) {\n this.parent[this.key] = node;\n };\n\n Reference.prototype.remove = function remove() {\n if (Array.isArray(this.parent)) {\n this.parent.splice(this.key, 1);\n return true;\n } else {\n this.replace(null);\n return false;\n }\n };\n\n function Element(node, path, wrap, ref) {\n this.node = node;\n this.path = path;\n this.wrap = wrap;\n this.ref = ref;\n }\n\n function Controller() { }\n\n // API:\n // return property path array from root to current node\n Controller.prototype.path = function path() {\n var i, iz, j, jz, result, element;\n\n function addToPath(result, path) {\n if (Array.isArray(path)) {\n for (j = 0, jz = path.length; j < jz; ++j) {\n result.push(path[j]);\n }\n } else {\n result.push(path);\n }\n }\n\n // root node\n if (!this.__current.path) {\n return null;\n }\n\n // first node is sentinel, second node is root element\n result = [];\n for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n element = this.__leavelist[i];\n addToPath(result, element.path);\n }\n addToPath(result, this.__current.path);\n return result;\n };\n\n // API:\n // return type of current node\n Controller.prototype.type = function () {\n var node = this.current();\n return node.type || this.__current.wrap;\n };\n\n // API:\n // return array of parent elements\n Controller.prototype.parents = function parents() {\n var i, iz, result;\n\n // first node is sentinel\n result = [];\n for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n result.push(this.__leavelist[i].node);\n }\n\n return result;\n };\n\n // API:\n // return current node\n Controller.prototype.current = function current() {\n return this.__current.node;\n };\n\n Controller.prototype.__execute = function __execute(callback, element) {\n var previous, result;\n\n result = undefined;\n\n previous = this.__current;\n this.__current = element;\n this.__state = null;\n if (callback) {\n result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n }\n this.__current = previous;\n\n return result;\n };\n\n // API:\n // notify control skip / break\n Controller.prototype.notify = function notify(flag) {\n this.__state = flag;\n };\n\n // API:\n // skip child nodes of current node\n Controller.prototype.skip = function () {\n this.notify(SKIP);\n };\n\n // API:\n // break traversals\n Controller.prototype['break'] = function () {\n this.notify(BREAK);\n };\n\n // API:\n // remove node\n Controller.prototype.remove = function () {\n this.notify(REMOVE);\n };\n\n Controller.prototype.__initialize = function(root, visitor) {\n this.visitor = visitor;\n this.root = root;\n this.__worklist = [];\n this.__leavelist = [];\n this.__current = null;\n this.__state = null;\n this.__fallback = null;\n if (visitor.fallback === 'iteration') {\n this.__fallback = Object.keys;\n } else if (typeof visitor.fallback === 'function') {\n this.__fallback = visitor.fallback;\n }\n\n this.__keys = VisitorKeys;\n if (visitor.keys) {\n this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n }\n };\n\n function isNode(node) {\n if (node == null) {\n return false;\n }\n return typeof node === 'object' && typeof node.type === 'string';\n }\n\n function isProperty(nodeType, key) {\n return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n }\n \n function candidateExistsInLeaveList(leavelist, candidate) {\n for (var i = leavelist.length - 1; i >= 0; --i) {\n if (leavelist[i].node === candidate) {\n return true;\n }\n }\n return false;\n }\n\n Controller.prototype.traverse = function traverse(root, visitor) {\n var worklist,\n leavelist,\n element,\n node,\n nodeType,\n ret,\n key,\n current,\n current2,\n candidates,\n candidate,\n sentinel;\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n worklist.push(new Element(root, null, null, null));\n leavelist.push(new Element(null, null, null, null));\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n ret = this.__execute(visitor.leave, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n continue;\n }\n\n if (element.node) {\n\n ret = this.__execute(visitor.enter, element);\n\n if (this.__state === BREAK || ret === BREAK) {\n return;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || ret === SKIP) {\n continue;\n }\n\n node = element.node;\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n\n if (candidateExistsInLeaveList(leavelist, candidate[current2])) {\n continue;\n }\n\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', null);\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, null);\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n if (candidateExistsInLeaveList(leavelist, candidate)) {\n continue;\n }\n\n worklist.push(new Element(candidate, key, null, null));\n }\n }\n }\n }\n };\n\n Controller.prototype.replace = function replace(root, visitor) {\n var worklist,\n leavelist,\n node,\n nodeType,\n target,\n element,\n current,\n current2,\n candidates,\n candidate,\n sentinel,\n outer,\n key;\n\n function removeElem(element) {\n var i,\n key,\n nextElem,\n parent;\n\n if (element.ref.remove()) {\n // When the reference is an element of an array.\n key = element.ref.key;\n parent = element.ref.parent;\n\n // If removed from array, then decrease following items' keys.\n i = worklist.length;\n while (i--) {\n nextElem = worklist[i];\n if (nextElem.ref && nextElem.ref.parent === parent) {\n if (nextElem.ref.key < key) {\n break;\n }\n --nextElem.ref.key;\n }\n }\n }\n }\n\n this.__initialize(root, visitor);\n\n sentinel = {};\n\n // reference\n worklist = this.__worklist;\n leavelist = this.__leavelist;\n\n // initialize\n outer = {\n root: root\n };\n element = new Element(root, null, null, new Reference(outer, 'root'));\n worklist.push(element);\n leavelist.push(element);\n\n while (worklist.length) {\n element = worklist.pop();\n\n if (element === sentinel) {\n element = leavelist.pop();\n\n target = this.__execute(visitor.leave, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n continue;\n }\n\n target = this.__execute(visitor.enter, element);\n\n // node may be replaced with null,\n // so distinguish between undefined and null in this place\n if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n // replace\n element.ref.replace(target);\n element.node = target;\n }\n\n if (this.__state === REMOVE || target === REMOVE) {\n removeElem(element);\n element.node = null;\n }\n\n if (this.__state === BREAK || target === BREAK) {\n return outer.root;\n }\n\n // node may be null\n node = element.node;\n if (!node) {\n continue;\n }\n\n worklist.push(sentinel);\n leavelist.push(element);\n\n if (this.__state === SKIP || target === SKIP) {\n continue;\n }\n\n nodeType = node.type || element.wrap;\n candidates = this.__keys[nodeType];\n if (!candidates) {\n if (this.__fallback) {\n candidates = this.__fallback(node);\n } else {\n throw new Error('Unknown node type ' + nodeType + '.');\n }\n }\n\n current = candidates.length;\n while ((current -= 1) >= 0) {\n key = candidates[current];\n candidate = node[key];\n if (!candidate) {\n continue;\n }\n\n if (Array.isArray(candidate)) {\n current2 = candidate.length;\n while ((current2 -= 1) >= 0) {\n if (!candidate[current2]) {\n continue;\n }\n if (isProperty(nodeType, candidates[current])) {\n element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n } else if (isNode(candidate[current2])) {\n element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n } else {\n continue;\n }\n worklist.push(element);\n }\n } else if (isNode(candidate)) {\n worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n }\n }\n }\n\n return outer.root;\n };\n\n function traverse(root, visitor) {\n var controller = new Controller();\n return controller.traverse(root, visitor);\n }\n\n function replace(root, visitor) {\n var controller = new Controller();\n return controller.replace(root, visitor);\n }\n\n function extendCommentRange(comment, tokens) {\n var target;\n\n target = upperBound(tokens, function search(token) {\n return token.range[0] > comment.range[0];\n });\n\n comment.extendedRange = [comment.range[0], comment.range[1]];\n\n if (target !== tokens.length) {\n comment.extendedRange[1] = tokens[target].range[0];\n }\n\n target -= 1;\n if (target >= 0) {\n comment.extendedRange[0] = tokens[target].range[1];\n }\n\n return comment;\n }\n\n function attachComments(tree, providedComments, tokens) {\n // At first, we should calculate extended comment ranges.\n var comments = [], comment, len, i, cursor;\n\n if (!tree.range) {\n throw new Error('attachComments needs range information');\n }\n\n // tokens array is empty, we attach comments to tree as 'leadingComments'\n if (!tokens.length) {\n if (providedComments.length) {\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comment = deepCopy(providedComments[i]);\n comment.extendedRange = [0, tree.range[0]];\n comments.push(comment);\n }\n tree.leadingComments = comments;\n }\n return tree;\n }\n\n for (i = 0, len = providedComments.length; i < len; i += 1) {\n comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n }\n\n // This is based on John Freeman's implementation.\n cursor = 0;\n traverse(tree, {\n enter: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (comment.extendedRange[1] > node.range[0]) {\n break;\n }\n\n if (comment.extendedRange[1] === node.range[0]) {\n if (!node.leadingComments) {\n node.leadingComments = [];\n }\n node.leadingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n cursor = 0;\n traverse(tree, {\n leave: function (node) {\n var comment;\n\n while (cursor < comments.length) {\n comment = comments[cursor];\n if (node.range[1] < comment.extendedRange[0]) {\n break;\n }\n\n if (node.range[1] === comment.extendedRange[0]) {\n if (!node.trailingComments) {\n node.trailingComments = [];\n }\n node.trailingComments.push(comment);\n comments.splice(cursor, 1);\n } else {\n cursor += 1;\n }\n }\n\n // already out of owned node\n if (cursor === comments.length) {\n return VisitorOption.Break;\n }\n\n if (comments[cursor].extendedRange[0] > node.range[1]) {\n return VisitorOption.Skip;\n }\n }\n });\n\n return tree;\n }\n\n exports.Syntax = Syntax;\n exports.traverse = traverse;\n exports.replace = replace;\n exports.attachComments = attachComments;\n exports.VisitorKeys = VisitorKeys;\n exports.VisitorOption = VisitorOption;\n exports.Controller = Controller;\n exports.cloneEnvironment = function () { return clone({}); };\n\n return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n function isExpression(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'ArrayExpression':\n case 'AssignmentExpression':\n case 'BinaryExpression':\n case 'CallExpression':\n case 'ConditionalExpression':\n case 'FunctionExpression':\n case 'Identifier':\n case 'Literal':\n case 'LogicalExpression':\n case 'MemberExpression':\n case 'NewExpression':\n case 'ObjectExpression':\n case 'SequenceExpression':\n case 'ThisExpression':\n case 'UnaryExpression':\n case 'UpdateExpression':\n return true;\n }\n return false;\n }\n\n function isIterationStatement(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'DoWhileStatement':\n case 'ForInStatement':\n case 'ForStatement':\n case 'WhileStatement':\n return true;\n }\n return false;\n }\n\n function isStatement(node) {\n if (node == null) { return false; }\n switch (node.type) {\n case 'BlockStatement':\n case 'BreakStatement':\n case 'ContinueStatement':\n case 'DebuggerStatement':\n case 'DoWhileStatement':\n case 'EmptyStatement':\n case 'ExpressionStatement':\n case 'ForInStatement':\n case 'ForStatement':\n case 'IfStatement':\n case 'LabeledStatement':\n case 'ReturnStatement':\n case 'SwitchStatement':\n case 'ThrowStatement':\n case 'TryStatement':\n case 'VariableDeclaration':\n case 'WhileStatement':\n case 'WithStatement':\n return true;\n }\n return false;\n }\n\n function isSourceElement(node) {\n return isStatement(node) || node != null && node.type === 'FunctionDeclaration';\n }\n\n function trailingStatement(node) {\n switch (node.type) {\n case 'IfStatement':\n if (node.alternate != null) {\n return node.alternate;\n }\n return node.consequent;\n\n case 'LabeledStatement':\n case 'ForStatement':\n case 'ForInStatement':\n case 'WhileStatement':\n case 'WithStatement':\n return node.body;\n }\n return null;\n }\n\n function isProblematicIfStatement(node) {\n var current;\n\n if (node.type !== 'IfStatement') {\n return false;\n }\n if (node.alternate == null) {\n return false;\n }\n current = node.consequent;\n do {\n if (current.type === 'IfStatement') {\n if (current.alternate == null) {\n return true;\n }\n }\n current = trailingStatement(current);\n } while (current);\n\n return false;\n }\n\n module.exports = {\n isExpression: isExpression,\n isStatement: isStatement,\n isIterationStatement: isIterationStatement,\n isSourceElement: isSourceElement,\n isProblematicIfStatement: isProblematicIfStatement,\n\n trailingStatement: trailingStatement\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013-2014 Yusuke Suzuki <utatane.tea@gmail.com>\n Copyright (C) 2014 Ivan Nikulin <ifaaan@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch;\n\n // See `tools/generate-identifier-regex.js`.\n ES5Regex = {\n // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,\n // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart:\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/\n };\n\n ES6Regex = {\n // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart:\n NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart:\n NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n };\n\n function isDecimalDigit(ch) {\n return 0x30 <= ch && ch <= 0x39; // 0..9\n }\n\n function isHexDigit(ch) {\n return 0x30 <= ch && ch <= 0x39 || // 0..9\n 0x61 <= ch && ch <= 0x66 || // a..f\n 0x41 <= ch && ch <= 0x46; // A..F\n }\n\n function isOctalDigit(ch) {\n return ch >= 0x30 && ch <= 0x37; // 0..7\n }\n\n // 7.2 White Space\n\n NON_ASCII_WHITESPACES = [\n 0x1680,\n 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,\n 0x202F, 0x205F,\n 0x3000,\n 0xFEFF\n ];\n\n function isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 ||\n ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0;\n }\n\n // 7.3 Line Terminators\n\n function isLineTerminator(ch) {\n return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n }\n\n // 7.6 Identifier Names and Identifiers\n\n function fromCodePoint(cp) {\n if (cp <= 0xFFFF) { return String.fromCharCode(cp); }\n var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800);\n var cu2 = String.fromCharCode(((cp - 0x10000) % 0x400) + 0xDC00);\n return cu1 + cu2;\n }\n\n IDENTIFIER_START = new Array(0x80);\n for(ch = 0; ch < 0x80; ++ch) {\n IDENTIFIER_START[ch] =\n ch >= 0x61 && ch <= 0x7A || // a..z\n ch >= 0x41 && ch <= 0x5A || // A..Z\n ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)\n }\n\n IDENTIFIER_PART = new Array(0x80);\n for(ch = 0; ch < 0x80; ++ch) {\n IDENTIFIER_PART[ch] =\n ch >= 0x61 && ch <= 0x7A || // a..z\n ch >= 0x41 && ch <= 0x5A || // A..Z\n ch >= 0x30 && ch <= 0x39 || // 0..9\n ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore)\n }\n\n function isIdentifierStartES5(ch) {\n return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\n }\n\n function isIdentifierPartES5(ch) {\n return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\n }\n\n function isIdentifierStartES6(ch) {\n return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch));\n }\n\n function isIdentifierPartES6(ch) {\n return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch));\n }\n\n module.exports = {\n isDecimalDigit: isDecimalDigit,\n isHexDigit: isHexDigit,\n isOctalDigit: isOctalDigit,\n isWhiteSpace: isWhiteSpace,\n isLineTerminator: isLineTerminator,\n isIdentifierStartES5: isIdentifierStartES5,\n isIdentifierPartES5: isIdentifierPartES5,\n isIdentifierStartES6: isIdentifierStartES6,\n isIdentifierPartES6: isIdentifierPartES6\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n(function () {\n 'use strict';\n\n var code = require('./code');\n\n function isStrictModeReservedWordES6(id) {\n switch (id) {\n case 'implements':\n case 'interface':\n case 'package':\n case 'private':\n case 'protected':\n case 'public':\n case 'static':\n case 'let':\n return true;\n default:\n return false;\n }\n }\n\n function isKeywordES5(id, strict) {\n // yield should not be treated as keyword under non-strict mode.\n if (!strict && id === 'yield') {\n return false;\n }\n return isKeywordES6(id, strict);\n }\n\n function isKeywordES6(id, strict) {\n if (strict && isStrictModeReservedWordES6(id)) {\n return true;\n }\n\n switch (id.length) {\n case 2:\n return (id === 'if') || (id === 'in') || (id === 'do');\n case 3:\n return (id === 'var') || (id === 'for') || (id === 'new') || (id === 'try');\n case 4:\n return (id === 'this') || (id === 'else') || (id === 'case') ||\n (id === 'void') || (id === 'with') || (id === 'enum');\n case 5:\n return (id === 'while') || (id === 'break') || (id === 'catch') ||\n (id === 'throw') || (id === 'const') || (id === 'yield') ||\n (id === 'class') || (id === 'super');\n case 6:\n return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n (id === 'switch') || (id === 'export') || (id === 'import');\n case 7:\n return (id === 'default') || (id === 'finally') || (id === 'extends');\n case 8:\n return (id === 'function') || (id === 'continue') || (id === 'debugger');\n case 10:\n return (id === 'instanceof');\n default:\n return false;\n }\n }\n\n function isReservedWordES5(id, strict) {\n return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict);\n }\n\n function isReservedWordES6(id, strict) {\n return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict);\n }\n\n function isRestrictedWord(id) {\n return id === 'eval' || id === 'arguments';\n }\n\n function isIdentifierNameES5(id) {\n var i, iz, ch;\n\n if (id.length === 0) { return false; }\n\n ch = id.charCodeAt(0);\n if (!code.isIdentifierStartES5(ch)) {\n return false;\n }\n\n for (i = 1, iz = id.length; i < iz; ++i) {\n ch = id.charCodeAt(i);\n if (!code.isIdentifierPartES5(ch)) {\n return false;\n }\n }\n return true;\n }\n\n function decodeUtf16(lead, trail) {\n return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n }\n\n function isIdentifierNameES6(id) {\n var i, iz, ch, lowCh, check;\n\n if (id.length === 0) { return false; }\n\n check = code.isIdentifierStartES6;\n for (i = 0, iz = id.length; i < iz; ++i) {\n ch = id.charCodeAt(i);\n if (0xD800 <= ch && ch <= 0xDBFF) {\n ++i;\n if (i >= iz) { return false; }\n lowCh = id.charCodeAt(i);\n if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) {\n return false;\n }\n ch = decodeUtf16(ch, lowCh);\n }\n if (!check(ch)) {\n return false;\n }\n check = code.isIdentifierPartES6;\n }\n return true;\n }\n\n function isIdentifierES5(id, strict) {\n return isIdentifierNameES5(id) && !isReservedWordES5(id, strict);\n }\n\n function isIdentifierES6(id, strict) {\n return isIdentifierNameES6(id) && !isReservedWordES6(id, strict);\n }\n\n module.exports = {\n isKeywordES5: isKeywordES5,\n isKeywordES6: isKeywordES6,\n isReservedWordES5: isReservedWordES5,\n isReservedWordES6: isReservedWordES6,\n isRestrictedWord: isRestrictedWord,\n isIdentifierNameES5: isIdentifierNameES5,\n isIdentifierNameES6: isIdentifierNameES6,\n isIdentifierES5: isIdentifierES5,\n isIdentifierES6: isIdentifierES6\n };\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n Copyright (C) 2013 Yusuke Suzuki <utatane.tea@gmail.com>\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n\n(function () {\n 'use strict';\n\n exports.ast = require('./ast');\n exports.code = require('./code');\n exports.keyword = require('./keyword');\n}());\n/* vim: set sw=4 ts=4 et tw=80 : */\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.libphonenumber = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar COMPILED = !0, goog = goog || {};\ngoog.global = this || self;\ngoog.exportPath_ = function(a, b, c) {\n a = a.split(\".\");\n c = c || goog.global;\n a[0] in c || \"undefined\" == typeof c.execScript || c.execScript(\"var \" + a[0]);\n for (var d; a.length && (d = a.shift());) {\n a.length || void 0 === b ? c = c[d] && c[d] !== Object.prototype[d] ? c[d] : c[d] = {} : c[d] = b;\n }\n};\ngoog.define = function(a, b) {\n var c = b;\n if (!COMPILED) {\n var d = goog.global.CLOSURE_UNCOMPILED_DEFINES, e = goog.global.CLOSURE_DEFINES;\n d && void 0 === d.nodeType && Object.prototype.hasOwnProperty.call(d, a) ? c = d[a] : e && void 0 === e.nodeType && Object.prototype.hasOwnProperty.call(e, a) && (c = e[a]);\n }\n return c;\n};\ngoog.FEATURESET_YEAR = 2012;\ngoog.DEBUG = !0;\ngoog.LOCALE = \"en\";\ngoog.TRUSTED_SITE = !0;\ngoog.STRICT_MODE_COMPATIBLE = !1;\ngoog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG;\ngoog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;\ngoog.provide = function(a) {\n if (goog.isInModuleLoader_()) {\n throw Error(\"goog.provide cannot be used within a module.\");\n }\n if (!COMPILED && goog.isProvided_(a)) {\n throw Error('Namespace \"' + a + '\" already declared.');\n }\n goog.constructNamespace_(a);\n};\ngoog.constructNamespace_ = function(a, b) {\n if (!COMPILED) {\n delete goog.implicitNamespaces_[a];\n for (var c = a; (c = c.substring(0, c.lastIndexOf(\".\"))) && !goog.getObjectByName(c);) {\n goog.implicitNamespaces_[c] = !0;\n }\n }\n goog.exportPath_(a, b);\n};\ngoog.getScriptNonce = function(a) {\n if (a && a != goog.global) {\n return goog.getScriptNonce_(a.document);\n }\n null === goog.cspNonce_ && (goog.cspNonce_ = goog.getScriptNonce_(goog.global.document));\n return goog.cspNonce_;\n};\ngoog.NONCE_PATTERN_ = /^[\\w+/_-]+[=]{0,2}$/;\ngoog.cspNonce_ = null;\ngoog.getScriptNonce_ = function(a) {\n return (a = a.querySelector && a.querySelector(\"script[nonce]\")) && (a = a.nonce || a.getAttribute(\"nonce\")) && goog.NONCE_PATTERN_.test(a) ? a : \"\";\n};\ngoog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module = function(a) {\n if (\"string\" !== typeof a || !a || -1 == a.search(goog.VALID_MODULE_RE_)) {\n throw Error(\"Invalid module identifier\");\n }\n if (!goog.isInGoogModuleLoader_()) {\n throw Error(\"Module \" + a + \" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.\");\n }\n if (goog.moduleLoaderState_.moduleName) {\n throw Error(\"goog.module may only be called once per module.\");\n }\n goog.moduleLoaderState_.moduleName = a;\n if (!COMPILED) {\n if (goog.isProvided_(a)) {\n throw Error('Namespace \"' + a + '\" already declared.');\n }\n delete goog.implicitNamespaces_[a];\n }\n};\ngoog.module.get = function(a) {\n return goog.module.getInternal_(a);\n};\ngoog.module.getInternal_ = function(a) {\n if (!COMPILED) {\n if (a in goog.loadedModules_) {\n return goog.loadedModules_[a].exports;\n }\n if (!goog.implicitNamespaces_[a]) {\n return a = goog.getObjectByName(a), null != a ? a : null;\n }\n }\n return null;\n};\ngoog.ModuleType = {ES6:\"es6\", GOOG:\"goog\"};\ngoog.moduleLoaderState_ = null;\ngoog.isInModuleLoader_ = function() {\n return goog.isInGoogModuleLoader_() || goog.isInEs6ModuleLoader_();\n};\ngoog.isInGoogModuleLoader_ = function() {\n return !!goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.GOOG;\n};\ngoog.isInEs6ModuleLoader_ = function() {\n if (goog.moduleLoaderState_ && goog.moduleLoaderState_.type == goog.ModuleType.ES6) {\n return !0;\n }\n var a = goog.global.$jscomp;\n return a ? \"function\" != typeof a.getCurrentModulePath ? !1 : !!a.getCurrentModulePath() : !1;\n};\ngoog.module.declareLegacyNamespace = function() {\n if (!COMPILED && !goog.isInGoogModuleLoader_()) {\n throw Error(\"goog.module.declareLegacyNamespace must be called from within a goog.module\");\n }\n if (!COMPILED && !goog.moduleLoaderState_.moduleName) {\n throw Error(\"goog.module must be called prior to goog.module.declareLegacyNamespace.\");\n }\n goog.moduleLoaderState_.declareLegacyNamespace = !0;\n};\ngoog.declareModuleId = function(a) {\n if (!COMPILED) {\n if (!goog.isInEs6ModuleLoader_()) {\n throw Error(\"goog.declareModuleId may only be called from within an ES6 module\");\n }\n if (goog.moduleLoaderState_ && goog.moduleLoaderState_.moduleName) {\n throw Error(\"goog.declareModuleId may only be called once per module.\");\n }\n if (a in goog.loadedModules_) {\n throw Error('Module with namespace \"' + a + '\" already exists.');\n }\n }\n if (goog.moduleLoaderState_) {\n goog.moduleLoaderState_.moduleName = a;\n } else {\n var b = goog.global.$jscomp;\n if (!b || \"function\" != typeof b.getCurrentModulePath) {\n throw Error('Module with namespace \"' + a + '\" has been loaded incorrectly.');\n }\n b = b.require(b.getCurrentModulePath());\n goog.loadedModules_[a] = {exports:b, type:goog.ModuleType.ES6, moduleId:a};\n }\n};\ngoog.setTestOnly = function(a) {\n if (goog.DISALLOW_TEST_ONLY_CODE) {\n throw a = a || \"\", Error(\"Importing test-only code into non-debug environment\" + (a ? \": \" + a : \".\"));\n }\n};\ngoog.forwardDeclare = function(a) {\n};\nCOMPILED || (goog.isProvided_ = function(a) {\n return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && null != goog.getObjectByName(a);\n}, goog.implicitNamespaces_ = {\"goog.module\":!0});\ngoog.getObjectByName = function(a, b) {\n for (var c = a.split(\".\"), d = b || goog.global, e = 0; e < c.length; e++) {\n if (d = d[c[e]], null == d) {\n return null;\n }\n }\n return d;\n};\ngoog.globalize = function(a, b) {\n var c = b || goog.global, d;\n for (d in a) {\n c[d] = a[d];\n }\n};\ngoog.addDependency = function(a, b, c, d) {\n !COMPILED && goog.DEPENDENCIES_ENABLED && goog.debugLoader_.addDependency(a, b, c, d);\n};\ngoog.ENABLE_DEBUG_LOADER = !0;\ngoog.logToConsole_ = function(a) {\n goog.global.console && goog.global.console.error(a);\n};\ngoog.require = function(a) {\n if (!COMPILED) {\n goog.ENABLE_DEBUG_LOADER && goog.debugLoader_.requested(a);\n if (goog.isProvided_(a)) {\n if (goog.isInModuleLoader_()) {\n return goog.module.getInternal_(a);\n }\n } else {\n if (goog.ENABLE_DEBUG_LOADER) {\n var b = goog.moduleLoaderState_;\n goog.moduleLoaderState_ = null;\n try {\n goog.debugLoader_.load_(a);\n } finally {\n goog.moduleLoaderState_ = b;\n }\n }\n }\n return null;\n }\n};\ngoog.requireType = function(a) {\n return {};\n};\ngoog.basePath = \"\";\ngoog.nullFunction = function() {\n};\ngoog.abstractMethod = function() {\n throw Error(\"unimplemented abstract method\");\n};\ngoog.addSingletonGetter = function(a) {\n a.instance_ = void 0;\n a.getInstance = function() {\n if (a.instance_) {\n return a.instance_;\n }\n goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a);\n return a.instance_ = new a;\n };\n};\ngoog.instantiatedSingletons_ = [];\ngoog.LOAD_MODULE_USING_EVAL = !0;\ngoog.SEAL_MODULE_EXPORTS = goog.DEBUG;\ngoog.loadedModules_ = {};\ngoog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;\ngoog.TRANSPILE = \"detect\";\ngoog.ASSUME_ES_MODULES_TRANSPILED = !1;\ngoog.TRANSPILE_TO_LANGUAGE = \"\";\ngoog.TRANSPILER = \"transpile.js\";\ngoog.hasBadLetScoping = null;\ngoog.useSafari10Workaround = function() {\n if (null == goog.hasBadLetScoping) {\n try {\n var a = !eval('\"use strict\";let x = 1; function f() { return typeof x; };f() == \"number\";');\n } catch (b) {\n a = !1;\n }\n goog.hasBadLetScoping = a;\n }\n return goog.hasBadLetScoping;\n};\ngoog.workaroundSafari10EvalBug = function(a) {\n return \"(function(){\" + a + \"\\n;})();\\n\";\n};\ngoog.loadModule = function(a) {\n var b = goog.moduleLoaderState_;\n try {\n goog.moduleLoaderState_ = {moduleName:\"\", declareLegacyNamespace:!1, type:goog.ModuleType.GOOG};\n if (goog.isFunction(a)) {\n var c = a.call(void 0, {});\n } else {\n if (\"string\" === typeof a) {\n goog.useSafari10Workaround() && (a = goog.workaroundSafari10EvalBug(a)), c = goog.loadModuleFromSource_.call(void 0, a);\n } else {\n throw Error(\"Invalid module definition\");\n }\n }\n var d = goog.moduleLoaderState_.moduleName;\n if (\"string\" === typeof d && d) {\n goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(d, c) : goog.SEAL_MODULE_EXPORTS && Object.seal && \"object\" == typeof c && null != c && Object.seal(c), goog.loadedModules_[d] = {exports:c, type:goog.ModuleType.GOOG, moduleId:goog.moduleLoaderState_.moduleName};\n } else {\n throw Error('Invalid module name \"' + d + '\"');\n }\n } finally {\n goog.moduleLoaderState_ = b;\n }\n};\ngoog.loadModuleFromSource_ = function(a) {\n eval(a);\n return {};\n};\ngoog.normalizePath_ = function(a) {\n a = a.split(\"/\");\n for (var b = 0; b < a.length;) {\n \".\" == a[b] ? a.splice(b, 1) : b && \"..\" == a[b] && a[b - 1] && \"..\" != a[b - 1] ? a.splice(--b, 2) : b++;\n }\n return a.join(\"/\");\n};\ngoog.loadFileSync_ = function(a) {\n if (goog.global.CLOSURE_LOAD_FILE_SYNC) {\n return goog.global.CLOSURE_LOAD_FILE_SYNC(a);\n }\n try {\n var b = new goog.global.XMLHttpRequest;\n b.open(\"get\", a, !1);\n b.send();\n return 0 == b.status || 200 == b.status ? b.responseText : null;\n } catch (c) {\n return null;\n }\n};\ngoog.transpile_ = function(a, b, c) {\n var d = goog.global.$jscomp;\n d || (goog.global.$jscomp = d = {});\n var e = d.transpile;\n if (!e) {\n var f = goog.basePath + goog.TRANSPILER, g = goog.loadFileSync_(f);\n if (g) {\n (function() {\n (0,eval)(g + \"\\n//# sourceURL=\" + f);\n }).call(goog.global);\n if (goog.global.$gwtExport && goog.global.$gwtExport.$jscomp && !goog.global.$gwtExport.$jscomp.transpile) {\n throw Error('The transpiler did not properly export the \"transpile\" method. $gwtExport: ' + JSON.stringify(goog.global.$gwtExport));\n }\n goog.global.$jscomp.transpile = goog.global.$gwtExport.$jscomp.transpile;\n d = goog.global.$jscomp;\n e = d.transpile;\n }\n }\n e || (e = d.transpile = function(a, b) {\n goog.logToConsole_(b + \" requires transpilation but no transpiler was found.\");\n return a;\n });\n return e(a, b, c);\n};\ngoog.typeOf = function(a) {\n var b = typeof a;\n if (\"object\" == b) {\n if (a) {\n if (a instanceof Array) {\n return \"array\";\n }\n if (a instanceof Object) {\n return b;\n }\n var c = Object.prototype.toString.call(a);\n if (\"[object Window]\" == c) {\n return \"object\";\n }\n if (\"[object Array]\" == c || \"number\" == typeof a.length && \"undefined\" != typeof a.splice && \"undefined\" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable(\"splice\")) {\n return \"array\";\n }\n if (\"[object Function]\" == c || \"undefined\" != typeof a.call && \"undefined\" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable(\"call\")) {\n return \"function\";\n }\n } else {\n return \"null\";\n }\n } else {\n if (\"function\" == b && \"undefined\" == typeof a.call) {\n return \"object\";\n }\n }\n return b;\n};\ngoog.isArray = function(a) {\n return \"array\" == goog.typeOf(a);\n};\ngoog.isArrayLike = function(a) {\n var b = goog.typeOf(a);\n return \"array\" == b || \"object\" == b && \"number\" == typeof a.length;\n};\ngoog.isDateLike = function(a) {\n return goog.isObject(a) && \"function\" == typeof a.getFullYear;\n};\ngoog.isFunction = function(a) {\n return \"function\" == goog.typeOf(a);\n};\ngoog.isObject = function(a) {\n var b = typeof a;\n return \"object\" == b && null != a || \"function\" == b;\n};\ngoog.getUid = function(a) {\n return Object.prototype.hasOwnProperty.call(a, goog.UID_PROPERTY_) && a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_);\n};\ngoog.hasUid = function(a) {\n return !!a[goog.UID_PROPERTY_];\n};\ngoog.removeUid = function(a) {\n null !== a && \"removeAttribute\" in a && a.removeAttribute(goog.UID_PROPERTY_);\n try {\n delete a[goog.UID_PROPERTY_];\n } catch (b) {\n }\n};\ngoog.UID_PROPERTY_ = \"closure_uid_\" + (1e9 * Math.random() >>> 0);\ngoog.uidCounter_ = 0;\ngoog.getHashCode = goog.getUid;\ngoog.removeHashCode = goog.removeUid;\ngoog.cloneObject = function(a) {\n var b = goog.typeOf(a);\n if (\"object\" == b || \"array\" == b) {\n if (\"function\" === typeof a.clone) {\n return a.clone();\n }\n b = \"array\" == b ? [] : {};\n for (var c in a) {\n b[c] = goog.cloneObject(a[c]);\n }\n return b;\n }\n return a;\n};\ngoog.bindNative_ = function(a, b, c) {\n return a.call.apply(a.bind, arguments);\n};\ngoog.bindJs_ = function(a, b, c) {\n if (!a) {\n throw Error();\n }\n if (2 < arguments.length) {\n var d = Array.prototype.slice.call(arguments, 2);\n return function() {\n var c = Array.prototype.slice.call(arguments);\n Array.prototype.unshift.apply(c, d);\n return a.apply(b, c);\n };\n }\n return function() {\n return a.apply(b, arguments);\n };\n};\ngoog.bind = function(a, b, c) {\n Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf(\"native code\") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;\n return goog.bind.apply(null, arguments);\n};\ngoog.partial = function(a, b) {\n var c = Array.prototype.slice.call(arguments, 1);\n return function() {\n var b = c.slice();\n b.push.apply(b, arguments);\n return a.apply(this, b);\n };\n};\ngoog.mixin = function(a, b) {\n for (var c in b) {\n a[c] = b[c];\n }\n};\ngoog.now = goog.TRUSTED_SITE && Date.now || function() {\n return +new Date;\n};\ngoog.globalEval = function(a) {\n if (goog.global.execScript) {\n goog.global.execScript(a, \"JavaScript\");\n } else {\n if (goog.global.eval) {\n if (null == goog.evalWorksForGlobals_) {\n try {\n goog.global.eval(\"var _evalTest_ = 1;\");\n } catch (d) {\n }\n if (\"undefined\" != typeof goog.global._evalTest_) {\n try {\n delete goog.global._evalTest_;\n } catch (d) {\n }\n goog.evalWorksForGlobals_ = !0;\n } else {\n goog.evalWorksForGlobals_ = !1;\n }\n }\n if (goog.evalWorksForGlobals_) {\n goog.global.eval(a);\n } else {\n var b = goog.global.document, c = b.createElement(\"script\");\n c.type = \"text/javascript\";\n c.defer = !1;\n c.appendChild(b.createTextNode(a));\n b.head.appendChild(c);\n b.head.removeChild(c);\n }\n } else {\n throw Error(\"goog.globalEval not available\");\n }\n }\n};\ngoog.evalWorksForGlobals_ = null;\ngoog.getCssName = function(a, b) {\n if (\".\" == String(a).charAt(0)) {\n throw Error('className passed in goog.getCssName must not start with \".\". You passed: ' + a);\n }\n var c = function(a) {\n return goog.cssNameMapping_[a] || a;\n }, d = function(a) {\n a = a.split(\"-\");\n for (var b = [], d = 0; d < a.length; d++) {\n b.push(c(a[d]));\n }\n return b.join(\"-\");\n };\n d = goog.cssNameMapping_ ? \"BY_WHOLE\" == goog.cssNameMappingStyle_ ? c : d : function(a) {\n return a;\n };\n d = b ? a + \"-\" + d(b) : d(a);\n return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(d) : d;\n};\ngoog.setCssNameMapping = function(a, b) {\n goog.cssNameMapping_ = a;\n goog.cssNameMappingStyle_ = b;\n};\n!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);\ngoog.getMsg = function(a, b, c) {\n c && c.html && (a = a.replace(/</g, \"&lt;\"));\n b && (a = a.replace(/\\{\\$([^}]+)}/g, function(a, c) {\n return null != b && c in b ? b[c] : a;\n }));\n return a;\n};\ngoog.getMsgWithFallback = function(a, b) {\n return a;\n};\ngoog.exportSymbol = function(a, b, c) {\n goog.exportPath_(a, b, c);\n};\ngoog.exportProperty = function(a, b, c) {\n a[b] = c;\n};\ngoog.inherits = function(a, b) {\n function c() {\n }\n c.prototype = b.prototype;\n a.superClass_ = b.prototype;\n a.prototype = new c;\n a.prototype.constructor = a;\n a.base = function(a, c, f) {\n for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) {\n d[e - 2] = arguments[e];\n }\n return b.prototype[c].apply(a, d);\n };\n};\ngoog.scope = function(a) {\n if (goog.isInModuleLoader_()) {\n throw Error(\"goog.scope is not supported within a module.\");\n }\n a.call(goog.global);\n};\nCOMPILED || (goog.global.COMPILED = COMPILED);\ngoog.defineClass = function(a, b) {\n var c = b.constructor, d = b.statics;\n c && c != Object.prototype.constructor || (c = function() {\n throw Error(\"cannot instantiate an interface (no constructor defined).\");\n });\n c = goog.defineClass.createSealingConstructor_(c, a);\n a && goog.inherits(c, a);\n delete b.constructor;\n delete b.statics;\n goog.defineClass.applyProperties_(c.prototype, b);\n null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));\n return c;\n};\ngoog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;\ngoog.defineClass.createSealingConstructor_ = function(a, b) {\n if (!goog.defineClass.SEAL_CLASS_INSTANCES) {\n return a;\n }\n var c = !goog.defineClass.isUnsealable_(b), d = function() {\n var b = a.apply(this, arguments) || this;\n b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];\n this.constructor === d && c && Object.seal instanceof Function && Object.seal(b);\n return b;\n };\n return d;\n};\ngoog.defineClass.isUnsealable_ = function(a) {\n return a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_];\n};\ngoog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\ngoog.defineClass.applyProperties_ = function(a, b) {\n for (var c in b) {\n Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);\n }\n for (var d = 0; d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; d++) {\n c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);\n }\n};\ngoog.tagUnsealableClass = function(a) {\n !COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);\n};\ngoog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = \"goog_defineClass_legacy_unsealable\";\n!COMPILED && goog.DEPENDENCIES_ENABLED && (goog.inHtmlDocument_ = function() {\n var a = goog.global.document;\n return null != a && \"write\" in a;\n}, goog.isDocumentLoading_ = function() {\n var a = goog.global.document;\n return a.attachEvent ? \"complete\" != a.readyState : \"loading\" == a.readyState;\n}, goog.findBasePath_ = function() {\n if (void 0 != goog.global.CLOSURE_BASE_PATH && \"string\" === typeof goog.global.CLOSURE_BASE_PATH) {\n goog.basePath = goog.global.CLOSURE_BASE_PATH;\n } else {\n if (goog.inHtmlDocument_()) {\n var a = goog.global.document, b = a.currentScript;\n a = b ? [b] : a.getElementsByTagName(\"SCRIPT\");\n for (b = a.length - 1; 0 <= b; --b) {\n var c = a[b].src, d = c.lastIndexOf(\"?\");\n d = -1 == d ? c.length : d;\n if (\"base.js\" == c.substr(d - 7, 7)) {\n goog.basePath = c.substr(0, d - 7);\n break;\n }\n }\n }\n }\n}, goog.findBasePath_(), goog.Transpiler = function() {\n this.requiresTranspilation_ = null;\n this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE;\n}, goog.Transpiler.prototype.createRequiresTranspilation_ = function() {\n function a(a, b) {\n e ? d[a] = !0 : b() ? (c = a, d[a] = !1) : e = d[a] = !0;\n }\n function b(a) {\n try {\n return !!eval(a);\n } catch (h) {\n return !1;\n }\n }\n var c = \"es3\", d = {es3:!1}, e = !1, f = goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : \"\";\n a(\"es5\", function() {\n return b(\"[1,].length==1\");\n });\n a(\"es6\", function() {\n return f.match(/Edge\\/(\\d+)(\\.\\d)*/i) ? !1 : b('(()=>{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()');\n });\n a(\"es7\", function() {\n return b(\"2 ** 2 == 4\");\n });\n a(\"es8\", function() {\n return b(\"async () => 1, true\");\n });\n a(\"es9\", function() {\n return b(\"({...rest} = {}), true\");\n });\n a(\"es_next\", function() {\n return !1;\n });\n return {target:c, map:d};\n}, goog.Transpiler.prototype.needsTranspile = function(a, b) {\n if (\"always\" == goog.TRANSPILE) {\n return !0;\n }\n if (\"never\" == goog.TRANSPILE) {\n return !1;\n }\n if (!this.requiresTranspilation_) {\n var c = this.createRequiresTranspilation_();\n this.requiresTranspilation_ = c.map;\n this.transpilationTarget_ = this.transpilationTarget_ || c.target;\n }\n if (a in this.requiresTranspilation_) {\n return this.requiresTranspilation_[a] ? !0 : !goog.inHtmlDocument_() || \"es6\" != b || \"noModule\" in goog.global.document.createElement(\"script\") ? !1 : !0;\n }\n throw Error(\"Unknown language mode: \" + a);\n}, goog.Transpiler.prototype.transpile = function(a, b) {\n return goog.transpile_(a, b, this.transpilationTarget_);\n}, goog.transpiler_ = new goog.Transpiler, goog.protectScriptTag_ = function(a) {\n return a.replace(/<\\/(SCRIPT)/ig, \"\\\\x3c/$1\");\n}, goog.DebugLoader_ = function() {\n this.dependencies_ = {};\n this.idToPath_ = {};\n this.written_ = {};\n this.loadingDeps_ = [];\n this.depsToLoad_ = [];\n this.paused_ = !1;\n this.factory_ = new goog.DependencyFactory(goog.transpiler_);\n this.deferredCallbacks_ = {};\n this.deferredQueue_ = [];\n}, goog.DebugLoader_.prototype.bootstrap = function(a, b) {\n function c() {\n d && (goog.global.setTimeout(d, 0), d = null);\n }\n var d = b;\n if (a.length) {\n for (var e = [], f = 0; f < a.length; f++) {\n var g = this.getPathFromDeps_(a[f]);\n if (!g) {\n throw Error(\"Unregonized namespace: \" + a[f]);\n }\n e.push(this.dependencies_[g]);\n }\n g = goog.require;\n var h = 0;\n for (f = 0; f < a.length; f++) {\n g(a[f]), e[f].onLoad(function() {\n ++h == a.length && c();\n });\n }\n } else {\n c();\n }\n}, goog.DebugLoader_.prototype.loadClosureDeps = function() {\n this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + \"deps.js\"), \"deps.js\", [], [], {}, !1));\n this.loadDeps_();\n}, goog.DebugLoader_.prototype.requested = function(a, b) {\n var c = this.getPathFromDeps_(a);\n if (c && (b || this.areDepsLoaded_(this.dependencies_[c].requires))) {\n var d = this.deferredCallbacks_[c];\n d && (delete this.deferredCallbacks_[c], d());\n }\n}, goog.DebugLoader_.prototype.setDependencyFactory = function(a) {\n this.factory_ = a;\n}, goog.DebugLoader_.prototype.load_ = function(a) {\n if (this.getPathFromDeps_(a)) {\n var b = this, c = [], d = function(a) {\n var e = b.getPathFromDeps_(a);\n if (!e) {\n throw Error(\"Bad dependency path or symbol: \" + a);\n }\n if (!b.written_[e]) {\n b.written_[e] = !0;\n a = b.dependencies_[e];\n for (e = 0; e < a.requires.length; e++) {\n goog.isProvided_(a.requires[e]) || d(a.requires[e]);\n }\n c.push(a);\n }\n };\n d(a);\n a = !!this.depsToLoad_.length;\n this.depsToLoad_ = this.depsToLoad_.concat(c);\n this.paused_ || a || this.loadDeps_();\n } else {\n throw a = \"goog.require could not find: \" + a, goog.logToConsole_(a), Error(a);\n }\n}, goog.DebugLoader_.prototype.loadDeps_ = function() {\n for (var a = this, b = this.paused_; this.depsToLoad_.length && !b;) {\n (function() {\n var c = !1, d = a.depsToLoad_.shift(), e = !1;\n a.loading_(d);\n var f = {pause:function() {\n if (c) {\n throw Error(\"Cannot call pause after the call to load.\");\n }\n b = !0;\n }, resume:function() {\n c ? a.resume_() : b = !1;\n }, loaded:function() {\n if (e) {\n throw Error(\"Double call to loaded.\");\n }\n e = !0;\n a.loaded_(d);\n }, pending:function() {\n for (var b = [], c = 0; c < a.loadingDeps_.length; c++) {\n b.push(a.loadingDeps_[c]);\n }\n return b;\n }, setModuleState:function(a) {\n goog.moduleLoaderState_ = {type:a, moduleName:\"\", declareLegacyNamespace:!1};\n }, registerEs6ModuleExports:function(a, b, c) {\n c && (goog.loadedModules_[c] = {exports:b, type:goog.ModuleType.ES6, moduleId:c || \"\"});\n }, registerGoogModuleExports:function(a, b) {\n goog.loadedModules_[a] = {exports:b, type:goog.ModuleType.GOOG, moduleId:a};\n }, clearModuleState:function() {\n goog.moduleLoaderState_ = null;\n }, defer:function(b) {\n if (c) {\n throw Error(\"Cannot register with defer after the call to load.\");\n }\n a.defer_(d, b);\n }, areDepsLoaded:function() {\n return a.areDepsLoaded_(d.requires);\n }};\n try {\n d.load(f);\n } finally {\n c = !0;\n }\n })();\n }\n b && this.pause_();\n}, goog.DebugLoader_.prototype.pause_ = function() {\n this.paused_ = !0;\n}, goog.DebugLoader_.prototype.resume_ = function() {\n this.paused_ && (this.paused_ = !1, this.loadDeps_());\n}, goog.DebugLoader_.prototype.loading_ = function(a) {\n this.loadingDeps_.push(a);\n}, goog.DebugLoader_.prototype.loaded_ = function(a) {\n for (var b = 0; b < this.loadingDeps_.length; b++) {\n if (this.loadingDeps_[b] == a) {\n this.loadingDeps_.splice(b, 1);\n break;\n }\n }\n for (b = 0; b < this.deferredQueue_.length; b++) {\n if (this.deferredQueue_[b] == a.path) {\n this.deferredQueue_.splice(b, 1);\n break;\n }\n }\n if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) {\n for (; this.deferredQueue_.length;) {\n this.requested(this.deferredQueue_.shift(), !0);\n }\n }\n a.loaded();\n}, goog.DebugLoader_.prototype.areDepsLoaded_ = function(a) {\n for (var b = 0; b < a.length; b++) {\n var c = this.getPathFromDeps_(a[b]);\n if (!c || !(c in this.deferredCallbacks_ || goog.isProvided_(a[b]))) {\n return !1;\n }\n }\n return !0;\n}, goog.DebugLoader_.prototype.getPathFromDeps_ = function(a) {\n return a in this.idToPath_ ? this.idToPath_[a] : a in this.dependencies_ ? a : null;\n}, goog.DebugLoader_.prototype.defer_ = function(a, b) {\n this.deferredCallbacks_[a.path] = b;\n this.deferredQueue_.push(a.path);\n}, goog.LoadController = function() {\n}, goog.LoadController.prototype.pause = function() {\n}, goog.LoadController.prototype.resume = function() {\n}, goog.LoadController.prototype.loaded = function() {\n}, goog.LoadController.prototype.pending = function() {\n}, goog.LoadController.prototype.registerEs6ModuleExports = function(a, b, c) {\n}, goog.LoadController.prototype.setModuleState = function(a) {\n}, goog.LoadController.prototype.clearModuleState = function() {\n}, goog.LoadController.prototype.defer = function(a) {\n}, goog.LoadController.prototype.areDepsLoaded = function() {\n}, goog.Dependency = function(a, b, c, d, e) {\n this.path = a;\n this.relativePath = b;\n this.provides = c;\n this.requires = d;\n this.loadFlags = e;\n this.loaded_ = !1;\n this.loadCallbacks_ = [];\n}, goog.Dependency.prototype.getPathName = function() {\n var a = this.path, b = a.indexOf(\"://\");\n 0 <= b && (a = a.substring(b + 3), b = a.indexOf(\"/\"), 0 <= b && (a = a.substring(b + 1)));\n return a;\n}, goog.Dependency.prototype.onLoad = function(a) {\n this.loaded_ ? a() : this.loadCallbacks_.push(a);\n}, goog.Dependency.prototype.loaded = function() {\n this.loaded_ = !0;\n var a = this.loadCallbacks_;\n this.loadCallbacks_ = [];\n for (var b = 0; b < a.length; b++) {\n a[b]();\n }\n}, goog.Dependency.defer_ = !1, goog.Dependency.callbackMap_ = {}, goog.Dependency.registerCallback_ = function(a) {\n var b = Math.random().toString(32);\n goog.Dependency.callbackMap_[b] = a;\n return b;\n}, goog.Dependency.unregisterCallback_ = function(a) {\n delete goog.Dependency.callbackMap_[a];\n}, goog.Dependency.callback_ = function(a, b) {\n if (a in goog.Dependency.callbackMap_) {\n for (var c = goog.Dependency.callbackMap_[a], d = [], e = 1; e < arguments.length; e++) {\n d.push(arguments[e]);\n }\n c.apply(void 0, d);\n } else {\n throw Error(\"Callback key \" + a + \" does not exist (was base.js loaded more than once?).\");\n }\n}, goog.Dependency.prototype.load = function(a) {\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();\n } else {\n if (goog.inHtmlDocument_()) {\n var b = goog.global.document;\n if (\"complete\" == b.readyState && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) {\n if (/\\bdeps.js$/.test(this.path)) {\n a.loaded();\n return;\n }\n throw Error('Cannot write \"' + this.path + '\" after document load');\n }\n if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) {\n var c = goog.Dependency.registerCallback_(function(b) {\n goog.DebugLoader_.IS_OLD_IE_ && \"complete\" != b.readyState || (goog.Dependency.unregisterCallback_(c), a.loaded());\n }), d = !goog.DebugLoader_.IS_OLD_IE_ && goog.getScriptNonce() ? ' nonce=\"' + goog.getScriptNonce() + '\"' : \"\";\n d = '<script src=\"' + this.path + '\" ' + (goog.DebugLoader_.IS_OLD_IE_ ? \"onreadystatechange\" : \"onload\") + \"=\\\"goog.Dependency.callback_('\" + c + '\\', this)\" type=\"text/javascript\" ' + (goog.Dependency.defer_ ? \"defer\" : \"\") + d + \">\\x3c/script>\";\n b.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);\n } else {\n var e = b.createElement(\"script\");\n e.defer = goog.Dependency.defer_;\n e.async = !1;\n e.type = \"text/javascript\";\n (d = goog.getScriptNonce()) && e.setAttribute(\"nonce\", d);\n goog.DebugLoader_.IS_OLD_IE_ ? (a.pause(), e.onreadystatechange = function() {\n if (\"loaded\" == e.readyState || \"complete\" == e.readyState) {\n a.loaded(), a.resume();\n }\n }) : e.onload = function() {\n e.onload = null;\n a.loaded();\n };\n e.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path) : this.path;\n b.head.appendChild(e);\n }\n } else {\n goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"), \"deps.js\" == this.relativePath ? (goog.logToConsole_(\"Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true.\"), a.loaded()) : a.pause();\n }\n }\n}, goog.Es6ModuleDependency = function(a, b, c, d, e) {\n goog.Dependency.call(this, a, b, c, d, e);\n}, goog.inherits(goog.Es6ModuleDependency, goog.Dependency), goog.Es6ModuleDependency.prototype.load = function(a) {\n function b(a, b) {\n var c = b ? '<script type=\"module\" crossorigin>' + b + \"\\x3c/script>\" : '<script type=\"module\" crossorigin src=\"' + a + '\">\\x3c/script>';\n d.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(c) : c);\n }\n function c(a, b) {\n var c = d.createElement(\"script\");\n c.defer = !0;\n c.async = !1;\n c.type = \"module\";\n c.setAttribute(\"crossorigin\", !0);\n var e = goog.getScriptNonce();\n e && c.setAttribute(\"nonce\", e);\n b ? c.textContent = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScript(b) : b : c.src = goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createScriptURL(a) : a;\n d.head.appendChild(c);\n }\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause();\n } else {\n if (goog.inHtmlDocument_()) {\n var d = goog.global.document, e = this;\n if (goog.isDocumentLoading_()) {\n var f = b;\n goog.Dependency.defer_ = !0;\n } else {\n f = c;\n }\n var g = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(g);\n a.setModuleState(goog.ModuleType.ES6);\n });\n f(void 0, 'goog.Dependency.callback_(\"' + g + '\")');\n f(this.path, void 0);\n var h = goog.Dependency.registerCallback_(function(b) {\n goog.Dependency.unregisterCallback_(h);\n a.registerEs6ModuleExports(e.path, b, goog.moduleLoaderState_.moduleName);\n });\n f(void 0, 'import * as m from \"' + this.path + '\"; goog.Dependency.callback_(\"' + h + '\", m)');\n var k = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(k);\n a.clearModuleState();\n a.loaded();\n });\n f(void 0, 'goog.Dependency.callback_(\"' + k + '\")');\n } else {\n goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"), a.pause();\n }\n }\n}, goog.TransformedDependency = function(a, b, c, d, e) {\n goog.Dependency.call(this, a, b, c, d, e);\n this.contents_ = null;\n this.lazyFetch_ = !goog.inHtmlDocument_() || !(\"noModule\" in goog.global.document.createElement(\"script\"));\n}, goog.inherits(goog.TransformedDependency, goog.Dependency), goog.TransformedDependency.prototype.load = function(a) {\n function b() {\n e.contents_ = goog.loadFileSync_(e.path);\n e.contents_ && (e.contents_ = e.transform(e.contents_), e.contents_ && (e.contents_ += \"\\n//# sourceURL=\" + e.path));\n }\n function c() {\n e.lazyFetch_ && b();\n if (e.contents_) {\n f && a.setModuleState(goog.ModuleType.ES6);\n try {\n var c = e.contents_;\n e.contents_ = null;\n goog.globalEval(c);\n if (f) {\n var d = goog.moduleLoaderState_.moduleName;\n }\n } finally {\n f && a.clearModuleState();\n }\n f && goog.global.$jscomp.require.ensure([e.getPathName()], function() {\n a.registerEs6ModuleExports(e.path, goog.global.$jscomp.require(e.getPathName()), d);\n });\n a.loaded();\n }\n }\n function d() {\n var a = goog.global.document, b = goog.Dependency.registerCallback_(function() {\n goog.Dependency.unregisterCallback_(b);\n c();\n }), d = '<script type=\"text/javascript\">' + goog.protectScriptTag_('goog.Dependency.callback_(\"' + b + '\");') + \"\\x3c/script>\";\n a.write(goog.TRUSTED_TYPES_POLICY_ ? goog.TRUSTED_TYPES_POLICY_.createHTML(d) : d);\n }\n var e = this;\n if (goog.global.CLOSURE_IMPORT_SCRIPT) {\n b(), this.contents_ && goog.global.CLOSURE_IMPORT_SCRIPT(\"\", this.contents_) ? (this.contents_ = null, a.loaded()) : a.pause();\n } else {\n var f = this.loadFlags.module == goog.ModuleType.ES6;\n this.lazyFetch_ || b();\n var g = 1 < a.pending().length, h = g && goog.DebugLoader_.IS_OLD_IE_;\n g = goog.Dependency.defer_ && (g || goog.isDocumentLoading_());\n if (h || g) {\n a.defer(function() {\n c();\n });\n } else {\n var k = goog.global.document;\n h = goog.inHtmlDocument_() && \"ActiveXObject\" in goog.global;\n if (f && goog.inHtmlDocument_() && goog.isDocumentLoading_() && !h) {\n goog.Dependency.defer_ = !0;\n a.pause();\n var l = k.onreadystatechange;\n k.onreadystatechange = function() {\n \"interactive\" == k.readyState && (k.onreadystatechange = l, c(), a.resume());\n goog.isFunction(l) && l.apply(void 0, arguments);\n };\n } else {\n !goog.DebugLoader_.IS_OLD_IE_ && goog.inHtmlDocument_() && goog.isDocumentLoading_() ? d() : c();\n }\n }\n }\n}, goog.TransformedDependency.prototype.transform = function(a) {\n}, goog.TranspiledDependency = function(a, b, c, d, e, f) {\n goog.TransformedDependency.call(this, a, b, c, d, e);\n this.transpiler = f;\n}, goog.inherits(goog.TranspiledDependency, goog.TransformedDependency), goog.TranspiledDependency.prototype.transform = function(a) {\n return this.transpiler.transpile(a, this.getPathName());\n}, goog.PreTranspiledEs6ModuleDependency = function(a, b, c, d, e) {\n goog.TransformedDependency.call(this, a, b, c, d, e);\n}, goog.inherits(goog.PreTranspiledEs6ModuleDependency, goog.TransformedDependency), goog.PreTranspiledEs6ModuleDependency.prototype.transform = function(a) {\n return a;\n}, goog.GoogModuleDependency = function(a, b, c, d, e, f, g) {\n goog.TransformedDependency.call(this, a, b, c, d, e);\n this.needsTranspile_ = f;\n this.transpiler_ = g;\n}, goog.inherits(goog.GoogModuleDependency, goog.TransformedDependency), goog.GoogModuleDependency.prototype.transform = function(a) {\n this.needsTranspile_ && (a = this.transpiler_.transpile(a, this.getPathName()));\n return goog.LOAD_MODULE_USING_EVAL && void 0 !== goog.global.JSON ? \"goog.loadModule(\" + goog.global.JSON.stringify(a + \"\\n//# sourceURL=\" + this.path + \"\\n\") + \");\" : 'goog.loadModule(function(exports) {\"use strict\";' + a + \"\\n;return exports});\\n//# sourceURL=\" + this.path + \"\\n\";\n}, goog.DebugLoader_.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.DebugLoader_.prototype.addDependency = function(a, b, c, d) {\n b = b || [];\n a = a.replace(/\\\\/g, \"/\");\n var e = goog.normalizePath_(goog.basePath + a);\n d && \"boolean\" !== typeof d || (d = d ? {module:goog.ModuleType.GOOG} : {});\n c = this.factory_.createDependency(e, a, b, c, d, goog.transpiler_.needsTranspile(d.lang || \"es3\", d.module));\n this.dependencies_[e] = c;\n for (c = 0; c < b.length; c++) {\n this.idToPath_[b[c]] = e;\n }\n this.idToPath_[a] = e;\n}, goog.DependencyFactory = function(a) {\n this.transpiler = a;\n}, goog.DependencyFactory.prototype.createDependency = function(a, b, c, d, e, f) {\n return e.module == goog.ModuleType.GOOG ? new goog.GoogModuleDependency(a, b, c, d, e, f, this.transpiler) : f ? new goog.TranspiledDependency(a, b, c, d, e, this.transpiler) : e.module == goog.ModuleType.ES6 ? \"never\" == goog.TRANSPILE && goog.ASSUME_ES_MODULES_TRANSPILED ? new goog.PreTranspiledEs6ModuleDependency(a, b, c, d, e) : new goog.Es6ModuleDependency(a, b, c, d, e) : new goog.Dependency(a, b, c, d, e);\n}, goog.debugLoader_ = new goog.DebugLoader_, goog.loadClosureDeps = function() {\n goog.debugLoader_.loadClosureDeps();\n}, goog.setDependencyFactory = function(a) {\n goog.debugLoader_.setDependencyFactory(a);\n}, goog.global.CLOSURE_NO_DEPS || goog.debugLoader_.loadClosureDeps(), goog.bootstrap = function(a, b) {\n goog.debugLoader_.bootstrap(a, b);\n});\ngoog.TRUSTED_TYPES_POLICY_NAME = \"\";\ngoog.identity_ = function(a) {\n return a;\n};\ngoog.createTrustedTypesPolicy = function(a) {\n var b = null, c = goog.global.trustedTypes || goog.global.TrustedTypes;\n if (!c || !c.createPolicy) {\n return b;\n }\n try {\n b = c.createPolicy(a, {createHTML:goog.identity_, createScript:goog.identity_, createScriptURL:goog.identity_, createURL:goog.identity_});\n } catch (d) {\n goog.logToConsole_(d.message);\n }\n return b;\n};\ngoog.TRUSTED_TYPES_POLICY_ = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + \"#base\") : null;\ngoog.string = {};\ngoog.string.StringBuffer = function(a, b) {\n null != a && this.append.apply(this, arguments);\n};\ngoog.string.StringBuffer.prototype.buffer_ = \"\";\ngoog.string.StringBuffer.prototype.set = function(a) {\n this.buffer_ = \"\" + a;\n};\ngoog.string.StringBuffer.prototype.append = function(a, b, c) {\n this.buffer_ += String(a);\n if (null != b) {\n for (var d = 1; d < arguments.length; d++) {\n this.buffer_ += arguments[d];\n }\n }\n return this;\n};\ngoog.string.StringBuffer.prototype.clear = function() {\n this.buffer_ = \"\";\n};\ngoog.string.StringBuffer.prototype.getLength = function() {\n return this.buffer_.length;\n};\ngoog.string.StringBuffer.prototype.toString = function() {\n return this.buffer_;\n};\ngoog.debug = {};\ngoog.debug.Error = function(a) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, goog.debug.Error);\n } else {\n var b = Error().stack;\n b && (this.stack = b);\n }\n a && (this.message = String(a));\n this.reportErrorToServer = !0;\n};\ngoog.inherits(goog.debug.Error, Error);\ngoog.debug.Error.prototype.name = \"CustomError\";\ngoog.dom = {};\ngoog.dom.NodeType = {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12};\ngoog.asserts = {};\ngoog.asserts.ENABLE_ASSERTS = goog.DEBUG;\ngoog.asserts.AssertionError = function(a, b) {\n goog.debug.Error.call(this, goog.asserts.subs_(a, b));\n this.messagePattern = a;\n};\ngoog.inherits(goog.asserts.AssertionError, goog.debug.Error);\ngoog.asserts.AssertionError.prototype.name = \"AssertionError\";\ngoog.asserts.DEFAULT_ERROR_HANDLER = function(a) {\n throw a;\n};\ngoog.asserts.errorHandler_ = goog.asserts.DEFAULT_ERROR_HANDLER;\ngoog.asserts.subs_ = function(a, b) {\n for (var c = a.split(\"%s\"), d = \"\", e = c.length - 1, f = 0; f < e; f++) {\n d += c[f] + (f < b.length ? b[f] : \"%s\");\n }\n return d + c[e];\n};\ngoog.asserts.doAssertFailure_ = function(a, b, c, d) {\n var e = \"Assertion failed\";\n if (c) {\n e += \": \" + c;\n var f = d;\n } else {\n a && (e += \": \" + a, f = b);\n }\n a = new goog.asserts.AssertionError(\"\" + e, f || []);\n goog.asserts.errorHandler_(a);\n};\ngoog.asserts.setErrorHandler = function(a) {\n goog.asserts.ENABLE_ASSERTS && (goog.asserts.errorHandler_ = a);\n};\ngoog.asserts.assert = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && !a && goog.asserts.doAssertFailure_(\"\", null, b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertExists = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && null == a && goog.asserts.doAssertFailure_(\"Expected to exist: %s.\", [a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.fail = function(a, b) {\n goog.asserts.ENABLE_ASSERTS && goog.asserts.errorHandler_(new goog.asserts.AssertionError(\"Failure\" + (a ? \": \" + a : \"\"), Array.prototype.slice.call(arguments, 1)));\n};\ngoog.asserts.assertNumber = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && \"number\" !== typeof a && goog.asserts.doAssertFailure_(\"Expected number but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertString = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && \"string\" !== typeof a && goog.asserts.doAssertFailure_(\"Expected string but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertFunction = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && !goog.isFunction(a) && goog.asserts.doAssertFailure_(\"Expected function but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertObject = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && !goog.isObject(a) && goog.asserts.doAssertFailure_(\"Expected object but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertArray = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && !goog.isArray(a) && goog.asserts.doAssertFailure_(\"Expected array but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertBoolean = function(a, b, c) {\n goog.asserts.ENABLE_ASSERTS && \"boolean\" !== typeof a && goog.asserts.doAssertFailure_(\"Expected boolean but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertElement = function(a, b, c) {\n !goog.asserts.ENABLE_ASSERTS || goog.isObject(a) && a.nodeType == goog.dom.NodeType.ELEMENT || goog.asserts.doAssertFailure_(\"Expected Element but got %s: %s.\", [goog.typeOf(a), a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertInstanceof = function(a, b, c, d) {\n !goog.asserts.ENABLE_ASSERTS || a instanceof b || goog.asserts.doAssertFailure_(\"Expected instanceof %s but got %s.\", [goog.asserts.getType_(b), goog.asserts.getType_(a)], c, Array.prototype.slice.call(arguments, 3));\n return a;\n};\ngoog.asserts.assertFinite = function(a, b, c) {\n !goog.asserts.ENABLE_ASSERTS || \"number\" == typeof a && isFinite(a) || goog.asserts.doAssertFailure_(\"Expected %s to be a finite number but it is not.\", [a], b, Array.prototype.slice.call(arguments, 2));\n return a;\n};\ngoog.asserts.assertObjectPrototypeIsIntact = function() {\n for (var a in Object.prototype) {\n goog.asserts.fail(a + \" should not be enumerable in Object.prototype.\");\n }\n};\ngoog.asserts.getType_ = function(a) {\n return a instanceof Function ? a.displayName || a.name || \"unknown type name\" : a instanceof Object ? a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a) : null === a ? \"null\" : typeof a;\n};\ngoog.array = {};\ngoog.NATIVE_ARRAY_PROTOTYPES = goog.TRUSTED_SITE;\ngoog.array.ASSUME_NATIVE_FUNCTIONS = 2012 < goog.FEATURESET_YEAR;\ngoog.array.peek = function(a) {\n return a[a.length - 1];\n};\ngoog.array.last = goog.array.peek;\ngoog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.indexOf) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.indexOf.call(a, b, c);\n} : function(a, b, c) {\n c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;\n if (\"string\" === typeof a) {\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.indexOf(b, c);\n }\n for (; c < a.length; c++) {\n if (c in a && a[c] === b) {\n return c;\n }\n }\n return -1;\n};\ngoog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.lastIndexOf) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.lastIndexOf.call(a, b, null == c ? a.length - 1 : c);\n} : function(a, b, c) {\n c = null == c ? a.length - 1 : c;\n 0 > c && (c = Math.max(0, a.length + c));\n if (\"string\" === typeof a) {\n return \"string\" !== typeof b || 1 != b.length ? -1 : a.lastIndexOf(b, c);\n }\n for (; 0 <= c; c--) {\n if (c in a && a[c] === b) {\n return c;\n }\n }\n return -1;\n};\ngoog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.forEach) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n Array.prototype.forEach.call(a, b, c);\n} : function(a, b, c) {\n for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++) {\n f in e && b.call(c, e[f], f, a);\n }\n};\ngoog.array.forEachRight = function(a, b, c) {\n var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a;\n for (--d; 0 <= d; --d) {\n d in e && b.call(c, e[d], d, a);\n }\n};\ngoog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.filter) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.filter.call(a, b, c);\n} : function(a, b, c) {\n for (var d = a.length, e = [], f = 0, g = \"string\" === typeof a ? a.split(\"\") : a, h = 0; h < d; h++) {\n if (h in g) {\n var k = g[h];\n b.call(c, k, h, a) && (e[f++] = k);\n }\n }\n return e;\n};\ngoog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.map) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.map.call(a, b, c);\n} : function(a, b, c) {\n for (var d = a.length, e = Array(d), f = \"string\" === typeof a ? a.split(\"\") : a, g = 0; g < d; g++) {\n g in f && (e[g] = b.call(c, f[g], g, a));\n }\n return e;\n};\ngoog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function(a, b, c, d) {\n goog.asserts.assert(null != a.length);\n d && (b = goog.bind(b, d));\n return Array.prototype.reduce.call(a, b, c);\n} : function(a, b, c, d) {\n var e = c;\n goog.array.forEach(a, function(c, g) {\n e = b.call(d, e, c, g, a);\n });\n return e;\n};\ngoog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function(a, b, c, d) {\n goog.asserts.assert(null != a.length);\n goog.asserts.assert(null != b);\n d && (b = goog.bind(b, d));\n return Array.prototype.reduceRight.call(a, b, c);\n} : function(a, b, c, d) {\n var e = c;\n goog.array.forEachRight(a, function(c, g) {\n e = b.call(d, e, c, g, a);\n });\n return e;\n};\ngoog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.some) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.some.call(a, b, c);\n} : function(a, b, c) {\n for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++) {\n if (f in e && b.call(c, e[f], f, a)) {\n return !0;\n }\n }\n return !1;\n};\ngoog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && (goog.array.ASSUME_NATIVE_FUNCTIONS || Array.prototype.every) ? function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.every.call(a, b, c);\n} : function(a, b, c) {\n for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++) {\n if (f in e && !b.call(c, e[f], f, a)) {\n return !1;\n }\n }\n return !0;\n};\ngoog.array.count = function(a, b, c) {\n var d = 0;\n goog.array.forEach(a, function(a, f, g) {\n b.call(c, a, f, g) && ++d;\n }, c);\n return d;\n};\ngoog.array.find = function(a, b, c) {\n b = goog.array.findIndex(a, b, c);\n return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b];\n};\ngoog.array.findIndex = function(a, b, c) {\n for (var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a, f = 0; f < d; f++) {\n if (f in e && b.call(c, e[f], f, a)) {\n return f;\n }\n }\n return -1;\n};\ngoog.array.findRight = function(a, b, c) {\n b = goog.array.findIndexRight(a, b, c);\n return 0 > b ? null : \"string\" === typeof a ? a.charAt(b) : a[b];\n};\ngoog.array.findIndexRight = function(a, b, c) {\n var d = a.length, e = \"string\" === typeof a ? a.split(\"\") : a;\n for (--d; 0 <= d; d--) {\n if (d in e && b.call(c, e[d], d, a)) {\n return d;\n }\n }\n return -1;\n};\ngoog.array.contains = function(a, b) {\n return 0 <= goog.array.indexOf(a, b);\n};\ngoog.array.isEmpty = function(a) {\n return 0 == a.length;\n};\ngoog.array.clear = function(a) {\n if (!goog.isArray(a)) {\n for (var b = a.length - 1; 0 <= b; b--) {\n delete a[b];\n }\n }\n a.length = 0;\n};\ngoog.array.insert = function(a, b) {\n goog.array.contains(a, b) || a.push(b);\n};\ngoog.array.insertAt = function(a, b, c) {\n goog.array.splice(a, c, 0, b);\n};\ngoog.array.insertArrayAt = function(a, b, c) {\n goog.partial(goog.array.splice, a, c, 0).apply(null, b);\n};\ngoog.array.insertBefore = function(a, b, c) {\n var d;\n 2 == arguments.length || 0 > (d = goog.array.indexOf(a, c)) ? a.push(b) : goog.array.insertAt(a, b, d);\n};\ngoog.array.remove = function(a, b) {\n var c = goog.array.indexOf(a, b), d;\n (d = 0 <= c) && goog.array.removeAt(a, c);\n return d;\n};\ngoog.array.removeLast = function(a, b) {\n var c = goog.array.lastIndexOf(a, b);\n return 0 <= c ? (goog.array.removeAt(a, c), !0) : !1;\n};\ngoog.array.removeAt = function(a, b) {\n goog.asserts.assert(null != a.length);\n return 1 == Array.prototype.splice.call(a, b, 1).length;\n};\ngoog.array.removeIf = function(a, b, c) {\n b = goog.array.findIndex(a, b, c);\n return 0 <= b ? (goog.array.removeAt(a, b), !0) : !1;\n};\ngoog.array.removeAllIf = function(a, b, c) {\n var d = 0;\n goog.array.forEachRight(a, function(e, f) {\n b.call(c, e, f, a) && goog.array.removeAt(a, f) && d++;\n });\n return d;\n};\ngoog.array.concat = function(a) {\n return Array.prototype.concat.apply([], arguments);\n};\ngoog.array.join = function(a) {\n return Array.prototype.concat.apply([], arguments);\n};\ngoog.array.toArray = function(a) {\n var b = a.length;\n if (0 < b) {\n for (var c = Array(b), d = 0; d < b; d++) {\n c[d] = a[d];\n }\n return c;\n }\n return [];\n};\ngoog.array.clone = goog.array.toArray;\ngoog.array.extend = function(a, b) {\n for (var c = 1; c < arguments.length; c++) {\n var d = arguments[c];\n if (goog.isArrayLike(d)) {\n var e = a.length || 0, f = d.length || 0;\n a.length = e + f;\n for (var g = 0; g < f; g++) {\n a[e + g] = d[g];\n }\n } else {\n a.push(d);\n }\n }\n};\ngoog.array.splice = function(a, b, c, d) {\n goog.asserts.assert(null != a.length);\n return Array.prototype.splice.apply(a, goog.array.slice(arguments, 1));\n};\ngoog.array.slice = function(a, b, c) {\n goog.asserts.assert(null != a.length);\n return 2 >= arguments.length ? Array.prototype.slice.call(a, b) : Array.prototype.slice.call(a, b, c);\n};\ngoog.array.removeDuplicates = function(a, b, c) {\n b = b || a;\n var d = function(a) {\n return goog.isObject(a) ? \"o\" + goog.getUid(a) : (typeof a).charAt(0) + a;\n };\n c = c || d;\n d = {};\n for (var e = 0, f = 0; f < a.length;) {\n var g = a[f++], h = c(g);\n Object.prototype.hasOwnProperty.call(d, h) || (d[h] = !0, b[e++] = g);\n }\n b.length = e;\n};\ngoog.array.binarySearch = function(a, b, c) {\n return goog.array.binarySearch_(a, c || goog.array.defaultCompare, !1, b);\n};\ngoog.array.binarySelect = function(a, b, c) {\n return goog.array.binarySearch_(a, b, !0, void 0, c);\n};\ngoog.array.binarySearch_ = function(a, b, c, d, e) {\n for (var f = 0, g = a.length, h; f < g;) {\n var k = f + (g - f >>> 1);\n var l = c ? b.call(e, a[k], k, a) : b(d, a[k]);\n 0 < l ? f = k + 1 : (g = k, h = !l);\n }\n return h ? f : -f - 1;\n};\ngoog.array.sort = function(a, b) {\n a.sort(b || goog.array.defaultCompare);\n};\ngoog.array.stableSort = function(a, b) {\n for (var c = Array(a.length), d = 0; d < a.length; d++) {\n c[d] = {index:d, value:a[d]};\n }\n var e = b || goog.array.defaultCompare;\n goog.array.sort(c, function(a, b) {\n return e(a.value, b.value) || a.index - b.index;\n });\n for (d = 0; d < a.length; d++) {\n a[d] = c[d].value;\n }\n};\ngoog.array.sortByKey = function(a, b, c) {\n var d = c || goog.array.defaultCompare;\n goog.array.sort(a, function(a, c) {\n return d(b(a), b(c));\n });\n};\ngoog.array.sortObjectsByKey = function(a, b, c) {\n goog.array.sortByKey(a, function(a) {\n return a[b];\n }, c);\n};\ngoog.array.isSorted = function(a, b, c) {\n b = b || goog.array.defaultCompare;\n for (var d = 1; d < a.length; d++) {\n var e = b(a[d - 1], a[d]);\n if (0 < e || 0 == e && c) {\n return !1;\n }\n }\n return !0;\n};\ngoog.array.equals = function(a, b, c) {\n if (!goog.isArrayLike(a) || !goog.isArrayLike(b) || a.length != b.length) {\n return !1;\n }\n var d = a.length;\n c = c || goog.array.defaultCompareEquality;\n for (var e = 0; e < d; e++) {\n if (!c(a[e], b[e])) {\n return !1;\n }\n }\n return !0;\n};\ngoog.array.compare3 = function(a, b, c) {\n c = c || goog.array.defaultCompare;\n for (var d = Math.min(a.length, b.length), e = 0; e < d; e++) {\n var f = c(a[e], b[e]);\n if (0 != f) {\n return f;\n }\n }\n return goog.array.defaultCompare(a.length, b.length);\n};\ngoog.array.defaultCompare = function(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n};\ngoog.array.inverseDefaultCompare = function(a, b) {\n return -goog.array.defaultCompare(a, b);\n};\ngoog.array.defaultCompareEquality = function(a, b) {\n return a === b;\n};\ngoog.array.binaryInsert = function(a, b, c) {\n c = goog.array.binarySearch(a, b, c);\n return 0 > c ? (goog.array.insertAt(a, b, -(c + 1)), !0) : !1;\n};\ngoog.array.binaryRemove = function(a, b, c) {\n b = goog.array.binarySearch(a, b, c);\n return 0 <= b ? goog.array.removeAt(a, b) : !1;\n};\ngoog.array.bucket = function(a, b, c) {\n for (var d = {}, e = 0; e < a.length; e++) {\n var f = a[e], g = b.call(c, f, e, a);\n void 0 !== g && (d[g] || (d[g] = [])).push(f);\n }\n return d;\n};\ngoog.array.toObject = function(a, b, c) {\n var d = {};\n goog.array.forEach(a, function(e, f) {\n d[b.call(c, e, f, a)] = e;\n });\n return d;\n};\ngoog.array.range = function(a, b, c) {\n var d = [], e = 0, f = a;\n c = c || 1;\n void 0 !== b && (e = a, f = b);\n if (0 > c * (f - e)) {\n return [];\n }\n if (0 < c) {\n for (a = e; a < f; a += c) {\n d.push(a);\n }\n } else {\n for (a = e; a > f; a += c) {\n d.push(a);\n }\n }\n return d;\n};\ngoog.array.repeat = function(a, b) {\n for (var c = [], d = 0; d < b; d++) {\n c[d] = a;\n }\n return c;\n};\ngoog.array.flatten = function(a) {\n for (var b = [], c = 0; c < arguments.length; c++) {\n var d = arguments[c];\n if (goog.isArray(d)) {\n for (var e = 0; e < d.length; e += 8192) {\n var f = goog.array.slice(d, e, e + 8192);\n f = goog.array.flatten.apply(null, f);\n for (var g = 0; g < f.length; g++) {\n b.push(f[g]);\n }\n }\n } else {\n b.push(d);\n }\n }\n return b;\n};\ngoog.array.rotate = function(a, b) {\n goog.asserts.assert(null != a.length);\n a.length && (b %= a.length, 0 < b ? Array.prototype.unshift.apply(a, a.splice(-b, b)) : 0 > b && Array.prototype.push.apply(a, a.splice(0, -b)));\n return a;\n};\ngoog.array.moveItem = function(a, b, c) {\n goog.asserts.assert(0 <= b && b < a.length);\n goog.asserts.assert(0 <= c && c < a.length);\n b = Array.prototype.splice.call(a, b, 1);\n Array.prototype.splice.call(a, c, 0, b[0]);\n};\ngoog.array.zip = function(a) {\n if (!arguments.length) {\n return [];\n }\n for (var b = [], c = arguments[0].length, d = 1; d < arguments.length; d++) {\n arguments[d].length < c && (c = arguments[d].length);\n }\n for (d = 0; d < c; d++) {\n for (var e = [], f = 0; f < arguments.length; f++) {\n e.push(arguments[f][d]);\n }\n b.push(e);\n }\n return b;\n};\ngoog.array.shuffle = function(a, b) {\n for (var c = b || Math.random, d = a.length - 1; 0 < d; d--) {\n var e = Math.floor(c() * (d + 1)), f = a[d];\n a[d] = a[e];\n a[e] = f;\n }\n};\ngoog.array.copyByIndex = function(a, b) {\n var c = [];\n goog.array.forEach(b, function(b) {\n c.push(a[b]);\n });\n return c;\n};\ngoog.array.concatMap = function(a, b, c) {\n return goog.array.concat.apply([], goog.array.map(a, b, c));\n};\ngoog.object = {};\ngoog.object.is = function(a, b) {\n return a === b ? 0 !== a || 1 / a === 1 / b : a !== a && b !== b;\n};\ngoog.object.forEach = function(a, b, c) {\n for (var d in a) {\n b.call(c, a[d], d, a);\n }\n};\ngoog.object.filter = function(a, b, c) {\n var d = {}, e;\n for (e in a) {\n b.call(c, a[e], e, a) && (d[e] = a[e]);\n }\n return d;\n};\ngoog.object.map = function(a, b, c) {\n var d = {}, e;\n for (e in a) {\n d[e] = b.call(c, a[e], e, a);\n }\n return d;\n};\ngoog.object.some = function(a, b, c) {\n for (var d in a) {\n if (b.call(c, a[d], d, a)) {\n return !0;\n }\n }\n return !1;\n};\ngoog.object.every = function(a, b, c) {\n for (var d in a) {\n if (!b.call(c, a[d], d, a)) {\n return !1;\n }\n }\n return !0;\n};\ngoog.object.getCount = function(a) {\n var b = 0, c;\n for (c in a) {\n b++;\n }\n return b;\n};\ngoog.object.getAnyKey = function(a) {\n for (var b in a) {\n return b;\n }\n};\ngoog.object.getAnyValue = function(a) {\n for (var b in a) {\n return a[b];\n }\n};\ngoog.object.contains = function(a, b) {\n return goog.object.containsValue(a, b);\n};\ngoog.object.getValues = function(a) {\n var b = [], c = 0, d;\n for (d in a) {\n b[c++] = a[d];\n }\n return b;\n};\ngoog.object.getKeys = function(a) {\n var b = [], c = 0, d;\n for (d in a) {\n b[c++] = d;\n }\n return b;\n};\ngoog.object.getValueByKeys = function(a, b) {\n var c = goog.isArrayLike(b), d = c ? b : arguments;\n for (c = c ? 0 : 1; c < d.length; c++) {\n if (null == a) {\n return;\n }\n a = a[d[c]];\n }\n return a;\n};\ngoog.object.containsKey = function(a, b) {\n return null !== a && b in a;\n};\ngoog.object.containsValue = function(a, b) {\n for (var c in a) {\n if (a[c] == b) {\n return !0;\n }\n }\n return !1;\n};\ngoog.object.findKey = function(a, b, c) {\n for (var d in a) {\n if (b.call(c, a[d], d, a)) {\n return d;\n }\n }\n};\ngoog.object.findValue = function(a, b, c) {\n return (b = goog.object.findKey(a, b, c)) && a[b];\n};\ngoog.object.isEmpty = function(a) {\n for (var b in a) {\n return !1;\n }\n return !0;\n};\ngoog.object.clear = function(a) {\n for (var b in a) {\n delete a[b];\n }\n};\ngoog.object.remove = function(a, b) {\n var c;\n (c = b in a) && delete a[b];\n return c;\n};\ngoog.object.add = function(a, b, c) {\n if (null !== a && b in a) {\n throw Error('The object already contains the key \"' + b + '\"');\n }\n goog.object.set(a, b, c);\n};\ngoog.object.get = function(a, b, c) {\n return null !== a && b in a ? a[b] : c;\n};\ngoog.object.set = function(a, b, c) {\n a[b] = c;\n};\ngoog.object.setIfUndefined = function(a, b, c) {\n return b in a ? a[b] : a[b] = c;\n};\ngoog.object.setWithReturnValueIfNotSet = function(a, b, c) {\n if (b in a) {\n return a[b];\n }\n c = c();\n return a[b] = c;\n};\ngoog.object.equals = function(a, b) {\n for (var c in a) {\n if (!(c in b) || a[c] !== b[c]) {\n return !1;\n }\n }\n for (var d in b) {\n if (!(d in a)) {\n return !1;\n }\n }\n return !0;\n};\ngoog.object.clone = function(a) {\n var b = {}, c;\n for (c in a) {\n b[c] = a[c];\n }\n return b;\n};\ngoog.object.unsafeClone = function(a) {\n var b = goog.typeOf(a);\n if (\"object\" == b || \"array\" == b) {\n if (goog.isFunction(a.clone)) {\n return a.clone();\n }\n b = \"array\" == b ? [] : {};\n for (var c in a) {\n b[c] = goog.object.unsafeClone(a[c]);\n }\n return b;\n }\n return a;\n};\ngoog.object.transpose = function(a) {\n var b = {}, c;\n for (c in a) {\n b[a[c]] = c;\n }\n return b;\n};\ngoog.object.PROTOTYPE_FIELDS_ = \"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\ngoog.object.extend = function(a, b) {\n for (var c, d, e = 1; e < arguments.length; e++) {\n d = arguments[e];\n for (c in d) {\n a[c] = d[c];\n }\n for (var f = 0; f < goog.object.PROTOTYPE_FIELDS_.length; f++) {\n c = goog.object.PROTOTYPE_FIELDS_[f], Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c]);\n }\n }\n};\ngoog.object.create = function(a) {\n var b = arguments.length;\n if (1 == b && goog.isArray(arguments[0])) {\n return goog.object.create.apply(null, arguments[0]);\n }\n if (b % 2) {\n throw Error(\"Uneven number of arguments\");\n }\n for (var c = {}, d = 0; d < b; d += 2) {\n c[arguments[d]] = arguments[d + 1];\n }\n return c;\n};\ngoog.object.createSet = function(a) {\n var b = arguments.length;\n if (1 == b && goog.isArray(arguments[0])) {\n return goog.object.createSet.apply(null, arguments[0]);\n }\n for (var c = {}, d = 0; d < b; d++) {\n c[arguments[d]] = !0;\n }\n return c;\n};\ngoog.object.createImmutableView = function(a) {\n var b = a;\n Object.isFrozen && !Object.isFrozen(a) && (b = Object.create(a), Object.freeze(b));\n return b;\n};\ngoog.object.isImmutableView = function(a) {\n return !!Object.isFrozen && Object.isFrozen(a);\n};\ngoog.object.getAllPropertyNames = function(a, b, c) {\n if (!a) {\n return [];\n }\n if (!Object.getOwnPropertyNames || !Object.getPrototypeOf) {\n return goog.object.getKeys(a);\n }\n for (var d = {}; a && (a !== Object.prototype || b) && (a !== Function.prototype || c);) {\n for (var e = Object.getOwnPropertyNames(a), f = 0; f < e.length; f++) {\n d[e[f]] = !0;\n }\n a = Object.getPrototypeOf(a);\n }\n return goog.object.getKeys(d);\n};\ngoog.object.getSuperClass = function(a) {\n return (a = Object.getPrototypeOf(a.prototype)) && a.constructor;\n};\ngoog.dom.asserts = {};\ngoog.dom.asserts.assertIsLocation = function(a) {\n if (goog.asserts.ENABLE_ASSERTS) {\n var b = goog.dom.asserts.getWindow_(a);\n b && (!a || !(a instanceof b.Location) && a instanceof b.Element) && goog.asserts.fail(\"Argument is not a Location (or a non-Element mock); got: %s\", goog.dom.asserts.debugStringForType_(a));\n }\n return a;\n};\ngoog.dom.asserts.assertIsElementType_ = function(a, b) {\n if (goog.asserts.ENABLE_ASSERTS) {\n var c = goog.dom.asserts.getWindow_(a);\n c && \"undefined\" != typeof c[b] && (a && (a instanceof c[b] || !(a instanceof c.Location || a instanceof c.Element)) || goog.asserts.fail(\"Argument is not a %s (or a non-Element, non-Location mock); got: %s\", b, goog.dom.asserts.debugStringForType_(a)));\n }\n return a;\n};\ngoog.dom.asserts.assertIsHTMLAnchorElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLAnchorElement\");\n};\ngoog.dom.asserts.assertIsHTMLButtonElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLButtonElement\");\n};\ngoog.dom.asserts.assertIsHTMLLinkElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLLinkElement\");\n};\ngoog.dom.asserts.assertIsHTMLImageElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLImageElement\");\n};\ngoog.dom.asserts.assertIsHTMLAudioElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLAudioElement\");\n};\ngoog.dom.asserts.assertIsHTMLVideoElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLVideoElement\");\n};\ngoog.dom.asserts.assertIsHTMLInputElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLInputElement\");\n};\ngoog.dom.asserts.assertIsHTMLTextAreaElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLTextAreaElement\");\n};\ngoog.dom.asserts.assertIsHTMLCanvasElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLCanvasElement\");\n};\ngoog.dom.asserts.assertIsHTMLEmbedElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLEmbedElement\");\n};\ngoog.dom.asserts.assertIsHTMLFormElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLFormElement\");\n};\ngoog.dom.asserts.assertIsHTMLFrameElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLFrameElement\");\n};\ngoog.dom.asserts.assertIsHTMLIFrameElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLIFrameElement\");\n};\ngoog.dom.asserts.assertIsHTMLObjectElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLObjectElement\");\n};\ngoog.dom.asserts.assertIsHTMLScriptElement = function(a) {\n return goog.dom.asserts.assertIsElementType_(a, \"HTMLScriptElement\");\n};\ngoog.dom.asserts.debugStringForType_ = function(a) {\n if (goog.isObject(a)) {\n try {\n return a.constructor.displayName || a.constructor.name || Object.prototype.toString.call(a);\n } catch (b) {\n return \"<object could not be stringified>\";\n }\n } else {\n return void 0 === a ? \"undefined\" : null === a ? \"null\" : typeof a;\n }\n};\ngoog.dom.asserts.getWindow_ = function(a) {\n try {\n var b = a && a.ownerDocument, c = b && (b.defaultView || b.parentWindow);\n c = c || goog.global;\n if (c.Element && c.Location) {\n return c;\n }\n } catch (d) {\n }\n return null;\n};\ngoog.functions = {};\ngoog.functions.constant = function(a) {\n return function() {\n return a;\n };\n};\ngoog.functions.FALSE = function() {\n return !1;\n};\ngoog.functions.TRUE = function() {\n return !0;\n};\ngoog.functions.NULL = function() {\n return null;\n};\ngoog.functions.identity = function(a, b) {\n return a;\n};\ngoog.functions.error = function(a) {\n return function() {\n throw Error(a);\n };\n};\ngoog.functions.fail = function(a) {\n return function() {\n throw a;\n };\n};\ngoog.functions.lock = function(a, b) {\n b = b || 0;\n return function() {\n return a.apply(this, Array.prototype.slice.call(arguments, 0, b));\n };\n};\ngoog.functions.nth = function(a) {\n return function() {\n return arguments[a];\n };\n};\ngoog.functions.partialRight = function(a, b) {\n var c = Array.prototype.slice.call(arguments, 1);\n return function() {\n var b = Array.prototype.slice.call(arguments);\n b.push.apply(b, c);\n return a.apply(this, b);\n };\n};\ngoog.functions.withReturnValue = function(a, b) {\n return goog.functions.sequence(a, goog.functions.constant(b));\n};\ngoog.functions.equalTo = function(a, b) {\n return function(c) {\n return b ? a == c : a === c;\n };\n};\ngoog.functions.compose = function(a, b) {\n var c = arguments, d = c.length;\n return function() {\n var a;\n d && (a = c[d - 1].apply(this, arguments));\n for (var b = d - 2; 0 <= b; b--) {\n a = c[b].call(this, a);\n }\n return a;\n };\n};\ngoog.functions.sequence = function(a) {\n var b = arguments, c = b.length;\n return function() {\n for (var a, e = 0; e < c; e++) {\n a = b[e].apply(this, arguments);\n }\n return a;\n };\n};\ngoog.functions.and = function(a) {\n var b = arguments, c = b.length;\n return function() {\n for (var a = 0; a < c; a++) {\n if (!b[a].apply(this, arguments)) {\n return !1;\n }\n }\n return !0;\n };\n};\ngoog.functions.or = function(a) {\n var b = arguments, c = b.length;\n return function() {\n for (var a = 0; a < c; a++) {\n if (b[a].apply(this, arguments)) {\n return !0;\n }\n }\n return !1;\n };\n};\ngoog.functions.not = function(a) {\n return function() {\n return !a.apply(this, arguments);\n };\n};\ngoog.functions.create = function(a, b) {\n var c = function() {\n };\n c.prototype = a.prototype;\n c = new c;\n a.apply(c, Array.prototype.slice.call(arguments, 1));\n return c;\n};\ngoog.functions.CACHE_RETURN_VALUE = !0;\ngoog.functions.cacheReturnValue = function(a) {\n var b = !1, c;\n return function() {\n if (!goog.functions.CACHE_RETURN_VALUE) {\n return a();\n }\n b || (c = a(), b = !0);\n return c;\n };\n};\ngoog.functions.once = function(a) {\n var b = a;\n return function() {\n if (b) {\n var a = b;\n b = null;\n a();\n }\n };\n};\ngoog.functions.debounce = function(a, b, c) {\n var d = 0;\n return function(e) {\n goog.global.clearTimeout(d);\n var f = arguments;\n d = goog.global.setTimeout(function() {\n a.apply(c, f);\n }, b);\n };\n};\ngoog.functions.throttle = function(a, b, c) {\n var d = 0, e = !1, f = [], g = function() {\n d = 0;\n e && (e = !1, h());\n }, h = function() {\n d = goog.global.setTimeout(g, b);\n a.apply(c, f);\n };\n return function(a) {\n f = arguments;\n d ? e = !0 : h();\n };\n};\ngoog.functions.rateLimit = function(a, b, c) {\n var d = 0, e = function() {\n d = 0;\n };\n return function(f) {\n d || (d = goog.global.setTimeout(e, b), a.apply(c, arguments));\n };\n};\ngoog.dom.HtmlElement = function() {\n};\ngoog.dom.TagName = function(a) {\n this.tagName_ = a;\n};\ngoog.dom.TagName.prototype.toString = function() {\n return this.tagName_;\n};\ngoog.dom.TagName.A = new goog.dom.TagName(\"A\");\ngoog.dom.TagName.ABBR = new goog.dom.TagName(\"ABBR\");\ngoog.dom.TagName.ACRONYM = new goog.dom.TagName(\"ACRONYM\");\ngoog.dom.TagName.ADDRESS = new goog.dom.TagName(\"ADDRESS\");\ngoog.dom.TagName.APPLET = new goog.dom.TagName(\"APPLET\");\ngoog.dom.TagName.AREA = new goog.dom.TagName(\"AREA\");\ngoog.dom.TagName.ARTICLE = new goog.dom.TagName(\"ARTICLE\");\ngoog.dom.TagName.ASIDE = new goog.dom.TagName(\"ASIDE\");\ngoog.dom.TagName.AUDIO = new goog.dom.TagName(\"AUDIO\");\ngoog.dom.TagName.B = new goog.dom.TagName(\"B\");\ngoog.dom.TagName.BASE = new goog.dom.TagName(\"BASE\");\ngoog.dom.TagName.BASEFONT = new goog.dom.TagName(\"BASEFONT\");\ngoog.dom.TagName.BDI = new goog.dom.TagName(\"BDI\");\ngoog.dom.TagName.BDO = new goog.dom.TagName(\"BDO\");\ngoog.dom.TagName.BIG = new goog.dom.TagName(\"BIG\");\ngoog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName(\"BLOCKQUOTE\");\ngoog.dom.TagName.BODY = new goog.dom.TagName(\"BODY\");\ngoog.dom.TagName.BR = new goog.dom.TagName(\"BR\");\ngoog.dom.TagName.BUTTON = new goog.dom.TagName(\"BUTTON\");\ngoog.dom.TagName.CANVAS = new goog.dom.TagName(\"CANVAS\");\ngoog.dom.TagName.CAPTION = new goog.dom.TagName(\"CAPTION\");\ngoog.dom.TagName.CENTER = new goog.dom.TagName(\"CENTER\");\ngoog.dom.TagName.CITE = new goog.dom.TagName(\"CITE\");\ngoog.dom.TagName.CODE = new goog.dom.TagName(\"CODE\");\ngoog.dom.TagName.COL = new goog.dom.TagName(\"COL\");\ngoog.dom.TagName.COLGROUP = new goog.dom.TagName(\"COLGROUP\");\ngoog.dom.TagName.COMMAND = new goog.dom.TagName(\"COMMAND\");\ngoog.dom.TagName.DATA = new goog.dom.TagName(\"DATA\");\ngoog.dom.TagName.DATALIST = new goog.dom.TagName(\"DATALIST\");\ngoog.dom.TagName.DD = new goog.dom.TagName(\"DD\");\ngoog.dom.TagName.DEL = new goog.dom.TagName(\"DEL\");\ngoog.dom.TagName.DETAILS = new goog.dom.TagName(\"DETAILS\");\ngoog.dom.TagName.DFN = new goog.dom.TagName(\"DFN\");\ngoog.dom.TagName.DIALOG = new goog.dom.TagName(\"DIALOG\");\ngoog.dom.TagName.DIR = new goog.dom.TagName(\"DIR\");\ngoog.dom.TagName.DIV = new goog.dom.TagName(\"DIV\");\ngoog.dom.TagName.DL = new goog.dom.TagName(\"DL\");\ngoog.dom.TagName.DT = new goog.dom.TagName(\"DT\");\ngoog.dom.TagName.EM = new goog.dom.TagName(\"EM\");\ngoog.dom.TagName.EMBED = new goog.dom.TagName(\"EMBED\");\ngoog.dom.TagName.FIELDSET = new goog.dom.TagName(\"FIELDSET\");\ngoog.dom.TagName.FIGCAPTION = new goog.dom.TagName(\"FIGCAPTION\");\ngoog.dom.TagName.FIGURE = new goog.dom.TagName(\"FIGURE\");\ngoog.dom.TagName.FONT = new goog.dom.TagName(\"FONT\");\ngoog.dom.TagName.FOOTER = new goog.dom.TagName(\"FOOTER\");\ngoog.dom.TagName.FORM = new goog.dom.TagName(\"FORM\");\ngoog.dom.TagName.FRAME = new goog.dom.TagName(\"FRAME\");\ngoog.dom.TagName.FRAMESET = new goog.dom.TagName(\"FRAMESET\");\ngoog.dom.TagName.H1 = new goog.dom.TagName(\"H1\");\ngoog.dom.TagName.H2 = new goog.dom.TagName(\"H2\");\ngoog.dom.TagName.H3 = new goog.dom.TagName(\"H3\");\ngoog.dom.TagName.H4 = new goog.dom.TagName(\"H4\");\ngoog.dom.TagName.H5 = new goog.dom.TagName(\"H5\");\ngoog.dom.TagName.H6 = new goog.dom.TagName(\"H6\");\ngoog.dom.TagName.HEAD = new goog.dom.TagName(\"HEAD\");\ngoog.dom.TagName.HEADER = new goog.dom.TagName(\"HEADER\");\ngoog.dom.TagName.HGROUP = new goog.dom.TagName(\"HGROUP\");\ngoog.dom.TagName.HR = new goog.dom.TagName(\"HR\");\ngoog.dom.TagName.HTML = new goog.dom.TagName(\"HTML\");\ngoog.dom.TagName.I = new goog.dom.TagName(\"I\");\ngoog.dom.TagName.IFRAME = new goog.dom.TagName(\"IFRAME\");\ngoog.dom.TagName.IMG = new goog.dom.TagName(\"IMG\");\ngoog.dom.TagName.INPUT = new goog.dom.TagName(\"INPUT\");\ngoog.dom.TagName.INS = new goog.dom.TagName(\"INS\");\ngoog.dom.TagName.ISINDEX = new goog.dom.TagName(\"ISINDEX\");\ngoog.dom.TagName.KBD = new goog.dom.TagName(\"KBD\");\ngoog.dom.TagName.KEYGEN = new goog.dom.TagName(\"KEYGEN\");\ngoog.dom.TagName.LABEL = new goog.dom.TagName(\"LABEL\");\ngoog.dom.TagName.LEGEND = new goog.dom.TagName(\"LEGEND\");\ngoog.dom.TagName.LI = new goog.dom.TagName(\"LI\");\ngoog.dom.TagName.LINK = new goog.dom.TagName(\"LINK\");\ngoog.dom.TagName.MAIN = new goog.dom.TagName(\"MAIN\");\ngoog.dom.TagName.MAP = new goog.dom.TagName(\"MAP\");\ngoog.dom.TagName.MARK = new goog.dom.TagName(\"MARK\");\ngoog.dom.TagName.MATH = new goog.dom.TagName(\"MATH\");\ngoog.dom.TagName.MENU = new goog.dom.TagName(\"MENU\");\ngoog.dom.TagName.MENUITEM = new goog.dom.TagName(\"MENUITEM\");\ngoog.dom.TagName.META = new goog.dom.TagName(\"META\");\ngoog.dom.TagName.METER = new goog.dom.TagName(\"METER\");\ngoog.dom.TagName.NAV = new goog.dom.TagName(\"NAV\");\ngoog.dom.TagName.NOFRAMES = new goog.dom.TagName(\"NOFRAMES\");\ngoog.dom.TagName.NOSCRIPT = new goog.dom.TagName(\"NOSCRIPT\");\ngoog.dom.TagName.OBJECT = new goog.dom.TagName(\"OBJECT\");\ngoog.dom.TagName.OL = new goog.dom.TagName(\"OL\");\ngoog.dom.TagName.OPTGROUP = new goog.dom.TagName(\"OPTGROUP\");\ngoog.dom.TagName.OPTION = new goog.dom.TagName(\"OPTION\");\ngoog.dom.TagName.OUTPUT = new goog.dom.TagName(\"OUTPUT\");\ngoog.dom.TagName.P = new goog.dom.TagName(\"P\");\ngoog.dom.TagName.PARAM = new goog.dom.TagName(\"PARAM\");\ngoog.dom.TagName.PICTURE = new goog.dom.TagName(\"PICTURE\");\ngoog.dom.TagName.PRE = new goog.dom.TagName(\"PRE\");\ngoog.dom.TagName.PROGRESS = new goog.dom.TagName(\"PROGRESS\");\ngoog.dom.TagName.Q = new goog.dom.TagName(\"Q\");\ngoog.dom.TagName.RP = new goog.dom.TagName(\"RP\");\ngoog.dom.TagName.RT = new goog.dom.TagName(\"RT\");\ngoog.dom.TagName.RTC = new goog.dom.TagName(\"RTC\");\ngoog.dom.TagName.RUBY = new goog.dom.TagName(\"RUBY\");\ngoog.dom.TagName.S = new goog.dom.TagName(\"S\");\ngoog.dom.TagName.SAMP = new goog.dom.TagName(\"SAMP\");\ngoog.dom.TagName.SCRIPT = new goog.dom.TagName(\"SCRIPT\");\ngoog.dom.TagName.SECTION = new goog.dom.TagName(\"SECTION\");\ngoog.dom.TagName.SELECT = new goog.dom.TagName(\"SELECT\");\ngoog.dom.TagName.SMALL = new goog.dom.TagName(\"SMALL\");\ngoog.dom.TagName.SOURCE = new goog.dom.TagName(\"SOURCE\");\ngoog.dom.TagName.SPAN = new goog.dom.TagName(\"SPAN\");\ngoog.dom.TagName.STRIKE = new goog.dom.TagName(\"STRIKE\");\ngoog.dom.TagName.STRONG = new goog.dom.TagName(\"STRONG\");\ngoog.dom.TagName.STYLE = new goog.dom.TagName(\"STYLE\");\ngoog.dom.TagName.SUB = new goog.dom.TagName(\"SUB\");\ngoog.dom.TagName.SUMMARY = new goog.dom.TagName(\"SUMMARY\");\ngoog.dom.TagName.SUP = new goog.dom.TagName(\"SUP\");\ngoog.dom.TagName.SVG = new goog.dom.TagName(\"SVG\");\ngoog.dom.TagName.TABLE = new goog.dom.TagName(\"TABLE\");\ngoog.dom.TagName.TBODY = new goog.dom.TagName(\"TBODY\");\ngoog.dom.TagName.TD = new goog.dom.TagName(\"TD\");\ngoog.dom.TagName.TEMPLATE = new goog.dom.TagName(\"TEMPLATE\");\ngoog.dom.TagName.TEXTAREA = new goog.dom.TagName(\"TEXTAREA\");\ngoog.dom.TagName.TFOOT = new goog.dom.TagName(\"TFOOT\");\ngoog.dom.TagName.TH = new goog.dom.TagName(\"TH\");\ngoog.dom.TagName.THEAD = new goog.dom.TagName(\"THEAD\");\ngoog.dom.TagName.TIME = new goog.dom.TagName(\"TIME\");\ngoog.dom.TagName.TITLE = new goog.dom.TagName(\"TITLE\");\ngoog.dom.TagName.TR = new goog.dom.TagName(\"TR\");\ngoog.dom.TagName.TRACK = new goog.dom.TagName(\"TRACK\");\ngoog.dom.TagName.TT = new goog.dom.TagName(\"TT\");\ngoog.dom.TagName.U = new goog.dom.TagName(\"U\");\ngoog.dom.TagName.UL = new goog.dom.TagName(\"UL\");\ngoog.dom.TagName.VAR = new goog.dom.TagName(\"VAR\");\ngoog.dom.TagName.VIDEO = new goog.dom.TagName(\"VIDEO\");\ngoog.dom.TagName.WBR = new goog.dom.TagName(\"WBR\");\ngoog.dom.tags = {};\ngoog.dom.tags.VOID_TAGS_ = {area:!0, base:!0, br:!0, col:!0, command:!0, embed:!0, hr:!0, img:!0, input:!0, keygen:!0, link:!0, meta:!0, param:!0, source:!0, track:!0, wbr:!0};\ngoog.dom.tags.isVoidTag = function(a) {\n return !0 === goog.dom.tags.VOID_TAGS_[a];\n};\ngoog.html = {};\ngoog.html.trustedtypes = {};\ngoog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY = goog.TRUSTED_TYPES_POLICY_NAME ? goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME + \"#html\") : null;\ngoog.string.TypedString = function() {\n};\ngoog.string.Const = function(a, b) {\n this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ = a === goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ && b || \"\";\n this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ = goog.string.Const.TYPE_MARKER_;\n};\ngoog.string.Const.prototype.implementsGoogStringTypedString = !0;\ngoog.string.Const.prototype.getTypedStringValue = function() {\n return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;\n};\ngoog.DEBUG && (goog.string.Const.prototype.toString = function() {\n return \"Const{\" + this.stringConstValueWithSecurityContract__googStringSecurityPrivate_ + \"}\";\n});\ngoog.string.Const.unwrap = function(a) {\n if (a instanceof goog.string.Const && a.constructor === goog.string.Const && a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ === goog.string.Const.TYPE_MARKER_) {\n return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;\n }\n goog.asserts.fail(\"expected object of type Const, got '\" + a + \"'\");\n return \"type_error:Const\";\n};\ngoog.string.Const.from = function(a) {\n return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_, a);\n};\ngoog.string.Const.TYPE_MARKER_ = {};\ngoog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_ = {};\ngoog.string.Const.EMPTY = goog.string.Const.from(\"\");\ngoog.html.SafeScript = function() {\n this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = \"\";\n this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n};\ngoog.html.SafeScript.prototype.implementsGoogStringTypedString = !0;\ngoog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.SafeScript.fromConstant = function(a) {\n a = goog.string.Const.unwrap(a);\n return 0 === a.length ? goog.html.SafeScript.EMPTY : goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeScript.fromConstantAndArgs = function(a, b) {\n for (var c = [], d = 1; d < arguments.length; d++) {\n c.push(goog.html.SafeScript.stringify_(arguments[d]));\n }\n return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(\"(\" + goog.string.Const.unwrap(a) + \")(\" + c.join(\", \") + \");\");\n};\ngoog.html.SafeScript.fromJson = function(a) {\n return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a));\n};\ngoog.html.SafeScript.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString();\n};\ngoog.DEBUG && (goog.html.SafeScript.prototype.toString = function() {\n return \"SafeScript{\" + this.privateDoNotAccessOrElseSafeScriptWrappedValue_ + \"}\";\n});\ngoog.html.SafeScript.unwrap = function(a) {\n return goog.html.SafeScript.unwrapTrustedScript(a).toString();\n};\ngoog.html.SafeScript.unwrapTrustedScript = function(a) {\n if (a instanceof goog.html.SafeScript && a.constructor === goog.html.SafeScript && a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type SafeScript, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:SafeScript\";\n};\ngoog.html.SafeScript.stringify_ = function(a) {\n return JSON.stringify(a).replace(/</g, \"\\\\x3c\");\n};\ngoog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse = function(a) {\n return (new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a);\n};\ngoog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {\n this.privateDoNotAccessOrElseSafeScriptWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a) : a;\n return this;\n};\ngoog.html.SafeScript.EMPTY = goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(\"\");\ngoog.fs = {};\ngoog.fs.url = {};\ngoog.fs.url.createObjectUrl = function(a) {\n return goog.fs.url.getUrlObject_().createObjectURL(a);\n};\ngoog.fs.url.revokeObjectUrl = function(a) {\n goog.fs.url.getUrlObject_().revokeObjectURL(a);\n};\ngoog.fs.url.getUrlObject_ = function() {\n var a = goog.fs.url.findUrlObject_();\n if (null != a) {\n return a;\n }\n throw Error(\"This browser doesn't seem to support blob URLs\");\n};\ngoog.fs.url.findUrlObject_ = function() {\n return void 0 !== goog.global.URL && void 0 !== goog.global.URL.createObjectURL ? goog.global.URL : void 0 !== goog.global.webkitURL && void 0 !== goog.global.webkitURL.createObjectURL ? goog.global.webkitURL : void 0 !== goog.global.createObjectURL ? goog.global : null;\n};\ngoog.fs.url.browserSupportsObjectUrls = function() {\n return null != goog.fs.url.findUrlObject_();\n};\ngoog.fs.blob = {};\ngoog.fs.blob.getBlob = function(a) {\n var b = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;\n if (void 0 !== b) {\n b = new b;\n for (var c = 0; c < arguments.length; c++) {\n b.append(arguments[c]);\n }\n return b.getBlob();\n }\n return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments));\n};\ngoog.fs.blob.getBlobWithProperties = function(a, b, c) {\n var d = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;\n if (void 0 !== d) {\n d = new d;\n for (var e = 0; e < a.length; e++) {\n d.append(a[e], c);\n }\n return d.getBlob(b);\n }\n if (void 0 !== goog.global.Blob) {\n return d = {}, b && (d.type = b), c && (d.endings = c), new Blob(a, d);\n }\n throw Error(\"This browser doesn't seem to support creating Blobs\");\n};\ngoog.i18n = {};\ngoog.i18n.bidi = {};\ngoog.i18n.bidi.FORCE_RTL = !1;\ngoog.i18n.bidi.IS_RTL = goog.i18n.bidi.FORCE_RTL || (\"ar\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"fa\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"he\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"iw\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"ps\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"sd\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"ug\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"ur\" == goog.LOCALE.substring(0, 2).toLowerCase() || \"yi\" == goog.LOCALE.substring(0, \n2).toLowerCase()) && (2 == goog.LOCALE.length || \"-\" == goog.LOCALE.substring(2, 3) || \"_\" == goog.LOCALE.substring(2, 3)) || 3 <= goog.LOCALE.length && \"ckb\" == goog.LOCALE.substring(0, 3).toLowerCase() && (3 == goog.LOCALE.length || \"-\" == goog.LOCALE.substring(3, 4) || \"_\" == goog.LOCALE.substring(3, 4)) || 7 <= goog.LOCALE.length && (\"-\" == goog.LOCALE.substring(2, 3) || \"_\" == goog.LOCALE.substring(2, 3)) && (\"adlm\" == goog.LOCALE.substring(3, 7).toLowerCase() || \"arab\" == goog.LOCALE.substring(3, \n7).toLowerCase() || \"hebr\" == goog.LOCALE.substring(3, 7).toLowerCase() || \"nkoo\" == goog.LOCALE.substring(3, 7).toLowerCase() || \"rohg\" == goog.LOCALE.substring(3, 7).toLowerCase() || \"thaa\" == goog.LOCALE.substring(3, 7).toLowerCase()) || 8 <= goog.LOCALE.length && (\"-\" == goog.LOCALE.substring(3, 4) || \"_\" == goog.LOCALE.substring(3, 4)) && (\"adlm\" == goog.LOCALE.substring(4, 8).toLowerCase() || \"arab\" == goog.LOCALE.substring(4, 8).toLowerCase() || \"hebr\" == goog.LOCALE.substring(4, 8).toLowerCase() || \n\"nkoo\" == goog.LOCALE.substring(4, 8).toLowerCase() || \"rohg\" == goog.LOCALE.substring(4, 8).toLowerCase() || \"thaa\" == goog.LOCALE.substring(4, 8).toLowerCase());\ngoog.i18n.bidi.Format = {LRE:\"\\u202a\", RLE:\"\\u202b\", PDF:\"\\u202c\", LRM:\"\\u200e\", RLM:\"\\u200f\"};\ngoog.i18n.bidi.Dir = {LTR:1, RTL:-1, NEUTRAL:0};\ngoog.i18n.bidi.RIGHT = \"right\";\ngoog.i18n.bidi.LEFT = \"left\";\ngoog.i18n.bidi.I18N_RIGHT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.LEFT : goog.i18n.bidi.RIGHT;\ngoog.i18n.bidi.I18N_LEFT = goog.i18n.bidi.IS_RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT;\ngoog.i18n.bidi.toDir = function(a, b) {\n return \"number\" == typeof a ? 0 < a ? goog.i18n.bidi.Dir.LTR : 0 > a ? goog.i18n.bidi.Dir.RTL : b ? null : goog.i18n.bidi.Dir.NEUTRAL : null == a ? null : a ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;\n};\ngoog.i18n.bidi.ltrChars_ = \"A-Za-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u0300-\\u0590\\u0900-\\u1fff\\u200e\\u2c00-\\ud801\\ud804-\\ud839\\ud83c-\\udbff\\uf900-\\ufb1c\\ufe00-\\ufe6f\\ufefd-\\uffff\";\ngoog.i18n.bidi.rtlChars_ = \"\\u0591-\\u06ef\\u06fa-\\u08ff\\u200f\\ud802-\\ud803\\ud83a-\\ud83b\\ufb1d-\\ufdff\\ufe70-\\ufefc\";\ngoog.i18n.bidi.htmlSkipReg_ = /<[^>]*>|&[^;]+;/g;\ngoog.i18n.bidi.stripHtmlIfNeeded_ = function(a, b) {\n return b ? a.replace(goog.i18n.bidi.htmlSkipReg_, \"\") : a;\n};\ngoog.i18n.bidi.rtlCharReg_ = new RegExp(\"[\" + goog.i18n.bidi.rtlChars_ + \"]\");\ngoog.i18n.bidi.ltrCharReg_ = new RegExp(\"[\" + goog.i18n.bidi.ltrChars_ + \"]\");\ngoog.i18n.bidi.hasAnyRtl = function(a, b) {\n return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.hasRtlChar = goog.i18n.bidi.hasAnyRtl;\ngoog.i18n.bidi.hasAnyLtr = function(a, b) {\n return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.ltrRe_ = new RegExp(\"^[\" + goog.i18n.bidi.ltrChars_ + \"]\");\ngoog.i18n.bidi.rtlRe_ = new RegExp(\"^[\" + goog.i18n.bidi.rtlChars_ + \"]\");\ngoog.i18n.bidi.isRtlChar = function(a) {\n return goog.i18n.bidi.rtlRe_.test(a);\n};\ngoog.i18n.bidi.isLtrChar = function(a) {\n return goog.i18n.bidi.ltrRe_.test(a);\n};\ngoog.i18n.bidi.isNeutralChar = function(a) {\n return !goog.i18n.bidi.isLtrChar(a) && !goog.i18n.bidi.isRtlChar(a);\n};\ngoog.i18n.bidi.ltrDirCheckRe_ = new RegExp(\"^[^\" + goog.i18n.bidi.rtlChars_ + \"]*[\" + goog.i18n.bidi.ltrChars_ + \"]\");\ngoog.i18n.bidi.rtlDirCheckRe_ = new RegExp(\"^[^\" + goog.i18n.bidi.ltrChars_ + \"]*[\" + goog.i18n.bidi.rtlChars_ + \"]\");\ngoog.i18n.bidi.startsWithRtl = function(a, b) {\n return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.isRtlText = goog.i18n.bidi.startsWithRtl;\ngoog.i18n.bidi.startsWithLtr = function(a, b) {\n return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.isLtrText = goog.i18n.bidi.startsWithLtr;\ngoog.i18n.bidi.isRequiredLtrRe_ = /^http:\\/\\/.*/;\ngoog.i18n.bidi.isNeutralText = function(a, b) {\n a = goog.i18n.bidi.stripHtmlIfNeeded_(a, b);\n return goog.i18n.bidi.isRequiredLtrRe_.test(a) || !goog.i18n.bidi.hasAnyLtr(a) && !goog.i18n.bidi.hasAnyRtl(a);\n};\ngoog.i18n.bidi.ltrExitDirCheckRe_ = new RegExp(\"[\" + goog.i18n.bidi.ltrChars_ + \"][^\" + goog.i18n.bidi.rtlChars_ + \"]*$\");\ngoog.i18n.bidi.rtlExitDirCheckRe_ = new RegExp(\"[\" + goog.i18n.bidi.rtlChars_ + \"][^\" + goog.i18n.bidi.ltrChars_ + \"]*$\");\ngoog.i18n.bidi.endsWithLtr = function(a, b) {\n return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.isLtrExitText = goog.i18n.bidi.endsWithLtr;\ngoog.i18n.bidi.endsWithRtl = function(a, b) {\n return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a, b));\n};\ngoog.i18n.bidi.isRtlExitText = goog.i18n.bidi.endsWithRtl;\ngoog.i18n.bidi.rtlLocalesRe_ = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\ngoog.i18n.bidi.isRtlLanguage = function(a) {\n return goog.i18n.bidi.rtlLocalesRe_.test(a);\n};\ngoog.i18n.bidi.bracketGuardTextRe_ = /(\\(.*?\\)+)|(\\[.*?\\]+)|(\\{.*?\\}+)|(<.*?>+)/g;\ngoog.i18n.bidi.guardBracketInText = function(a, b) {\n var c = (void 0 === b ? goog.i18n.bidi.hasAnyRtl(a) : b) ? goog.i18n.bidi.Format.RLM : goog.i18n.bidi.Format.LRM;\n return a.replace(goog.i18n.bidi.bracketGuardTextRe_, c + \"$&\" + c);\n};\ngoog.i18n.bidi.enforceRtlInHtml = function(a) {\n return \"<\" == a.charAt(0) ? a.replace(/<\\w+/, \"$& dir=rtl\") : \"\\n<span dir=rtl>\" + a + \"</span>\";\n};\ngoog.i18n.bidi.enforceRtlInText = function(a) {\n return goog.i18n.bidi.Format.RLE + a + goog.i18n.bidi.Format.PDF;\n};\ngoog.i18n.bidi.enforceLtrInHtml = function(a) {\n return \"<\" == a.charAt(0) ? a.replace(/<\\w+/, \"$& dir=ltr\") : \"\\n<span dir=ltr>\" + a + \"</span>\";\n};\ngoog.i18n.bidi.enforceLtrInText = function(a) {\n return goog.i18n.bidi.Format.LRE + a + goog.i18n.bidi.Format.PDF;\n};\ngoog.i18n.bidi.dimensionsRe_ = /:\\s*([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)/g;\ngoog.i18n.bidi.leftRe_ = /left/gi;\ngoog.i18n.bidi.rightRe_ = /right/gi;\ngoog.i18n.bidi.tempRe_ = /%%%%/g;\ngoog.i18n.bidi.mirrorCSS = function(a) {\n return a.replace(goog.i18n.bidi.dimensionsRe_, \":$1 $4 $3 $2\").replace(goog.i18n.bidi.leftRe_, \"%%%%\").replace(goog.i18n.bidi.rightRe_, goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_, goog.i18n.bidi.RIGHT);\n};\ngoog.i18n.bidi.doubleQuoteSubstituteRe_ = /([\\u0591-\\u05f2])\"/g;\ngoog.i18n.bidi.singleQuoteSubstituteRe_ = /([\\u0591-\\u05f2])'/g;\ngoog.i18n.bidi.normalizeHebrewQuote = function(a) {\n return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_, \"$1\\u05f4\").replace(goog.i18n.bidi.singleQuoteSubstituteRe_, \"$1\\u05f3\");\n};\ngoog.i18n.bidi.wordSeparatorRe_ = /\\s+/;\ngoog.i18n.bidi.hasNumeralsRe_ = /[\\d\\u06f0-\\u06f9]/;\ngoog.i18n.bidi.rtlDetectionThreshold_ = 0.40;\ngoog.i18n.bidi.estimateDirection = function(a, b) {\n for (var c = 0, d = 0, e = !1, f = goog.i18n.bidi.stripHtmlIfNeeded_(a, b).split(goog.i18n.bidi.wordSeparatorRe_), g = 0; g < f.length; g++) {\n var h = f[g];\n goog.i18n.bidi.startsWithRtl(h) ? (c++, d++) : goog.i18n.bidi.isRequiredLtrRe_.test(h) ? e = !0 : goog.i18n.bidi.hasAnyLtr(h) ? d++ : goog.i18n.bidi.hasNumeralsRe_.test(h) && (e = !0);\n }\n return 0 == d ? e ? goog.i18n.bidi.Dir.LTR : goog.i18n.bidi.Dir.NEUTRAL : c / d > goog.i18n.bidi.rtlDetectionThreshold_ ? goog.i18n.bidi.Dir.RTL : goog.i18n.bidi.Dir.LTR;\n};\ngoog.i18n.bidi.detectRtlDirectionality = function(a, b) {\n return goog.i18n.bidi.estimateDirection(a, b) == goog.i18n.bidi.Dir.RTL;\n};\ngoog.i18n.bidi.setElementDirAndAlign = function(a, b) {\n a && (b = goog.i18n.bidi.toDir(b)) && (a.style.textAlign = b == goog.i18n.bidi.Dir.RTL ? goog.i18n.bidi.RIGHT : goog.i18n.bidi.LEFT, a.dir = b == goog.i18n.bidi.Dir.RTL ? \"rtl\" : \"ltr\");\n};\ngoog.i18n.bidi.setElementDirByTextDirectionality = function(a, b) {\n switch(goog.i18n.bidi.estimateDirection(b)) {\n case goog.i18n.bidi.Dir.LTR:\n a.dir = \"ltr\";\n break;\n case goog.i18n.bidi.Dir.RTL:\n a.dir = \"rtl\";\n break;\n default:\n a.removeAttribute(\"dir\");\n }\n};\ngoog.i18n.bidi.DirectionalString = function() {\n};\ngoog.html.TrustedResourceUrl = function(a, b) {\n this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ = a === goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || \"\";\n this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n};\ngoog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString = !0;\ngoog.html.TrustedResourceUrl.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString();\n};\ngoog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;\ngoog.html.TrustedResourceUrl.prototype.getDirection = function() {\n return goog.i18n.bidi.Dir.LTR;\n};\ngoog.html.TrustedResourceUrl.prototype.cloneWithParams = function(a, b) {\n var c = goog.html.TrustedResourceUrl.unwrap(this);\n c = goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);\n var d = c[3] || \"\";\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1] + goog.html.TrustedResourceUrl.stringifyParams_(\"?\", c[2] || \"\", a) + goog.html.TrustedResourceUrl.stringifyParams_(\"#\", d, b));\n};\ngoog.DEBUG && (goog.html.TrustedResourceUrl.prototype.toString = function() {\n return \"TrustedResourceUrl{\" + this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_ + \"}\";\n});\ngoog.html.TrustedResourceUrl.unwrap = function(a) {\n return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString();\n};\ngoog.html.TrustedResourceUrl.unwrapTrustedScriptURL = function(a) {\n if (a instanceof goog.html.TrustedResourceUrl && a.constructor === goog.html.TrustedResourceUrl && a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type TrustedResourceUrl, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:TrustedResourceUrl\";\n};\ngoog.html.TrustedResourceUrl.format = function(a, b) {\n var c = goog.string.Const.unwrap(a);\n if (!goog.html.TrustedResourceUrl.BASE_URL_.test(c)) {\n throw Error(\"Invalid TrustedResourceUrl format: \" + c);\n }\n var d = c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_, function(a, d) {\n if (!Object.prototype.hasOwnProperty.call(b, d)) {\n throw Error('Found marker, \"' + d + '\", in format string, \"' + c + '\", but no valid label mapping found in args: ' + JSON.stringify(b));\n }\n var e = b[d];\n return e instanceof goog.string.Const ? goog.string.Const.unwrap(e) : encodeURIComponent(String(e));\n });\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(d);\n};\ngoog.html.TrustedResourceUrl.FORMAT_MARKER_ = /%{(\\w+)}/g;\ngoog.html.TrustedResourceUrl.BASE_URL_ = /^((https:)?\\/\\/[0-9a-z.:[\\]-]+\\/|\\/[^/\\\\]|[^:/\\\\%]+\\/|[^:/\\\\%]*[?#]|about:blank#)/i;\ngoog.html.TrustedResourceUrl.URL_PARAM_PARSER_ = /^([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/;\ngoog.html.TrustedResourceUrl.formatWithParams = function(a, b, c, d) {\n return goog.html.TrustedResourceUrl.format(a, b).cloneWithParams(c, d);\n};\ngoog.html.TrustedResourceUrl.fromConstant = function(a) {\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));\n};\ngoog.html.TrustedResourceUrl.fromConstants = function(a) {\n for (var b = \"\", c = 0; c < a.length; c++) {\n b += goog.string.Const.unwrap(a[c]);\n }\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.TrustedResourceUrl.fromSafeScript = function(a) {\n a = goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(a)], \"text/javascript\");\n a = goog.fs.url.createObjectUrl(a);\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse = function(a) {\n a = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a) : a;\n return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);\n};\ngoog.html.TrustedResourceUrl.stringifyParams_ = function(a, b, c) {\n if (null == c) {\n return b;\n }\n if (\"string\" === typeof c) {\n return c ? a + encodeURIComponent(c) : \"\";\n }\n for (var d in c) {\n var e = c[d];\n e = goog.isArray(e) ? e : [e];\n for (var f = 0; f < e.length; f++) {\n var g = e[f];\n null != g && (b || (b = a), b += (b.length > a.length ? \"&\" : \"\") + encodeURIComponent(d) + \"=\" + encodeURIComponent(String(g)));\n }\n }\n return b;\n};\ngoog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};\ngoog.string.internal = {};\ngoog.string.internal.startsWith = function(a, b) {\n return 0 == a.lastIndexOf(b, 0);\n};\ngoog.string.internal.endsWith = function(a, b) {\n var c = a.length - b.length;\n return 0 <= c && a.indexOf(b, c) == c;\n};\ngoog.string.internal.caseInsensitiveStartsWith = function(a, b) {\n return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(0, b.length));\n};\ngoog.string.internal.caseInsensitiveEndsWith = function(a, b) {\n return 0 == goog.string.internal.caseInsensitiveCompare(b, a.substr(a.length - b.length, b.length));\n};\ngoog.string.internal.caseInsensitiveEquals = function(a, b) {\n return a.toLowerCase() == b.toLowerCase();\n};\ngoog.string.internal.isEmptyOrWhitespace = function(a) {\n return /^[\\s\\xa0]*$/.test(a);\n};\ngoog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function(a) {\n return a.trim();\n} : function(a) {\n return /^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1];\n};\ngoog.string.internal.caseInsensitiveCompare = function(a, b) {\n var c = String(a).toLowerCase(), d = String(b).toLowerCase();\n return c < d ? -1 : c == d ? 0 : 1;\n};\ngoog.string.internal.newLineToBr = function(a, b) {\n return a.replace(/(\\r\\n|\\r|\\n)/g, b ? \"<br />\" : \"<br>\");\n};\ngoog.string.internal.htmlEscape = function(a, b) {\n if (b) {\n a = a.replace(goog.string.internal.AMP_RE_, \"&amp;\").replace(goog.string.internal.LT_RE_, \"&lt;\").replace(goog.string.internal.GT_RE_, \"&gt;\").replace(goog.string.internal.QUOT_RE_, \"&quot;\").replace(goog.string.internal.SINGLE_QUOTE_RE_, \"&#39;\").replace(goog.string.internal.NULL_RE_, \"&#0;\");\n } else {\n if (!goog.string.internal.ALL_RE_.test(a)) {\n return a;\n }\n -1 != a.indexOf(\"&\") && (a = a.replace(goog.string.internal.AMP_RE_, \"&amp;\"));\n -1 != a.indexOf(\"<\") && (a = a.replace(goog.string.internal.LT_RE_, \"&lt;\"));\n -1 != a.indexOf(\">\") && (a = a.replace(goog.string.internal.GT_RE_, \"&gt;\"));\n -1 != a.indexOf('\"') && (a = a.replace(goog.string.internal.QUOT_RE_, \"&quot;\"));\n -1 != a.indexOf(\"'\") && (a = a.replace(goog.string.internal.SINGLE_QUOTE_RE_, \"&#39;\"));\n -1 != a.indexOf(\"\\x00\") && (a = a.replace(goog.string.internal.NULL_RE_, \"&#0;\"));\n }\n return a;\n};\ngoog.string.internal.AMP_RE_ = /&/g;\ngoog.string.internal.LT_RE_ = /</g;\ngoog.string.internal.GT_RE_ = />/g;\ngoog.string.internal.QUOT_RE_ = /\"/g;\ngoog.string.internal.SINGLE_QUOTE_RE_ = /'/g;\ngoog.string.internal.NULL_RE_ = /\\x00/g;\ngoog.string.internal.ALL_RE_ = /[\\x00&<>\"']/;\ngoog.string.internal.whitespaceEscape = function(a, b) {\n return goog.string.internal.newLineToBr(a.replace(/ /g, \" &#160;\"), b);\n};\ngoog.string.internal.contains = function(a, b) {\n return -1 != a.indexOf(b);\n};\ngoog.string.internal.caseInsensitiveContains = function(a, b) {\n return goog.string.internal.contains(a.toLowerCase(), b.toLowerCase());\n};\ngoog.string.internal.compareVersions = function(a, b) {\n for (var c = 0, d = goog.string.internal.trim(String(a)).split(\".\"), e = goog.string.internal.trim(String(b)).split(\".\"), f = Math.max(d.length, e.length), g = 0; 0 == c && g < f; g++) {\n var h = d[g] || \"\", k = e[g] || \"\";\n do {\n h = /(\\d*)(\\D*)(.*)/.exec(h) || [\"\", \"\", \"\", \"\"];\n k = /(\\d*)(\\D*)(.*)/.exec(k) || [\"\", \"\", \"\", \"\"];\n if (0 == h[0].length && 0 == k[0].length) {\n break;\n }\n c = 0 == h[1].length ? 0 : parseInt(h[1], 10);\n var l = 0 == k[1].length ? 0 : parseInt(k[1], 10);\n c = goog.string.internal.compareElements_(c, l) || goog.string.internal.compareElements_(0 == h[2].length, 0 == k[2].length) || goog.string.internal.compareElements_(h[2], k[2]);\n h = h[3];\n k = k[3];\n } while (0 == c);\n }\n return c;\n};\ngoog.string.internal.compareElements_ = function(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n};\ngoog.html.SafeUrl = function(a, b) {\n this.privateDoNotAccessOrElseSafeUrlWrappedValue_ = a === goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ && b || \"\";\n this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n};\ngoog.html.SafeUrl.INNOCUOUS_STRING = \"about:invalid#zClosurez\";\ngoog.html.SafeUrl.prototype.implementsGoogStringTypedString = !0;\ngoog.html.SafeUrl.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString();\n};\ngoog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString = !0;\ngoog.html.SafeUrl.prototype.getDirection = function() {\n return goog.i18n.bidi.Dir.LTR;\n};\ngoog.DEBUG && (goog.html.SafeUrl.prototype.toString = function() {\n return \"SafeUrl{\" + this.privateDoNotAccessOrElseSafeUrlWrappedValue_ + \"}\";\n});\ngoog.html.SafeUrl.unwrap = function(a) {\n if (a instanceof goog.html.SafeUrl && a.constructor === goog.html.SafeUrl && a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type SafeUrl, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:SafeUrl\";\n};\ngoog.html.SafeUrl.fromConstant = function(a) {\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a));\n};\ngoog.html.SAFE_MIME_TYPE_PATTERN_ = /^(?:audio\\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\\/csv|video\\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\\w+=(?:\\w+|\"[\\w;=]+\"))*$/i;\ngoog.html.SafeUrl.isSafeMimeType = function(a) {\n return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a);\n};\ngoog.html.SafeUrl.fromBlob = function(a) {\n a = goog.html.SAFE_MIME_TYPE_PATTERN_.test(a.type) ? goog.fs.url.createObjectUrl(a) : goog.html.SafeUrl.INNOCUOUS_STRING;\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.DATA_URL_PATTERN_ = /^data:([^,]*);base64,[a-z0-9+\\/]+=*$/i;\ngoog.html.SafeUrl.fromDataUrl = function(a) {\n a = a.replace(/(%0A|%0D)/g, \"\");\n var b = a.match(goog.html.DATA_URL_PATTERN_);\n b = b && goog.html.SAFE_MIME_TYPE_PATTERN_.test(b[1]);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b ? a : goog.html.SafeUrl.INNOCUOUS_STRING);\n};\ngoog.html.SafeUrl.fromTelUrl = function(a) {\n goog.string.internal.caseInsensitiveStartsWith(a, \"tel:\") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SIP_URL_PATTERN_ = /^sip[s]?:[+a-z0-9_.!$%&'*\\/=^`{|}~-]+@([a-z0-9-]+\\.)+[a-z0-9]{2,63}$/i;\ngoog.html.SafeUrl.fromSipUrl = function(a) {\n goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a)) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.fromFacebookMessengerUrl = function(a) {\n goog.string.internal.caseInsensitiveStartsWith(a, \"fb-messenger://share\") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.fromWhatsAppUrl = function(a) {\n goog.string.internal.caseInsensitiveStartsWith(a, \"whatsapp://send\") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.fromSmsUrl = function(a) {\n goog.string.internal.caseInsensitiveStartsWith(a, \"sms:\") && goog.html.SafeUrl.isSmsUrlBodyValid_(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.isSmsUrlBodyValid_ = function(a) {\n var b = a.indexOf(\"#\");\n 0 < b && (a = a.substring(0, b));\n b = a.match(/[?&]body=/gi);\n if (!b) {\n return !0;\n }\n if (1 < b.length) {\n return !1;\n }\n a = a.match(/[?&]body=([^&]*)/)[1];\n if (!a) {\n return !0;\n }\n try {\n decodeURIComponent(a);\n } catch (c) {\n return !1;\n }\n return /^(?:[a-z0-9\\-_.~]|%[0-9a-f]{2})+$/i.test(a);\n};\ngoog.html.SafeUrl.fromSshUrl = function(a) {\n goog.string.internal.caseInsensitiveStartsWith(a, \"ssh://\") || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.sanitizeChromeExtensionUrl = function(a, b) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\\/\\/([^\\/]+)\\//, a, b);\n};\ngoog.html.SafeUrl.sanitizeFirefoxExtensionUrl = function(a, b) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\\/\\/([^\\/]+)\\//, a, b);\n};\ngoog.html.SafeUrl.sanitizeEdgeExtensionUrl = function(a, b) {\n return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\\/\\/([^\\/]+)\\//, a, b);\n};\ngoog.html.SafeUrl.sanitizeExtensionUrl_ = function(a, b, c) {\n (a = a.exec(b)) ? (a = a[1], -1 == (c instanceof goog.string.Const ? [goog.string.Const.unwrap(c)] : c.map(function(a) {\n return goog.string.Const.unwrap(a);\n })).indexOf(a) && (b = goog.html.SafeUrl.INNOCUOUS_STRING)) : b = goog.html.SafeUrl.INNOCUOUS_STRING;\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.SafeUrl.fromTrustedResourceUrl = function(a) {\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a));\n};\ngoog.html.SAFE_URL_PATTERN_ = /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;\ngoog.html.SafeUrl.SAFE_URL_PATTERN = goog.html.SAFE_URL_PATTERN_;\ngoog.html.SafeUrl.sanitize = function(a) {\n if (a instanceof goog.html.SafeUrl) {\n return a;\n }\n a = \"object\" == typeof a && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);\n goog.html.SAFE_URL_PATTERN_.test(a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.sanitizeAssertUnchanged = function(a, b) {\n if (a instanceof goog.html.SafeUrl) {\n return a;\n }\n a = \"object\" == typeof a && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);\n if (b && /^data:/i.test(a)) {\n var c = goog.html.SafeUrl.fromDataUrl(a);\n if (c.getTypedStringValue() == a) {\n return c;\n }\n }\n goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a), \"%s does not match the safe URL pattern\", a) || (a = goog.html.SafeUrl.INNOCUOUS_STRING);\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse = function(a) {\n return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_, a);\n};\ngoog.html.SafeUrl.ABOUT_BLANK = goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(\"about:blank\");\ngoog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_ = {};\ngoog.html.SafeStyle = function() {\n this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = \"\";\n this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n};\ngoog.html.SafeStyle.prototype.implementsGoogStringTypedString = !0;\ngoog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.SafeStyle.fromConstant = function(a) {\n a = goog.string.Const.unwrap(a);\n if (0 === a.length) {\n return goog.html.SafeStyle.EMPTY;\n }\n goog.asserts.assert(goog.string.internal.endsWith(a, \";\"), \"Last character of style string is not ';': \" + a);\n goog.asserts.assert(goog.string.internal.contains(a, \":\"), \"Style string must contain at least one ':', to specify a \\\"name: value\\\" pair: \" + a);\n return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeStyle.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseSafeStyleWrappedValue_;\n};\ngoog.DEBUG && (goog.html.SafeStyle.prototype.toString = function() {\n return \"SafeStyle{\" + this.privateDoNotAccessOrElseSafeStyleWrappedValue_ + \"}\";\n});\ngoog.html.SafeStyle.unwrap = function(a) {\n if (a instanceof goog.html.SafeStyle && a.constructor === goog.html.SafeStyle && a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type SafeStyle, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:SafeStyle\";\n};\ngoog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse = function(a) {\n return (new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a);\n};\ngoog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {\n this.privateDoNotAccessOrElseSafeStyleWrappedValue_ = a;\n return this;\n};\ngoog.html.SafeStyle.EMPTY = goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(\"\");\ngoog.html.SafeStyle.INNOCUOUS_STRING = \"zClosurez\";\ngoog.html.SafeStyle.create = function(a) {\n var b = \"\", c;\n for (c in a) {\n if (!/^[-_a-zA-Z0-9]+$/.test(c)) {\n throw Error(\"Name allows only [-_a-zA-Z0-9], got: \" + c);\n }\n var d = a[c];\n null != d && (d = goog.isArray(d) ? goog.array.map(d, goog.html.SafeStyle.sanitizePropertyValue_).join(\" \") : goog.html.SafeStyle.sanitizePropertyValue_(d), b += c + \":\" + d + \";\");\n }\n return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;\n};\ngoog.html.SafeStyle.sanitizePropertyValue_ = function(a) {\n if (a instanceof goog.html.SafeUrl) {\n return 'url(\"' + goog.html.SafeUrl.unwrap(a).replace(/</g, \"%3c\").replace(/[\\\\\"]/g, \"\\\\$&\") + '\")';\n }\n a = a instanceof goog.string.Const ? goog.string.Const.unwrap(a) : goog.html.SafeStyle.sanitizePropertyValueString_(String(a));\n if (/[{;}]/.test(a)) {\n throw new goog.asserts.AssertionError(\"Value does not allow [{;}], got: %s.\", [a]);\n }\n return a;\n};\ngoog.html.SafeStyle.sanitizePropertyValueString_ = function(a) {\n var b = a.replace(goog.html.SafeStyle.FUNCTIONS_RE_, \"$1\").replace(goog.html.SafeStyle.FUNCTIONS_RE_, \"$1\").replace(goog.html.SafeStyle.URL_RE_, \"url\");\n if (goog.html.SafeStyle.VALUE_RE_.test(b)) {\n if (goog.html.SafeStyle.COMMENT_RE_.test(a)) {\n return goog.asserts.fail(\"String value disallows comments, got: \" + a), goog.html.SafeStyle.INNOCUOUS_STRING;\n }\n if (!goog.html.SafeStyle.hasBalancedQuotes_(a)) {\n return goog.asserts.fail(\"String value requires balanced quotes, got: \" + a), goog.html.SafeStyle.INNOCUOUS_STRING;\n }\n if (!goog.html.SafeStyle.hasBalancedSquareBrackets_(a)) {\n return goog.asserts.fail(\"String value requires balanced square brackets and one identifier per pair of brackets, got: \" + a), goog.html.SafeStyle.INNOCUOUS_STRING;\n }\n } else {\n return goog.asserts.fail(\"String value allows only \" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + \" and simple functions, got: \" + a), goog.html.SafeStyle.INNOCUOUS_STRING;\n }\n return goog.html.SafeStyle.sanitizeUrl_(a);\n};\ngoog.html.SafeStyle.hasBalancedQuotes_ = function(a) {\n for (var b = !0, c = !0, d = 0; d < a.length; d++) {\n var e = a.charAt(d);\n \"'\" == e && c ? b = !b : '\"' == e && b && (c = !c);\n }\n return b && c;\n};\ngoog.html.SafeStyle.hasBalancedSquareBrackets_ = function(a) {\n for (var b = !0, c = /^[-_a-zA-Z0-9]$/, d = 0; d < a.length; d++) {\n var e = a.charAt(d);\n if (\"]\" == e) {\n if (b) {\n return !1;\n }\n b = !0;\n } else {\n if (\"[\" == e) {\n if (!b) {\n return !1;\n }\n b = !1;\n } else {\n if (!b && !c.test(e)) {\n return !1;\n }\n }\n }\n }\n return b;\n};\ngoog.html.SafeStyle.VALUE_ALLOWED_CHARS_ = \"[-,.\\\"'%_!# a-zA-Z0-9\\\\[\\\\]]\";\ngoog.html.SafeStyle.VALUE_RE_ = new RegExp(\"^\" + goog.html.SafeStyle.VALUE_ALLOWED_CHARS_ + \"+$\");\ngoog.html.SafeStyle.URL_RE_ = RegExp(\"\\\\b(url\\\\([ \\t\\n]*)('[ -&(-\\\\[\\\\]-~]*'|\\\"[ !#-\\\\[\\\\]-~]*\\\"|[!#-&*-\\\\[\\\\]-~]*)([ \\t\\n]*\\\\))\", \"g\");\ngoog.html.SafeStyle.ALLOWED_FUNCTIONS_ = \"calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?\".split(\" \");\ngoog.html.SafeStyle.FUNCTIONS_RE_ = new RegExp(\"\\\\b(\" + goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join(\"|\") + \")\\\\([-+*/0-9a-z.%\\\\[\\\\], ]+\\\\)\", \"g\");\ngoog.html.SafeStyle.COMMENT_RE_ = /\\/\\*/;\ngoog.html.SafeStyle.sanitizeUrl_ = function(a) {\n return a.replace(goog.html.SafeStyle.URL_RE_, function(a, c, d, e) {\n var b = \"\";\n d = d.replace(/^(['\"])(.*)\\1$/, function(a, c, d) {\n b = c;\n return d;\n });\n a = goog.html.SafeUrl.sanitize(d).getTypedStringValue();\n return c + b + a + b + e;\n });\n};\ngoog.html.SafeStyle.concat = function(a) {\n var b = \"\", c = function(a) {\n goog.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyle.unwrap(a);\n };\n goog.array.forEach(arguments, c);\n return b ? goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b) : goog.html.SafeStyle.EMPTY;\n};\ngoog.html.SafeStyleSheet = function() {\n this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = \"\";\n this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n};\ngoog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString = !0;\ngoog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.SafeStyleSheet.createRule = function(a, b) {\n if (goog.string.internal.contains(a, \"<\")) {\n throw Error(\"Selector does not allow '<', got: \" + a);\n }\n var c = a.replace(/('|\")((?!\\1)[^\\r\\n\\f\\\\]|\\\\[\\s\\S])*\\1/g, \"\");\n if (!/^[-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|]+$/.test(c)) {\n throw Error(\"Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\\\]()=^$|] and strings, got: \" + a);\n }\n if (!goog.html.SafeStyleSheet.hasBalancedBrackets_(c)) {\n throw Error(\"() and [] in selector must be balanced, got: \" + a);\n }\n b instanceof goog.html.SafeStyle || (b = goog.html.SafeStyle.create(b));\n c = a + \"{\" + goog.html.SafeStyle.unwrap(b).replace(/</g, \"\\\\3C \") + \"}\";\n return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(c);\n};\ngoog.html.SafeStyleSheet.hasBalancedBrackets_ = function(a) {\n for (var b = {\"(\":\")\", \"[\":\"]\"}, c = [], d = 0; d < a.length; d++) {\n var e = a[d];\n if (b[e]) {\n c.push(b[e]);\n } else {\n if (goog.object.contains(b, e) && c.pop() != e) {\n return !1;\n }\n }\n }\n return 0 == c.length;\n};\ngoog.html.SafeStyleSheet.concat = function(a) {\n var b = \"\", c = function(a) {\n goog.isArray(a) ? goog.array.forEach(a, c) : b += goog.html.SafeStyleSheet.unwrap(a);\n };\n goog.array.forEach(arguments, c);\n return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.SafeStyleSheet.fromConstant = function(a) {\n a = goog.string.Const.unwrap(a);\n if (0 === a.length) {\n return goog.html.SafeStyleSheet.EMPTY;\n }\n goog.asserts.assert(!goog.string.internal.contains(a, \"<\"), \"Forbidden '<' character in style sheet string: \" + a);\n return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a);\n};\ngoog.html.SafeStyleSheet.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;\n};\ngoog.DEBUG && (goog.html.SafeStyleSheet.prototype.toString = function() {\n return \"SafeStyleSheet{\" + this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ + \"}\";\n});\ngoog.html.SafeStyleSheet.unwrap = function(a) {\n if (a instanceof goog.html.SafeStyleSheet && a.constructor === goog.html.SafeStyleSheet && a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type SafeStyleSheet, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:SafeStyleSheet\";\n};\ngoog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse = function(a) {\n return (new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(a);\n};\ngoog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a) {\n this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_ = a;\n return this;\n};\ngoog.html.SafeStyleSheet.EMPTY = goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(\"\");\ngoog.labs = {};\ngoog.labs.userAgent = {};\ngoog.labs.userAgent.util = {};\ngoog.labs.userAgent.util.getNativeUserAgentString_ = function() {\n var a = goog.labs.userAgent.util.getNavigator_();\n return a && (a = a.userAgent) ? a : \"\";\n};\ngoog.labs.userAgent.util.getNavigator_ = function() {\n return goog.global.navigator;\n};\ngoog.labs.userAgent.util.userAgent_ = goog.labs.userAgent.util.getNativeUserAgentString_();\ngoog.labs.userAgent.util.setUserAgent = function(a) {\n goog.labs.userAgent.util.userAgent_ = a || goog.labs.userAgent.util.getNativeUserAgentString_();\n};\ngoog.labs.userAgent.util.getUserAgent = function() {\n return goog.labs.userAgent.util.userAgent_;\n};\ngoog.labs.userAgent.util.matchUserAgent = function(a) {\n var b = goog.labs.userAgent.util.getUserAgent();\n return goog.string.internal.contains(b, a);\n};\ngoog.labs.userAgent.util.matchUserAgentIgnoreCase = function(a) {\n var b = goog.labs.userAgent.util.getUserAgent();\n return goog.string.internal.caseInsensitiveContains(b, a);\n};\ngoog.labs.userAgent.util.extractVersionTuples = function(a) {\n for (var b = RegExp(\"(\\\\w[\\\\w ]+)/([^\\\\s]+)\\\\s*(?:\\\\((.*?)\\\\))?\", \"g\"), c = [], d; d = b.exec(a);) {\n c.push([d[1], d[2], d[3] || void 0]);\n }\n return c;\n};\ngoog.labs.userAgent.browser = {};\ngoog.labs.userAgent.browser.matchOpera_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Opera\");\n};\ngoog.labs.userAgent.browser.matchIE_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Trident\") || goog.labs.userAgent.util.matchUserAgent(\"MSIE\");\n};\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Edge\");\n};\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Edg/\");\n};\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"OPR\");\n};\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Firefox\") || goog.labs.userAgent.util.matchUserAgent(\"FxiOS\");\n};\ngoog.labs.userAgent.browser.matchSafari_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Safari\") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent(\"Android\"));\n};\ngoog.labs.userAgent.browser.matchCoast_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Coast\");\n};\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\n return (goog.labs.userAgent.util.matchUserAgent(\"iPad\") || goog.labs.userAgent.util.matchUserAgent(\"iPhone\")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent(\"AppleWebKit\");\n};\ngoog.labs.userAgent.browser.matchChrome_ = function() {\n return (goog.labs.userAgent.util.matchUserAgent(\"Chrome\") || goog.labs.userAgent.util.matchUserAgent(\"CriOS\")) && !goog.labs.userAgent.browser.matchEdgeHtml_();\n};\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Android\") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());\n};\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\ngoog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;\ngoog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;\ngoog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\ngoog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\ngoog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;\ngoog.labs.userAgent.browser.isSilk = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Silk\");\n};\ngoog.labs.userAgent.browser.getVersion = function() {\n function a(a) {\n a = goog.array.find(a, d);\n return c[a] || \"\";\n }\n var b = goog.labs.userAgent.util.getUserAgent();\n if (goog.labs.userAgent.browser.isIE()) {\n return goog.labs.userAgent.browser.getIEVersion_(b);\n }\n b = goog.labs.userAgent.util.extractVersionTuples(b);\n var c = {};\n goog.array.forEach(b, function(a) {\n c[a[0]] = a[1];\n });\n var d = goog.partial(goog.object.containsKey, c);\n return goog.labs.userAgent.browser.isOpera() ? a([\"Version\", \"Opera\"]) : goog.labs.userAgent.browser.isEdge() ? a([\"Edge\"]) : goog.labs.userAgent.browser.isEdgeChromium() ? a([\"Edg\"]) : goog.labs.userAgent.browser.isChrome() ? a([\"Chrome\", \"CriOS\", \"HeadlessChrome\"]) : (b = b[2]) && b[1] || \"\";\n};\ngoog.labs.userAgent.browser.isVersionOrHigher = function(a) {\n return 0 <= goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), a);\n};\ngoog.labs.userAgent.browser.getIEVersion_ = function(a) {\n var b = /rv: *([\\d\\.]*)/.exec(a);\n if (b && b[1]) {\n return b[1];\n }\n b = \"\";\n var c = /MSIE +([\\d\\.]+)/.exec(a);\n if (c && c[1]) {\n if (a = /Trident\\/(\\d.\\d)/.exec(a), \"7.0\" == c[1]) {\n if (a && a[1]) {\n switch(a[1]) {\n case \"4.0\":\n b = \"8.0\";\n break;\n case \"5.0\":\n b = \"9.0\";\n break;\n case \"6.0\":\n b = \"10.0\";\n break;\n case \"7.0\":\n b = \"11.0\";\n }\n } else {\n b = \"7.0\";\n }\n } else {\n b = c[1];\n }\n }\n return b;\n};\ngoog.html.SafeHtml = function() {\n this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = \"\";\n this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;\n this.dir_ = null;\n};\ngoog.html.SafeHtml.ENABLE_ERROR_MESSAGES = goog.DEBUG;\ngoog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE = !0;\ngoog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString = !0;\ngoog.html.SafeHtml.prototype.getDirection = function() {\n return this.dir_;\n};\ngoog.html.SafeHtml.prototype.implementsGoogStringTypedString = !0;\ngoog.html.SafeHtml.prototype.getTypedStringValue = function() {\n return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString();\n};\ngoog.DEBUG && (goog.html.SafeHtml.prototype.toString = function() {\n return \"SafeHtml{\" + this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ + \"}\";\n});\ngoog.html.SafeHtml.unwrap = function(a) {\n return goog.html.SafeHtml.unwrapTrustedHTML(a).toString();\n};\ngoog.html.SafeHtml.unwrapTrustedHTML = function(a) {\n if (a instanceof goog.html.SafeHtml && a.constructor === goog.html.SafeHtml && a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ === goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_) {\n return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;\n }\n goog.asserts.fail(\"expected object of type SafeHtml, got '\" + a + \"' of type \" + goog.typeOf(a));\n return \"type_error:SafeHtml\";\n};\ngoog.html.SafeHtml.htmlEscape = function(a) {\n if (a instanceof goog.html.SafeHtml) {\n return a;\n }\n var b = \"object\" == typeof a, c = null;\n b && a.implementsGoogI18nBidiDirectionalString && (c = a.getDirection());\n a = b && a.implementsGoogStringTypedString ? a.getTypedStringValue() : String(a);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a), c);\n};\ngoog.html.SafeHtml.htmlEscapePreservingNewlines = function(a) {\n if (a instanceof goog.html.SafeHtml) {\n return a;\n }\n a = goog.html.SafeHtml.htmlEscape(a);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)), a.getDirection());\n};\ngoog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces = function(a) {\n if (a instanceof goog.html.SafeHtml) {\n return a;\n }\n a = goog.html.SafeHtml.htmlEscape(a);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)), a.getDirection());\n};\ngoog.html.SafeHtml.from = goog.html.SafeHtml.htmlEscape;\ngoog.html.SafeHtml.VALID_NAMES_IN_TAG_ = /^[a-zA-Z0-9-]+$/;\ngoog.html.SafeHtml.URL_ATTRIBUTES_ = {action:!0, cite:!0, data:!0, formaction:!0, href:!0, manifest:!0, poster:!0, src:!0};\ngoog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_ = {APPLET:!0, BASE:!0, EMBED:!0, IFRAME:!0, LINK:!0, MATH:!0, META:!0, OBJECT:!0, SCRIPT:!0, STYLE:!0, SVG:!0, TEMPLATE:!0};\ngoog.html.SafeHtml.create = function(a, b, c) {\n goog.html.SafeHtml.verifyTagName(String(a));\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a), b, c);\n};\ngoog.html.SafeHtml.verifyTagName = function(a) {\n if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a)) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? \"Invalid tag name <\" + a + \">.\" : \"\");\n }\n if (a.toUpperCase() in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? \"Tag name <\" + a + \"> is not allowed for SafeHtml.\" : \"\");\n }\n};\ngoog.html.SafeHtml.createIframe = function(a, b, c, d) {\n a && goog.html.TrustedResourceUrl.unwrap(a);\n var e = {};\n e.src = a || null;\n e.srcdoc = b && goog.html.SafeHtml.unwrap(b);\n a = goog.html.SafeHtml.combineAttributes(e, {sandbox:\"\"}, c);\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"iframe\", a, d);\n};\ngoog.html.SafeHtml.createSandboxIframe = function(a, b, c, d) {\n if (!goog.html.SafeHtml.canUseSandboxIframe()) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? \"The browser does not support sandboxed iframes.\" : \"\");\n }\n var e = {};\n e.src = a ? goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)) : null;\n e.srcdoc = b || null;\n e.sandbox = \"\";\n a = goog.html.SafeHtml.combineAttributes(e, {}, c);\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"iframe\", a, d);\n};\ngoog.html.SafeHtml.canUseSandboxIframe = function() {\n return goog.global.HTMLIFrameElement && \"sandbox\" in goog.global.HTMLIFrameElement.prototype;\n};\ngoog.html.SafeHtml.createScriptSrc = function(a, b) {\n goog.html.TrustedResourceUrl.unwrap(a);\n var c = goog.html.SafeHtml.combineAttributes({src:a}, {}, b);\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"script\", c);\n};\ngoog.html.SafeHtml.createScript = function(a, b) {\n for (var c in b) {\n var d = c.toLowerCase();\n if (\"language\" == d || \"src\" == d || \"text\" == d || \"type\" == d) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot set \"' + d + '\" attribute' : \"\");\n }\n }\n c = \"\";\n a = goog.array.concat(a);\n for (d = 0; d < a.length; d++) {\n c += goog.html.SafeScript.unwrap(a[d]);\n }\n c = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c, goog.i18n.bidi.Dir.NEUTRAL);\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"script\", b, c);\n};\ngoog.html.SafeHtml.createStyle = function(a, b) {\n var c = goog.html.SafeHtml.combineAttributes({type:\"text/css\"}, {}, b), d = \"\";\n a = goog.array.concat(a);\n for (var e = 0; e < a.length; e++) {\n d += goog.html.SafeStyleSheet.unwrap(a[e]);\n }\n d = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d, goog.i18n.bidi.Dir.NEUTRAL);\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"style\", c, d);\n};\ngoog.html.SafeHtml.createMetaRefresh = function(a, b) {\n var c = goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));\n (goog.labs.userAgent.browser.isIE() || goog.labs.userAgent.browser.isEdge()) && goog.string.internal.contains(c, \";\") && (c = \"'\" + c.replace(/'/g, \"%27\") + \"'\");\n return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"meta\", {\"http-equiv\":\"refresh\", content:(b || 0) + \"; url=\" + c});\n};\ngoog.html.SafeHtml.getAttrNameAndValue_ = function(a, b, c) {\n if (c instanceof goog.string.Const) {\n c = goog.string.Const.unwrap(c);\n } else {\n if (\"style\" == b.toLowerCase()) {\n if (goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE) {\n c = goog.html.SafeHtml.getStyleValue_(c);\n } else {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute \"style\" not supported.' : \"\");\n }\n } else {\n if (/^on/i.test(b)) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute \"' + b + '\" requires goog.string.Const value, \"' + c + '\" given.' : \"\");\n }\n if (b.toLowerCase() in goog.html.SafeHtml.URL_ATTRIBUTES_) {\n if (c instanceof goog.html.TrustedResourceUrl) {\n c = goog.html.TrustedResourceUrl.unwrap(c);\n } else {\n if (c instanceof goog.html.SafeUrl) {\n c = goog.html.SafeUrl.unwrap(c);\n } else {\n if (\"string\" === typeof c) {\n c = goog.html.SafeUrl.sanitize(c).getTypedStringValue();\n } else {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Attribute \"' + b + '\" on tag \"' + a + '\" requires goog.html.SafeUrl, goog.string.Const, or string, value \"' + c + '\" given.' : \"\");\n }\n }\n }\n }\n }\n }\n c.implementsGoogStringTypedString && (c = c.getTypedStringValue());\n goog.asserts.assert(\"string\" === typeof c || \"number\" === typeof c, \"String or number value expected, got \" + typeof c + \" with value: \" + c);\n return b + '=\"' + goog.string.internal.htmlEscape(String(c)) + '\"';\n};\ngoog.html.SafeHtml.getStyleValue_ = function(a) {\n if (!goog.isObject(a)) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'The \"style\" attribute requires goog.html.SafeStyle or map of style properties, ' + typeof a + \" given: \" + a : \"\");\n }\n a instanceof goog.html.SafeStyle || (a = goog.html.SafeStyle.create(a));\n return goog.html.SafeStyle.unwrap(a);\n};\ngoog.html.SafeHtml.createWithDir = function(a, b, c, d) {\n b = goog.html.SafeHtml.create(b, c, d);\n b.dir_ = a;\n return b;\n};\ngoog.html.SafeHtml.join = function(a, b) {\n var c = goog.html.SafeHtml.htmlEscape(a), d = c.getDirection(), e = [], f = function(a) {\n goog.isArray(a) ? goog.array.forEach(a, f) : (a = goog.html.SafeHtml.htmlEscape(a), e.push(goog.html.SafeHtml.unwrap(a)), a = a.getDirection(), d == goog.i18n.bidi.Dir.NEUTRAL ? d = a : a != goog.i18n.bidi.Dir.NEUTRAL && d != a && (d = null));\n };\n goog.array.forEach(b, f);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e.join(goog.html.SafeHtml.unwrap(c)), d);\n};\ngoog.html.SafeHtml.concat = function(a) {\n return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY, Array.prototype.slice.call(arguments));\n};\ngoog.html.SafeHtml.concatWithDir = function(a, b) {\n var c = goog.html.SafeHtml.concat(goog.array.slice(arguments, 1));\n c.dir_ = a;\n return c;\n};\ngoog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_ = {};\ngoog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse = function(a, b) {\n return (new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(a, b);\n};\ngoog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_ = function(a, b) {\n this.privateDoNotAccessOrElseSafeHtmlWrappedValue_ = goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY ? goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a) : a;\n this.dir_ = b;\n return this;\n};\ngoog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse = function(a, b, c) {\n var d = null;\n var e = \"<\" + a + goog.html.SafeHtml.stringifyAttributes(a, b);\n null == c ? c = [] : goog.isArray(c) || (c = [c]);\n goog.dom.tags.isVoidTag(a.toLowerCase()) ? (goog.asserts.assert(!c.length, \"Void tag <\" + a + \"> does not allow content.\"), e += \">\") : (d = goog.html.SafeHtml.concat(c), e += \">\" + goog.html.SafeHtml.unwrap(d) + \"</\" + a + \">\", d = d.getDirection());\n (a = b && b.dir) && (d = /^(ltr|rtl|auto)$/i.test(a) ? goog.i18n.bidi.Dir.NEUTRAL : null);\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e, d);\n};\ngoog.html.SafeHtml.stringifyAttributes = function(a, b) {\n var c = \"\";\n if (b) {\n for (var d in b) {\n if (!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d)) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Invalid attribute name \"' + d + '\".' : \"\");\n }\n var e = b[d];\n null != e && (c += \" \" + goog.html.SafeHtml.getAttrNameAndValue_(a, d, e));\n }\n }\n return c;\n};\ngoog.html.SafeHtml.combineAttributes = function(a, b, c) {\n var d = {}, e;\n for (e in a) {\n goog.asserts.assert(e.toLowerCase() == e, \"Must be lower case\"), d[e] = a[e];\n }\n for (e in b) {\n goog.asserts.assert(e.toLowerCase() == e, \"Must be lower case\"), d[e] = b[e];\n }\n if (c) {\n for (e in c) {\n var f = e.toLowerCase();\n if (f in a) {\n throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES ? 'Cannot override \"' + f + '\" attribute, got \"' + e + '\" with value \"' + c[e] + '\"' : \"\");\n }\n f in b && delete d[f];\n d[e] = c[e];\n }\n }\n return d;\n};\ngoog.html.SafeHtml.DOCTYPE_HTML = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"<!DOCTYPE html>\", goog.i18n.bidi.Dir.NEUTRAL);\ngoog.html.SafeHtml.EMPTY = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"\", goog.i18n.bidi.Dir.NEUTRAL);\ngoog.html.SafeHtml.BR = goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"<br>\", goog.i18n.bidi.Dir.NEUTRAL);\ngoog.html.uncheckedconversions = {};\ngoog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract = function(a, b, c) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b, c || null);\n};\ngoog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract = function(a, b) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract = function(a, b) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract = function(a, b) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract = function(a, b) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract = function(a, b) {\n goog.asserts.assertString(goog.string.Const.unwrap(a), \"must provide justification\");\n goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)), \"must provide non-empty justification\");\n return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b);\n};\ngoog.dom.safe = {};\ngoog.dom.safe.InsertAdjacentHtmlPosition = {AFTERBEGIN:\"afterbegin\", AFTEREND:\"afterend\", BEFOREBEGIN:\"beforebegin\", BEFOREEND:\"beforeend\"};\ngoog.dom.safe.insertAdjacentHtml = function(a, b, c) {\n a.insertAdjacentHTML(b, goog.html.SafeHtml.unwrapTrustedHTML(c));\n};\ngoog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_ = {MATH:!0, SCRIPT:!0, STYLE:!0, SVG:!0, TEMPLATE:!0};\ngoog.dom.safe.isInnerHtmlCleanupRecursive_ = goog.functions.cacheReturnValue(function() {\n if (goog.DEBUG && \"undefined\" === typeof document) {\n return !1;\n }\n var a = document.createElement(\"div\"), b = document.createElement(\"div\");\n b.appendChild(document.createElement(\"div\"));\n a.appendChild(b);\n if (goog.DEBUG && !a.firstChild) {\n return !1;\n }\n b = a.firstChild.firstChild;\n a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);\n return !b.parentElement;\n});\ngoog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse = function(a, b) {\n if (goog.dom.safe.isInnerHtmlCleanupRecursive_()) {\n for (; a.lastChild;) {\n a.removeChild(a.lastChild);\n }\n }\n a.innerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);\n};\ngoog.dom.safe.setInnerHtml = function(a, b) {\n if (goog.asserts.ENABLE_ASSERTS) {\n var c = a.tagName.toUpperCase();\n if (goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c]) {\n throw Error(\"goog.dom.safe.setInnerHtml cannot be used to set content of \" + a.tagName + \".\");\n }\n }\n goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a, b);\n};\ngoog.dom.safe.setOuterHtml = function(a, b) {\n a.outerHTML = goog.html.SafeHtml.unwrapTrustedHTML(b);\n};\ngoog.dom.safe.setFormElementAction = function(a, b) {\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n goog.dom.asserts.assertIsHTMLFormElement(a).action = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setButtonFormAction = function(a, b) {\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n goog.dom.asserts.assertIsHTMLButtonElement(a).formAction = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setInputFormAction = function(a, b) {\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n goog.dom.asserts.assertIsHTMLInputElement(a).formAction = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setStyle = function(a, b) {\n a.style.cssText = goog.html.SafeStyle.unwrap(b);\n};\ngoog.dom.safe.documentWrite = function(a, b) {\n a.write(goog.html.SafeHtml.unwrapTrustedHTML(b));\n};\ngoog.dom.safe.setAnchorHref = function(a, b) {\n goog.dom.asserts.assertIsHTMLAnchorElement(a);\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n a.href = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setImageSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLImageElement(a);\n if (b instanceof goog.html.SafeUrl) {\n var c = b;\n } else {\n c = /^data:image\\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);\n }\n a.src = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setAudioSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLAudioElement(a);\n if (b instanceof goog.html.SafeUrl) {\n var c = b;\n } else {\n c = /^data:audio\\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);\n }\n a.src = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setVideoSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLVideoElement(a);\n if (b instanceof goog.html.SafeUrl) {\n var c = b;\n } else {\n c = /^data:video\\//i.test(b), c = goog.html.SafeUrl.sanitizeAssertUnchanged(b, c);\n }\n a.src = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.setEmbedSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLEmbedElement(a);\n a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);\n};\ngoog.dom.safe.setFrameSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLFrameElement(a);\n a.src = goog.html.TrustedResourceUrl.unwrap(b);\n};\ngoog.dom.safe.setIframeSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLIFrameElement(a);\n a.src = goog.html.TrustedResourceUrl.unwrap(b);\n};\ngoog.dom.safe.setIframeSrcdoc = function(a, b) {\n goog.dom.asserts.assertIsHTMLIFrameElement(a);\n a.srcdoc = goog.html.SafeHtml.unwrapTrustedHTML(b);\n};\ngoog.dom.safe.setLinkHrefAndRel = function(a, b, c) {\n goog.dom.asserts.assertIsHTMLLinkElement(a);\n a.rel = c;\n goog.string.internal.caseInsensitiveContains(c, \"stylesheet\") ? (goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl, 'URL must be TrustedResourceUrl because \"rel\" contains \"stylesheet\"'), a.href = goog.html.TrustedResourceUrl.unwrap(b)) : a.href = b instanceof goog.html.TrustedResourceUrl ? goog.html.TrustedResourceUrl.unwrap(b) : b instanceof goog.html.SafeUrl ? goog.html.SafeUrl.unwrap(b) : goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(b));\n};\ngoog.dom.safe.setObjectData = function(a, b) {\n goog.dom.asserts.assertIsHTMLObjectElement(a);\n a.data = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);\n};\ngoog.dom.safe.setScriptSrc = function(a, b) {\n goog.dom.asserts.assertIsHTMLScriptElement(a);\n a.src = goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);\n var c = goog.getScriptNonce();\n c && a.setAttribute(\"nonce\", c);\n};\ngoog.dom.safe.setScriptContent = function(a, b) {\n goog.dom.asserts.assertIsHTMLScriptElement(a);\n a.text = goog.html.SafeScript.unwrapTrustedScript(b);\n var c = goog.getScriptNonce();\n c && a.setAttribute(\"nonce\", c);\n};\ngoog.dom.safe.setLocationHref = function(a, b) {\n goog.dom.asserts.assertIsLocation(a);\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n a.href = goog.html.SafeUrl.unwrap(c);\n};\ngoog.dom.safe.assignLocation = function(a, b) {\n goog.dom.asserts.assertIsLocation(a);\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n a.assign(goog.html.SafeUrl.unwrap(c));\n};\ngoog.dom.safe.replaceLocation = function(a, b) {\n goog.dom.asserts.assertIsLocation(a);\n var c = b instanceof goog.html.SafeUrl ? b : goog.html.SafeUrl.sanitizeAssertUnchanged(b);\n a.replace(goog.html.SafeUrl.unwrap(c));\n};\ngoog.dom.safe.openInWindow = function(a, b, c, d, e) {\n a = a instanceof goog.html.SafeUrl ? a : goog.html.SafeUrl.sanitizeAssertUnchanged(a);\n return (b || goog.global).open(goog.html.SafeUrl.unwrap(a), c ? goog.string.Const.unwrap(c) : \"\", d, e);\n};\ngoog.dom.safe.parseFromStringHtml = function(a, b) {\n return goog.dom.safe.parseFromString(a, b, \"text/html\");\n};\ngoog.dom.safe.parseFromString = function(a, b, c) {\n return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b), c);\n};\ngoog.dom.safe.createImageFromBlob = function(a) {\n if (!/^image\\/.*/g.test(a.type)) {\n throw Error(\"goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.\");\n }\n var b = goog.global.URL.createObjectURL(a);\n a = new goog.global.Image;\n a.onload = function() {\n goog.global.URL.revokeObjectURL(b);\n };\n goog.dom.safe.setImageSrc(a, goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\"Image blob URL.\"), b));\n return a;\n};\ngoog.string.DETECT_DOUBLE_ESCAPING = !1;\ngoog.string.FORCE_NON_DOM_HTML_UNESCAPING = !1;\ngoog.string.Unicode = {NBSP:\"\\u00a0\"};\ngoog.string.startsWith = goog.string.internal.startsWith;\ngoog.string.endsWith = goog.string.internal.endsWith;\ngoog.string.caseInsensitiveStartsWith = goog.string.internal.caseInsensitiveStartsWith;\ngoog.string.caseInsensitiveEndsWith = goog.string.internal.caseInsensitiveEndsWith;\ngoog.string.caseInsensitiveEquals = goog.string.internal.caseInsensitiveEquals;\ngoog.string.subs = function(a, b) {\n for (var c = a.split(\"%s\"), d = \"\", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) {\n d += c.shift() + e.shift();\n }\n return d + c.join(\"%s\");\n};\ngoog.string.collapseWhitespace = function(a) {\n return a.replace(/[\\s\\xa0]+/g, \" \").replace(/^\\s+|\\s+$/g, \"\");\n};\ngoog.string.isEmptyOrWhitespace = goog.string.internal.isEmptyOrWhitespace;\ngoog.string.isEmptyString = function(a) {\n return 0 == a.length;\n};\ngoog.string.isEmpty = goog.string.isEmptyOrWhitespace;\ngoog.string.isEmptyOrWhitespaceSafe = function(a) {\n return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a));\n};\ngoog.string.isEmptySafe = goog.string.isEmptyOrWhitespaceSafe;\ngoog.string.isBreakingWhitespace = function(a) {\n return !/[^\\t\\n\\r ]/.test(a);\n};\ngoog.string.isAlpha = function(a) {\n return !/[^a-zA-Z]/.test(a);\n};\ngoog.string.isNumeric = function(a) {\n return !/[^0-9]/.test(a);\n};\ngoog.string.isAlphaNumeric = function(a) {\n return !/[^a-zA-Z0-9]/.test(a);\n};\ngoog.string.isSpace = function(a) {\n return \" \" == a;\n};\ngoog.string.isUnicodeChar = function(a) {\n return 1 == a.length && \" \" <= a && \"~\" >= a || \"\\u0080\" <= a && \"\\ufffd\" >= a;\n};\ngoog.string.stripNewlines = function(a) {\n return a.replace(/(\\r\\n|\\r|\\n)+/g, \" \");\n};\ngoog.string.canonicalizeNewlines = function(a) {\n return a.replace(/(\\r\\n|\\r|\\n)/g, \"\\n\");\n};\ngoog.string.normalizeWhitespace = function(a) {\n return a.replace(/\\xa0|\\s/g, \" \");\n};\ngoog.string.normalizeSpaces = function(a) {\n return a.replace(/\\xa0|[ \\t]+/g, \" \");\n};\ngoog.string.collapseBreakingSpaces = function(a) {\n return a.replace(/[\\t\\r\\n ]+/g, \" \").replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g, \"\");\n};\ngoog.string.trim = goog.string.internal.trim;\ngoog.string.trimLeft = function(a) {\n return a.replace(/^[\\s\\xa0]+/, \"\");\n};\ngoog.string.trimRight = function(a) {\n return a.replace(/[\\s\\xa0]+$/, \"\");\n};\ngoog.string.caseInsensitiveCompare = goog.string.internal.caseInsensitiveCompare;\ngoog.string.numberAwareCompare_ = function(a, b, c) {\n if (a == b) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n for (var d = a.toLowerCase().match(c), e = b.toLowerCase().match(c), f = Math.min(d.length, e.length), g = 0; g < f; g++) {\n c = d[g];\n var h = e[g];\n if (c != h) {\n return a = parseInt(c, 10), !isNaN(a) && (b = parseInt(h, 10), !isNaN(b) && a - b) ? a - b : c < h ? -1 : 1;\n }\n }\n return d.length != e.length ? d.length - e.length : a < b ? -1 : 1;\n};\ngoog.string.intAwareCompare = function(a, b) {\n return goog.string.numberAwareCompare_(a, b, /\\d+|\\D+/g);\n};\ngoog.string.floatAwareCompare = function(a, b) {\n return goog.string.numberAwareCompare_(a, b, /\\d+|\\.\\d+|\\D+/g);\n};\ngoog.string.numerateCompare = goog.string.floatAwareCompare;\ngoog.string.urlEncode = function(a) {\n return encodeURIComponent(String(a));\n};\ngoog.string.urlDecode = function(a) {\n return decodeURIComponent(a.replace(/\\+/g, \" \"));\n};\ngoog.string.newLineToBr = goog.string.internal.newLineToBr;\ngoog.string.htmlEscape = function(a, b) {\n a = goog.string.internal.htmlEscape(a, b);\n goog.string.DETECT_DOUBLE_ESCAPING && (a = a.replace(goog.string.E_RE_, \"&#101;\"));\n return a;\n};\ngoog.string.E_RE_ = /e/g;\ngoog.string.unescapeEntities = function(a) {\n return goog.string.contains(a, \"&\") ? !goog.string.FORCE_NON_DOM_HTML_UNESCAPING && \"document\" in goog.global ? goog.string.unescapeEntitiesUsingDom_(a) : goog.string.unescapePureXmlEntities_(a) : a;\n};\ngoog.string.unescapeEntitiesWithDocument = function(a, b) {\n return goog.string.contains(a, \"&\") ? goog.string.unescapeEntitiesUsingDom_(a, b) : a;\n};\ngoog.string.unescapeEntitiesUsingDom_ = function(a, b) {\n var c = {\"&amp;\":\"&\", \"&lt;\":\"<\", \"&gt;\":\">\", \"&quot;\":'\"'};\n var d = b ? b.createElement(\"div\") : goog.global.document.createElement(\"div\");\n return a.replace(goog.string.HTML_ENTITY_PATTERN_, function(a, b) {\n var e = c[a];\n if (e) {\n return e;\n }\n if (\"#\" == b.charAt(0)) {\n var f = Number(\"0\" + b.substr(1));\n isNaN(f) || (e = String.fromCharCode(f));\n }\n e || (goog.dom.safe.setInnerHtml(d, goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\"Single HTML entity.\"), a + \" \")), e = d.firstChild.nodeValue.slice(0, -1));\n return c[a] = e;\n });\n};\ngoog.string.unescapePureXmlEntities_ = function(a) {\n return a.replace(/&([^;]+);/g, function(a, c) {\n switch(c) {\n case \"amp\":\n return \"&\";\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"quot\":\n return '\"';\n default:\n if (\"#\" == c.charAt(0)) {\n var b = Number(\"0\" + c.substr(1));\n if (!isNaN(b)) {\n return String.fromCharCode(b);\n }\n }\n return a;\n }\n });\n};\ngoog.string.HTML_ENTITY_PATTERN_ = /&([^;\\s<&]+);?/g;\ngoog.string.whitespaceEscape = function(a, b) {\n return goog.string.newLineToBr(a.replace(/ /g, \" &#160;\"), b);\n};\ngoog.string.preserveSpaces = function(a) {\n return a.replace(/(^|[\\n ]) /g, \"$1\" + goog.string.Unicode.NBSP);\n};\ngoog.string.stripQuotes = function(a, b) {\n for (var c = b.length, d = 0; d < c; d++) {\n var e = 1 == c ? b : b.charAt(d);\n if (a.charAt(0) == e && a.charAt(a.length - 1) == e) {\n return a.substring(1, a.length - 1);\n }\n }\n return a;\n};\ngoog.string.truncate = function(a, b, c) {\n c && (a = goog.string.unescapeEntities(a));\n a.length > b && (a = a.substring(0, b - 3) + \"...\");\n c && (a = goog.string.htmlEscape(a));\n return a;\n};\ngoog.string.truncateMiddle = function(a, b, c, d) {\n c && (a = goog.string.unescapeEntities(a));\n if (d && a.length > b) {\n d > b && (d = b);\n var e = a.length - d;\n a = a.substring(0, b - d) + \"...\" + a.substring(e);\n } else {\n a.length > b && (d = Math.floor(b / 2), e = a.length - d, a = a.substring(0, d + b % 2) + \"...\" + a.substring(e));\n }\n c && (a = goog.string.htmlEscape(a));\n return a;\n};\ngoog.string.specialEscapeChars_ = {\"\\x00\":\"\\\\0\", \"\\b\":\"\\\\b\", \"\\f\":\"\\\\f\", \"\\n\":\"\\\\n\", \"\\r\":\"\\\\r\", \"\\t\":\"\\\\t\", \"\\x0B\":\"\\\\x0B\", '\"':'\\\\\"', \"\\\\\":\"\\\\\\\\\", \"<\":\"\\\\u003C\"};\ngoog.string.jsEscapeCache_ = {\"'\":\"\\\\'\"};\ngoog.string.quote = function(a) {\n a = String(a);\n for (var b = ['\"'], c = 0; c < a.length; c++) {\n var d = a.charAt(c), e = d.charCodeAt(0);\n b[c + 1] = goog.string.specialEscapeChars_[d] || (31 < e && 127 > e ? d : goog.string.escapeChar(d));\n }\n b.push('\"');\n return b.join(\"\");\n};\ngoog.string.escapeString = function(a) {\n for (var b = [], c = 0; c < a.length; c++) {\n b[c] = goog.string.escapeChar(a.charAt(c));\n }\n return b.join(\"\");\n};\ngoog.string.escapeChar = function(a) {\n if (a in goog.string.jsEscapeCache_) {\n return goog.string.jsEscapeCache_[a];\n }\n if (a in goog.string.specialEscapeChars_) {\n return goog.string.jsEscapeCache_[a] = goog.string.specialEscapeChars_[a];\n }\n var b = a.charCodeAt(0);\n if (31 < b && 127 > b) {\n var c = a;\n } else {\n if (256 > b) {\n if (c = \"\\\\x\", 16 > b || 256 < b) {\n c += \"0\";\n }\n } else {\n c = \"\\\\u\", 4096 > b && (c += \"0\");\n }\n c += b.toString(16).toUpperCase();\n }\n return goog.string.jsEscapeCache_[a] = c;\n};\ngoog.string.contains = goog.string.internal.contains;\ngoog.string.caseInsensitiveContains = goog.string.internal.caseInsensitiveContains;\ngoog.string.countOf = function(a, b) {\n return a && b ? a.split(b).length - 1 : 0;\n};\ngoog.string.removeAt = function(a, b, c) {\n var d = a;\n 0 <= b && b < a.length && 0 < c && (d = a.substr(0, b) + a.substr(b + c, a.length - b - c));\n return d;\n};\ngoog.string.remove = function(a, b) {\n return a.replace(b, \"\");\n};\ngoog.string.removeAll = function(a, b) {\n var c = new RegExp(goog.string.regExpEscape(b), \"g\");\n return a.replace(c, \"\");\n};\ngoog.string.replaceAll = function(a, b, c) {\n b = new RegExp(goog.string.regExpEscape(b), \"g\");\n return a.replace(b, c.replace(/\\$/g, \"$$$$\"));\n};\ngoog.string.regExpEscape = function(a) {\n return String(a).replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g, \"\\\\$1\").replace(/\\x08/g, \"\\\\x08\");\n};\ngoog.string.repeat = String.prototype.repeat ? function(a, b) {\n return a.repeat(b);\n} : function(a, b) {\n return Array(b + 1).join(a);\n};\ngoog.string.padNumber = function(a, b, c) {\n a = void 0 !== c ? a.toFixed(c) : String(a);\n c = a.indexOf(\".\");\n -1 == c && (c = a.length);\n return goog.string.repeat(\"0\", Math.max(0, b - c)) + a;\n};\ngoog.string.makeSafe = function(a) {\n return null == a ? \"\" : String(a);\n};\ngoog.string.buildString = function(a) {\n return Array.prototype.join.call(arguments, \"\");\n};\ngoog.string.getRandomString = function() {\n return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ goog.now()).toString(36);\n};\ngoog.string.compareVersions = goog.string.internal.compareVersions;\ngoog.string.hashCode = function(a) {\n for (var b = 0, c = 0; c < a.length; ++c) {\n b = 31 * b + a.charCodeAt(c) >>> 0;\n }\n return b;\n};\ngoog.string.uniqueStringCounter_ = 2147483648 * Math.random() | 0;\ngoog.string.createUniqueString = function() {\n return \"goog_\" + goog.string.uniqueStringCounter_++;\n};\ngoog.string.toNumber = function(a) {\n var b = Number(a);\n return 0 == b && goog.string.isEmptyOrWhitespace(a) ? NaN : b;\n};\ngoog.string.isLowerCamelCase = function(a) {\n return /^[a-z]+([A-Z][a-z]*)*$/.test(a);\n};\ngoog.string.isUpperCamelCase = function(a) {\n return /^([A-Z][a-z]*)+$/.test(a);\n};\ngoog.string.toCamelCase = function(a) {\n return String(a).replace(/\\-([a-z])/g, function(a, c) {\n return c.toUpperCase();\n });\n};\ngoog.string.toSelectorCase = function(a) {\n return String(a).replace(/([A-Z])/g, \"-$1\").toLowerCase();\n};\ngoog.string.toTitleCase = function(a, b) {\n var c = \"string\" === typeof b ? goog.string.regExpEscape(b) : \"\\\\s\";\n return a.replace(new RegExp(\"(^\" + (c ? \"|[\" + c + \"]+\" : \"\") + \")([a-z])\", \"g\"), function(a, b, c) {\n return b + c.toUpperCase();\n });\n};\ngoog.string.capitalize = function(a) {\n return String(a.charAt(0)).toUpperCase() + String(a.substr(1)).toLowerCase();\n};\ngoog.string.parseInt = function(a) {\n isFinite(a) && (a = String(a));\n return \"string\" === typeof a ? /^\\s*-?0x/i.test(a) ? parseInt(a, 16) : parseInt(a, 10) : NaN;\n};\ngoog.string.splitLimit = function(a, b, c) {\n a = a.split(b);\n for (var d = []; 0 < c && a.length;) {\n d.push(a.shift()), c--;\n }\n a.length && d.push(a.join(b));\n return d;\n};\ngoog.string.lastComponent = function(a, b) {\n if (b) {\n \"string\" == typeof b && (b = [b]);\n } else {\n return a;\n }\n for (var c = -1, d = 0; d < b.length; d++) {\n if (\"\" != b[d]) {\n var e = a.lastIndexOf(b[d]);\n e > c && (c = e);\n }\n }\n return -1 == c ? a : a.slice(c + 1);\n};\ngoog.string.editDistance = function(a, b) {\n var c = [], d = [];\n if (a == b) {\n return 0;\n }\n if (!a.length || !b.length) {\n return Math.max(a.length, b.length);\n }\n for (var e = 0; e < b.length + 1; e++) {\n c[e] = e;\n }\n for (e = 0; e < a.length; e++) {\n d[0] = e + 1;\n for (var f = 0; f < b.length; f++) {\n d[f + 1] = Math.min(d[f] + 1, c[f + 1] + 1, c[f] + Number(a[e] != b[f]));\n }\n for (f = 0; f < c.length; f++) {\n c[f] = d[f];\n }\n }\n return d[b.length];\n};\ngoog.proto2 = {};\ngoog.proto2.Descriptor = function(a, b, c) {\n this.messageType_ = a;\n this.name_ = b.name || null;\n this.fullName_ = b.fullName || null;\n this.containingType_ = b.containingType;\n this.fields_ = {};\n for (a = 0; a < c.length; a++) {\n b = c[a], this.fields_[b.getTag()] = b;\n }\n};\ngoog.proto2.Descriptor.prototype.getName = function() {\n return this.name_;\n};\ngoog.proto2.Descriptor.prototype.getFullName = function() {\n return this.fullName_;\n};\ngoog.proto2.Descriptor.prototype.getContainingType = function() {\n return this.containingType_ ? this.containingType_.getDescriptor() : null;\n};\ngoog.proto2.Descriptor.prototype.getFields = function() {\n var a = goog.object.getValues(this.fields_);\n goog.array.sort(a, function(a, c) {\n return a.getTag() - c.getTag();\n });\n return a;\n};\ngoog.proto2.Descriptor.prototype.getFieldsMap = function() {\n return this.fields_;\n};\ngoog.proto2.Descriptor.prototype.findFieldByName = function(a) {\n return goog.object.findValue(this.fields_, function(b, c, d) {\n return b.getName() == a;\n }) || null;\n};\ngoog.proto2.Descriptor.prototype.findFieldByTag = function(a) {\n goog.asserts.assert(goog.string.isNumeric(a));\n return this.fields_[parseInt(a, 10)] || null;\n};\ngoog.proto2.Descriptor.prototype.createMessageInstance = function() {\n return new this.messageType_;\n};\ngoog.proto2.FieldDescriptor = function(a, b, c) {\n this.parent_ = a;\n goog.asserts.assert(goog.string.isNumeric(b));\n this.tag_ = b;\n this.name_ = c.name;\n this.isPacked_ = !!c.packed;\n this.isRepeated_ = !!c.repeated;\n this.isRequired_ = !!c.required;\n this.fieldType_ = c.fieldType;\n this.nativeType_ = c.type;\n this.deserializationConversionPermitted_ = !1;\n switch(this.fieldType_) {\n case goog.proto2.FieldDescriptor.FieldType.INT64:\n case goog.proto2.FieldDescriptor.FieldType.UINT64:\n case goog.proto2.FieldDescriptor.FieldType.FIXED64:\n case goog.proto2.FieldDescriptor.FieldType.SFIXED64:\n case goog.proto2.FieldDescriptor.FieldType.SINT64:\n case goog.proto2.FieldDescriptor.FieldType.FLOAT:\n case goog.proto2.FieldDescriptor.FieldType.DOUBLE:\n this.deserializationConversionPermitted_ = !0;\n }\n this.defaultValue_ = c.defaultValue;\n};\ngoog.proto2.FieldDescriptor.FieldType = {DOUBLE:1, FLOAT:2, INT64:3, UINT64:4, INT32:5, FIXED64:6, FIXED32:7, BOOL:8, STRING:9, GROUP:10, MESSAGE:11, BYTES:12, UINT32:13, ENUM:14, SFIXED32:15, SFIXED64:16, SINT32:17, SINT64:18};\ngoog.proto2.FieldDescriptor.prototype.getTag = function() {\n return this.tag_;\n};\ngoog.proto2.FieldDescriptor.prototype.getContainingType = function() {\n return this.parent_.prototype.getDescriptor();\n};\ngoog.proto2.FieldDescriptor.prototype.getName = function() {\n return this.name_;\n};\ngoog.proto2.FieldDescriptor.prototype.getDefaultValue = function() {\n if (void 0 === this.defaultValue_) {\n var a = this.nativeType_;\n if (a === Boolean) {\n this.defaultValue_ = !1;\n } else {\n if (a === Number) {\n this.defaultValue_ = 0;\n } else {\n if (a === String) {\n this.defaultValue_ = this.deserializationConversionPermitted_ ? \"0\" : \"\";\n } else {\n return new a;\n }\n }\n }\n }\n return this.defaultValue_;\n};\ngoog.proto2.FieldDescriptor.prototype.getFieldType = function() {\n return this.fieldType_;\n};\ngoog.proto2.FieldDescriptor.prototype.getNativeType = function() {\n return this.nativeType_;\n};\ngoog.proto2.FieldDescriptor.prototype.deserializationConversionPermitted = function() {\n return this.deserializationConversionPermitted_;\n};\ngoog.proto2.FieldDescriptor.prototype.getFieldMessageType = function() {\n return this.nativeType_.prototype.getDescriptor();\n};\ngoog.proto2.FieldDescriptor.prototype.isCompositeType = function() {\n return this.fieldType_ == goog.proto2.FieldDescriptor.FieldType.MESSAGE || this.fieldType_ == goog.proto2.FieldDescriptor.FieldType.GROUP;\n};\ngoog.proto2.FieldDescriptor.prototype.isPacked = function() {\n return this.isPacked_;\n};\ngoog.proto2.FieldDescriptor.prototype.isRepeated = function() {\n return this.isRepeated_;\n};\ngoog.proto2.FieldDescriptor.prototype.isRequired = function() {\n return this.isRequired_;\n};\ngoog.proto2.FieldDescriptor.prototype.isOptional = function() {\n return !this.isRepeated_ && !this.isRequired_;\n};\ngoog.proto2.Message = function() {\n this.values_ = {};\n this.fields_ = this.getDescriptor().getFieldsMap();\n this.deserializedFields_ = this.lazyDeserializer_ = null;\n};\ngoog.proto2.Message.FieldType = {DOUBLE:1, FLOAT:2, INT64:3, UINT64:4, INT32:5, FIXED64:6, FIXED32:7, BOOL:8, STRING:9, GROUP:10, MESSAGE:11, BYTES:12, UINT32:13, ENUM:14, SFIXED32:15, SFIXED64:16, SINT32:17, SINT64:18};\ngoog.proto2.Message.prototype.initializeForLazyDeserializer = function(a, b) {\n this.lazyDeserializer_ = a;\n this.values_ = b;\n this.deserializedFields_ = {};\n};\ngoog.proto2.Message.prototype.setUnknown = function(a, b) {\n goog.asserts.assert(!this.fields_[a], \"Field is not unknown in this message\");\n goog.asserts.assert(1 <= a, \"Tag \" + a + ' has value \"' + b + '\" in descriptor ' + this.getDescriptor().getName());\n goog.asserts.assert(null !== b, \"Value cannot be null\");\n this.values_[a] = b;\n this.deserializedFields_ && delete this.deserializedFields_[a];\n};\ngoog.proto2.Message.prototype.forEachUnknown = function(a, b) {\n var c = b || this, d;\n for (d in this.values_) {\n var e = Number(d);\n this.fields_[e] || a.call(c, e, this.values_[d]);\n }\n};\ngoog.proto2.Message.prototype.getDescriptor = goog.abstractMethod;\ngoog.proto2.Message.prototype.has = function(a) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n return this.has$Value(a.getTag());\n};\ngoog.proto2.Message.prototype.arrayOf = function(a) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n return this.array$Values(a.getTag());\n};\ngoog.proto2.Message.prototype.countOf = function(a) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n return this.count$Values(a.getTag());\n};\ngoog.proto2.Message.prototype.get = function(a, b) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n return this.get$Value(a.getTag(), b);\n};\ngoog.proto2.Message.prototype.getOrDefault = function(a, b) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n return this.get$ValueOrDefault(a.getTag(), b);\n};\ngoog.proto2.Message.prototype.set = function(a, b) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n this.set$Value(a.getTag(), b);\n};\ngoog.proto2.Message.prototype.add = function(a, b) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n this.add$Value(a.getTag(), b);\n};\ngoog.proto2.Message.prototype.clear = function(a) {\n goog.asserts.assert(a.getContainingType() == this.getDescriptor(), \"The current message does not contain the given field\");\n this.clear$Field(a.getTag());\n};\ngoog.proto2.Message.prototype.equals = function(a) {\n if (!a || this.constructor != a.constructor) {\n return !1;\n }\n for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {\n var d = b[c], e = d.getTag();\n if (this.has$Value(e) != a.has$Value(e)) {\n return !1;\n }\n if (this.has$Value(e)) {\n var f = d.isCompositeType(), g = this.getValueForTag_(e);\n e = a.getValueForTag_(e);\n if (d.isRepeated()) {\n if (g.length != e.length) {\n return !1;\n }\n for (d = 0; d < g.length; d++) {\n var h = g[d], k = e[d];\n if (f ? !h.equals(k) : h != k) {\n return !1;\n }\n }\n } else {\n if (f ? !g.equals(e) : g != e) {\n return !1;\n }\n }\n }\n }\n return !0;\n};\ngoog.proto2.Message.prototype.copyFrom = function(a) {\n goog.asserts.assert(this.constructor == a.constructor, \"The source message must have the same type.\");\n this != a && (this.values_ = {}, this.deserializedFields_ && (this.deserializedFields_ = {}), this.mergeFrom(a));\n};\ngoog.proto2.Message.prototype.mergeFrom = function(a) {\n goog.asserts.assert(this.constructor == a.constructor, \"The source message must have the same type.\");\n for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {\n var d = b[c], e = d.getTag();\n if (a.has$Value(e)) {\n this.deserializedFields_ && delete this.deserializedFields_[d.getTag()];\n var f = d.isCompositeType();\n if (d.isRepeated()) {\n d = a.array$Values(e);\n for (var g = 0; g < d.length; g++) {\n this.add$Value(e, f ? d[g].clone() : d[g]);\n }\n } else {\n d = a.getValueForTag_(e), f ? (f = this.getValueForTag_(e)) ? f.mergeFrom(d) : this.set$Value(e, d.clone()) : this.set$Value(e, d);\n }\n }\n }\n};\ngoog.proto2.Message.prototype.clone = function() {\n var a = new this.constructor;\n a.copyFrom(this);\n return a;\n};\ngoog.proto2.Message.prototype.initDefaults = function(a) {\n for (var b = this.getDescriptor().getFields(), c = 0; c < b.length; c++) {\n var d = b[c], e = d.getTag(), f = d.isCompositeType();\n this.has$Value(e) || d.isRepeated() || (f ? this.values_[e] = new (d.getNativeType()) : a && (this.values_[e] = d.getDefaultValue()));\n if (f) {\n if (d.isRepeated()) {\n for (d = this.array$Values(e), e = 0; e < d.length; e++) {\n d[e].initDefaults(a);\n }\n } else {\n this.get$Value(e).initDefaults(a);\n }\n }\n }\n};\ngoog.proto2.Message.prototype.has$Value = function(a) {\n return null != this.values_[a];\n};\ngoog.proto2.Message.prototype.getValueForTag_ = function(a) {\n var b = this.values_[a];\n return null == b ? null : this.lazyDeserializer_ ? a in this.deserializedFields_ ? this.deserializedFields_[a] : (b = this.lazyDeserializer_.deserializeField(this, this.fields_[a], b), this.deserializedFields_[a] = b) : b;\n};\ngoog.proto2.Message.prototype.get$Value = function(a, b) {\n var c = this.getValueForTag_(a);\n if (this.fields_[a].isRepeated()) {\n var d = b || 0;\n goog.asserts.assert(0 <= d && d < c.length, \"Given index %s is out of bounds. Repeated field length: %s\", d, c.length);\n return c[d];\n }\n return c;\n};\ngoog.proto2.Message.prototype.get$ValueOrDefault = function(a, b) {\n return this.has$Value(a) ? this.get$Value(a, b) : this.fields_[a].getDefaultValue();\n};\ngoog.proto2.Message.prototype.array$Values = function(a) {\n return this.getValueForTag_(a) || [];\n};\ngoog.proto2.Message.prototype.count$Values = function(a) {\n return this.fields_[a].isRepeated() ? this.has$Value(a) ? this.values_[a].length : 0 : this.has$Value(a) ? 1 : 0;\n};\ngoog.proto2.Message.prototype.set$Value = function(a, b) {\n goog.asserts.ENABLE_ASSERTS && this.checkFieldType_(this.fields_[a], b);\n this.values_[a] = b;\n this.deserializedFields_ && (this.deserializedFields_[a] = b);\n};\ngoog.proto2.Message.prototype.add$Value = function(a, b) {\n goog.asserts.ENABLE_ASSERTS && this.checkFieldType_(this.fields_[a], b);\n this.values_[a] || (this.values_[a] = []);\n this.values_[a].push(b);\n this.deserializedFields_ && delete this.deserializedFields_[a];\n};\ngoog.proto2.Message.prototype.checkFieldType_ = function(a, b) {\n a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.ENUM ? goog.asserts.assertNumber(b) : goog.asserts.assert(Object(b).constructor == a.getNativeType());\n};\ngoog.proto2.Message.prototype.clear$Field = function(a) {\n delete this.values_[a];\n this.deserializedFields_ && delete this.deserializedFields_[a];\n};\ngoog.proto2.Message.createDescriptor = function(a, b) {\n var c = [], d = b[0], e;\n for (e in b) {\n 0 != e && c.push(new goog.proto2.FieldDescriptor(a, e, b[e]));\n }\n return new goog.proto2.Descriptor(a, d, c);\n};\ngoog.proto2.Serializer = function() {\n};\ngoog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS = !1;\ngoog.proto2.Serializer.prototype.serialize = goog.abstractMethod;\ngoog.proto2.Serializer.prototype.getSerializedValue = function(a, b) {\n return a.isCompositeType() ? this.serialize(b) : \"number\" !== typeof b || isFinite(b) ? b : b.toString();\n};\ngoog.proto2.Serializer.prototype.deserialize = function(a, b) {\n var c = a.createMessageInstance();\n this.deserializeTo(c, b);\n goog.asserts.assert(c instanceof goog.proto2.Message);\n return c;\n};\ngoog.proto2.Serializer.prototype.deserializeTo = goog.abstractMethod;\ngoog.proto2.Serializer.prototype.getDeserializedValue = function(a, b) {\n if (a.isCompositeType()) {\n return b instanceof goog.proto2.Message ? b : this.deserialize(a.getFieldMessageType(), b);\n }\n if (a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.ENUM) {\n if (goog.proto2.Serializer.DECODE_SYMBOLIC_ENUMS && \"string\" === typeof b) {\n var c = a.getNativeType();\n if (c.hasOwnProperty(b)) {\n return c[b];\n }\n }\n return \"string\" === typeof b && goog.proto2.Serializer.INTEGER_REGEX.test(b) && (c = Number(b), 0 < c) ? c : b;\n }\n if (!a.deserializationConversionPermitted()) {\n return b;\n }\n c = a.getNativeType();\n if (c === String) {\n if (\"number\" === typeof b) {\n return String(b);\n }\n } else {\n if (c === Number && \"string\" === typeof b && (\"Infinity\" === b || \"-Infinity\" === b || \"NaN\" === b || goog.proto2.Serializer.INTEGER_REGEX.test(b))) {\n return Number(b);\n }\n }\n return b;\n};\ngoog.proto2.Serializer.INTEGER_REGEX = /^-?[0-9]+$/;\ngoog.proto2.LazyDeserializer = function() {\n};\ngoog.inherits(goog.proto2.LazyDeserializer, goog.proto2.Serializer);\ngoog.proto2.LazyDeserializer.prototype.deserialize = function(a, b) {\n var c = a.createMessageInstance();\n c.initializeForLazyDeserializer(this, b);\n goog.asserts.assert(c instanceof goog.proto2.Message);\n return c;\n};\ngoog.proto2.LazyDeserializer.prototype.deserializeTo = function(a, b) {\n throw Error(\"Unimplemented\");\n};\ngoog.proto2.LazyDeserializer.prototype.deserializeField = goog.abstractMethod;\ngoog.proto2.PbLiteSerializer = function() {\n};\ngoog.inherits(goog.proto2.PbLiteSerializer, goog.proto2.LazyDeserializer);\ngoog.proto2.PbLiteSerializer.prototype.zeroIndexing_ = !1;\ngoog.proto2.PbLiteSerializer.prototype.setZeroIndexed = function(a) {\n this.zeroIndexing_ = a;\n};\ngoog.proto2.PbLiteSerializer.prototype.serialize = function(a) {\n for (var b = a.getDescriptor().getFields(), c = [], d = this.zeroIndexing_, e = 0; e < b.length; e++) {\n var f = b[e];\n if (a.has(f)) {\n var g = f.getTag();\n g = d ? g - 1 : g;\n if (f.isRepeated()) {\n c[g] = [];\n for (var h = 0; h < a.countOf(f); h++) {\n c[g][h] = this.getSerializedValue(f, a.get(f, h));\n }\n } else {\n c[g] = this.getSerializedValue(f, a.get(f));\n }\n }\n }\n a.forEachUnknown(function(a, b) {\n c[d ? a - 1 : a] = b;\n });\n return c;\n};\ngoog.proto2.PbLiteSerializer.prototype.deserializeField = function(a, b, c) {\n if (null == c) {\n return c;\n }\n if (b.isRepeated()) {\n a = [];\n goog.asserts.assert(goog.isArray(c), \"Value must be array: %s\", c);\n for (var d = 0; d < c.length; d++) {\n a[d] = this.getDeserializedValue(b, c[d]);\n }\n return a;\n }\n return this.getDeserializedValue(b, c);\n};\ngoog.proto2.PbLiteSerializer.prototype.getSerializedValue = function(a, b) {\n return a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL ? b ? 1 : 0 : goog.proto2.Serializer.prototype.getSerializedValue.apply(this, arguments);\n};\ngoog.proto2.PbLiteSerializer.prototype.getDeserializedValue = function(a, b) {\n return a.getFieldType() == goog.proto2.FieldDescriptor.FieldType.BOOL ? (goog.asserts.assert(\"number\" === typeof b || \"boolean\" === typeof b, \"Value is expected to be a number or boolean\"), !!b) : goog.proto2.Serializer.prototype.getDeserializedValue.apply(this, arguments);\n};\ngoog.proto2.PbLiteSerializer.prototype.deserialize = function(a, b) {\n var c = b;\n if (this.zeroIndexing_) {\n c = [];\n for (var d in b) {\n c[parseInt(d, 10) + 1] = b[d];\n }\n }\n return goog.proto2.PbLiteSerializer.superClass_.deserialize.call(this, a, c);\n};\n/*\n\n Protocol Buffer 2 Copyright 2008 Google Inc.\n All other code copyright its respective owners.\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\nvar i18n = {phonenumbers:{}};\ni18n.phonenumbers.NumberFormat = function() {\n goog.proto2.Message.call(this);\n};\ngoog.inherits(i18n.phonenumbers.NumberFormat, goog.proto2.Message);\ni18n.phonenumbers.NumberFormat.descriptor_ = null;\ni18n.phonenumbers.NumberFormat.prototype.getPattern = function() {\n return this.get$Value(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.getPatternOrDefault = function() {\n return this.get$ValueOrDefault(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.setPattern = function(a) {\n this.set$Value(1, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasPattern = function() {\n return this.has$Value(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.patternCount = function() {\n return this.count$Values(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearPattern = function() {\n this.clear$Field(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.getFormat = function() {\n return this.get$Value(2);\n};\ni18n.phonenumbers.NumberFormat.prototype.getFormatOrDefault = function() {\n return this.get$ValueOrDefault(2);\n};\ni18n.phonenumbers.NumberFormat.prototype.setFormat = function(a) {\n this.set$Value(2, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasFormat = function() {\n return this.has$Value(2);\n};\ni18n.phonenumbers.NumberFormat.prototype.formatCount = function() {\n return this.count$Values(2);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearFormat = function() {\n this.clear$Field(2);\n};\ni18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPattern = function(a) {\n return this.get$Value(3, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.getLeadingDigitsPatternOrDefault = function(a) {\n return this.get$ValueOrDefault(3, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.addLeadingDigitsPattern = function(a) {\n this.add$Value(3, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternArray = function() {\n return this.array$Values(3);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasLeadingDigitsPattern = function() {\n return this.has$Value(3);\n};\ni18n.phonenumbers.NumberFormat.prototype.leadingDigitsPatternCount = function() {\n return this.count$Values(3);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearLeadingDigitsPattern = function() {\n this.clear$Field(3);\n};\ni18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRule = function() {\n return this.get$Value(4);\n};\ni18n.phonenumbers.NumberFormat.prototype.getNationalPrefixFormattingRuleOrDefault = function() {\n return this.get$ValueOrDefault(4);\n};\ni18n.phonenumbers.NumberFormat.prototype.setNationalPrefixFormattingRule = function(a) {\n this.set$Value(4, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixFormattingRule = function() {\n return this.has$Value(4);\n};\ni18n.phonenumbers.NumberFormat.prototype.nationalPrefixFormattingRuleCount = function() {\n return this.count$Values(4);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixFormattingRule = function() {\n this.clear$Field(4);\n};\ni18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormatting = function() {\n return this.get$Value(6);\n};\ni18n.phonenumbers.NumberFormat.prototype.getNationalPrefixOptionalWhenFormattingOrDefault = function() {\n return this.get$ValueOrDefault(6);\n};\ni18n.phonenumbers.NumberFormat.prototype.setNationalPrefixOptionalWhenFormatting = function(a) {\n this.set$Value(6, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasNationalPrefixOptionalWhenFormatting = function() {\n return this.has$Value(6);\n};\ni18n.phonenumbers.NumberFormat.prototype.nationalPrefixOptionalWhenFormattingCount = function() {\n return this.count$Values(6);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearNationalPrefixOptionalWhenFormatting = function() {\n this.clear$Field(6);\n};\ni18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRule = function() {\n return this.get$Value(5);\n};\ni18n.phonenumbers.NumberFormat.prototype.getDomesticCarrierCodeFormattingRuleOrDefault = function() {\n return this.get$ValueOrDefault(5);\n};\ni18n.phonenumbers.NumberFormat.prototype.setDomesticCarrierCodeFormattingRule = function(a) {\n this.set$Value(5, a);\n};\ni18n.phonenumbers.NumberFormat.prototype.hasDomesticCarrierCodeFormattingRule = function() {\n return this.has$Value(5);\n};\ni18n.phonenumbers.NumberFormat.prototype.domesticCarrierCodeFormattingRuleCount = function() {\n return this.count$Values(5);\n};\ni18n.phonenumbers.NumberFormat.prototype.clearDomesticCarrierCodeFormattingRule = function() {\n this.clear$Field(5);\n};\ni18n.phonenumbers.PhoneNumberDesc = function() {\n goog.proto2.Message.call(this);\n};\ngoog.inherits(i18n.phonenumbers.PhoneNumberDesc, goog.proto2.Message);\ni18n.phonenumbers.PhoneNumberDesc.descriptor_ = null;\ni18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPattern = function() {\n return this.get$Value(2);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getNationalNumberPatternOrDefault = function() {\n return this.get$ValueOrDefault(2);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.setNationalNumberPattern = function(a) {\n this.set$Value(2, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.hasNationalNumberPattern = function() {\n return this.has$Value(2);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.nationalNumberPatternCount = function() {\n return this.count$Values(2);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.clearNationalNumberPattern = function() {\n this.clear$Field(2);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLength = function(a) {\n return this.get$Value(9, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthOrDefault = function(a) {\n return this.get$ValueOrDefault(9, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLength = function(a) {\n this.add$Value(9, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthArray = function() {\n return this.array$Values(9);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLength = function() {\n return this.has$Value(9);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthCount = function() {\n return this.count$Values(9);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLength = function() {\n this.clear$Field(9);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnly = function(a) {\n return this.get$Value(10, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getPossibleLengthLocalOnlyOrDefault = function(a) {\n return this.get$ValueOrDefault(10, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.addPossibleLengthLocalOnly = function(a) {\n this.add$Value(10, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyArray = function() {\n return this.array$Values(10);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.hasPossibleLengthLocalOnly = function() {\n return this.has$Value(10);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.possibleLengthLocalOnlyCount = function() {\n return this.count$Values(10);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.clearPossibleLengthLocalOnly = function() {\n this.clear$Field(10);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumber = function() {\n return this.get$Value(6);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.getExampleNumberOrDefault = function() {\n return this.get$ValueOrDefault(6);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.setExampleNumber = function(a) {\n this.set$Value(6, a);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.hasExampleNumber = function() {\n return this.has$Value(6);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.exampleNumberCount = function() {\n return this.count$Values(6);\n};\ni18n.phonenumbers.PhoneNumberDesc.prototype.clearExampleNumber = function() {\n this.clear$Field(6);\n};\ni18n.phonenumbers.PhoneMetadata = function() {\n goog.proto2.Message.call(this);\n};\ngoog.inherits(i18n.phonenumbers.PhoneMetadata, goog.proto2.Message);\ni18n.phonenumbers.PhoneMetadata.descriptor_ = null;\ni18n.phonenumbers.PhoneMetadata.prototype.getGeneralDesc = function() {\n return this.get$Value(1);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getGeneralDescOrDefault = function() {\n return this.get$ValueOrDefault(1);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setGeneralDesc = function(a) {\n this.set$Value(1, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasGeneralDesc = function() {\n return this.has$Value(1);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.generalDescCount = function() {\n return this.count$Values(1);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearGeneralDesc = function() {\n this.clear$Field(1);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getFixedLine = function() {\n return this.get$Value(2);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getFixedLineOrDefault = function() {\n return this.get$ValueOrDefault(2);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setFixedLine = function(a) {\n this.set$Value(2, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasFixedLine = function() {\n return this.has$Value(2);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.fixedLineCount = function() {\n return this.count$Values(2);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearFixedLine = function() {\n this.clear$Field(2);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getMobile = function() {\n return this.get$Value(3);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getMobileOrDefault = function() {\n return this.get$ValueOrDefault(3);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setMobile = function(a) {\n this.set$Value(3, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasMobile = function() {\n return this.has$Value(3);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.mobileCount = function() {\n return this.count$Values(3);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearMobile = function() {\n this.clear$Field(3);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getTollFree = function() {\n return this.get$Value(4);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getTollFreeOrDefault = function() {\n return this.get$ValueOrDefault(4);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setTollFree = function(a) {\n this.set$Value(4, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasTollFree = function() {\n return this.has$Value(4);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.tollFreeCount = function() {\n return this.count$Values(4);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearTollFree = function() {\n this.clear$Field(4);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPremiumRate = function() {\n return this.get$Value(5);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPremiumRateOrDefault = function() {\n return this.get$ValueOrDefault(5);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setPremiumRate = function(a) {\n this.set$Value(5, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasPremiumRate = function() {\n return this.has$Value(5);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.premiumRateCount = function() {\n return this.count$Values(5);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearPremiumRate = function() {\n this.clear$Field(5);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSharedCost = function() {\n return this.get$Value(6);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSharedCostOrDefault = function() {\n return this.get$ValueOrDefault(6);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setSharedCost = function(a) {\n this.set$Value(6, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasSharedCost = function() {\n return this.has$Value(6);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.sharedCostCount = function() {\n return this.count$Values(6);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearSharedCost = function() {\n this.clear$Field(6);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumber = function() {\n return this.get$Value(7);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPersonalNumberOrDefault = function() {\n return this.get$ValueOrDefault(7);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setPersonalNumber = function(a) {\n this.set$Value(7, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasPersonalNumber = function() {\n return this.has$Value(7);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.personalNumberCount = function() {\n return this.count$Values(7);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearPersonalNumber = function() {\n this.clear$Field(7);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getVoip = function() {\n return this.get$Value(8);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getVoipOrDefault = function() {\n return this.get$ValueOrDefault(8);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setVoip = function(a) {\n this.set$Value(8, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasVoip = function() {\n return this.has$Value(8);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.voipCount = function() {\n return this.count$Values(8);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearVoip = function() {\n this.clear$Field(8);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPager = function() {\n return this.get$Value(21);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPagerOrDefault = function() {\n return this.get$ValueOrDefault(21);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setPager = function(a) {\n this.set$Value(21, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasPager = function() {\n return this.has$Value(21);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.pagerCount = function() {\n return this.count$Values(21);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearPager = function() {\n this.clear$Field(21);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getUan = function() {\n return this.get$Value(25);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getUanOrDefault = function() {\n return this.get$ValueOrDefault(25);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setUan = function(a) {\n this.set$Value(25, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasUan = function() {\n return this.has$Value(25);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.uanCount = function() {\n return this.count$Values(25);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearUan = function() {\n this.clear$Field(25);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getEmergency = function() {\n return this.get$Value(27);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getEmergencyOrDefault = function() {\n return this.get$ValueOrDefault(27);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setEmergency = function(a) {\n this.set$Value(27, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasEmergency = function() {\n return this.has$Value(27);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.emergencyCount = function() {\n return this.count$Values(27);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearEmergency = function() {\n this.clear$Field(27);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getVoicemail = function() {\n return this.get$Value(28);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getVoicemailOrDefault = function() {\n return this.get$ValueOrDefault(28);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setVoicemail = function(a) {\n this.set$Value(28, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasVoicemail = function() {\n return this.has$Value(28);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.voicemailCount = function() {\n return this.count$Values(28);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearVoicemail = function() {\n this.clear$Field(28);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getShortCode = function() {\n return this.get$Value(29);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getShortCodeOrDefault = function() {\n return this.get$ValueOrDefault(29);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setShortCode = function(a) {\n this.set$Value(29, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasShortCode = function() {\n return this.has$Value(29);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.shortCodeCount = function() {\n return this.count$Values(29);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearShortCode = function() {\n this.clear$Field(29);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getStandardRate = function() {\n return this.get$Value(30);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getStandardRateOrDefault = function() {\n return this.get$ValueOrDefault(30);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setStandardRate = function(a) {\n this.set$Value(30, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasStandardRate = function() {\n return this.has$Value(30);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.standardRateCount = function() {\n return this.count$Values(30);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearStandardRate = function() {\n this.clear$Field(30);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecific = function() {\n return this.get$Value(31);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getCarrierSpecificOrDefault = function() {\n return this.get$ValueOrDefault(31);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setCarrierSpecific = function(a) {\n this.set$Value(31, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasCarrierSpecific = function() {\n return this.has$Value(31);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.carrierSpecificCount = function() {\n return this.count$Values(31);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearCarrierSpecific = function() {\n this.clear$Field(31);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSmsServices = function() {\n return this.get$Value(33);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSmsServicesOrDefault = function() {\n return this.get$ValueOrDefault(33);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setSmsServices = function(a) {\n this.set$Value(33, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasSmsServices = function() {\n return this.has$Value(33);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.smsServicesCount = function() {\n return this.count$Values(33);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearSmsServices = function() {\n this.clear$Field(33);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDialling = function() {\n return this.get$Value(24);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNoInternationalDiallingOrDefault = function() {\n return this.get$ValueOrDefault(24);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setNoInternationalDialling = function(a) {\n this.set$Value(24, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasNoInternationalDialling = function() {\n return this.has$Value(24);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.noInternationalDiallingCount = function() {\n return this.count$Values(24);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearNoInternationalDialling = function() {\n this.clear$Field(24);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getId = function() {\n return this.get$Value(9);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getIdOrDefault = function() {\n return this.get$ValueOrDefault(9);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setId = function(a) {\n this.set$Value(9, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasId = function() {\n return this.has$Value(9);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.idCount = function() {\n return this.count$Values(9);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearId = function() {\n this.clear$Field(9);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getCountryCode = function() {\n return this.get$Value(10);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getCountryCodeOrDefault = function() {\n return this.get$ValueOrDefault(10);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setCountryCode = function(a) {\n this.set$Value(10, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasCountryCode = function() {\n return this.has$Value(10);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.countryCodeCount = function() {\n return this.count$Values(10);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearCountryCode = function() {\n this.clear$Field(10);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefix = function() {\n return this.get$Value(11);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getInternationalPrefixOrDefault = function() {\n return this.get$ValueOrDefault(11);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setInternationalPrefix = function(a) {\n this.set$Value(11, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasInternationalPrefix = function() {\n return this.has$Value(11);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.internationalPrefixCount = function() {\n return this.count$Values(11);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearInternationalPrefix = function() {\n this.clear$Field(11);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefix = function() {\n return this.get$Value(17);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPreferredInternationalPrefixOrDefault = function() {\n return this.get$ValueOrDefault(17);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setPreferredInternationalPrefix = function(a) {\n this.set$Value(17, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasPreferredInternationalPrefix = function() {\n return this.has$Value(17);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.preferredInternationalPrefixCount = function() {\n return this.count$Values(17);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearPreferredInternationalPrefix = function() {\n this.clear$Field(17);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefix = function() {\n return this.get$Value(12);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixOrDefault = function() {\n return this.get$ValueOrDefault(12);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefix = function(a) {\n this.set$Value(12, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefix = function() {\n return this.has$Value(12);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixCount = function() {\n return this.count$Values(12);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefix = function() {\n this.clear$Field(12);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefix = function() {\n return this.get$Value(13);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getPreferredExtnPrefixOrDefault = function() {\n return this.get$ValueOrDefault(13);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setPreferredExtnPrefix = function(a) {\n this.set$Value(13, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasPreferredExtnPrefix = function() {\n return this.has$Value(13);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.preferredExtnPrefixCount = function() {\n return this.count$Values(13);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearPreferredExtnPrefix = function() {\n this.clear$Field(13);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsing = function() {\n return this.get$Value(15);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixForParsingOrDefault = function() {\n return this.get$ValueOrDefault(15);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixForParsing = function(a) {\n this.set$Value(15, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixForParsing = function() {\n return this.has$Value(15);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixForParsingCount = function() {\n return this.count$Values(15);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixForParsing = function() {\n this.clear$Field(15);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRule = function() {\n return this.get$Value(16);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNationalPrefixTransformRuleOrDefault = function() {\n return this.get$ValueOrDefault(16);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setNationalPrefixTransformRule = function(a) {\n this.set$Value(16, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasNationalPrefixTransformRule = function() {\n return this.has$Value(16);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.nationalPrefixTransformRuleCount = function() {\n return this.count$Values(16);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearNationalPrefixTransformRule = function() {\n this.clear$Field(16);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePattern = function() {\n return this.get$Value(18);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getSameMobileAndFixedLinePatternOrDefault = function() {\n return this.get$ValueOrDefault(18);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setSameMobileAndFixedLinePattern = function(a) {\n this.set$Value(18, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasSameMobileAndFixedLinePattern = function() {\n return this.has$Value(18);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.sameMobileAndFixedLinePatternCount = function() {\n return this.count$Values(18);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearSameMobileAndFixedLinePattern = function() {\n this.clear$Field(18);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNumberFormat = function(a) {\n return this.get$Value(19, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getNumberFormatOrDefault = function(a) {\n return this.get$ValueOrDefault(19, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.addNumberFormat = function(a) {\n this.add$Value(19, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.numberFormatArray = function() {\n return this.array$Values(19);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasNumberFormat = function() {\n return this.has$Value(19);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.numberFormatCount = function() {\n return this.count$Values(19);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearNumberFormat = function() {\n this.clear$Field(19);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormat = function(a) {\n return this.get$Value(20, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getIntlNumberFormatOrDefault = function(a) {\n return this.get$ValueOrDefault(20, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.addIntlNumberFormat = function(a) {\n this.add$Value(20, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatArray = function() {\n return this.array$Values(20);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasIntlNumberFormat = function() {\n return this.has$Value(20);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.intlNumberFormatCount = function() {\n return this.count$Values(20);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearIntlNumberFormat = function() {\n this.clear$Field(20);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCode = function() {\n return this.get$Value(22);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getMainCountryForCodeOrDefault = function() {\n return this.get$ValueOrDefault(22);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setMainCountryForCode = function(a) {\n this.set$Value(22, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasMainCountryForCode = function() {\n return this.has$Value(22);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.mainCountryForCodeCount = function() {\n return this.count$Values(22);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearMainCountryForCode = function() {\n this.clear$Field(22);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigits = function() {\n return this.get$Value(23);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getLeadingDigitsOrDefault = function() {\n return this.get$ValueOrDefault(23);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setLeadingDigits = function(a) {\n this.set$Value(23, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasLeadingDigits = function() {\n return this.has$Value(23);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.leadingDigitsCount = function() {\n return this.count$Values(23);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearLeadingDigits = function() {\n this.clear$Field(23);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getLeadingZeroPossible = function() {\n return this.get$Value(26);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.getLeadingZeroPossibleOrDefault = function() {\n return this.get$ValueOrDefault(26);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.setLeadingZeroPossible = function(a) {\n this.set$Value(26, a);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.hasLeadingZeroPossible = function() {\n return this.has$Value(26);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.leadingZeroPossibleCount = function() {\n return this.count$Values(26);\n};\ni18n.phonenumbers.PhoneMetadata.prototype.clearLeadingZeroPossible = function() {\n this.clear$Field(26);\n};\ni18n.phonenumbers.PhoneMetadataCollection = function() {\n goog.proto2.Message.call(this);\n};\ngoog.inherits(i18n.phonenumbers.PhoneMetadataCollection, goog.proto2.Message);\ni18n.phonenumbers.PhoneMetadataCollection.descriptor_ = null;\ni18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadata = function(a) {\n return this.get$Value(1, a);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.getMetadataOrDefault = function(a) {\n return this.get$ValueOrDefault(1, a);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.addMetadata = function(a) {\n this.add$Value(1, a);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.metadataArray = function() {\n return this.array$Values(1);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.hasMetadata = function() {\n return this.has$Value(1);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.metadataCount = function() {\n return this.count$Values(1);\n};\ni18n.phonenumbers.PhoneMetadataCollection.prototype.clearMetadata = function() {\n this.clear$Field(1);\n};\ni18n.phonenumbers.NumberFormat.prototype.getDescriptor = function() {\n var a = i18n.phonenumbers.NumberFormat.descriptor_;\n a || (i18n.phonenumbers.NumberFormat.descriptor_ = a = goog.proto2.Message.createDescriptor(i18n.phonenumbers.NumberFormat, {0:{name:\"NumberFormat\", fullName:\"i18n.phonenumbers.NumberFormat\"}, 1:{name:\"pattern\", required:!0, fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 2:{name:\"format\", required:!0, fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 3:{name:\"leading_digits_pattern\", repeated:!0, fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 4:{name:\"national_prefix_formatting_rule\", \n fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 6:{name:\"national_prefix_optional_when_formatting\", fieldType:goog.proto2.Message.FieldType.BOOL, defaultValue:!1, type:Boolean}, 5:{name:\"domestic_carrier_code_formatting_rule\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}}));\n return a;\n};\ni18n.phonenumbers.NumberFormat.getDescriptor = i18n.phonenumbers.NumberFormat.prototype.getDescriptor;\ni18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor = function() {\n var a = i18n.phonenumbers.PhoneNumberDesc.descriptor_;\n a || (i18n.phonenumbers.PhoneNumberDesc.descriptor_ = a = goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumberDesc, {0:{name:\"PhoneNumberDesc\", fullName:\"i18n.phonenumbers.PhoneNumberDesc\"}, 2:{name:\"national_number_pattern\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 9:{name:\"possible_length\", repeated:!0, fieldType:goog.proto2.Message.FieldType.INT32, type:Number}, 10:{name:\"possible_length_local_only\", repeated:!0, fieldType:goog.proto2.Message.FieldType.INT32, \n type:Number}, 6:{name:\"example_number\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}}));\n return a;\n};\ni18n.phonenumbers.PhoneNumberDesc.getDescriptor = i18n.phonenumbers.PhoneNumberDesc.prototype.getDescriptor;\ni18n.phonenumbers.PhoneMetadata.prototype.getDescriptor = function() {\n var a = i18n.phonenumbers.PhoneMetadata.descriptor_;\n a || (i18n.phonenumbers.PhoneMetadata.descriptor_ = a = goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadata, {0:{name:\"PhoneMetadata\", fullName:\"i18n.phonenumbers.PhoneMetadata\"}, 1:{name:\"general_desc\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 2:{name:\"fixed_line\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 3:{name:\"mobile\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, \n 4:{name:\"toll_free\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 5:{name:\"premium_rate\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 6:{name:\"shared_cost\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 7:{name:\"personal_number\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 8:{name:\"voip\", fieldType:goog.proto2.Message.FieldType.MESSAGE, \n type:i18n.phonenumbers.PhoneNumberDesc}, 21:{name:\"pager\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 25:{name:\"uan\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 27:{name:\"emergency\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 28:{name:\"voicemail\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 29:{name:\"short_code\", \n fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 30:{name:\"standard_rate\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 31:{name:\"carrier_specific\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 33:{name:\"sms_services\", fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneNumberDesc}, 24:{name:\"no_international_dialling\", fieldType:goog.proto2.Message.FieldType.MESSAGE, \n type:i18n.phonenumbers.PhoneNumberDesc}, 9:{name:\"id\", required:!0, fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 10:{name:\"country_code\", fieldType:goog.proto2.Message.FieldType.INT32, type:Number}, 11:{name:\"international_prefix\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 17:{name:\"preferred_international_prefix\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 12:{name:\"national_prefix\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, \n 13:{name:\"preferred_extn_prefix\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 15:{name:\"national_prefix_for_parsing\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 16:{name:\"national_prefix_transform_rule\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 18:{name:\"same_mobile_and_fixed_line_pattern\", fieldType:goog.proto2.Message.FieldType.BOOL, defaultValue:!1, type:Boolean}, 19:{name:\"number_format\", repeated:!0, fieldType:goog.proto2.Message.FieldType.MESSAGE, \n type:i18n.phonenumbers.NumberFormat}, 20:{name:\"intl_number_format\", repeated:!0, fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.NumberFormat}, 22:{name:\"main_country_for_code\", fieldType:goog.proto2.Message.FieldType.BOOL, defaultValue:!1, type:Boolean}, 23:{name:\"leading_digits\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 26:{name:\"leading_zero_possible\", fieldType:goog.proto2.Message.FieldType.BOOL, defaultValue:!1, type:Boolean}}));\n return a;\n};\ni18n.phonenumbers.PhoneMetadata.getDescriptor = i18n.phonenumbers.PhoneMetadata.prototype.getDescriptor;\ni18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor = function() {\n var a = i18n.phonenumbers.PhoneMetadataCollection.descriptor_;\n a || (i18n.phonenumbers.PhoneMetadataCollection.descriptor_ = a = goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneMetadataCollection, {0:{name:\"PhoneMetadataCollection\", fullName:\"i18n.phonenumbers.PhoneMetadataCollection\"}, 1:{name:\"metadata\", repeated:!0, fieldType:goog.proto2.Message.FieldType.MESSAGE, type:i18n.phonenumbers.PhoneMetadata}}));\n return a;\n};\ni18n.phonenumbers.PhoneMetadataCollection.getDescriptor = i18n.phonenumbers.PhoneMetadataCollection.prototype.getDescriptor;\ni18n.phonenumbers.PhoneNumber = function() {\n goog.proto2.Message.call(this);\n};\ngoog.inherits(i18n.phonenumbers.PhoneNumber, goog.proto2.Message);\ni18n.phonenumbers.PhoneNumber.descriptor_ = null;\ni18n.phonenumbers.PhoneNumber.prototype.getCountryCode = function() {\n return this.get$Value(1);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getCountryCodeOrDefault = function() {\n return this.get$ValueOrDefault(1);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setCountryCode = function(a) {\n this.set$Value(1, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasCountryCode = function() {\n return this.has$Value(1);\n};\ni18n.phonenumbers.PhoneNumber.prototype.countryCodeCount = function() {\n return this.count$Values(1);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearCountryCode = function() {\n this.clear$Field(1);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getNationalNumber = function() {\n return this.get$Value(2);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getNationalNumberOrDefault = function() {\n return this.get$ValueOrDefault(2);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setNationalNumber = function(a) {\n this.set$Value(2, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasNationalNumber = function() {\n return this.has$Value(2);\n};\ni18n.phonenumbers.PhoneNumber.prototype.nationalNumberCount = function() {\n return this.count$Values(2);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearNationalNumber = function() {\n this.clear$Field(2);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getExtension = function() {\n return this.get$Value(3);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getExtensionOrDefault = function() {\n return this.get$ValueOrDefault(3);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setExtension = function(a) {\n this.set$Value(3, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasExtension = function() {\n return this.has$Value(3);\n};\ni18n.phonenumbers.PhoneNumber.prototype.extensionCount = function() {\n return this.count$Values(3);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearExtension = function() {\n this.clear$Field(3);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZero = function() {\n return this.get$Value(4);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getItalianLeadingZeroOrDefault = function() {\n return this.get$ValueOrDefault(4);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setItalianLeadingZero = function(a) {\n this.set$Value(4, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasItalianLeadingZero = function() {\n return this.has$Value(4);\n};\ni18n.phonenumbers.PhoneNumber.prototype.italianLeadingZeroCount = function() {\n return this.count$Values(4);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearItalianLeadingZero = function() {\n this.clear$Field(4);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZeros = function() {\n return this.get$Value(8);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getNumberOfLeadingZerosOrDefault = function() {\n return this.get$ValueOrDefault(8);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setNumberOfLeadingZeros = function(a) {\n this.set$Value(8, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasNumberOfLeadingZeros = function() {\n return this.has$Value(8);\n};\ni18n.phonenumbers.PhoneNumber.prototype.numberOfLeadingZerosCount = function() {\n return this.count$Values(8);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearNumberOfLeadingZeros = function() {\n this.clear$Field(8);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getRawInput = function() {\n return this.get$Value(5);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getRawInputOrDefault = function() {\n return this.get$ValueOrDefault(5);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setRawInput = function(a) {\n this.set$Value(5, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasRawInput = function() {\n return this.has$Value(5);\n};\ni18n.phonenumbers.PhoneNumber.prototype.rawInputCount = function() {\n return this.count$Values(5);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearRawInput = function() {\n this.clear$Field(5);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSource = function() {\n return this.get$Value(6);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getCountryCodeSourceOrDefault = function() {\n return this.get$ValueOrDefault(6);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setCountryCodeSource = function(a) {\n this.set$Value(6, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasCountryCodeSource = function() {\n return this.has$Value(6);\n};\ni18n.phonenumbers.PhoneNumber.prototype.countryCodeSourceCount = function() {\n return this.count$Values(6);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearCountryCodeSource = function() {\n this.clear$Field(6);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCode = function() {\n return this.get$Value(7);\n};\ni18n.phonenumbers.PhoneNumber.prototype.getPreferredDomesticCarrierCodeOrDefault = function() {\n return this.get$ValueOrDefault(7);\n};\ni18n.phonenumbers.PhoneNumber.prototype.setPreferredDomesticCarrierCode = function(a) {\n this.set$Value(7, a);\n};\ni18n.phonenumbers.PhoneNumber.prototype.hasPreferredDomesticCarrierCode = function() {\n return this.has$Value(7);\n};\ni18n.phonenumbers.PhoneNumber.prototype.preferredDomesticCarrierCodeCount = function() {\n return this.count$Values(7);\n};\ni18n.phonenumbers.PhoneNumber.prototype.clearPreferredDomesticCarrierCode = function() {\n this.clear$Field(7);\n};\ni18n.phonenumbers.PhoneNumber.CountryCodeSource = {UNSPECIFIED:0, FROM_NUMBER_WITH_PLUS_SIGN:1, FROM_NUMBER_WITH_IDD:5, FROM_NUMBER_WITHOUT_PLUS_SIGN:10, FROM_DEFAULT_COUNTRY:20};\ni18n.phonenumbers.PhoneNumber.prototype.getDescriptor = function() {\n var a = i18n.phonenumbers.PhoneNumber.descriptor_;\n a || (i18n.phonenumbers.PhoneNumber.descriptor_ = a = goog.proto2.Message.createDescriptor(i18n.phonenumbers.PhoneNumber, {0:{name:\"PhoneNumber\", fullName:\"i18n.phonenumbers.PhoneNumber\"}, 1:{name:\"country_code\", required:!0, fieldType:goog.proto2.Message.FieldType.INT32, type:Number}, 2:{name:\"national_number\", required:!0, fieldType:goog.proto2.Message.FieldType.UINT64, type:Number}, 3:{name:\"extension\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 4:{name:\"italian_leading_zero\", \n fieldType:goog.proto2.Message.FieldType.BOOL, type:Boolean}, 8:{name:\"number_of_leading_zeros\", fieldType:goog.proto2.Message.FieldType.INT32, defaultValue:1, type:Number}, 5:{name:\"raw_input\", fieldType:goog.proto2.Message.FieldType.STRING, type:String}, 6:{name:\"country_code_source\", fieldType:goog.proto2.Message.FieldType.ENUM, defaultValue:i18n.phonenumbers.PhoneNumber.CountryCodeSource.UNSPECIFIED, type:i18n.phonenumbers.PhoneNumber.CountryCodeSource}, 7:{name:\"preferred_domestic_carrier_code\", \n fieldType:goog.proto2.Message.FieldType.STRING, type:String}}));\n return a;\n};\ni18n.phonenumbers.PhoneNumber.ctor = i18n.phonenumbers.PhoneNumber;\ni18n.phonenumbers.PhoneNumber.ctor.getDescriptor = i18n.phonenumbers.PhoneNumber.prototype.getDescriptor;\n/*\n\n Copyright (C) 2010 The Libphonenumber Authors\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\ni18n.phonenumbers.metadata = {};\ni18n.phonenumbers.metadata.countryCodeToRegionCodeMap = {1:\"US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR SX TC TT VC VG VI\".split(\" \"), 7:[\"RU\", \"KZ\"], 20:[\"EG\"], 27:[\"ZA\"], 30:[\"GR\"], 31:[\"NL\"], 32:[\"BE\"], 33:[\"FR\"], 34:[\"ES\"], 36:[\"HU\"], 39:[\"IT\", \"VA\"], 40:[\"RO\"], 41:[\"CH\"], 43:[\"AT\"], 44:[\"GB\", \"GG\", \"IM\", \"JE\"], 45:[\"DK\"], 46:[\"SE\"], 47:[\"NO\", \"SJ\"], 48:[\"PL\"], 49:[\"DE\"], 51:[\"PE\"], 52:[\"MX\"], 53:[\"CU\"], 54:[\"AR\"], 55:[\"BR\"], 56:[\"CL\"], 57:[\"CO\"], 58:[\"VE\"], 60:[\"MY\"], 61:[\"AU\", \n\"CC\", \"CX\"], 62:[\"ID\"], 63:[\"PH\"], 64:[\"NZ\"], 65:[\"SG\"], 66:[\"TH\"], 81:[\"JP\"], 82:[\"KR\"], 84:[\"VN\"], 86:[\"CN\"], 90:[\"TR\"], 91:[\"IN\"], 92:[\"PK\"], 93:[\"AF\"], 94:[\"LK\"], 95:[\"MM\"], 98:[\"IR\"], 211:[\"SS\"], 212:[\"MA\", \"EH\"], 213:[\"DZ\"], 216:[\"TN\"], 218:[\"LY\"], 220:[\"GM\"], 221:[\"SN\"], 222:[\"MR\"], 223:[\"ML\"], 224:[\"GN\"], 225:[\"CI\"], 226:[\"BF\"], 227:[\"NE\"], 228:[\"TG\"], 229:[\"BJ\"], 230:[\"MU\"], 231:[\"LR\"], 232:[\"SL\"], 233:[\"GH\"], 234:[\"NG\"], 235:[\"TD\"], 236:[\"CF\"], 237:[\"CM\"], 238:[\"CV\"], 239:[\"ST\"], 240:[\"GQ\"], \n241:[\"GA\"], 242:[\"CG\"], 243:[\"CD\"], 244:[\"AO\"], 245:[\"GW\"], 246:[\"IO\"], 247:[\"AC\"], 248:[\"SC\"], 249:[\"SD\"], 250:[\"RW\"], 251:[\"ET\"], 252:[\"SO\"], 253:[\"DJ\"], 254:[\"KE\"], 255:[\"TZ\"], 256:[\"UG\"], 257:[\"BI\"], 258:[\"MZ\"], 260:[\"ZM\"], 261:[\"MG\"], 262:[\"RE\", \"YT\"], 263:[\"ZW\"], 264:[\"NA\"], 265:[\"MW\"], 266:[\"LS\"], 267:[\"BW\"], 268:[\"SZ\"], 269:[\"KM\"], 290:[\"SH\", \"TA\"], 291:[\"ER\"], 297:[\"AW\"], 298:[\"FO\"], 299:[\"GL\"], 350:[\"GI\"], 351:[\"PT\"], 352:[\"LU\"], 353:[\"IE\"], 354:[\"IS\"], 355:[\"AL\"], 356:[\"MT\"], 357:[\"CY\"], \n358:[\"FI\", \"AX\"], 359:[\"BG\"], 370:[\"LT\"], 371:[\"LV\"], 372:[\"EE\"], 373:[\"MD\"], 374:[\"AM\"], 375:[\"BY\"], 376:[\"AD\"], 377:[\"MC\"], 378:[\"SM\"], 380:[\"UA\"], 381:[\"RS\"], 382:[\"ME\"], 383:[\"XK\"], 385:[\"HR\"], 386:[\"SI\"], 387:[\"BA\"], 389:[\"MK\"], 420:[\"CZ\"], 421:[\"SK\"], 423:[\"LI\"], 500:[\"FK\"], 501:[\"BZ\"], 502:[\"GT\"], 503:[\"SV\"], 504:[\"HN\"], 505:[\"NI\"], 506:[\"CR\"], 507:[\"PA\"], 508:[\"PM\"], 509:[\"HT\"], 590:[\"GP\", \"BL\", \"MF\"], 591:[\"BO\"], 592:[\"GY\"], 593:[\"EC\"], 594:[\"GF\"], 595:[\"PY\"], 596:[\"MQ\"], 597:[\"SR\"], 598:[\"UY\"], \n599:[\"CW\", \"BQ\"], 670:[\"TL\"], 672:[\"NF\"], 673:[\"BN\"], 674:[\"NR\"], 675:[\"PG\"], 676:[\"TO\"], 677:[\"SB\"], 678:[\"VU\"], 679:[\"FJ\"], 680:[\"PW\"], 681:[\"WF\"], 682:[\"CK\"], 683:[\"NU\"], 685:[\"WS\"], 686:[\"KI\"], 687:[\"NC\"], 688:[\"TV\"], 689:[\"PF\"], 690:[\"TK\"], 691:[\"FM\"], 692:[\"MH\"], 800:[\"001\"], 808:[\"001\"], 850:[\"KP\"], 852:[\"HK\"], 853:[\"MO\"], 855:[\"KH\"], 856:[\"LA\"], 870:[\"001\"], 878:[\"001\"], 880:[\"BD\"], 881:[\"001\"], 882:[\"001\"], 883:[\"001\"], 886:[\"TW\"], 888:[\"001\"], 960:[\"MV\"], 961:[\"LB\"], 962:[\"JO\"], 963:[\"SY\"], \n964:[\"IQ\"], 965:[\"KW\"], 966:[\"SA\"], 967:[\"YE\"], 968:[\"OM\"], 970:[\"PS\"], 971:[\"AE\"], 972:[\"IL\"], 973:[\"BH\"], 974:[\"QA\"], 975:[\"BT\"], 976:[\"MN\"], 977:[\"NP\"], 979:[\"001\"], 992:[\"TJ\"], 993:[\"TM\"], 994:[\"AZ\"], 995:[\"GE\"], 996:[\"KG\"], 998:[\"UZ\"]};\ni18n.phonenumbers.metadata.countryToMetadata = {AC:[, [, , \"(?:[01589]\\\\d|[46])\\\\d{4}\", , , , , , , [5, 6]], [, , \"6[2-467]\\\\d{3}\", , , , \"62889\", , , [5]], [, , \"4\\\\d{4}\", , , , \"40123\", , , [5]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AC\", 247, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\", , , , \"542011\", , , [6]], , , [, , , , , , , , \n, [-1]]], AD:[, [, , \"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\", , , , , , , [6, 8, 9]], [, , \"[78]\\\\d{5}\", , , , \"712345\", , , [6]], [, , \"690\\\\d{6}|[356]\\\\d{5}\", , , , \"312345\", , , [6, 9]], [, , \"180[02]\\\\d{4}\", , , , \"18001234\", , , [8]], [, , \"[19]\\\\d{5}\", , , , \"912345\", , , [6]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AD\", 376, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[135-9]\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \n\"$1 $2 $3\", [\"6\"]]], , [, , , , , , , , , [-1]], , , [, , \"1800\\\\d{4}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AE:[, [, , \"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\", , , , , , , [5, 6, 7, 8, 9, 10, 11, 12]], [, , \"[2-4679][2-8]\\\\d{6}\", , , , \"22345678\", , , [8], [7]], [, , \"5[024-68]\\\\d{7}\", , , , \"501234567\", , , [9]], [, , \"400\\\\d{6}|800\\\\d{2,9}\", , , , \"800123456\"], [, , \"900[02]\\\\d{5}\", , , , \"900234567\", , , [9]], [, , \"700[05]\\\\d{5}\", , , , \n\"700012345\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AE\", 971, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2,9})\", \"$1 $2\", [\"60|8\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[236]|[479][2-8]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{5})\", \"$1 $2 $3\", [\"[479]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"600[25]\\\\d{5}\", , , , \"600212345\", , , [9]], , , [, , , , , , , , , [-1]]], AF:[, [, , \"[2-7]\\\\d{8}\", \n, , , , , , [9], [7]], [, , \"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\", , , , \"234567890\", , , , [7]], [, , \"7\\\\d{8}\", , , , \"701234567\", , , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AF\", 93, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-7]\"], \"0$1\"]], [, , , , , , \n, , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AG:[, [, , \"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\", , , , \"2684601234\", , , , [7]], [, , \"268(?:464|7(?:1[3-9]|2\\\\d|3[246]|64|[78][0-689]))\\\\d{4}\", , , , \"2684641234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", \n, , , \"5002345678\"], [, , \"26848[01]\\\\d{4}\", , , , \"2684801234\", , , , [7]], \"AG\", 1, \"011\", \"1\", , , \"1|([457]\\\\d{6})$\", \"268$1\", , , , , [, , \"26840[69]\\\\d{4}\", , , , \"2684061234\", , , , [7]], , \"268\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AI:[, [, , \"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"2644(?:6[12]|9[78])\\\\d{4}\", , , , \"2644612345\", , , , [7]], [, , \"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\", , , , \"2642351234\", , \n, , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"AI\", 1, \"011\", \"1\", , , \"1|([2457]\\\\d{6})$\", \"264$1\", , , , , [, , , , , , , , , [-1]], , \"264\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AL:[, [, , \"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\", , , , , , \n, [6, 7, 8, 9], [5]], [, , \"(?:[2358](?:[16-9]\\\\d[2-9]|[2-5][2-9]\\\\d)|4(?:[2-57-9][2-9]|6\\\\d)\\\\d)\\\\d{4}\", , , , \"22345678\", , , [8], [5, 6, 7]], [, , \"6(?:[78][2-9]|9\\\\d)\\\\d{6}\", , , , \"672123456\", , , [9]], [, , \"800\\\\d{4}\", , , , \"8001234\", , , [7]], [, , \"900[1-9]\\\\d\\\\d\", , , , \"900123\", , , [6]], [, , \"808[1-9]\\\\d\\\\d\", , , , \"808123\", , , [6]], [, , \"700[2-9]\\\\d{4}\", , , , \"70021234\", , , [8]], [, , , , , , , , , [-1]], \"AL\", 355, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3,4})\", \"$1 $2\", [\"80|9\"], \n\"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[2-6]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2358][2-5]|4\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[23578]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AM:[, [, , \"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\", , , , , , , [8], [5, 6]], [, , \"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\", \n, , , \"10123456\", , , , [5, 6]], [, , \"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\", , , , \"77123456\"], [, , \"800\\\\d{5}\", , , , \"80012345\"], [, , \"90[016]\\\\d{5}\", , , , \"90012345\"], [, , \"80[1-4]\\\\d{5}\", , , , \"80112345\"], [, , , , , , , , , [-1]], [, , \"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|90)\\\\d{4}\", , , , \"60271234\"], \"AM\", 374, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0 $1\"], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2|3[12]\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{6})\", \n\"$1 $2\", [\"1|47\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[3-9]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AO:[, [, , \"[29]\\\\d{8}\", , , , , , , [9]], [, , \"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\", , , , \"222123456\"], [, , \"9[1-49]\\\\d{7}\", , , , \"923123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AO\", 244, \"00\", , , , , \n, , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[29]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AR:[, [, , \"11\\\\d{8}|(?:[2368]|9\\\\d)\\\\d{9}\", , , , , , , [10, 11], [6, 7, 8]], [, , \"(?:2954|3(?:777|865))[2-8]\\\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6])))\\\\d{6}|(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\\\d{5}|(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\\\d{6}|(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\", \n, , , \"1123456789\", , , [10], [6, 7, 8]], [, , \"9(?:2954|3(?:777|865))[2-8]\\\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6]))))\\\\d{6}|9(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\\\d{5}|9(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\\\d{6}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\", \n, , , \"91123456789\", , , , [6, 7, 8]], [, , \"800\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , \"60[04579]\\\\d{7}\", , , , \"6001234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AR\", 54, \"00\", \"0\", , , \"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\", \n\"9$1\", , , [[, \"(\\\\d{3})\", \"$1\", [\"[09]|1(?:[02]|1[02-5])\"]], [, \"(\\\\d{2})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"2[0-8]|[3-8]\"]], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \n\"0$1\", , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", , 1], [, \"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \n\"0$1\"], [, \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 15-$3-$4\", [\"91\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 15-$3-$4\", [\"9\"], \"0$1\"]], [[, \"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2-$3\", [\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\", \"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\", \"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \n\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"], \"0$1\", , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"1\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[68]\"], \"0$1\"], \n[, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[23]\"], \"0$1\", , 1], [, \"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3-$4\", [\"9(?:2[2-469]|3[3-578])\", \"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\", \"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\", \"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\", \n\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"]], [, \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3-$4\", [\"91\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3-$4\", [\"9\"]]], [, \n, , , , , , , , [-1]], , , [, , \"810\\\\d{7}\", , , , , , , [10]], [, , \"810\\\\d{7}\", , , , \"8101234567\", , , [10]], , , [, , , , , , , , , [-1]]], AS:[, [, , \"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\", , , , \"6846221234\", , , , [7]], [, , \"684(?:2(?:5[2468]|72)|7(?:3[13]|70))\\\\d{4}\", , , , \"6847331234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , \n[-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"AS\", 1, \"011\", \"1\", , , \"1|([267]\\\\d{6})$\", \"684$1\", , , , , [, , , , , , , , , [-1]], , \"684\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AT:[, [, , \"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\", , , , , , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], \n[3]], [, , \"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463|(?:51|66|73)2)\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\", , , , \"1234567890\", , , , [3]], [, , \"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\", , , , \"664123456\", , , [7, 8, 9, 10, 11, 12, 13]], [, , \"800\\\\d{6,10}\", \n, , , \"800123456\", , , [9, 10, 11, 12, 13]], [, , \"9(?:0[01]|3[019])\\\\d{6,10}\", , , , \"900123456\", , , [9, 10, 11, 12, 13]], [, , \"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\", , , , \"810123456\", , , [8, 9, 10, 11, 12, 13]], [, , , , , , , , , [-1]], [, , \"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\", , , , \"780123456\", , , [5, 6, 7, 8, 9, 10, 11, 12, 13]], \"AT\", 43, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [, \n\"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"5[079]\"], \"0$1\"], [, \"(\\\\d{6})\", \"$1\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], [[, \"(\\\\d)(\\\\d{3,12})\", \"$1 $2\", [\"1(?:11|[2-9])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})\", \"$1 $2\", [\"517\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", \n[\"5[079]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3,10})\", \"$1 $2\", [\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3,9})\", \"$1 $2\", [\"[2-467]|5[2-6]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\", \"$1 $2 $3\", [\"5\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AU:[, [, , \"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|(?:[2-478]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{4,7}\", \n, , , , , , [5, 6, 7, 8, 9, 10]], [, , \"(?:[237]\\\\d{5}|8(?:51(?:0(?:0[03-9]|[1247]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-6])|1(?:1[69]|[23]\\\\d|4[0-4]))|(?:[6-8]\\\\d{3}|9(?:[02-9]\\\\d\\\\d|1(?:[0-57-9]\\\\d|6[0135-9])))\\\\d))\\\\d{3}\", , , , \"212345678\", , , [9], [8]], [, , \"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\", , , , \"412345678\", , , [9]], [, , \"180(?:0\\\\d{3}|2)\\\\d{3}\", , , , \"1800123456\", , , [7, 10]], [, , \"190[0-26]\\\\d{6}\", , , , \"1900123456\", , , [10]], [, \n, \"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", , , , \"1300123456\", , , [6, 8, 10]], [, , , , , , , , , [-1]], [, , \"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\", , , , \"550123456\", , , [9]], \"AU\", 61, \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"0\", , , \"0|(183[12])\", , \"0011\", , [[, \"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"13\"]], [, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"19\"]], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"180\", \"1802\"]], [, \"(\\\\d{4})(\\\\d{3,4})\", \n\"$1 $2\", [\"19\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|[45]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \"(0$1)\", \"$CC ($1)\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], [[, \"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"16\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\", \"$1 $2 $3\", [\"16\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"14|[45]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[2378]\"], \n\"(0$1)\", \"$CC ($1)\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:30|[89])\"]]], [, , \"16\\\\d{3,7}\", , , , \"1612345\", , , [5, 6, 7, 8, 9]], 1, , [, , \"1[38]00\\\\d{6}|1(?:345[0-4]|802)\\\\d{3}|13\\\\d{4}\", , , , , , , [6, 7, 8, 10]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AW:[, [, , \"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\", , , , , , , [7]], [, , \"5(?:2\\\\d|8[1-9])\\\\d{4}\", , , , \"5212345\"], [, , \"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\", , , , \"5601234\"], \n[, , \"800\\\\d{4}\", , , , \"8001234\"], [, , \"900\\\\d{4}\", , , , \"9001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:28\\\\d|501)\\\\d{4}\", , , , \"5011234\"], \"AW\", 297, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[25-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], AX:[, [, , \"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\", , , , , , , [5, 6, 7, 8, 9, 10, 11, \n12]], [, , \"18[1-8]\\\\d{3,6}\", , , , \"181234567\", , , [6, 7, 8, 9]], [, , \"(?:4[0-8]|50)\\\\d{4,8}\", , , , \"412345678\", , , [6, 7, 8, 9, 10]], [, , \"800\\\\d{4,6}\", , , , \"800123456\", , , [7, 8, 9]], [, , \"[67]00\\\\d{5,6}\", , , , \"600123456\", , , [8, 9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"AX\", 358, \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"0\", , , \"0\", , \"00\", , , , [, , , , , , , , , [-1]], , \"18\", [, , , , , , , , , [-1]], [, , \"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\", \n, , , \"10112345\"], , , [, , , , , , , , , [-1]]], AZ:[, [, , \"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\", , , , , , , [9], [7]], [, , \"365(?:[0-46-9]\\\\d|5[0-35-9])\\\\d{4}|(?:(?:1[28]|46)\\\\d|2(?:[045]2|1[24]|2[2-4]|33|6[23]))\\\\d{6}\", , , , \"123123456\", , , , [7]], [, , \"(?:36554|99[2-9]\\\\d\\\\d)\\\\d{4}|(?:[16]0|4[04]|5[015]|60|7[07])\\\\d{7}\", , , , \"401234567\"], [, , \"88\\\\d{7}\", , , , \"881234567\"], [, , \"900200\\\\d{3}\", , , , \"900200123\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , \n, [-1]], \"AZ\", 994, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[1-9]\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[28]|2|365|46\", \"1[28]|2|365|46\", \"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"90\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", \n[\"1[28]|2|365|46\", \"1[28]|2|365|46\", \"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-9]\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BA:[, [, , \"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\", , , , , , , [8, 9], [6]], [, , \"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\", \n, , , \"30212345\", , , [8], [6]], [, , \"6040[0-4]\\\\d{4}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\", , , , \"61123456\"], [, , \"8[08]\\\\d{6}\", , , , \"80123456\", , , [8]], [, , \"9[0246]\\\\d{6}\", , , , \"90123456\", , , [8]], [, , \"8[12]\\\\d{6}\", , , , \"82123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BA\", 387, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-9]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[1-3]|[7-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2-$3\", [\"[3-5]|6[56]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"6\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"70(?:3[0146]|[56]0)\\\\d{4}\", , , , \"70341234\", , , [8]], , , [, , , , , , , , , [-1]]], BB:[, [, , \"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], \n[, , \"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\", , , , \"2464123456\", , , , [7]], [, , \"246(?:2(?:[356]\\\\d|4[0-57-9]|8[0-79])|45\\\\d|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d{4}\", , , , \"2462501234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\", , , , \"9002123456\", , , , [7]], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], \n[, , \"24631\\\\d{5}\", , , , \"2463101234\", , , , [7]], \"BB\", 1, \"011\", \"1\", , , \"1|([2-9]\\\\d{6})$\", \"246$1\", , , , , [, , , , , , , , , [-1]], , \"246\", [, , , , , , , , , [-1]], [, , \"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|7(?:36|53))\\\\d{4}\", , , , \"2464301234\", , , , [7]], , , [, , , , , , , , , [-1]]], BD:[, [, , \"[13469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-7]\\\\d{8}|[2-9]\\\\d{7}|[3-689]\\\\d{6}|[57-9]\\\\d{5}\", , , , , , , [6, 7, 8, 9, 10]], [, , \"(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:4(?:31\\\\d\\\\d|[46]23)|5(?:222|32[37]))\\\\d{3}(?:\\\\d{2})?|(?:3(?:42[47]|529|823)|4(?:027|525|658)|(?:56|73)2|6257|9[35]1)\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[01367]|7[15]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|8(?:4[12]|[5-7]2)|9(?:[024]2|81))\\\\d{4}|(?:2[45]\\\\d\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:25|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[569]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:0|217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\", \n, , , \"27111234\"], [, , \"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\", , , , \"1812345678\", , , [10]], [, , \"80[03]\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\\\d{6}\", , , , \"9604123456\", , , [10]], \"BD\", 880, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{4,6})\", \"$1-$2\", [\"31[5-7]|[459]1\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3,7})\", \"$1-$2\", [\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"], \n\"0$1\"], [, \"(\\\\d{4})(\\\\d{3,6})\", \"$1-$2\", [\"[13-9]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{7,8})\", \"$1-$2\", [\"2\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BE:[, [, , \"4\\\\d{8}|[1-9]\\\\d{7}\", , , , , , , [8, 9]], [, , \"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\", , , , \"12345678\", , , [8]], [, , \"4[5-9]\\\\d{7}\", , , , \"470123456\", , , [9]], [, , \"800[1-9]\\\\d{4}\", , , , \"80012345\", , , [8]], [, \n, \"(?:70(?:2[0-57]|3[0457]|44|69|7[0579])|90(?:0[0-35-8]|1[36]|2[0-3568]|3[0135689]|4[2-68]|5[1-68]|6[0-378]|7[23568]|9[34679]))\\\\d{4}\", , , , \"90012345\", , , [8]], [, , \"7879\\\\d{4}\", , , , \"78791234\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BE\", 32, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:80|9)0\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[239]|4[23]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[15-8]\"], \n\"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"4\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"78(?:0[57]|1[0458]|2[25]|3[15-8]|48|[56]0|7[078])\\\\d{4}\", , , , \"78102345\", , , [8]], , , [, , , , , , , , , [-1]]], BF:[, [, , \"[025-7]\\\\d{7}\", , , , , , , [8]], [, , \"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\", , , , \"20491234\"], [, , \"(?:0[127]|5[1-8]|[67]\\\\d)\\\\d{6}\", , , , \"70123456\"], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BF\", 226, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[025-7]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BG:[, [, , \"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\", , , , , , , [6, 7, 8, 9], [4, 5]], [, , \"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\", \n, , , \"2123456\", , , [6, 7, 8], [4, 5]], [, , \"43[07-9]\\\\d{5}|(?:48|8[7-9]\\\\d|9(?:8\\\\d|9[69]))\\\\d{6}\", , , , \"48123456\", , , [8, 9]], [, , \"800\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"90\\\\d{6}\", , , , \"90123456\", , , [8]], [, , \"700\\\\d{5}\", , , , \"70012345\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BG\", 359, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{6})\", \"$1\", [\"1\"]], [, \"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"43[1-6]|70[1-9]\"], \n\"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], [[, \"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})\", \n\"$1 $2\", [\"43[1-6]|70[1-9]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:70|8)0\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"43[1-7]|7\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[48]|9[08]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BH:[, [, , \"[136-9]\\\\d{7}\", , , , , , , [8]], [, , \"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\\\d\\\\d))\\\\d{4}\", , , , \"17001234\"], [, , \"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\", , , , \"36001234\"], [, , \"80\\\\d{6}\", , , , \"80123456\"], [, , \"(?:87|9[014578])\\\\d{6}\", , , , \"90123456\"], [, , \"84\\\\d{6}\", , , , \"84123456\"], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], \"BH\", 973, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[13679]|8[047]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BI:[, [, , \"(?:[267]\\\\d|31)\\\\d{6}\", , , , , , , [8]], [, , \"22\\\\d{6}\", , , , \"22201234\"], [, , \"(?:29|31|6[1289]|7[125-9])\\\\d{6}\", , , , \"79561234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , \n, , , , , [-1]], \"BI\", 257, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2367]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BJ:[, [, , \"(?:[2689]\\\\d|51)\\\\d{6}\", , , , , , , [8]], [, , \"2(?:02|1[037]|2[45]|3[68])\\\\d{5}\", , , , \"20211234\"], [, , \"(?:51|6\\\\d|9[013-9])\\\\d{6}\", , , , \"90011234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n[, , \"857[58]\\\\d{4}\", , , , \"85751234\"], \"BJ\", 229, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[25689]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"81\\\\d{6}\", , , , \"81123456\"], , , [, , , , , , , , , [-1]]], BL:[, [, , \"(?:590|69\\\\d|976)\\\\d{6}\", , , , , , , [9]], [, , \"590(?:2[7-9]|5[12]|87)\\\\d{4}\", , , , \"590271234\"], [, , \"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\", , , , \"690001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"976[01]\\\\d{5}\", , , , \"976012345\"], \"BL\", 590, \"00\", \"0\", , , \"0\", , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BM:[, [, , \"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"441(?:2(?:02|23|[3479]\\\\d|61)|[46]\\\\d\\\\d|5(?:4\\\\d|60|89)|824)\\\\d{4}\", , , , \"4412345678\", , , , [7]], [, , \"441(?:[37]\\\\d|5[0-39])\\\\d{5}\", , , , \"4413701234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", \n, , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"BM\", 1, \"011\", \"1\", , , \"1|([2-8]\\\\d{6})$\", \"441$1\", , , , , [, , , , , , , , , [-1]], , \"441\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BN:[, [, , \"[2-578]\\\\d{6}\", , , , , , , [7]], [, , \"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\", , , , \"2345678\"], [, , \"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\", \n, , , \"7123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"5[34]\\\\d{5}\", , , , \"5345678\"], \"BN\", 673, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-578]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BO:[, [, , \"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\", , , , , , , [8, 9], [7]], [, , \"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\", \n, , , \"22123456\", , , [8], [7]], [, , \"[67]\\\\d{7}\", , , , \"71234567\", , , [8]], [, , \"8001[07]\\\\d{4}\", , , , \"800171234\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BO\", 591, \"00(?:1\\\\d)?\", \"0\", , , \"0(1\\\\d)?\", , , , [[, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[23]|4[46]\"], , \"0$CC $1\"], [, \"(\\\\d{8})\", \"$1\", [\"[67]\"], , \"0$CC $1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"], , \"0$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , \"8001[07]\\\\d{4}\", \n, , , , , , [9]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BQ:[, [, , \"(?:[34]1|7\\\\d)\\\\d{5}\", , , , , , , [7]], [, , \"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\", , , , \"7151234\"], [, , \"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\", , , , \"3181234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BQ\", 599, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], \n, \"[347]\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BR:[, [, , \"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\", , , , , , , [8, 9, 10, 11]], [, , \"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\", , , , \"1123456789\", , , [10], [8]], [, , \"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\", , , , \"11961234567\", , , [10, 11], [8, 9]], [, , \"800\\\\d{6,7}\", , , , \"800123456\", , , [9, \n10]], [, , \"300\\\\d{6}|[59]00\\\\d{6,7}\", , , , \"300123456\", , , [9, 10]], [, , \"300\\\\d{7}|[34]00\\\\d{5}|4(?:02|37)0\\\\d{4}\", , , , \"40041234\", , , [8, 10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BR\", 55, \"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\", \"0\", , , \"0(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\", \"$2\", , , [[, \"(\\\\d{3,6})\", \"$1\", [\"1(?:1[25-8]|2[357-9]|3[02-68]|4[12568]|5|6[0-8]|8[015]|9[0-47-9])|321|610\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], \n[, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[2-57]\", \"[2357]|4(?:[0-24-9]|3(?:[0-689]|7[1-9]))\"]], [, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [, \"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"9\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\", \"0 $CC ($1)\"], [, \"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\", \"0 $CC ($1)\"]], [[, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"300|4(?:0[02]|37)\", \"4(?:02|37)0|[34]00\"]], \n[, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:[358]|90)0\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2-$3\", [\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"], \"($1)\", \"0 $CC ($1)\"], [, \"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1 $2-$3\", [\"[16][1-9]|[2-57-9]\"], \"($1)\", \"0 $CC ($1)\"]], [, , , , , , , , , [-1]], , , [, , \"4020\\\\d{4}|[34]00\\\\d{5}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BS:[, [, , \"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \n\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\", , , , \"2423456789\", , , , [7]], [, , \"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\", , , , \"2423591234\", , , , [7]], [, , \"242300\\\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\", , , , [7]], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], \n[, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"BS\", 1, \"011\", \"1\", , , \"1|([3-8]\\\\d{6})$\", \"242$1\", , , , , [, , , , , , , , , [-1]], , \"242\", [, , , , , , , , , [-1]], [, , \"242225[0-46-9]\\\\d{3}\", , , , \"2422250123\"], , , [, , , , , , , , , [-1]]], BT:[, [, , \"[17]\\\\d{7}|[2-8]\\\\d{6}\", , , , , , , [7, 8], [6]], [, , \"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\", , , , \"2345678\", , , [7], [6]], [, , \"(?:1[67]|77)\\\\d{6}\", \n, , , \"17123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BT\", 975, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[2-7]\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]], [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-68]|7[246]\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[67]|7\"]]], [, , , , \n, , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BW:[, [, , \"90\\\\d{5}|(?:[2-6]|7\\\\d)\\\\d{6}\", , , , , , , [7, 8]], [, , \"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\\\d{4}\", , , , \"2401234\", , , [7]], [, , \"77200\\\\d{3}|7(?:[1-6]\\\\d|7[014-9])\\\\d{5}\", , , , \"71123456\", , , [8]], [, , , , , , , , , [-1]], [, , \"90\\\\d{5}\", , , , \"9012345\", \n, , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"79(?:1(?:[01]\\\\d|20)|2[0-2]\\\\d)\\\\d{3}\", , , , \"79101234\", , , [8]], \"BW\", 267, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"90\"]], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-6]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BY:[, [, , \"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\", \n, , , , , , [6, 7, 8, 9, 10, 11], [5]], [, , \"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\", , , , \"152450911\", , , [9], [5, 6, 7]], [, , \"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\", , , , \"294911911\", , , [9]], [, , \"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\", , , , \"8011234567\"], [, , \"(?:810|902)\\\\d{7}\", , , , \"9021234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , \n, , , [-1]], [, , \"249\\\\d{6}\", , , , \"249123456\", , , [9]], \"BY\", 375, \"810\", \"8\", , , \"0|80?\", , \"8~10\", , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"800\"], \"8 $1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\", \"$1 $2 $3\", [\"800\"], \"8 $1\"], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{3})\", \"$1 $2-$3\", [\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\", \"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"], \"8 0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"1(?:[56]|7[467])|2[1-3]\"], \n\"8 0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-4]\"], \"8 0$1\"], [, \"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"8 $1\"]], , [, , , , , , , , , [-1]], , , [, , \"800\\\\d{3,7}|(?:8(?:0[13]|10|20\\\\d)|902)\\\\d{7}\"], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], BZ:[, [, , \"(?:0800\\\\d|[2-8])\\\\d{6}\", , , , , , , [7, 11]], [, , \"(?:236|732)\\\\d{4}|[2-578][02]\\\\d{5}\", , , , \"2221234\", , , [7]], [, , \"6[0-35-7]\\\\d{5}\", , , , \"6221234\", , , [7]], [, , \"0800\\\\d{7}\", , , , \n\"08001234123\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"BZ\", 501, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-8]\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"0\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CA:[, [, , \"(?:[2-8]\\\\d|90)\\\\d{8}\", , , , , , , [10], [7]], [, , \"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\", \n, , , \"5062345678\", , , , [7]], [, , \"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\", , , , \"5062345678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , \"600[2-9]\\\\d{6}\", , , , \"6002012345\"], \n\"CA\", 1, \"011\", \"1\", , , \"1\", , , 1, , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CC:[, [, , \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|(?:[148]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{5,7}\", , , , , , , [6, 7, 8, 9, 10]], [, , \"8(?:51(?:0(?:02|31|60)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\", , , , \"891621234\", , , [9], [8]], [, , \"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\", \n, , , \"412345678\", , , [9]], [, , \"180(?:0\\\\d{3}|2)\\\\d{3}\", , , , \"1800123456\", , , [7, 10]], [, , \"190[0-26]\\\\d{6}\", , , , \"1900123456\", , , [10]], [, , \"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", , , , \"1300123456\", , , [6, 8, 10]], [, , , , , , , , , [-1]], [, , \"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\", , , , \"550123456\", , , [9]], \"CC\", 61, \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \"0\", , , \"0|([59]\\\\d{7})$\", \"8$1\", \"0011\", , , , [, , , , , , , , , [-1]], , , [, , , \n, , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CD:[, [, , \"[189]\\\\d{8}|[1-68]\\\\d{6}\", , , , , , , [7, 9]], [, , \"12\\\\d{7}|[1-6]\\\\d{6}\", , , , \"1234567\"], [, , \"88\\\\d{5}|(?:8[0-2459]|9[017-9])\\\\d{7}\", , , , \"991234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CD\", 243, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", \n[\"[1-6]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CF:[, [, , \"(?:[27]\\\\d{3}|8776)\\\\d{4}\", , , , , , , [8]], [, , \"2[12]\\\\d{6}\", , , , \"21612345\"], [, , \"7[0257]\\\\d{6}\", , , , \"70012345\"], [, , , , , , , , , [-1]], [, , \"8776\\\\d{4}\", , , , \"87761234\"], [, , , , , , , , , [-1]], [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], \"CF\", 236, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[278]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CG:[, [, , \"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\", , , , , , , [9]], [, , \"222[1-589]\\\\d{5}\", , , , \"222123456\"], [, , \"0[14-6]\\\\d{7}\", , , , \"061234567\"], [, , , , , , , , , [-1]], [, , \"80(?:0\\\\d\\\\d|11[0-4])\\\\d{4}\", , , , \"800123456\"], [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CG\", 242, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"801\"]], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[02]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CH:[, [, , \"8\\\\d{11}|[2-9]\\\\d{8}\", , , , , , , [9, 12]], [, , \"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\", , , , \"212345678\", \n, , [9]], [, , \"7[35-9]\\\\d{7}\", , , , \"781234567\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"90[016]\\\\d{6}\", , , , \"900123456\", , , [9]], [, , \"84[0248]\\\\d{6}\", , , , \"840123456\", , , [9]], [, , \"878\\\\d{6}\", , , , \"878123456\", , , [9]], [, , , , , , , , , [-1]], \"CH\", 41, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8[047]|90\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-79]|81\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4 $5\", [\"8\"], \"0$1\"]], , [, , \"74[0248]\\\\d{6}\", , , , \"740123456\", , , [9]], , , [, , , , , , , , , [-1]], [, , \"5[18]\\\\d{7}\", , , , \"581234567\", , , [9]], , , [, , \"860\\\\d{9}\", , , , \"860123456789\", , , [12]]], CI:[, [, , \"[02-9]\\\\d{7}\", , , , , , , [8]], [, , \"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\\\d{5}\", , , , \"21234567\"], [, , \"(?:2[0-3]80|97[0-3]\\\\d)\\\\d{4}|(?:0[1-9]|[457]\\\\d|6[014-9]|8[4-9]|95)\\\\d{6}\", , , , \"01234567\"], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CI\", 225, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[02-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CK:[, [, , \"[2-578]\\\\d{4}\", , , , , , , [5]], [, , \"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\", , , , \"21234\"], [, , \"[578]\\\\d{4}\", , , , \"71234\"], [, , , , , , , , , [-1]], [, , , , \n, , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CK\", 682, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"[2-578]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CL:[, [, , \"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\", , , , , , , [9, 10, 11]], [, , \"(?:2(?:1962|3(?:2\\\\d\\\\d|3(?:00|23)))|80[1-9]\\\\d\\\\d)\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2-9])\\\\d{7}\", , , , \"221234567\", \n, , [9]], [, , \"(?:2(?:1962|3(?:2\\\\d\\\\d|3(?:00|23)))|80[1-9]\\\\d\\\\d)\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2-9])\\\\d{7}\", , , , \"221234567\", , , [9]], [, , \"(?:123|8)00\\\\d{6}\", , , , \"800123456\", , , [9, 11]], [, , , , , , , , , [-1]], [, , \"600\\\\d{7,8}\", , , , \"6001234567\", , , [10, 11]], [, , , , , , , , , [-1]], [, , \"44\\\\d{7}\", , , , \"441234567\", , , [9]], \"CL\", 56, \"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0\", , , , , , , 1, [[, \"(\\\\d{4})\", \"$1\", [\"1(?:[03-589]|21)|[29]0|78\"]], \n[, \"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"21\"], \"($1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[23]\"], \"($1)\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]], [[, \"(\\\\d{5})(\\\\d{4})\", \n\"$1 $2\", [\"21\"], \"($1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"44\"]], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[23]\"], \"($1)\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"9[2-9]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"], \"($1)\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"60|8\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"60\"]]], [, , , , , , , , , [-1]], , , [, \n, \"600\\\\d{7,8}\", , , , , , , [10, 11]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CM:[, [, , \"(?:[26]\\\\d\\\\d|88)\\\\d{6}\", , , , , , , [8, 9]], [, , \"2(?:22|33)\\\\d{6}\", , , , \"222123456\", , , [9]], [, , \"(?:24[23]|6[5-9]\\\\d)\\\\d{6}\", , , , \"671234567\", , , [9]], [, , \"88\\\\d{6}\", , , , \"88012345\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CM\", 237, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", \n[\"88\"]], [, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CN:[, [, , \"1[1279]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-68]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\", , , , , , , [7, 8, 9, 10, 11, 12], [5, 6]], [, , \"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|21(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))\\\\d{5}|(?:43[35]|754)\\\\d{7,8}|8(?:078\\\\d{7}|51\\\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\\\d\\\\d|95\\\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[1-9]\\\\d{6})|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[1-9]\\\\d{5})|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\", \n, , , \"1012345678\", , , [7, 8, 9, 10, 11], [5, 6]], [, , \"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[189])\\\\d{8}\", , , , \"13123456789\", , , [11]], [, , \"(?:(?:10|21)8|8)00\\\\d{7}\", , , , \"8001234567\", , , [10, 12]], [, , \"16[08]\\\\d{5}\", , , , \"16812345\", , , [8]], [, , \"400\\\\d{7}|950\\\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\", \n, , , \"4001234567\", , , [7, 8, 9, 10, 11], [5, 6]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CN\", 86, \"00|1(?:[12]\\\\d|79|9[0235-7])\\\\d\\\\d00\", \"0\", , , \"0|(1(?:[12]\\\\d|79|9[0235-7])\\\\d\\\\d)\", , \"00\", , [[, \"(\\\\d{5,6})\", \"$1\", [\"96\"]], [, \"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"(?:10|2[0-57-9])(?:100|9[56])\"], \"0$1\", \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\", \"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\", \"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]], \n[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"16[08]\"]], [, \"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \n\"0$1\", \"$CC $1\"], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[1-9]\", \"1[1-9]|26|[3-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])\", \"26|3(?:[0268]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|50|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9])|(?:34|85[23])[0-8]|(?:1|58)[1-9]|(?:63|95)[06-9]|(?:33|85[23]9)[0-46-9]|(?:10|2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[0-8]|9[0-47-9])\", \n\"26|3(?:[0268]|3[0-46-9]|4[0-8]|9[079])|4(?:[049]|2[02-68]|[35]0|6[0-356]|8[014-9])|5(?:0|2[0-24-689]|4[0-2457-9]|6[057-9]|90)|6(?:[0-24578]|3[06-9]|6[14-79]|9[03-9])|7(?:0[02-9]|2[0135-79]|3[23]|4[0-27-9]|6[1457]|8)|8(?:[046]|1[01459]|2[0-489]|5(?:0|[23](?:[02-8]|1[1-9]|9[0-46-9]))|8[0-2459]|9[09])|9(?:0[0457]|1[08]|[268]|4[024-9]|5[06-9])|(?:1|58|85[23]10)[1-9]|(?:10|2[0-57-9])(?:[0-8]|9[0-47-9])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]|1(?:0[1-9]|[1-9])|9[0-47-9])\"]], \n[, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", \"$CC $1\", 1], \n[, \"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", , 1]], [[, \"(\\\\d{2})(\\\\d{5,6})\", \"$1 $2\", [\"(?:10|2[0-57-9])[19]\", \"(?:10|2[0-57-9])(?:10|9[56])\", \"(?:10|2[0-57-9])(?:100|9[56])\"], \"0$1\", \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{5,6})\", \n\"$1 $2\", [\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\", \"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\", \n\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\", \"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"], \n\"0$1\", \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"(?:4|80)0\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"10|2(?:[02-57-9]|1[1-9])\", \"10|2(?:[02-57-9]|1[1-9])\", \"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"], \"0$1\", \n\"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"9\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"80\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-578]\"], \"0$1\", \"$CC $1\", 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"1[3-9]\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"[12]\"], \"0$1\", , 1]], [, , , , , , , , , [-1]], , , [, , \"(?:(?:10|21)8|[48])00\\\\d{7}|950\\\\d{7,8}\", , , , , , , [10, 11, 12]], [, , , , , , , , , [-1]], , , [, , , , , , , \n, , [-1]]], CO:[, [, , \"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\", , , , , , , [8, 10, 11], [7]], [, , \"[124-8][2-9]\\\\d{6}\", , , , \"12345678\", , , [8], [7]], [, , \"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|33(?:00|3[0-24-9])\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\", , , , \"3211234567\", , , [10]], [, , \"1800\\\\d{7}\", , , , \"18001234567\", , , [11]], [, , \"19(?:0[01]|4[78])\\\\d{7}\", , , , \"19001234567\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CO\", 57, \"00(?:4(?:[14]4|56)|[579])\", \n\"0\", , , \"0([3579]|4(?:[14]4|56))?\", , , , [[, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[14][2-9]|[25-8]\"], \"($1)\", \"0$CC $1\"], [, \"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], , \"0$CC $1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1-$2-$3\", [\"1\"], \"0$1\"]], [[, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"[14][2-9]|[25-8]\"], \"($1)\", \"0$CC $1\"], [, \"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], , \"0$CC $1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{7})\", \"$1 $2 $3\", [\"1\"]]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , \n, [-1]]], CR:[, [, , \"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\", , , , , , , [8, 10]], [, , \"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\", , , , \"22123456\", , , [8]], [, , \"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\", , , , \"83123456\", , , [8]], [, , \"800\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , \"90[059]\\\\d{7}\", , , , \"9001234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\", , , , \"40001234\", , , [8]], \"CR\", 506, \n\"00\", , , , \"(19(?:0[0-2468]|1[09]|20|66|77|99))\", , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[3-9]\"], , \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[89]\"], , \"$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CU:[, [, , \"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\", , , , , , , [6, 7, 8, 10], [4, 5]], [, , \"(?:3[23]|48)\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\", , , , \n\"71234567\", , , , [4, 5]], [, , \"5\\\\d{7}\", , , , \"51234567\", , , [8]], [, , \"800\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , , , , , , , , [-1]], [, , \"807\\\\d{7}\", , , , \"8071234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CU\", 53, \"119\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"2[1-4]|[34]\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{6,7})\", \"$1 $2\", [\"7\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"5\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"8\"], \"0$1\"]], , [, , , , , , \n, , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CV:[, [, , \"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\", , , , , , , [7]], [, , \"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\", , , , \"2211234\"], [, , \"(?:[34][36]|5[1-389]|9\\\\d)\\\\d{5}\", , , , \"9911234\"], [, , \"800\\\\d{4}\", , , , \"8001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CV\", 238, \"0\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3\", [\"[2-589]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CW:[, [, , \"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\", , , , , , , [7, 8]], [, , \"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\", , , , \"94351234\"], [, , \"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\", , , , \"95181234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"60[0-2]\\\\d{4}\", , , , \n\"6001234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"CW\", 599, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[3467]\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9[4-8]\"]]], , [, , \"955\\\\d{5}\", , , , \"95581234\", , , [8]], 1, \"[69]\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CX:[, [, , \"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|(?:[148]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{5,7}\", , , , , , , [6, 7, 8, 9, 10]], [, , \"8(?:51(?:0(?:01|30|59)|117)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\", \n, , , \"891641234\", , , [9], [8]], [, , \"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\", , , , \"412345678\", , , [9]], [, , \"180(?:0\\\\d{3}|2)\\\\d{3}\", , , , \"1800123456\", , , [7, 10]], [, , \"190[0-26]\\\\d{6}\", , , , \"1900123456\", , , [10]], [, , \"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\", , , , \"1300123456\", , , [6, 8, 10]], [, , , , , , , , , [-1]], [, , \"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\", , , , \"550123456\", , , [9]], \"CX\", 61, \"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\", \n\"0\", , , \"0|([59]\\\\d{7})$\", \"8$1\", \"0011\", , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], CY:[, [, , \"(?:[279]\\\\d|[58]0)\\\\d{6}\", , , , , , , [8]], [, , \"2[2-6]\\\\d{6}\", , , , \"22345678\"], [, , \"9[4-79]\\\\d{6}\", , , , \"96123456\"], [, , \"800\\\\d{5}\", , , , \"80001234\"], [, , \"90[09]\\\\d{5}\", , , , \"90012345\"], [, , \"80[1-9]\\\\d{5}\", , , , \"80112345\"], [, , \"700\\\\d{5}\", , , , \"70012345\"], [, , , , , , , , , [-1]], \"CY\", 357, \"00\", , , \n, , , , , [[, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[257-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"(?:50|77)\\\\d{6}\", , , , \"77123456\"], , , [, , , , , , , , , [-1]]], CZ:[, [, , \"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\", , , , , , , [9, 10, 11, 12]], [, , \"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\", , , , \"212345678\", , , [9]], [, , \"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\", , , , \"601123456\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"9(?:0[05689]|76)\\\\d{6}\", \n, , , \"900123456\", , , [9]], [, , \"8[134]\\\\d{7}\", , , , \"811234567\", , , [9]], [, , \"70[01]\\\\d{6}\", , , , \"700123456\", , , [9]], [, , \"9[17]0\\\\d{6}\", , , , \"910123456\", , , [9]], \"CZ\", 420, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]|9[015-7]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"9(?:5\\\\d|7[2-4])\\\\d{6}\", , , , \"972123456\", \n, , [9]], , , [, , \"9(?:3\\\\d{9}|6\\\\d{7,10})\", , , , \"93123456789\"]], DE:[, [, , \"[2579]\\\\d{5,14}|49(?:[05]\\\\d{10}|[46][1-8]\\\\d{4,9})|49(?:[0-25]\\\\d|3[1-689]|7[1-7])\\\\d{4,8}|49(?:[0-2579]\\\\d|[34][1-9]|6[0-8])\\\\d{3}|49\\\\d{3,4}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}\", , , , , , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [2, 3]], [, , \"(?:32|49[4-6]\\\\d)\\\\d{9}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\", \n, , , \"30123456\", , , [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [2, 3, 4]], [, , \"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\", , , , \"15123456789\", , , [10, 11]], [, , \"800\\\\d{7,12}\", , , , \"8001234567890\", , , [10, 11, 12, 13, 14, 15]], [, , \"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\", , , , \"9001234567\", , , [10, 11]], [, , \"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\", , , , \"18012345\", , , [7, 8, 9, 10, 11, 12, 13, 14]], [, , \"700\\\\d{8}\", , , , \"70012345678\", , , [11]], [, , , , , , , , , [-1]], \"DE\", 49, \n\"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3,13})\", \"$1 $2\", [\"3[02]|40|[68]9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3,12})\", \"$1 $2\", [\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\", \"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{2,11})\", \"$1 $2\", [\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\", \"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"], \n\"0$1\"], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"138\"], \"0$1\"], [, \"(\\\\d{5})(\\\\d{2,10})\", \"$1 $2\", [\"3\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5,11})\", \"$1 $2\", [\"181\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{4,10})\", \"$1 $2 $3\", [\"1(?:3|80)|9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{7,8})\", \"$1 $2\", [\"1[67]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{7,12})\", \"$1 $2\", [\"8\"], \"0$1\"], [, \"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"185\", \"1850\", \"18500\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"18[68]\"], \"0$1\"], \n[, \"(\\\\d{5})(\\\\d{6})\", \"$1 $2\", [\"15[0568]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{7})\", \"$1 $2\", [\"15[1279]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{8})\", \"$1 $2\", [\"18\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\", \"$1 $2 $3\", [\"1(?:6[023]|7)\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{7})\", \"$1 $2 $3\", [\"15[279]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{8})\", \"$1 $2 $3\", [\"15\"], \"0$1\"]], , [, , \"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\", , , , \"16412345\", , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], , , [, , , , , , , , , [-1]], [, , \"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\", \n, , , \"18500123456\", , , [8, 9, 10, 11, 12, 13, 14]], , , [, , \"1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\\\d{7,8}|15(?:(?:[03-68]00|113)\\\\d|2\\\\d55|7\\\\d99|9\\\\d33)\\\\d{7}\", , , , \"177991234567\", , , [12, 13]]], DJ:[, [, , \"(?:2\\\\d|77)\\\\d{6}\", , , , , , , [8]], [, , \"2(?:1[2-5]|7[45])\\\\d{5}\", , , , \"21360003\"], [, , \"77\\\\d{6}\", , , , \"77831001\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"DJ\", 253, \n\"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[27]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], DK:[, [, , \"[2-9]\\\\d{7}\", , , , , , , [8]], [, , \"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\", , , , \"32123456\"], [, , \"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\", , , , \"32123456\"], [, , \"80\\\\d{6}\", , , , \"80123456\"], [, , \"90\\\\d{6}\", , , , \"90123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], \"DK\", 45, \"00\", , , , , , , 1, [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], DM:[, [, , \"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\\\d{4}\", , , , \"7674201234\", , , , [7]], [, , \"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-7])\\\\d{4}\", , , , \"7672251234\", , , , [7]], [, , \n\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"DM\", 1, \"011\", \"1\", , , \"1|([2-7]\\\\d{6})$\", \"767$1\", , , , , [, , , , , , , , , [-1]], , \"767\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], DO:[, [, , \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\", \n, , , \"8092345678\", , , , [7]], [, , \"8[024]9[2-9]\\\\d{6}\", , , , \"8092345678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"DO\", 1, \"011\", \"1\", , , \"1\", , , , , , [, , , , , , , , , [-1]], , \"8[024]9\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], DZ:[, [, , \"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\", \n, , , , , , [8, 9]], [, , \"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[0135689])\\\\d{6}\", , , , \"12345678\"], [, , \"(?:5(?:4[0-29]|5\\\\d|6[01])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\", , , , \"551234567\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"80[3-689]1\\\\d{5}\", , , , \"808123456\", , , [9]], [, , \"80[12]1\\\\d{5}\", , , , \"801123456\", , , [9]], [, , , , , , , , , [-1]], [, , \"98[23]\\\\d{6}\", , , , \"983123456\", , , [9]], \"DZ\", 213, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[1-4]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-8]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], EC:[, [, , \"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\", , , , , , , [8, 9, 10, 11], [7]], [, , \"[2-7][2-7]\\\\d{6}\", , , , \"22123456\", , , [8], [7]], [, , \"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\", , , , \"991234567\", \n, , [9]], [, , \"1800\\\\d{7}|1[78]00\\\\d{6}\", , , , \"18001234567\", , , [10, 11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"[2-7]890\\\\d{4}\", , , , \"28901234\", , , [8]], \"EC\", 593, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-7]\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2-$3\", [\"[2-7]\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", \n[\"[2-7]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1\"]]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], EE:[, [, , \"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\", , , , , , , [7, 8, 10]], [, , \"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\", , , , \"3212345\", , , [7]], [, , \"5(?:[0-35-9]\\\\d{6}|4(?:[0-57-9]\\\\d{5}|6(?:[0-24-9]\\\\d{4}|3(?:[0-35-9]\\\\d{3}|4000))))|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[24-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9]|8[2-4])\\\\d|7(?:[679]\\\\d|8[13-9]))\\\\d)|[349]\\\\d{4})\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\", \n, , , \"51234567\", , , [7, 8]], [, , \"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\", , , , \"80012345\"], [, , \"(?:40\\\\d\\\\d|900)\\\\d{4}\", , , , \"9001234\", , , [7, 8]], [, , , , , , , , , [-1]], [, , \"70[0-2]\\\\d{5}\", , , , \"70012345\", , , [8]], [, , , , , , , , , [-1]], \"EE\", 372, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\", \"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]], [, \"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[45]|8(?:00|[1-49])\", \n\"[45]|8(?:00[1-9]|[1-49])\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]], , [, , , , , , , , , [-1]], , , [, , \"800[2-9]\\\\d{3}\", , , , , , , [7]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], EG:[, [, , \"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\", , , , , , , [8, 9, 10], [6, 7]], [, , \"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\", , , , \"234567890\", , , [8, 9], [6, 7]], [, , \"1[0-25]\\\\d{8}\", \n, , , \"1001234567\", , , [10]], [, , \"800\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , \"900\\\\d{7}\", , , , \"9001234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"EG\", 20, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{7,8})\", \"$1 $2\", [\"[23]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{6,7})\", \"$1 $2\", [\"1[35]|[4-6]|8[2468]|9[235-7]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[189]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , \n, , , , [-1]], , , [, , , , , , , , , [-1]]], EH:[, [, , \"[5-8]\\\\d{8}\", , , , , , , [9]], [, , \"528[89]\\\\d{5}\", , , , \"528812345\"], [, , \"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\\\d{6}\", , , , \"650123456\"], [, , \"80\\\\d{7}\", , , , \"801234567\"], [, , \"89\\\\d{7}\", , , , \"891234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"592(?:4[0-2]|93)\\\\d{4}\", , , , \"592401234\"], \"EH\", 212, \"00\", \"0\", , , \"0\", , , , , , [, , , , , , , , , [-1]], , \"528[89]\", [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], ER:[, [, , \"[178]\\\\d{6}\", , , , , , , [7], [6]], [, , \"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\", , , , \"8370362\", , , , [6]], [, , \"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\", , , , \"7123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"ER\", 291, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[178]\"], \"0$1\"]], , [, , , , , , , , , [-1]], \n, , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], ES:[, [, , \"(?:51|[6-9]\\\\d)\\\\d{7}\", , , , , , , [9]], [, , \"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\", , , , \"810123456\"], [, , \"9(?:6906(?:09|10)|7390\\\\d\\\\d)\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\", , , , \"612345678\"], [, , \"[89]00\\\\d{6}\", , , , \"800123456\"], [, , \"80[367]\\\\d{6}\", \n, , , \"803123456\"], [, , \"90[12]\\\\d{6}\", , , , \"901123456\"], [, , \"70\\\\d{7}\", , , , \"701234567\"], [, , , , , , , , , [-1]], \"ES\", 34, \"00\", , , , , , , , [[, \"(\\\\d{4})\", \"$1\", [\"905\"]], [, \"(\\\\d{6})\", \"$1\", [\"[79]9\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]], [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]00\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-9]\"]]], [, , , , , , , , , [-1]], , , [, , \n, , , , , , , [-1]], [, , \"51\\\\d{7}\", , , , \"511234567\"], , , [, , , , , , , , , [-1]]], ET:[, [, , \"(?:11|[2-59]\\\\d)\\\\d{7}\", , , , , , , [9], [7]], [, , \"116671\\\\d{3}|(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\", \n, , , \"111112345\", , , , [7]], [, , \"9\\\\d{8}\", , , , \"911234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"ET\", 251, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-59]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], FI:[, [, , \"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\", \n, , , , , , [5, 6, 7, 8, 9, 10, 11, 12]], [, , \"(?:1[3-79][1-8]|[235689][1-8]\\\\d)\\\\d{2,6}\", , , , \"131234567\", , , [5, 6, 7, 8, 9]], [, , \"(?:4[0-8]|50)\\\\d{4,8}\", , , , \"412345678\", , , [6, 7, 8, 9, 10]], [, , \"800\\\\d{4,6}\", , , , \"800123456\", , , [7, 8, 9]], [, , \"[67]00\\\\d{5,6}\", , , , \"600123456\", , , [8, 9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"FI\", 358, \"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\", \"0\", , , \"0\", , \"00\", , [[, \"(\\\\d{5})\", \"$1\", \n[\"75[12]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [, \"(\\\\d{6})\", \"$1\", [\"11\"]], [, \"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], [[, \"(\\\\d)(\\\\d{4,9})\", \"$1 $2\", [\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[12]00|[368]|70[07-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4,8})\", \"$1 $2\", [\"[1245]|7[135]\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{6,10})\", \"$1 $2\", [\"7\"], \"0$1\"]], [, , , , , , , , , [-1]], 1, \"1[03-79]|[2-9]\", [, , \"20(?:2[023]|9[89])\\\\d{1,6}|(?:60[12]\\\\d|7099)\\\\d{4,5}|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:[1-3]00|7(?:0[1-5]\\\\d\\\\d|5[03-9]))\\\\d{3,7}\"], [, , \"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\", , , , \"10112345\"], , , [, , , , , , , , , [-1]]], FJ:[, [, , \"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\", , , , \n, , , [7, 11]], [, , \"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\", , , , \"3212345\", , , [7]], [, , \"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\", , , , \"7012345\", , , [7]], [, , \"0800\\\\d{7}\", , , , \"08001234567\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"FJ\", 679, \"0(?:0|52)\", , , , , , \"00\", , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[235-9]|45\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]]], , [, , , , , , , , , [-1]], , , [, \n, , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], FK:[, [, , \"[2-7]\\\\d{4}\", , , , , , , [5]], [, , \"[2-47]\\\\d{4}\", , , , \"31234\"], [, , \"[56]\\\\d{4}\", , , , \"51234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"FK\", 500, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], FM:[, [, , \"(?:[39]\\\\d\\\\d|820)\\\\d{4}\", \n, , , , , , [7]], [, , \"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\", , , , \"3201234\"], [, , \"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\", , , , \"3501234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"FM\", 691, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[389]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , \n, [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], FO:[, [, , \"(?:[2-8]\\\\d|90)\\\\d{4}\", , , , , , , [6]], [, , \"(?:20|[34]\\\\d|8[19])\\\\d{4}\", , , , \"201234\"], [, , \"(?:[27][1-9]|5\\\\d)\\\\d{4}\", , , , \"211234\"], [, , \"80[257-9]\\\\d{3}\", , , , \"802123\"], [, , \"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\", , , , \"901123\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:6[0-36]|88)\\\\d{4}\", , , , \"601234\"], \"FO\", 298, \"00\", , , , \"(10(?:01|[12]0|88))\", , , , [[, \"(\\\\d{6})\", \"$1\", [\"[2-9]\"], \n, \"$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], FR:[, [, , \"[1-9]\\\\d{8}\", , , , , , , [9]], [, , \"(?:[1-35]\\\\d|4[1-9])\\\\d{7}\", , , , \"123456789\"], [, , \"700\\\\d{6}|(?:6\\\\d|7[3-9])\\\\d{7}\", , , , \"612345678\"], [, , \"80[0-5]\\\\d{6}\", , , , \"801234567\"], [, , \"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\", , , , \"891123456\"], [, , \"8(?:1[01]|2[0156]|84)\\\\d{6}\", , , , \"884012345\"], \n[, , , , , , , , , [-1]], [, , \"9\\\\d{8}\", , , , \"912345678\"], \"FR\", 33, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})\", \"$1\", [\"10\"]], [, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"], \"0 $1\"], [, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[1-79]\"], \"0$1\"]], [, , , , , , , , , [-1]], \n, , [, , , , , , , , , [-1]], [, , \"80[6-9]\\\\d{6}\", , , , \"806123456\"], , , [, , , , , , , , , [-1]]], GA:[, [, , \"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\", , , , , , , [7, 8]], [, , \"[01]1\\\\d{6}\", , , , \"01441234\", , , [8]], [, , \"(?:0[2-7]|6[256]|7[47])\\\\d{6}|[2-7]\\\\d{6}\", , , , \"06031234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GA\", 241, \"00\", , , , \"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\", \"$1\", , , [[, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[2-7]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"11|[67]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GB:[, [, , \"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\", , , , , , , [7, 9, 10], [4, 5, 6, 8]], [, , \"(?:1(?:(?:1(?:3[0-58]|4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])|3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d\\\\d|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d\\\\d|1(?:[0-7]\\\\d\\\\d|80[04589])))|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\", \n, , , \"1212345678\", , , [9, 10], [4, 5, 6, 7, 8]], [, , \"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\", , , , \"7400123456\", , , [10]], [, , \"80[08]\\\\d{7}|800\\\\d{6}|8001111\", , , , \"8001234567\"], [, , \"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\", , , , \"9012345678\", , , [7, 10]], [, , , , , , , , , [-1]], [, , \n\"70\\\\d{8}\", , , , \"7012345678\", , , [10]], [, , \"56\\\\d{8}\", , , , \"5612345678\", , , [10]], \"GB\", 44, \"00\", \"0\", \" x\", , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"800\", \"8001\", \"80011\", \"800111\", \"8001111\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"845\", \"8454\", \"84546\", \"845464\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"800\"], \"0$1\"], [, \"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"1(?:38|5[23]|69|76|94)\", \"1(?:(?:38|69)7|5(?:24|39)|768|946)\", \"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"], \n\"0$1\"], [, \"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"1(?:[2-69][02-9]|[78])\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[25]|7(?:0|6[02-9])\", \"[25]|7(?:0|6(?:[03-9]|2[356]))\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"7\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1389]\"], \"0$1\"]], , [, , \"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\", , , , \"7640123456\", , , [10]], 1, , [, , , , , , , , , [-1]], [, , \"(?:3[0347]|55)\\\\d{8}\", , , , \"5512345678\", , , [10]], , , [, \n, , , , , , , , [-1]]], GD:[, [, , \"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\", , , , \"4732691234\", , , , [7]], [, , \"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\", , , , \"4734031234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", \n, , , \"5002345678\"], [, , , , , , , , , [-1]], \"GD\", 1, \"011\", \"1\", , , \"1|([2-9]\\\\d{6})$\", \"473$1\", , , , , [, , , , , , , , , [-1]], , \"473\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GE:[, [, , \"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\", , , , , , , [9], [6, 7]], [, , \"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\", , , , \"322123456\", , , , [6, 7]], [, , \"5(?:0555[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:000\\\\d|(?:52|75)00|8(?:58[89]|888))\\\\d{4}|5(?:0050|1111|2222|3333)[0-4]\\\\d{3}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\", \n, , , \"555123456\"], [, , \"800\\\\d{6}\", , , , \"800123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"706\\\\d{6}\", , , , \"706123456\"], \"GE\", 995, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"32\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[57]\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[348]\"], \"0$1\"]], , [, , , , , , , , , \n[-1]], , , [, , \"706\\\\d{6}\"], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GF:[, [, , \"(?:[56]94|976)\\\\d{6}\", , , , , , , [9]], [, , \"594(?:[023]\\\\d|1[01]|4[03-9]|5[6-9]|6[0-3]|80|9[014])\\\\d{4}\", , , , \"594101234\"], [, , \"694(?:[0-249]\\\\d|3[0-48])\\\\d{4}\", , , , \"694201234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"976\\\\d{6}\", , , , \"976012345\"], \"GF\", 594, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GG:[, [, , \"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\", , , , , , , [7, 9, 10], [6]], [, , \"1481[25-9]\\\\d{5}\", , , , \"1481256789\", , , [10], [6]], [, , \"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\", , , , \"7781123456\", , , [10]], [, , \"80[08]\\\\d{7}|800\\\\d{6}|8001111\", , , , \"8001234567\"], [, , \"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\", \n, , , \"9012345678\", , , [7, 10]], [, , , , , , , , , [-1]], [, , \"70\\\\d{8}\", , , , \"7012345678\", , , [10]], [, , \"56\\\\d{8}\", , , , \"5612345678\", , , [10]], \"GG\", 44, \"00\", \"0\", , , \"0|([25-9]\\\\d{5})$\", \"1481$1\", , , , , [, , \"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\", , , , \"7640123456\", , , [10]], , , [, , , , , , , , , [-1]], [, , \"(?:3[0347]|55)\\\\d{8}\", , , , \"5512345678\", , , [10]], , , [, , , , , , , , , [-1]]], GH:[, [, , \"(?:[235]\\\\d{3}|800)\\\\d{5}\", , , , , , , [8, 9], \n[7]], [, , \"3(?:[167]2[0-6]|22[0-5]|32[0-3]|4(?:2[013-9]|3[01])|52[0-7]|82[0-2])\\\\d{5}|3(?:[0-8]8|9[28])0\\\\d{5}|3(?:0[237]|[1-9]7)\\\\d{6}\", , , , \"302345678\", , , [9], [7]], [, , \"(?:2[0346-8]\\\\d|5(?:[0457]\\\\d|6[01]|9[1-6]))\\\\d{6}\", , , , \"231234567\", , , [9]], [, , \"800\\\\d{5}\", , , , \"80012345\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GH\", 233, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[237]|80\"]], [, \"(\\\\d{3})(\\\\d{5})\", \n\"$1 $2\", [\"8\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], [[, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"8\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[235]\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , \"800\\\\d{5}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GI:[, [, , \"[256]\\\\d{7}\", , , , , , , [8]], [, , \"21(?:6[24-7]\\\\d|90[0-2])\\\\d{3}|2(?:00|2[25])\\\\d{5}\", , , , \"20012345\"], [, , \"(?:5[146-8]\\\\d|6(?:06|29))\\\\d{5}\", , , , \"57123456\"], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GI\", 350, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"2\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GL:[, [, , \"(?:19|[2-689]\\\\d)\\\\d{4}\", , , , , , , [6]], [, , \"(?:19|3[1-7]|6[14689]|8[14-79]|9\\\\d)\\\\d{4}\", , , , \"321000\"], [, , \"[245]\\\\d{5}\", , , , \"221234\"], [, , \"80\\\\d{4}\", , , , \n\"801234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"3[89]\\\\d{4}\", , , , \"381234\"], \"GL\", 299, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"19|[2-689]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GM:[, [, , \"[2-9]\\\\d{6}\", , , , , , , [7]], [, , \"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8\\\\d{3})\\\\d{3}\", \n, , , \"5661234\"], [, , \"(?:[23679]\\\\d|5[0-389])\\\\d{5}\", , , , \"3012345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GM\", 220, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GN:[, [, , \"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\", , , , , , , [8, 9]], [, , \"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\", \n, , , \"30241234\", , , [8]], [, , \"6[02356]\\\\d{7}\", , , , \"601123456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"722\\\\d{6}\", , , , \"722123456\", , , [9]], \"GN\", 224, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"3\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[67]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], \nGP:[, [, , \"(?:590|69\\\\d|976)\\\\d{6}\", , , , , , , [9]], [, , \"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\", , , , \"590201234\"], [, , \"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\", , , , \"690001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"976[01]\\\\d{5}\", , , , \"976012345\"], \"GP\", 590, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], , \n[, , , , , , , , , [-1]], 1, , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GQ:[, [, , \"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\", , , , , , , [9]], [, , \"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\", , , , \"333091234\"], [, , \"(?:222|55[015])\\\\d{6}\", , , , \"222123456\"], [, , \"80\\\\d[1-9]\\\\d{5}\", , , , \"800123456\"], [, , \"90\\\\d[1-9]\\\\d{5}\", , , , \"900123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GQ\", 240, \"00\", , , , , \n, , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235]\"]], [, \"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[89]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GR:[, [, , \"5005000\\\\d{3}|(?:[2689]\\\\d|70)\\\\d{8}\", , , , , , , [10]], [, , \"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\", \n, , , \"2123456789\"], [, , \"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\", , , , \"6912345678\"], [, , \"800\\\\d{7}\", , , , \"8001234567\"], [, , \"90[19]\\\\d{7}\", , , , \"9091234567\"], [, , \"8(?:0[16]|12|25)\\\\d{7}\", , , , \"8011234567\"], [, , \"70\\\\d{8}\", , , , \"7012345678\"], [, , , , , , , , , [-1]], \"GR\", 30, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"21|7\"]], [, \"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", \n[\"[2689]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"5005000\\\\d{3}\", , , , \"5005000123\"], , , [, , , , , , , , , [-1]]], GT:[, [, , \"(?:1\\\\d{3}|[2-7])\\\\d{7}\", , , , , , , [8, 11]], [, , \"[267][2-9]\\\\d{6}\", , , , \"22456789\", , , [8]], [, , \"[3-5]\\\\d{7}\", , , , \"51234567\", , , [8]], [, , \"18[01]\\\\d{8}\", , , , \"18001112222\", , , [11]], [, , \"19\\\\d{9}\", , , , \"19001112222\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GT\", 502, \"00\", \n, , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GU:[, [, , \"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\", \n, , , \"6713001234\", , , , [7]], [, , \"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\", , , , \"6713001234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, \n, , , , , , , , [-1]], \"GU\", 1, \"011\", \"1\", , , \"1|([3-9]\\\\d{6})$\", \"671$1\", , 1, , , [, , , , , , , , , [-1]], , \"671\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GW:[, [, , \"[49]\\\\d{8}|4\\\\d{6}\", , , , , , , [7, 9]], [, , \"443\\\\d{6}\", , , , \"443201234\", , , [9]], [, , \"9(?:5\\\\d|6[569]|77)\\\\d{6}\", , , , \"955012345\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"40\\\\d{5}\", , , , \"4012345\", \n, , [7]], \"GW\", 245, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"40\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], GY:[, [, , \"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\", , , , , , , [7]], [, , \"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-24-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|77[1-57])\\\\d{4}\", , , , \"2201234\"], [, , \"6\\\\d{6}\", , , , \"6091234\"], [, \n, \"(?:289|862)\\\\d{4}\", , , , \"2891234\"], [, , \"9008\\\\d{3}\", , , , \"9008123\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"GY\", 592, \"001\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], HK:[, [, , \"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\", , , , , , , [5, 6, 7, 8, 9, 11]], [, , \"(?:384[0-24]|58(?:0[1-8]|1[2-9]))\\\\d{4}|(?:2(?:[13-8]\\\\d|2[013-9]|9[0-24-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89))\\\\d{5}\", \n, , , \"21234567\", , , [8]], [, , \"(?:46(?:0[0-6]|1[0-2]|4[0-57-9])|5730|(?:626|848)[01]|707[1-5]|929[03-9])\\\\d{4}|(?:5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\", , , , \"51234567\", , , [8]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\", , , , \"90012345678\", , , [5, 6, 7, 8, 11]], [, , , , , , , , , [-1]], [, , \"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\", \n, , , \"81123456\", , , [8]], [, , , , , , , , , [-1]], \"HK\", 852, \"00(?:30|5[09]|[126-9]?)\", , , , , , \"00\", , [[, \"(\\\\d{3})(\\\\d{2,5})\", \"$1 $2\", [\"900\", \"9003\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]]], , [, , \"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\", \n, , , \"71123456\", , , [8]], , , [, , , , , , , , , [-1]], [, , \"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\", , , , \"30161234\", , , [8]], , , [, , , , , , , , , [-1]]], HN:[, [, , \"8\\\\d{10}|[237-9]\\\\d{7}\", , , , , , , [8, 11]], [, , \"2(?:2(?:0[019]|1[1-36]|[23]\\\\d|4[04-6]|5[57]|6[24]|7[0135689]|8[01346-9]|9[0-2])|4(?:07|2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:0[78]|16|4[03-5]|5\\\\d|6[014-6]|74|80)|6(?:[056]\\\\d|17|2[07]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\", \n, , , \"22123456\", , , [8]], [, , \"[37-9]\\\\d{7}\", , , , \"91234567\", , , [8]], [, , \"8002\\\\d{7}\", , , , \"80021234567\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"HN\", 504, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], [[, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"[237-9]\"]]], [, , , , , , , , , [-1]], , , [, , \"8002\\\\d{7}\", , , , , , , [11]], [, , , , , , , , , [-1]], \n, , [, , , , , , , , , [-1]]], HR:[, [, , \"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\", , , , , , , [6, 7, 8, 9]], [, , \"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\", , , , \"12345678\", , , [8, 9], [6, 7]], [, , \"9(?:751\\\\d{5}|8\\\\d{6,7})|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\", , , , \"921234567\", , , [8, 9]], [, , \"80[01]\\\\d{4,6}\", , , , \"800123456\", , , [7, 8, 9]], [, , \"6[01459]\\\\d{6}|6[01]\\\\d{4,5}\", , , , \"611234\", , , [6, 7, 8]], [, , , , , , , , , [-1]], [, , \"7[45]\\\\d{6}\", \n, , , \"74123456\", , , [8]], [, , , , , , , , , [-1]], \"HR\", 385, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"6[01]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[67]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-5]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", \n[\"8\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"62\\\\d{6,7}|72\\\\d{6}\", , , , \"62123456\", , , [8, 9]], , , [, , , , , , , , , [-1]]], HT:[, [, , \"[2-489]\\\\d{7}\", , , , , , , [8]], [, , \"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\", , , , \"22453300\"], [, , \"[34]\\\\d{7}\", , , , \"34101234\"], [, , \"8\\\\d{7}\", , , , \"80012345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\", , , , \"98901234\"], \"HT\", 509, \"00\", \n, , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-489]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], HU:[, [, , \"[2357]\\\\d{8}|[1-9]\\\\d{7}\", , , , , , , [8, 9], [6, 7]], [, , \"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\", , , , \"12345678\", , , [8], [6, 7]], [, , \"(?:[257]0|3[01])\\\\d{7}\", , , , \"201234567\", , , [9]], [, , \"[48]0\\\\d{6}\", , , , \"80123456\", , , [8]], [, , \"9[01]\\\\d{6}\", \n, , , \"90123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"21\\\\d{7}\", , , , \"211234567\", , , [9]], \"HU\", 36, \"00\", \"06\", , , \"06\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"(06 $1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"], \"(06 $1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-57-9]\"], \"06 $1\"]], , [, , , , , , , , , [-1]], , , [, , \"[48]0\\\\d{6}\", , , , , , , [8]], [, , \"38\\\\d{7}\", , , , \"381234567\", \n, , [9]], , , [, , , , , , , , , [-1]]], ID:[, [, , \"(?:(?:007803|8\\\\d{4})\\\\d|[1-36])\\\\d{6}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\", , , , , , , [7, 8, 9, 10, 11, 12, 13], [5, 6]], [, , \"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\", \n, , , \"218350123\", , , [7, 8, 9, 10, 11], [5, 6]], [, , \"8[1-35-9]\\\\d{7,10}\", , , , \"812345678\", , , [9, 10, 11, 12]], [, , \"007803\\\\d{7}|(?:177\\\\d|800)\\\\d{5,7}\", , , , \"8001234567\", , , [8, 9, 10, 11, 13]], [, , \"809\\\\d{7}\", , , , \"8091234567\", , , [10]], [, , \"804\\\\d{7}\", , , , \"8041234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"ID\", 62, \"00[189]\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"15\"]], [, \"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \n\"(0$1)\"], [, \"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]], [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \n\"$1 $2 $3\", [\"15\"]], [, \"(\\\\d{2})(\\\\d{5,9})\", \"$1 $2\", [\"2[124]|[36]1\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{5,7})\", \"$1 $2\", [\"800\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5,8})\", \"$1 $2\", [\"[2-79]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\", \"$1-$2-$3\", [\"8[1-35-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6,8})\", \"$1 $2\", [\"1\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"804\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"80\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1-$2-$3\", [\"8\"], \"0$1\"]], [, , , \n, , , , , , [-1]], , , [, , \"(?:007803\\\\d|8071)\\\\d{6}\", , , , , , , [10, 13]], [, , \"(?:1500|8071\\\\d{3})\\\\d{3}\", , , , \"8071123456\", , , [7, 10]], , , [, , , , , , , , , [-1]]], IE:[, [, , \"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\", , , , , , , [7, 8, 9, 10], [5, 6]], [, , \"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\", , , , \"2212345\", , , , [5, 6]], [, , \"8(?:22|[35-9]\\\\d)\\\\d{6}\", \n, , , \"850123456\", , , [9]], [, , \"1800\\\\d{6}\", , , , \"1800123456\", , , [10]], [, , \"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\", , , , \"1520123456\", , , [10]], [, , \"18[59]0\\\\d{6}\", , , , \"1850123456\", , , [10]], [, , \"700\\\\d{6}\", , , , \"700123456\", , , [9]], [, , \"76\\\\d{7}\", , , , \"761234567\", , , [9]], \"IE\", 353, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"2[24-9]|47|58|6[237-9]|9[35-9]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[45]0\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", \n[\"1\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2569]|4[1-69]|7[14]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"70\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"81\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"4\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , \"18[59]0\\\\d{6}\", \n, , , , , , [10]], [, , \"818\\\\d{6}\", , , , \"818123456\", , , [9]], , , [, , \"88210[1-9]\\\\d{4}|8(?:[35-79]5\\\\d\\\\d|8(?:[013-9]\\\\d\\\\d|2(?:[01][1-9]|[2-9]\\\\d)))\\\\d{5}\", , , , \"8551234567\", , , [10]]], IL:[, [, , \"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\", , , , , , , [7, 8, 9, 10, 11, 12]], [, , \"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\", , , , \"21234567\", , , [8, 11, 12], [7]], [, , \"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-7]|3[23]|44|5[05689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\", \n, , , \"502345678\", , , [9]], [, , \"1(?:255|80[019]\\\\d{3})\\\\d{3}\", , , , \"1800123456\", , , [7, 10]], [, , \"1212\\\\d{4}|1(?:200|9(?:0[01]|19))\\\\d{6}\", , , , \"1919123456\", , , [8, 10]], [, , \"1700\\\\d{6}\", , , , \"1700123456\", , , [10]], [, , , , , , , , , [-1]], [, , \"78(?:33|55|77|81)\\\\d{5}|7(?:18|2[23]|3[237]|47|6[58]|7\\\\d|82|9[235-9])\\\\d{6}\", , , , \"771234567\", , , [9]], \"IL\", 972, \"0(?:0|1[2-9])\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})(\\\\d{3})\", \"$1-$2\", [\"125\"]], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", \n[\"121\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-489]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"12\"]], [, \"(\\\\d{4})(\\\\d{6})\", \"$1-$2\", [\"159\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3-$4\", [\"1[7-9]\"]], [, \"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3-$4\", [\"15\"]]], , [, , , , , , , , , [-1]], , , [, , \"1700\\\\d{6}\", , , , , , , [10]], [, , \"1599\\\\d{6}\", , , , \"1599123456\", , , [10]], , , [, , \"151\\\\d{8,9}\", , \n, , \"15112340000\", , , [11, 12]]], IM:[, [, , \"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", , , , , , , [10], [6]], [, , \"1624[5-8]\\\\d{5}\", , , , \"1624756789\", , , , [6]], [, , \"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\", , , , \"7924123456\"], [, , \"808162\\\\d{4}\", , , , \"8081624567\"], [, , \"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\", , , , \"9016247890\"], [, , , , , , , , , [-1]], [, , \"70\\\\d{8}\", , , , \"7012345678\"], [, , \"56\\\\d{8}\", , , , \"5612345678\"], \"IM\", 44, \"00\", \"0\", \n, , \"0|([5-8]\\\\d{5})$\", \"1624$1\", , , , , [, , , , , , , , , [-1]], , \"74576|(?:16|7[56])24\", [, , , , , , , , , [-1]], [, , \"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\", , , , \"5512345678\"], , , [, , , , , , , , , [-1]]], IN:[, [, , \"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\", , , , , , , [8, 9, 10, 11, 12, 13], [6, 7]], [, , \"2717(?:[2-7]\\\\d|95)\\\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\\\d|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\", \n, , , \"7410410123\", , , [10], [6, 7, 8]], [, , \"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\", \n, , , \"8123456789\", , , [10]], [, , \"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\", , , , \"1800123456\"], [, , \"186[12]\\\\d{9}\", , , , \"1861123456789\", , , [13]], [, , \"1860\\\\d{7}\", , , , \"18603451234\", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"IN\", 91, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{7})\", \"$1\", [\"575\"]], [, \"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], , , 1], [, \"(\\\\d{4})(\\\\d{4,5})\", \n\"$1 $2\", [\"180\", \"1800\"], , , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], , , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \n\"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", , 1], [, \"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], \n, , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], , , 1]], [[, \"(\\\\d{8})\", \"$1\", [\"5(?:0|2[23]|3[03]|[67]1|88)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\", \"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"], , , 1], [, \"(\\\\d{4})(\\\\d{4,5})\", \"$1 $2\", [\"180\", \"1800\"], , , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"140\"], , , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\", \"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\", \n\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\", \n\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\", \"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"], \n\"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\", \"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\", \n\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"], \"0$1\", , 1], [, \"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"[6-9]\"], \"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1(?:6|8[06])\", \"1(?:6|8[06]0)\"], \n, , 1], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"18\"], , , 1]], [, , , , , , , , , [-1]], , , [, , \"1(?:600\\\\d{6}|800\\\\d{4,9})|(?:000800|18(?:03\\\\d\\\\d|6(?:0|[12]\\\\d\\\\d)))\\\\d{7}\"], [, , \"140\\\\d{7}\", , , , \"1409305260\", , , [10]], , , [, , , , , , , , , [-1]]], IO:[, [, , \"3\\\\d{6}\", , , , , , , [7]], [, , \"37\\\\d{5}\", , , , \"3709100\"], [, , \"38\\\\d{5}\", , , , \"3801234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , \n, , , [-1]], \"IO\", 246, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"3\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], IQ:[, [, , \"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\", , , , , , , [8, 9, 10], [6, 7]], [, , \"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\", , , , \"12345678\", , , [8, 9], [6, 7]], [, , \"7[3-9]\\\\d{8}\", , , , \"7912345678\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , \n, , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"IQ\", 964, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[2-6]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], IR:[, [, , \"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\", , , , , , , [4, 5, 6, 7, 10], [8]], [, , \"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\\\d)|30[0-2]\\\\d|4(?:111|40\\\\d))\\\\d{4}\", \n, , , \"2123456789\", , , [6, 7, 10], [4, 5, 8]], [, , \"9(?:(?:0(?:[1-35]\\\\d|44)|(?:[13]\\\\d|2[0-2])\\\\d)\\\\d|9(?:(?:[0-2]\\\\d|44)\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[013]|1[0134]|21|77|9[6-9])))\\\\d{5}\", , , , \"9123456789\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"993\\\\d{7}\", , , , \"9932123456\", , , [10]], \"IR\", 98, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4,5})\", \"$1\", [\"96\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4,5})\", \"$1 $2\", [\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"], \n\"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-8]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , \"9(?:4440\\\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))\", , , , , , , [4, 5, 10]], [, , \"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\", , , , \"9601\", , , [4, 5]], , , [, , , , , , , , , [-1]]], IS:[, [, , \"(?:38\\\\d|[4-9])\\\\d{6}\", , , , , , , [7, 9]], [, , \"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-245]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\", \n, , , \"4101234\", , , [7]], [, , \"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[28]))\\\\d{4}\", , , , \"6111234\"], [, , \"80[08]\\\\d{4}\", , , , \"8001234\", , , [7]], [, , \"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\", , , , \"9001234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"49[0-24-79]\\\\d{4}\", , , , \"4921234\", , , [7]], \"IS\", 354, \"00|1(?:0(?:01|[12]0)|100)\", \n, , , , , \"00\", , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"3\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"809\\\\d{4}\", , , , \"8091234\", , , [7]], , , [, , \"(?:689|8(?:7[18]|80)|95[48])\\\\d{4}\", , , , \"6891234\", , , [7]]], IT:[, [, , \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", , , , , , , [6, 7, 8, 9, 10, 11, 12]], [, , \"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\", \n, , , \"0212345678\", , , [6, 7, 8, 9, 10, 11]], [, , \"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", , , , \"3123456789\", , , [9, 10]], [, , \"80(?:0\\\\d{3}|3)\\\\d{3}\", , , , \"800123456\", , , [6, 9]], [, , \"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\", , , , \"899123456\", , , [6, 8, 9, 10]], [, , \"84(?:[08]\\\\d{3}|[17])\\\\d{3}\", , , , \"848123456\", , , [6, 9]], [, , \"1(?:78\\\\d|99)\\\\d{6}\", , , , \"1781234567\", , , [9, 10]], [, , \"55\\\\d{8}\", , , , \"5512345678\", , , [10]], \"IT\", \n39, \"00\", , , , , , , , [[, \"(\\\\d{4,5})\", \"$1\", [\"1(?:0|9[246])\", \"1(?:0|9(?:2[2-9]|[46]))\"]], [, \"(\\\\d{6})\", \"$1\", [\"1(?:1|92)\"]], [, \"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [, \"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]], [, \"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \n\"$1 $2 $3\", [\"1[4679]|[38]\"]], [, \"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], [[, \"(\\\\d{2})(\\\\d{4,6})\", \"$1 $2\", [\"0[26]\"]], [, \"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\", \"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]], [, \"(\\\\d{4})(\\\\d{2,6})\", \"$1 $2\", [\"0(?:[13-579][2-46-8]|8[236-8])\"]], \n[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"894\"]], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[26]|5\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"1[4679]|[38]\"]], [, \"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0[13-57-9][0159]\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{5})\", \"$1 $2 $3\", [\"0[26]\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"3\"]]], [, , , , , , , , , [-1]], 1, , [, , \"848\\\\d{6}\", , , , , , , [9]], [, , , , , , , , , [-1]], , , [, , \"3[2-8]\\\\d{9,10}\", \n, , , \"33101234501\", , , [11, 12]]], JE:[, [, , \"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\", , , , , , , [10], [6]], [, , \"1534[0-24-8]\\\\d{5}\", , , , \"1534456789\", , , , [6]], [, , \"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\", , , , \"7797712345\"], [, , \"80(?:07(?:35|81)|8901)\\\\d{4}\", , , , \"8007354567\"], [, , \"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\", , , , \"9018105678\"], [, , , , , , , , , [-1]], [, , \"701511\\\\d{4}\", , , , \"7015115678\"], \n[, , \"56\\\\d{8}\", , , , \"5612345678\"], \"JE\", 44, \"00\", \"0\", , , \"0|([0-24-8]\\\\d{5})$\", \"1534$1\", , , , , [, , \"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\", , , , \"7640123456\"], , , [, , , , , , , , , [-1]], [, , \"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\", , , , \"5512345678\"], , , [, , , , , , , , , [-1]]], JM:[, [, , \"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:5(?:02|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[0237-9]|[23]\\\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\", \n, , , \"8765230123\", , , , [7]], [, , \"(?:658295|876(?:(?:2[14-9]|[348]\\\\d)\\\\d|5(?:0[13-9]|17|[2-57-9]\\\\d|6[0-24-9])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\", , , , \"8762101234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"JM\", 1, \"011\", \"1\", , , \"1\", , , , , , [, , , , , , , , \n, [-1]], , \"658|876\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], JO:[, [, , \"900\\\\d{5}|(?:(?:[268]|7\\\\d)\\\\d|32|53)\\\\d{6}\", , , , , , , [8, 9]], [, , \"(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[57][023]|6[03])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:[029]0|7[08]))\\\\d{4}\", \n, , , \"62001234\", , , [8]], [, , \"7(?:55[0-49]|(?:7[025-9]|8[0-25-9]|9\\\\d)\\\\d)\\\\d{5}\", , , , \"790123456\", , , [9]], [, , \"80\\\\d{6}\", , , , \"80012345\", , , [8]], [, , \"900\\\\d{5}\", , , , \"90012345\", , , [8]], [, , \"85\\\\d{6}\", , , , \"85012345\", , , [8]], [, , \"70\\\\d{7}\", , , , \"700123456\", , , [9]], [, , , , , , , , , [-1]], \"JO\", 962, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2356]|87\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \n\"$1 $2\", [\"70\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], , [, , \"74(?:66|77)\\\\d{5}\", , , , \"746612345\", , , [9]], , , [, , , , , , , , , [-1]], [, , \"8(?:10|8\\\\d)\\\\d{5}\", , , , \"88101234\", , , [8]], , , [, , , , , , , , , [-1]]], JP:[, [, , \"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\", , , , , , , [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]], [, , \"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\", \n, , , \"312345678\", , , [9]], [, , \"[7-9]0[1-9]\\\\d{7}\", , , , \"9012345678\", , , [10]], [, , \"00(?:(?:37|66)\\\\d{6,13}|(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d)|(?:120|800\\\\d)\\\\d{6}\", , , , \"120123456\"], [, , \"990\\\\d{6}\", , , , \"990123456\", , , [9]], [, , , , , , , , , [-1]], [, , \"60\\\\d{7}\", , , , \"601234567\", , , [9]], [, , \"50[1-9]\\\\d{7}\", , , , \"5012345678\", , , [10]], \"JP\", 81, \"010\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"007\", \"0077\", \"00777\", \"00777[01]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \n\"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[78]|96)|477|51[24]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[78]|96[2457-9])|477|51[24]|636[2-57-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[279]|49|6[0-24-689]|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|6(?:[0-24]|5[0-3589]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \n\"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3[3-8]|5[2-9])\", \"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3(?:[3-6][2-9]|7|8[2-5])|5[2-9])\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{3,4})\", \"$1-$2-$3\", [\"007\"]], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"008\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[2579]|80\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2-$3\", [\"0\"]], [, \"(\\\\d{4})(\\\\d{4})(\\\\d{4,5})\", \n\"$1-$2-$3\", [\"0\"]], [, \"(\\\\d{4})(\\\\d{5})(\\\\d{5,6})\", \"$1-$2-$3\", [\"0\"]], [, \"(\\\\d{4})(\\\\d{6})(\\\\d{6,7})\", \"$1-$2-$3\", [\"0\"]]], [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1-$2-$3\", [\"(?:12|57|99)0\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\", \"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[78]|96)|477|51[24]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\", \n\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[78]|96[2457-9])|477|51[24]|636[2-57-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[36]|4(?:2[09]|7[01])\", \"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[279]|49|6[0-24-689]|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|6(?:[0-24]|5[0-3589]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\", \n\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"], \n\"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3\", [\"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3[3-8]|5[2-9])\", \"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3(?:[3-6][2-9]|7|8[2-5])|5[2-9])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"800\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[2579]|80\"], \"0$1\"]], [, , \"20\\\\d{8}\", , , , \"2012345678\", , , [10]], , , [, , \"00(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d|00(?:37|66)\\\\d{6,13}\"], [, , \"570\\\\d{6}\", , , , \"570123456\", \n, , [9]], , , [, , , , , , , , , [-1]]], KE:[, [, , \"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\", , , , , , , [7, 8, 9, 10]], [, , \"(?:4[245]|5[2-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|51|66)\\\\d{6,7}\", , , , \"202012345\", , , [7, 8, 9]], [, , \"(?:1(?:0[0-2]|1[01])|7\\\\d\\\\d)\\\\d{6}\", , , , \"712123456\", , , [9]], [, , \"800[24-8]\\\\d{5,6}\", , , , \"800223456\", , , [9, 10]], [, , \"900[02-9]\\\\d{5}\", , , , \"900223456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], \"KE\", 254, \"000\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"[24-6]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[17]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KG:[, [, , \"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\", , , , , , , [9, 10], [5, 6]], [, , \"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\", \n, , , \"312123456\", , , [9], [5, 6]], [, , \"(?:312(?:58\\\\d|973)|8801\\\\d\\\\d)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|7(?:[07]\\\\d|55)|99[05-9])\\\\d{6}\", , , , \"700123456\", , , [9]], [, , \"800\\\\d{6,7}\", , , , \"800123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"KG\", 996, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"3(?:1[346]|[24-79])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[235-79]|88\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\", \n\"$1 $2 $3 $4\", [\"8\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KH:[, [, , \"1\\\\d{9}|[1-9]\\\\d{7,8}\", , , , , , , [8, 9, 10], [6, 7]], [, , \"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\", , , , \"23756789\", , , [8, 9], [6, 7]], [, , \"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\", \n, , , \"91234567\", , , [8, 9]], [, , \"1800(?:1\\\\d|2[019])\\\\d{4}\", , , , \"1800123456\", , , [10]], [, , \"1900(?:1\\\\d|2[09])\\\\d{4}\", , , , \"1900123456\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"KH\", 855, \"00[14-9]\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , \n, , [-1]]], KI:[, [, , \"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\", , , , , , , [5, 8]], [, , \"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\", , , , \"31234\"], [, , \"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\", , , , \"72001234\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\", , , , \"30010000\", \n, , [8]], \"KI\", 686, \"00\", \"0\", , , \"0\", , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KM:[, [, , \"[3478]\\\\d{6}\", , , , , , , [7], [4]], [, , \"7[4-7]\\\\d{5}\", , , , \"7712345\", , , , [4]], [, , \"[34]\\\\d{6}\", , , , \"3212345\"], [, , , , , , , , , [-1]], [, , \"8\\\\d{6}\", , , , \"8001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"KM\", 269, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3\", [\"[3478]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KN:[, [, , \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\\\d{4}\", , , , \"8692361234\", , , , [7]], [, , \"869(?:5(?:5[6-8]|6[5-7])|66\\\\d|76[02-7])\\\\d{4}\", , , , \"8697652917\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , \n, , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"KN\", 1, \"011\", \"1\", , , \"1|([2-7]\\\\d{6})$\", \"869$1\", , , , , [, , , , , , , , , [-1]], , \"869\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KP:[, [, , \"85\\\\d{6}|(?:19\\\\d|2)\\\\d{7}\", , , , , , , [8, 10], [6, 7]], [, , \"(?:2\\\\d|85)\\\\d{6}\", , , , \"21234567\", , , [8], [6, 7]], [, , \"19[1-3]\\\\d{7}\", , , , \"1921234567\", , , [10]], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"KP\", 850, \"00|99\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , \"238[02-9]\\\\d{4}|2(?:[0-24-9]\\\\d|3[0-79])\\\\d{5}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KR:[, [, , \"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\", \n, , , , , , [5, 6, 8, 9, 10, 11, 12, 13, 14], [3, 4, 7]], [, , \"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\", , , , \"22123456\", , , [5, 6, 8, 9, 10], [3, 4, 7]], [, , \"1(?:05(?:[0-8]\\\\d|9[0-5])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\", , , , \"1020000000\", , , [9, 10]], [, , \"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|80)\\\\d{7}\", , , , \"801234567\", , , [9, 11, 12, 13, 14]], [, , \"60[2-9]\\\\d{6}\", , , , \"602345678\", , , [9]], [, , , , , , , , , [-1]], \n[, , \"50\\\\d{8,9}\", , , , \"5012345678\", , , [10, 11]], [, , \"70\\\\d{8}\", , , , \"7012345678\", , , [10]], \"KR\", 82, \"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\", \"0\", , , \"0(8(?:[1-46-8]|5\\\\d\\\\d))?\", , , , [[, \"(\\\\d{5})\", \"$1\", [\"1[016-9]1\", \"1[016-9]11\", \"1[016-9]114\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [, \"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \n\"$1-$2-$3\", [\"60|8\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{5})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"003\", \"0030\"]], [, \"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{5})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"0\"]], [, \"(\\\\d{5})(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3 $4\", [\"0\"]]], [[, \"(\\\\d{2})(\\\\d{3,4})\", \"$1-$2\", [\"(?:3[1-3]|[46][1-4]|5[1-5])1\"], \n\"0$1\", \"0$CC-$1\"], [, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"1\"]], [, \"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"2\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"60|8\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1-$2-$3\", [\"[1346]|5[1-5]\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2-$3\", [\"[57]\"], \"0$1\", \"0$CC-$1\"], [, \"(\\\\d{2})(\\\\d{5})(\\\\d{4})\", \"$1-$2-$3\", [\"5\"], \"0$1\", \"0$CC-$1\"]], [, , \"15\\\\d{7,8}\", , , , \"1523456789\", , , [9, 10]], , , [, , \"00(?:3(?:08\\\\d{6,7}|68\\\\d{7})|798\\\\d{7,9})\", \n, , , , , , [11, 12, 13, 14]], [, , \"1(?:5(?:22|44|66|77|88|99)|6(?:[07]0|44|6[16]|88)|8(?:00|33|55|77|99))\\\\d{4}\", , , , \"15441234\", , , [8]], , , [, , , , , , , , , [-1]]], KW:[, [, , \"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\", , , , , , , [7, 8]], [, , \"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\", , , , \"22345678\", , , [8]], [, , \"(?:5(?:2(?:22|5[25])|88[58])|6(?:222|444|70[013-9]|888|93[039])|9(?:11[01]|333|500))\\\\d{4}|(?:5(?:[05]\\\\d|1[0-7]|6[56])|6(?:0[034679]|5[015-9]|6\\\\d|7[67]|9[069])|9(?:0[09]|22|[4679]\\\\d|55|8[057-9]))\\\\d{5}\", \n, , , \"50012345\", , , [8]], [, , \"18\\\\d{5}\", , , , \"1801234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"KW\", 965, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{3,4})\", \"$1 $2\", [\"[169]|2(?:[235]|4[1-35-9])|52\"]], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[25]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KY:[, [, , \"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], \n[, , \"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\\\d{4}\", , , , \"3452221234\", , , , [7]], [, , \"345(?:32[1-9]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[67]|2[2-9]|3[689]))\\\\d{4}\", , , , \"3453231234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , \n, , , , [-1]], \"KY\", 1, \"011\", \"1\", , , \"1|([2-9]\\\\d{6})$\", \"345$1\", , , , , [, , \"345849\\\\d{4}\", , , , \"3458491234\"], , \"345\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], KZ:[, [, , \"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\", , , , , , , [10], [5, 6]], [, , \"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9])|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-246-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\", \n, , , \"7123456789\", , , , [5, 6]], [, , \"7(?:0[0-25-8]|47|6[02-4]|7[15-8]|85)\\\\d{7}\", , , , \"7710009998\"], [, , \"800\\\\d{7}\", , , , \"8001234567\"], [, , \"809\\\\d{7}\", , , , \"8091234567\"], [, , , , , , , , , [-1]], [, , \"808\\\\d{7}\", , , , \"8081234567\"], [, , \"751\\\\d{7}\", , , , \"7511234567\"], \"KZ\", 7, \"810\", \"8\", , , \"8\", , \"8~10\", , , , [, , , , , , , , , [-1]], , \"33|7\", [, , \"751\\\\d{7}\"], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LA:[, [, , \"(?:2\\\\d|3)\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\", \n, , , , , , [8, 9, 10], [6]], [, , \"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\", , , , \"21212862\", , , [8], [6]], [, , \"20(?:[29]\\\\d|5[24-689]|7[6-8])\\\\d{6}\", , , , \"2023123456\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LA\", 856, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2[13]|3[14]|[4-8]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"3\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \n\"$1 $2 $3 $4\", [\"2\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"30\\\\d{7}\", , , , \"301234567\", , , [9]], , , [, , , , , , , , , [-1]]], LB:[, [, , \"[7-9]\\\\d{7}|[13-9]\\\\d{6}\", , , , , , , [7, 8]], [, , \"(?:(?:[14-69]\\\\d|8[02-9])\\\\d|7(?:[2-57]\\\\d|62|8[0-7]|9[04-9]))\\\\d{4}\", , , , \"1123456\", , , [7]], [, , \"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\", , , , \"71123456\"], [, , , , , , , , , [-1]], [, , \"9[01]\\\\d{6}\", , , , \"90123456\", \n, , [8]], [, , \"80\\\\d{6}\", , , , \"80123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LB\", 961, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LC:[, [, , \"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"758(?:4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|638)\\\\d{4}\", \n, , , \"7584305678\", , , , [7]], [, , \"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[01]))\\\\d{4}\", , , , \"7582845678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"LC\", 1, \"011\", \"1\", , , \"1|([2-7]\\\\d{6})$\", \"758$1\", , , , , [, , , , , , , , , [-1]], , \"758\", [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LI:[, [, , \"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\", , , , , , , [7, 9]], [, , \"(?:2(?:01|1[27]|22|3\\\\d|6[02-578]|96)|3(?:33|40|7[0135-7]|8[048]|9[0269]))\\\\d{4}\", , , , \"2345678\", , , [7]], [, , \"(?:6(?:4(?:89|9\\\\d)|5[0-3]\\\\d|6(?:0[0-7]|10|2[06-9]|39))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\", , , , \"660234567\"], [, , \"80(?:02[28]|9\\\\d\\\\d)\\\\d\\\\d\", , , , \"8002222\", , , [7]], [, , \"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\", , , , \"9002222\", , , [7]], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LI\", 423, \"00\", \"0\", , , \"0|(1001)\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[237-9]\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"69\"], , \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"], , \"$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"870(?:28|87)\\\\d\\\\d\", , , , \"8702812\", , , [7]], , , [, , \"697(?:42|56|[78]\\\\d)\\\\d{4}\", , , , \"697861234\", , , [9]]], \nLK:[, [, , \"[1-9]\\\\d{8}\", , , , , , , [9], [7]], [, , \"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\", , , , \"112345678\", , , , [7]], [, , \"7[0-25-8]\\\\d{7}\", , , , \"712345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LK\", 94, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", \n[\"[1-689]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"1973\\\\d{5}\", , , , \"197312345\"], , , [, , , , , , , , , [-1]]], LR:[, [, , \"(?:2|33|5\\\\d|77|88)\\\\d{7}|[45]\\\\d{6}\", , , , , , , [7, 8, 9]], [, , \"(?:2\\\\d{3}|33333)\\\\d{4}\", , , , \"21234567\", , , [8, 9]], [, , \"(?:(?:330|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|5\\\\d{6}\", , , , \"770123456\", , , [7, 9]], [, , , , , , , , , [-1]], [, , \"332(?:02|[34]\\\\d)\\\\d{4}\", , , , \"332021234\", , , [9]], [, , , , , , , , , [-1]], [, , , , \n, , , , , [-1]], [, , , , , , , , , [-1]], \"LR\", 231, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LS:[, [, , \"(?:[256]\\\\d\\\\d|800)\\\\d{5}\", , , , , , , [8]], [, , \"2\\\\d{7}\", , , , \"22123456\"], [, , \"[56]\\\\d{7}\", , , , \"50123456\"], \n[, , \"800[256]\\\\d{4}\", , , , \"80021234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LS\", 266, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2568]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LT:[, [, , \"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\", , , , , , , [8]], [, , \"(?:3[1478]|4[124-6]|52)\\\\d{6}\", , , , \"31234567\"], [, , \"6\\\\d{7}\", , , , \"61234567\"], [, , \"80[02]\\\\d{5}\", \n, , , \"80012345\"], [, , \"9(?:0[0239]|10)\\\\d{5}\", , , , \"90012345\"], [, , \"808\\\\d{5}\", , , , \"80812345\"], [, , \"70[05]\\\\d{5}\", , , , \"70012345\"], [, , \"[89]01\\\\d{5}\", , , , \"80123456\"], \"LT\", 370, \"00\", \"8\", , , \"[08]\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"52[0-7]\"], \"(8-$1)\", , 1], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"8 $1\", , 1], [, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"37|4(?:[15]|6[1-8])\"], \"(8-$1)\", , 1], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"(8-$1)\", , 1]], , [, \n, , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"70[67]\\\\d{5}\", , , , \"70712345\"], , , [, , , , , , , , , [-1]]], LU:[, [, , \"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\", , , , , , , [4, 5, 6, 7, 8, 9, 10, 11]], [, , \"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\", , , , \"27123456\"], [, , \"6(?:[269][18]|5[158]|7[189]|81)\\\\d{6}\", , , , \"628123456\", , , [9]], [, , \"800\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"90[015]\\\\d{5}\", \n, , , \"90012345\", , , [8]], [, , \"801\\\\d{5}\", , , , \"80112345\", , , [8]], [, , , , , , , , , [-1]], [, , \"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\", , , , \"20201234\", , , [4, 5, 6, 7, 8, 9, 10]], \"LU\", 352, \"00\", , , , \"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\", , , , [[, \"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"], , \"$CC $1\"], \n[, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"20[2-689]\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4\", [\"2(?:[0367]|4[3-8])\"], , \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"80[01]|90[015]\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"20\"], , \"$CC $1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\", \"$1 $2 $3 $4 $5\", [\"2(?:[0367]|4[3-8])\"], , \"$CC $1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\", \n\"$1 $2 $3 $4\", [\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"], , \"$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LV:[, [, , \"(?:[268]\\\\d|90)\\\\d{6}\", , , , , , , [8]], [, , \"6\\\\d{7}\", , , , \"63123456\"], [, , \"2\\\\d{7}\", , , , \"21234567\"], [, , \"80\\\\d{6}\", , , , \"80123456\"], [, , \"90\\\\d{6}\", , , , \"90123456\"], [, , \"81\\\\d{6}\", , , , \"81123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LV\", 371, \"00\", , , \n, , , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[269]|8[01]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], LY:[, [, , \"[2-9]\\\\d{8}\", , , , , , , [9], [7]], [, , \"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\", , , , \"212345678\", , , , [7]], [, , \"9[1-6]\\\\d{7}\", \n, , , \"912345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"LY\", 218, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"[2-9]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MA:[, [, , \"[5-8]\\\\d{8}\", , , , , , , [9]], [, , \"5(?:29(?:[189]0|29)|38[89]0)\\\\d{4}|5(?:2(?:[015-7]\\\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\", \n, , , \"520123456\"], [, , \"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\\\d{6}\", , , , \"650123456\"], [, , \"80\\\\d{7}\", , , , \"801234567\"], [, , \"89\\\\d{7}\", , , , \"891234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"592(?:4[0-2]|93)\\\\d{4}\", , , , \"592401234\"], \"MA\", 212, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{5})(\\\\d{4})\", \"$1-$2\", [\"5(?:29|38)\", \"5(?:29|38)[89]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5[45]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{5})\", \"$1-$2\", \n[\"5(?:2[2-489]|3[5-9]|9)|892\", \"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1-$2\", [\"8\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6})\", \"$1-$2\", [\"[5-7]\"], \"0$1\"]], , [, , , , , , , , , [-1]], 1, , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MC:[, [, , \"870\\\\d{5}|(?:[349]|6\\\\d)\\\\d{7}\", , , , , , , [8, 9]], [, , \"(?:870|9[2-47-9]\\\\d)\\\\d{5}\", , , , \"99123456\", , , [8]], [, , \"4(?:4\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\", , , , \"612345678\"], [, , \"90\\\\d{6}\", \n, , , \"90123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MC\", 377, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"8\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[39]\"]], [, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"4\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[39]\"]], [, \"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"6\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , \"870\\\\d{5}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MD:[, [, , \"(?:[235-7]\\\\d|[89]0)\\\\d{6}\", , , , , , , [8]], [, , \"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\", , , , \"22212345\"], [, , \"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\", , , , \"62112345\"], [, , \"800\\\\d{5}\", , , , \"80012345\"], [, , \"90[056]\\\\d{5}\", , , , \"90012345\"], [, \n, \"808\\\\d{5}\", , , , \"80812345\"], [, , , , , , , , , [-1]], [, , \"3[08]\\\\d{6}\", , , , \"30123456\"], \"MD\", 373, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"22|3\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[25-7]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"803\\\\d{5}\", , , , \"80312345\"], , , [, , , , , , , , , [-1]]], ME:[, [, , \"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\", , , , , , , [8, \n9], [6]], [, , \"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\", , , , \"30234567\", , , [8], [6]], [, , \"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\", , , , \"67622901\", , , [8]], [, , \"80(?:[0-2578]|9\\\\d)\\\\d{5}\", , , , \"80080002\"], [, , \"9(?:4[1568]|5[178])\\\\d{5}\", , , , \"94515151\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"78[1-49]\\\\d{5}\", , , , \"78108780\", , , [8]], \"ME\", 382, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \n\"$1 $2 $3\", [\"[2-9]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"77[1-9]\\\\d{5}\", , , , \"77273012\", , , [8]], , , [, , , , , , , , , [-1]]], MF:[, [, , \"(?:590|69\\\\d|976)\\\\d{6}\", , , , , , , [9]], [, , \"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\", , , , \"590271234\"], [, , \"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\", , , , \"690001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"976[01]\\\\d{5}\", , , \n, \"976012345\"], \"MF\", 590, \"00\", \"0\", , , \"0\", , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MG:[, [, , \"[23]\\\\d{8}\", , , , , , , [9], [7]], [, , \"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\\\d{5}\", , , , \"202123456\", , , , [7]], [, , \"3[2-49]\\\\d{7}\", , , , \"321234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"22\\\\d{7}\", , , , \"221234567\"], \n\"MG\", 261, \"00\", \"0\", , , \"0|([24-9]\\\\d{6})$\", \"20$1\", , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[23]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MH:[, [, , \"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\", , , , , , , [7]], [, , \"(?:247|528|625)\\\\d{4}\", , , , \"2471234\"], [, , \"(?:(?:23|54)5|329|45[56])\\\\d{4}\", , , , \"2351234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \n, , , , , , , [-1]], [, , \"635\\\\d{4}\", , , , \"6351234\"], \"MH\", 692, \"011\", \"1\", , , \"1\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-6]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MK:[, [, , \"[2-578]\\\\d{7}\", , , , , , , [8], [6, 7]], [, , \"(?:2(?:[23]\\\\d|5[0-24578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\", , , , \"22012345\", , , , [6, 7]], [, , \"7(?:(?:[0-25-8]\\\\d|3[2-4]|9[23])\\\\d|4(?:21|60))\\\\d{4}\", \n, , , \"72345678\"], [, , \"800\\\\d{5}\", , , , \"80012345\"], [, , \"5[02-9]\\\\d{6}\", , , , \"50012345\"], [, , \"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\", , , , \"80123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MK\", 389, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[347]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[58]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , \n, , [-1]], , , [, , , , , , , , , [-1]]], ML:[, [, , \"[24-9]\\\\d{7}\", , , , , , , [8]], [, , \"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\\\d{5}\", , , , \"20212345\"], [, , \"2(?:079|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[239])\\\\d{6}\", , , , \"65012345\"], [, , \"80\\\\d{6}\", , , , \"80012345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"ML\", 223, \"00\", , , , , , , , [[, \"(\\\\d{4})\", \"$1\", [\"67[057-9]|74[045]\", \"67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)\"]], \n[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]], [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24-9]\"]]], [, , , , , , , , , [-1]], , , [, , \"80\\\\d{6}\"], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MM:[, [, , \"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\", , , , , , , [6, 7, 8, 9, 10], [5]], [, , \"(?:1(?:(?:2\\\\d|3[56]|[89][0-6])\\\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|2[246]|39|46|62|7[0-3]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[0-3])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5470)|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|247[23]|3(?:20\\\\d|470)|4(?:2[04]\\\\d|47[23])|7(?:(?:3\\\\d|8[01459])\\\\d|4(?:39|60|7[013]))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[023]\\\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[0-2])|8(?:20\\\\d|47[02])|9(?:20\\\\d|47[01]))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:2\\\\d|4[1-9]|51)\\\\d|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\", \n, , , \"1234567\", , , [6, 7, 8, 9], [5]], [, , \"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6[6-9]|8[89]|9[5-8])\\\\d|7(?:3|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\", , , , \"92123456\", , , [7, 8, 9, 10]], [, , \"80080(?:[01][1-9]|2\\\\d)\\\\d{3}\", , , , \"8008001234\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"1333\\\\d{4}|[12]468\\\\d{4}\", , , , \"13331234\", , , [8]], \"MM\", 95, \"00\", \n\"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"16|2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[4-7]|8[1-35]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{4,6})\", \"$1 $2 $3\", [\"9(?:2[0-4]|[35-9]|4[137-9])\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", \n[\"8\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"92\"], \"0$1\"], [, \"(\\\\d)(\\\\d{5})(\\\\d{4})\", \"$1 $2 $3\", [\"9\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MN:[, [, , \"[12]\\\\d{7,9}|[57-9]\\\\d{7}\", , , , , , , [8, 9, 10], [4, 5, 6]], [, , \"[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}|(?:11(?:3\\\\d|4[568])|(?:(?:21|5[0568])\\\\d|70[0-5])\\\\d)\\\\d{4}|[12]2(?:[1-3]\\\\d{5,6}|7\\\\d{6})\", , , , \"50123456\", , , , [4, 5, \n6]], [, , \"(?:8(?:[05689]\\\\d|3[01])|9(?:[014-9]\\\\d|20|3[0-4]))\\\\d{5}\", , , , \"88123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"7(?:100|5(?:0[0579]|1[015]|[389]5|[57][57])|(?:6[0167]|7\\\\d|8[01])\\\\d)\\\\d{4}\", , , , \"75153456\", , , [8]], \"MN\", 976, \"001\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[12]1\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[57-9]\"]], [, \"(\\\\d{3})(\\\\d{5,6})\", \"$1 $2\", [\"[12]2[1-3]\"], \n\"0$1\"], [, \"(\\\\d{4})(\\\\d{5,6})\", \"$1 $2\", [\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\", \"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"], \"0$1\"], [, \"(\\\\d{5})(\\\\d{4,5})\", \"$1 $2\", [\"[12]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MO:[, [, , \"(?:28|[68]\\\\d)\\\\d{6}\", , , , , , , [8]], [, , \"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\", , , , \"28212345\"], [, , \"6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:[02][5-9]|[146-8]\\\\d|[35][0-4]))\\\\d{4}\", \n, , , \"66123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MO\", 853, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[268]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MP:[, [, , \"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\", , , , , , , [10], [7]], [, , \"670(?:2(?:3[3-7]|56|8[5-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\", \n, , , \"6702345678\", , , , [7]], [, , \"670(?:2(?:3[3-7]|56|8[5-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\", , , , \"6702345678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"MP\", 1, \"011\", \"1\", , , \"1|([2-9]\\\\d{6})$\", \"670$1\", , 1, , , [, , , , , , , , , [-1]], , \n\"670\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MQ:[, [, , \"69\\\\d{7}|(?:59|97)6\\\\d{6}\", , , , , , , [9]], [, , \"596(?:0[0-7]|10|2[7-9]|3[05-9]|4[0-46-8]|[5-7]\\\\d|8[09]|9[4-8])\\\\d{4}\", , , , \"596301234\"], [, , \"69(?:6(?:[0-47-9]\\\\d|5[0-6]|6[0-4])|727)\\\\d{4}\", , , , \"696201234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"976(?:6[1-9]|7[0-367])\\\\d{4}\", , , , \"976612345\"], \"MQ\", 596, \"00\", \"0\", \n, , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[569]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MR:[, [, , \"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\", , , , , , , [8]], [, , \"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\", , , , \"35123456\"], [, , \"[2-4][0-46-9]\\\\d{6}\", , , , \"22123456\"], [, , \"800\\\\d{5}\", , , , \"80012345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , \n[-1]], \"MR\", 222, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2-48]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MS:[, [, , \"66449\\\\d{5}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"664491\\\\d{4}\", , , , \"6644912345\", , , , [7]], [, , \"66449[2-6]\\\\d{4}\", , , , \"6644923456\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \n\"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"MS\", 1, \"011\", \"1\", , , \"1|(4\\\\d{6})$\", \"664$1\", , , , , [, , , , , , , , , [-1]], , \"664\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MT:[, [, , \"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\", , , , , , , [8]], [, , \"2(?:0(?:[19]\\\\d|3[1-4]|6[059])|[1-357]\\\\d\\\\d)\\\\d{4}\", , , , \"21001234\"], [, , \"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\", \n, , , \"96961234\"], [, , \"800[3467]\\\\d{4}\", , , , \"80071234\"], [, , \"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\", , , , \"50037123\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"3550\\\\d{4}\", , , , \"35501234\"], \"MT\", 356, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2357-9]\"]]], , [, , \"7117\\\\d{4}\", , , , \"71171234\"], , , [, , , , , , , , , [-1]], [, , \"501\\\\d{5}\", , , , \"50112345\"], , , [, , , , , , , , , [-1]]], MU:[, [, , \"(?:[2-468]|5\\\\d)\\\\d{6}\", , , \n, , , , [7, 8]], [, , \"(?:2(?:[0346-8]\\\\d|1[0-7])|4(?:[013568]\\\\d|2[4-7])|54(?:[34]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\", , , , \"54480123\"], [, , \"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|5(?:2[589]|4[3489]|7\\\\d|8[0-689]|9[0-8])\\\\d{5}\", , , , \"52512345\", , , [8]], [, , \"80[0-2]\\\\d{4}\", , , , \"8001234\", , , [7]], [, , \"30\\\\d{5}\", , , , \"3012345\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"3(?:20|9\\\\d)\\\\d{4}\", , , , \"3201234\", , , [7]], \"MU\", 230, \"0(?:0|[24-7]0|3[03])\", , \n, , , , \"020\", , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-46]|8[013]\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"5\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MV:[, [, , \"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\", , , , , , , [7, 10]], [, , \"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\\\d{4}\", , , , \"6701234\", , , [7]], [, , \"46[46]\\\\d{4}|(?:7[2-9]|9[13-9])\\\\d{5}\", , , , \"7712345\", , , [7]], [, , \"800\\\\d{7}\", , , , \n\"8001234567\", , , [10]], [, , \"900\\\\d{7}\", , , , \"9001234567\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MV\", 960, \"0(?:0|19)\", , , , , , \"00\", , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[3467]|9[13-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"4[05]0\\\\d{4}\", , , , \"4001234\", , , [7]], , , [, , , , , , , , , [-1]]], MW:[, [, , \"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\", , , \n, , , , [7, 9]], [, , \"(?:1[2-9]|21\\\\d\\\\d)\\\\d{5}\", , , , \"1234567\"], [, , \"111\\\\d{6}|(?:31|77|88|99)\\\\d{7}\", , , , \"991234567\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MW\", 265, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[2-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[137-9]\"], \"0$1\"]], , \n[, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MX:[, [, , \"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[2-9]\\\\d)\\\\d{8}\", , , , , , , [10, 11], [7, 8]], [, , \"(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\", \n, , , \"2001234567\", , , [10], [7, 8]], [, , \"(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\", \n, , , \"12221234567\", , , , [7, 8]], [, , \"8(?:00|88)\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , \"900\\\\d{7}\", , , , \"9001234567\", , , [10]], [, , \"300\\\\d{7}\", , , , \"3001234567\", , , [10]], [, , \"500\\\\d{7}\", , , , \"5001234567\", , , [10]], [, , , , , , , , , [-1]], \"MX\", 52, \"0[09]\", \"01\", , , \"0(?:[12]|4[45])|1\", , \"00\", , [[, \"(\\\\d{5})\", \"$1\", [\"53\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], , , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], , , 1], [, \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \n\"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], , , 1], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], , , 1]], [[, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"33|5[56]|81\"], , , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2-9]\"], , , 1], [, \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$2 $3 $4\", [\"1(?:33|5[56]|81)\"], , , 1], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$2 $3 $4\", [\"1\"], , , 1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MY:[, [, \n, \"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\", , , , , , , [8, 9, 10], [6, 7]], [, , \"(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\", , , , \"323856789\", , , [8, 9], [6, 7]], [, , \"1(?:4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:0[3-9]|1[01]))|(?:[2379][2-9]|4[235-9]|(?:59|6)\\\\d)\\\\d|8(?:1[23]|[236]\\\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\\\d{5}\", \n, , , \"123456789\", , , [9, 10]], [, , \"1[378]00\\\\d{6}\", , , , \"1300123456\", , , [10]], [, , \"1600\\\\d{6}\", , , , \"1600123456\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"154(?:6(?:0\\\\d|1[0-3])|8(?:[25]1|4[0189]|7[0-4679]))\\\\d{4}\", , , , \"1546012345\", , , [10]], \"MY\", 60, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"[4-79]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1-$2 $3\", [\"1(?:[02469]|[37][2-9]|8[1-9])|8\"], \"0$1\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \n\"$1-$2 $3\", [\"3\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1-$2-$3-$4\", [\"1[36-8]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2 $3\", [\"15\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1-$2 $3\", [\"1\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], MZ:[, [, , \"(?:2|8\\\\d)\\\\d{7}\", , , , , , , [8, 9]], [, , \"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\", , , , \"21123456\", , , [8]], [, , \"8[2-7]\\\\d{7}\", , , , \"821234567\", , , [9]], \n[, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"MZ\", 258, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2|8[2-7]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"8\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NA:[, [, , \"[68]\\\\d{7,8}\", , , , , , , [8, 9]], [, , \"6(?:1(?:[02-4]\\\\d\\\\d|17)|2(?:17|54\\\\d|69|70)|3(?:17|2[0237]\\\\d|34|6[289]|7[01]|81)|4(?:17|(?:27|41|5[25])\\\\d|69|7[01])|5(?:17|2[236-8]\\\\d|69|7[01])|6(?:17|26\\\\d|38|42|69|7[01])|7(?:17|(?:2[2-4]|30)\\\\d|6[89]|7[01]))\\\\d{4}|6(?:1(?:2[2-7]|3[01378]|4[0-4]|69|7[014])|25[0-46-8]|32\\\\d|4(?:2[0-27]|4[016]|5[0-357])|52[02-9]|62[56]|7(?:2[2-69]|3[013]))\\\\d{4}\", \n, , , \"61221234\"], [, , \"(?:60|8[1245])\\\\d{7}\", , , , \"811234567\", , , [9]], [, , \"80\\\\d{7}\", , , , \"800123456\", , , [9]], [, , \"8701\\\\d{5}\", , , , \"870123456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"8(?:3\\\\d\\\\d|86)\\\\d{5}\", , , , \"88612345\"], \"NA\", 264, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"88\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"6\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"87\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \n\"$1 $2 $3\", [\"8\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NC:[, [, , \"[2-57-9]\\\\d{5}\", , , , , , , [6]], [, , \"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\", , , , \"201234\"], [, , \"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\", , , , \"751234\"], [, , , , , , , , , [-1]], [, , \"36\\\\d{4}\", , , , \"366711\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NC\", 687, \"00\", , , , , , , , [[, \"(\\\\d{3})\", \"$1\", [\"5[6-8]\"]], \n[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[2-57-9]\"]]], [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1.$2.$3\", [\"[2-57-9]\"]]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NE:[, [, , \"[0289]\\\\d{7}\", , , , , , , [8]], [, , \"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\", , , , \"20201234\"], [, , \"(?:23|8[014589]|9\\\\d)\\\\d{6}\", , , , \"93123456\"], [, , \"08\\\\d{6}\", , , , \"08123456\"], [, , \"09\\\\d{6}\", \n, , , \"09123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NE\", 227, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"08\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[089]|2[013]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NF:[, [, , \"[13]\\\\d{5}\", , , , , , , [6], [5]], [, , \"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\", , , , \"106609\", , , , [5]], [, , \"(?:14|3[58])\\\\d{4}\", \n, , , \"381234\", , , , [5]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NF\", 672, \"00\", , , , \"([0-258]\\\\d{4})$\", \"3$1\", , , [[, \"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"1[0-3]\"]], [, \"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"[13]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NG:[, [, , \"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\", , , , , , , [7, 8, 10, \n11, 12, 13, 14], [5, 6]], [, , \"(?:(?:[1-356]\\\\d|4[02-8]|7[0-79]|8[2-9])\\\\d|9(?:0[3-9]|[1-9]\\\\d))\\\\d{5}|(?:[12]\\\\d|4[147]|5[14579]|6[1578]|7[0-3578])\\\\d{5}\", , , , \"18040123\", , , [7, 8], [5, 6]], [, , \"(?:707[0-3]|8(?:01|19)[01])\\\\d{6}|(?:70[1-689]|8(?:0[2-9]|1[0-8])|90[1-9])\\\\d{7}\", , , , \"8021234567\", , , [10]], [, , \"800\\\\d{7,11}\", , , , \"80017591759\", , , [10, 11, 12, 13, 14]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NG\", 234, \n\"009\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"78\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[12]|9(?:0[3-9]|[1-9])\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-7]|8[2-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\", \"$1 $2 $3\", [\"[78]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"700\\\\d{7,11}\", \n, , , \"7001234567\", , , [10, 11, 12, 13, 14]], , , [, , , , , , , , , [-1]]], NI:[, [, , \"(?:1800|[25-8]\\\\d{3})\\\\d{4}\", , , , , , , [8]], [, , \"2\\\\d{7}\", , , , \"21234567\"], [, , \"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\", , , , \"81234567\"], [, , \"1800\\\\d{4}\", , , , \"18001234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NI\", 505, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[125-8]\"]]], \n, [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NL:[, [, , \"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\", , , , , , , [5, 6, 7, 8, 9, 10]], [, , \"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\", , , , \"101234567\", \n, , [9]], [, , \"6[1-58]\\\\d{7}\", , , , \"612345678\", , , [9]], [, , \"800\\\\d{4,7}\", , , , \"8001234\", , , [7, 8, 9, 10]], [, , \"90[069]\\\\d{4,7}\", , , , \"9061234\", , , [7, 8, 9, 10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:85|91)\\\\d{7}\", , , , \"851234567\", , , [9]], \"NL\", 31, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})\", \"$1\", [\"1[238]|[34]\"]], [, \"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"14\"]], [, \"(\\\\d{6})\", \"$1\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \n\"$1 $2\", [\"66\"], \"0$1\"], [, \"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-57-9]\"], \"0$1\"]], [[, \"(\\\\d{3})(\\\\d{4,7})\", \"$1 $2\", [\"[89]0\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"66\"], \"0$1\"], [, \"(\\\\d)(\\\\d{8})\", \"$1 $2\", [\"6\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \n\"$1 $2 $3\", [\"[1-57-9]\"], \"0$1\"]], [, , \"66\\\\d{7}\", , , , \"662345678\", , , [9]], , , [, , \"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)\\\\d\", , , , , , , [5, 6]], [, , \"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\", , , , \"14020\", , , [5, 6, 9]], , , [, , , , , , , , , [-1]]], NO:[, [, , \"(?:0|[2-9]\\\\d{3})\\\\d{4}\", , , , , , , [5, 8]], [, , \"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\", \n, , , \"21234567\", , , [8]], [, , \"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\", , , , \"40612345\", , , [8]], [, , \"80[01]\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"82[09]\\\\d{5}\", , , , \"82012345\", , , [8]], [, , \"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\", , , , \"81021234\", , , [8]], [, , \"880\\\\d{5}\", , , , \"88012345\", , , [8]], [, , \"85[0-5]\\\\d{5}\", , , , \"85012345\", , , [8]], \"NO\", 47, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[489]|5[89]\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[235-7]\"]]], \n, [, , , , , , , , , [-1]], 1, \"[02-689]|7[0-8]\", [, , , , , , , , , [-1]], [, , \"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\", , , , \"02000\"], , , [, , \"81[23]\\\\d{5}\", , , , \"81212345\", , , [8]]], NP:[, [, , \"9\\\\d{9}|[1-9]\\\\d{7}\", , , , , , , [8, 10], [6, 7]], [, , \"1[0-6]\\\\d{6}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-79])[2-6]\\\\d{5}\", , , , \"14567890\", , , [8], [6, 7]], [, , \"9(?:6[0-3]|7[245]|8[0-24-68])\\\\d{7}\", , , , \"9841234567\", , , [10]], [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NP\", 977, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{7})\", \"$1-$2\", [\"1[2-6]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{6})\", \"$1-$2\", [\"[1-8]|9(?:[1-579]|6[2-6])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"9\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NR:[, [, , \"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\", , , , , , , [7]], [, , \"444\\\\d{4}\", \n, , , \"4441234\"], [, , \"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\", , , , \"5551234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NR\", 674, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[4-68]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NU:[, [, , \"(?:[47]|888\\\\d)\\\\d{3}\", , , , , , , [4, 7]], [, , \"[47]\\\\d{3}\", , , , \"7012\", , , [4]], [, , \n\"888[4-9]\\\\d{3}\", , , , \"8884012\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"NU\", 683, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], NZ:[, [, , \"2\\\\d{7,9}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|(?:508|[79]\\\\d)\\\\d{6,7}|8\\\\d{4,9}\", , , , , , , [5, 6, 7, 8, 9, 10]], [, , \"24099\\\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\", \n, , , \"32345678\", , , [8], [7]], [, , \"2[0-28]\\\\d{8}|2[0-27-9]\\\\d{7}|21\\\\d{6}\", , , , \"211234567\", , , [8, 9, 10]], [, , \"508\\\\d{6,7}|80\\\\d{6,8}\", , , , \"800123456\", , , [8, 9, 10]], [, , \"90\\\\d{6,7}\", , , , \"900123456\", , , [8, 9]], [, , , , , , , , , [-1]], [, , \"70\\\\d{7}\", , , , \"701234567\", , , [9]], [, , , , , , , , , [-1]], \"NZ\", 64, \"0(?:0|161)\", \"0\", , , \"0\", , \"00\", , [[, \"(\\\\d{2})(\\\\d{3,8})\", \"$1 $2\", [\"83\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \n\"$1-$2 $3\", [\"24|[346]|7[2-57-9]|9[2-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:10|74)|[59]|80\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[028]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\", \"$1 $2 $3\", [\"2(?:[169]|7[0-35-9])|7|86\"], \"0$1\"]], , [, , \"[28]6\\\\d{6,7}\", , , , \"26123456\", , , [8, 9]], , , [, , , , , , , , , [-1]], [, , \"83\\\\d{3,8}\", , , , \"83012378\"], , , [, , , , , , , , , [-1]]], OM:[, [, , \"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|8007\\\\d{4,5}\", , , , , , , \n[7, 8, 9]], [, , \"2[2-6]\\\\d{6}\", , , , \"23123456\", , , [8]], [, , \"(?:1505|90[1-9]\\\\d)\\\\d{4}|(?:7[1289]|9[1-9])\\\\d{6}\", , , , \"92123456\", , , [8]], [, , \"500\\\\d{4}|8007\\\\d{4,5}\", , , , \"80071234\"], [, , \"900\\\\d{5}\", , , , \"90012345\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"OM\", 968, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4,6})\", \"$1 $2\", [\"[58]\"]], [, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"2\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[179]\"]]], , [, , , , , , , \n, , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PA:[, [, , \"(?:[1-57-9]|6\\\\d)\\\\d{6}\", , , , , , , [7, 8]], [, , \"(?:1(?:0\\\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[139])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[026-9])|3(?:[089]\\\\d|1[014-7]|2[0-5]|33|4[0-79]|55|6[068]|7[03-8])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[6-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\", \n, , , \"2001234\", , , [7]], [, , \"(?:1[16]1|21[89]|6(?:[02-9]\\\\d|1[0-6])\\\\d|8(?:1[01]|7[23]))\\\\d{4}\", , , , \"61234567\"], [, , \"800\\\\d{4}\", , , , \"8001234\", , , [7]], [, , \"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\", , , , \"8601234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"PA\", 507, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[1-57-9]\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1-$2\", [\"6\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PE:[, [, , \"(?:[14-8]|9\\\\d)\\\\d{7}\", , , , , , , [8, 9], [6, 7]], [, , \"19(?:[02-68]\\\\d|1[035-9]|7[0-689]|9[1-9])\\\\d{4}|(?:1[0-8]|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\\\d{6}\", , , , \"11234567\", , , [8], [6, 7]], [, , \"9\\\\d{8}\", , , , \"912345678\", , , [9]], [, , \"800\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"805\\\\d{5}\", , , , \"80512345\", , , [8]], [, , \"801\\\\d{5}\", , , , \"80112345\", , , [8]], [, , \"80[24]\\\\d{5}\", , , , \"80212345\", , , [8]], [, , \n, , , , , , , [-1]], \"PE\", 51, \"19(?:1[124]|77|90)00\", \"0\", \" Anexo \", , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"1\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[4-8]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PF:[, [, , \"[48]\\\\d{7}|4\\\\d{5}\", , , , , , , [6, 8]], [, , \"4(?:0[4-689]|9[4-68])\\\\d{5}\", , , , \"40412345\", \n, , [8]], [, , \"8[7-9]\\\\d{6}\", , , , \"87123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"499\\\\d{5}\", , , , \"49901234\", , , [8]], \"PF\", 689, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"44\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[48]\"]]], , [, , , , , , , , , [-1]], , , [, , \"44\\\\d{4}\", , , , , , , [6]], [, , \"44\\\\d{4}\", , , , \"440123\", , , [6]], , , [, , , , , , , , , [-1]]], PG:[, \n[, , \"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\", , , , , , , [7, 8]], [, , \"(?:64[1-9]|7730|85[02-46-9])\\\\d{4}|(?:3[0-2]|4[257]|5[34]|77[0-24]|9[78])\\\\d{5}\", , , , \"3123456\"], [, , \"77(?:3[1-9]|[5-9]\\\\d)\\\\d{4}|(?:7[0-689]|81)\\\\d{6}\", , , , \"70123456\", , , [8]], [, , \"180\\\\d{4}\", , , , \"1801234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"2(?:0[0-47]|7[568])\\\\d{4}\", , , , \"2751234\", , , [7]], \"PG\", 675, \"00|140[1-3]\", , , , , , \"00\", , [[, \n\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"18|[2-69]|85\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[78]\"]]], , [, , \"27[01]\\\\d{4}\", , , , \"2700123\", , , [7]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PH:[, [, , \"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\", , , , , , , [6, 8, 9, 10, 11, 12, 13], [4, 5, 7]], [, , \"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|2\\\\d{5}(?:\\\\d{2})?|8[2-8]\\\\d{7}\", , , , \"21234567\", , , [6, \n8, 9, 10], [4, 5, 7]], [, , \"(?:81[37]|9(?:0[5-9]|1[0-24-9]|2[0-35-9]|[35]\\\\d|4[235-9]|6[0-25-8]|7[1-9]|8[19]|9[4-9]))\\\\d{7}\", , , , \"9051234567\", , , [10]], [, , \"1800\\\\d{7,9}\", , , , \"180012345678\", , , [11, 12, 13]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"PH\", 63, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{5})\", \"$1 $2\", [\"2\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [, \"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\", \n\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"], \"(0$1)\"], [, \"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"346|4(?:27|9[35])|883\", \"3469|4(?:279|9(?:30|56))|8834\"], \"(0$1)\"], [, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[3-7]|8[2-8]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\", \n\"$1 $2 $3 $4\", [\"1\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PK:[, [, , \"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\", , , , , , , [8, 9, 10, 11, 12], [5, 6, 7]], [, , \"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\\\d{5,6}\", \n, , , \"2123456789\", , , [9, 10], [5, 6, 7, 8]], [, , \"3(?:[014]\\\\d|2[0-5]|3[0-7]|55|64)\\\\d{7}\", , , , \"3012345678\", , , [10]], [, , \"800\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"900\\\\d{5}\", , , , \"90012345\", , , [8]], [, , , , , , , , , [-1]], [, , \"122\\\\d{6}\", , , , \"122044444\", , , [9]], [, , , , , , , , , [-1]], \"PK\", 92, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"[89]0\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"1\"]], [, \"(\\\\d{3})(\\\\d{6,7})\", \"$1 $2\", [\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\", \n\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{7,8})\", \"$1 $2\", [\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"], \"(0$1)\"], [, \"(\\\\d{5})(\\\\d{5})\", \"$1 $2\", [\"58\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{7})\", \"$1 $2\", [\"3\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"], \"(0$1)\"], \n[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"[24-9]\"], \"(0$1)\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\", , , , \"21111825888\", , , [11, 12]], , , [, , , , , , , , , [-1]]], PL:[, [, , \"[1-57-9]\\\\d{6}(?:\\\\d{2})?|6\\\\d{5,8}\", , , , , , , [6, 7, 8, 9]], [, \n, \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\", , , , \"123456789\", , , [7, 9]], [, , \"(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\", , , , \"512345678\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"70[01346-8]\\\\d{6}\", , , , \"701234567\", , , [9]], [, , \"801\\\\d{6}\", , , , \"801234567\", , , [9]], [, , , , , , , , , [-1]], [, , \"39\\\\d{7}\", , , , \"391234567\", , , [9]], \"PL\", 48, \"00\", , , , , , , , [[, \"(\\\\d{5})\", \n\"$1\", [\"19\"]], [, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"11|64\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3\", [\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\", \"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"64\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"39|45|5[0137]|6[0469]|7[02389]|8[08]\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[2-8]|[2-8]|9[145]\"]]], , [, , \"64\\\\d{4,7}\", \n, , , \"641234567\"], , , [, , , , , , , , , [-1]], [, , \"804\\\\d{6}\", , , , \"804123456\", , , [9]], , , [, , , , , , , , , [-1]]], PM:[, [, , \"[45]\\\\d{5}\", , , , , , , [6]], [, , \"(?:4[1-3]|50)\\\\d{4}\", , , , \"430123\"], [, , \"(?:4[02-4]|5[05])\\\\d{4}\", , , , \"551234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"PM\", 508, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", [\"[45]\"], \"0$1\"]], , [, , \n, , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PR:[, [, , \"(?:[589]\\\\d\\\\d|787)\\\\d{7}\", , , , , , , [10], [7]], [, , \"(?:787|939)[2-9]\\\\d{6}\", , , , \"7872345678\", , , , [7]], [, , \"(?:787|939)[2-9]\\\\d{6}\", , , , \"7872345678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], \n[, , , , , , , , , [-1]], \"PR\", 1, \"011\", \"1\", , , \"1\", , , 1, , , [, , , , , , , , , [-1]], , \"787|939\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PS:[, [, , \"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\", , , , , , , [8, 9, 10], [7]], [, , \"(?:22[2-47-9]|42[45]|82[01458]|92[369])\\\\d{5}\", , , , \"22234567\", , , [8], [7]], [, , \"5[69]\\\\d{7}\", , , , \"599123456\", , , [9]], [, , \"1800\\\\d{6}\", , , , \"1800123456\", , , [10]], [, , , , , , , , , [-1]], [, , \"1700\\\\d{6}\", , , , \n\"1700123456\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"PS\", 970, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[2489]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PT:[, [, , \"(?:[26-9]\\\\d|30)\\\\d{7}\", , , , , , , [9]], [, , \"2(?:[12]\\\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\\\d{6}\", \n, , , \"212345678\"], [, , \"6[356]9230\\\\d{3}|(?:6[036]93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\", , , , \"912345678\"], [, , \"80[02]\\\\d{6}\", , , , \"800123456\"], [, , \"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\", , , , \"760123456\"], [, , \"80(?:8\\\\d|9[1579])\\\\d{5}\", , , , \"808123456\"], [, , \"884[0-4689]\\\\d{5}\", , , , \"884123456\"], [, , \"30\\\\d{7}\", , , , \"301234567\"], \"PT\", 351, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2[12]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", \n[\"[236-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"70(?:7\\\\d|8[17])\\\\d{5}\", , , , \"707123456\"], , , [, , \"600\\\\d{6}\", , , , \"600110000\"]], PW:[, [, , \"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\", , , , , , , [7]], [, , \"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\", , , , \"2771234\"], [, , \"(?:45[0-5]|6[2-4689]0|77\\\\d|88[0-4])\\\\d{4}\", , , , \"6201234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , \n, , , [-1]], [, , , , , , , , , [-1]], \"PW\", 680, \"01[12]\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], PY:[, [, , \"59\\\\d{4,6}|(?:[2-46-9]\\\\d|5[0-8])\\\\d{4,7}\", , , , , , , [6, 7, 8, 9], [5]], [, , \"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\", \n, , , \"212345678\", , , [7, 8, 9], [5, 6]], [, , \"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\", , , , \"961456789\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"8700[0-4]\\\\d{4}\", , , , \"870012345\", , , [9]], \"PY\", 595, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3,6})\", \"$1 $2\", [\"[2-9]0\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"], \"(0$1)\"], [, \"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"], \n\"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"87\"]], [, \"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-8]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"[2-9]0\\\\d{4,7}\", , , , \"201234567\"], , , [, , , , , , , , , [-1]]], QA:[, [, , \"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\", , , , , , , [7, 8]], [, , \"4[04]\\\\d{6}\", \n, , , \"44123456\", , , [8]], [, , \"(?:28|[35-7]\\\\d)\\\\d{6}\", , , , \"33123456\", , , [8]], [, , \"800\\\\d{4}\", , , , \"8001234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"QA\", 974, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"2[126]|8\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[2-7]\"]]], , [, , \"2(?:[12]\\\\d|61)\\\\d{4}\", , , , \"2123456\", , , [7]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], \nRE:[, [, , \"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\", , , , , , , [9]], [, , \"26(?:2\\\\d\\\\d|30[01])\\\\d{4}\", , , , \"262161234\"], [, , \"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[05]|6[0-26]|7[0-27]|8[0-8]|9[0-479]))|9769\\\\d)\\\\d{4}\", , , , \"692123456\"], [, , \"80\\\\d{7}\", , , , \"801234567\"], [, , \"89[1-37-9]\\\\d{6}\", , , , \"891123456\"], [, , \"8(?:1[019]|2[0156]|84|90)\\\\d{6}\", , , , \"810123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"RE\", 262, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[2689]\"], \"0$1\"]], , [, , , , , , , , , [-1]], 1, \"26[23]|69|[89]\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], RO:[, [, , \"(?:[237]\\\\d|[89]0)\\\\d{7}|[23]\\\\d{5}\", , , , , , , [6, 9]], [, , \"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\", , , , \"211234567\"], [, , \"7[01]20\\\\d{5}|7(?:0[013-9]|1[01]|[2-7]\\\\d|8[03-8]|9[09])\\\\d{6}\", , , , \"712034567\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"90[0136]\\\\d{6}\", , , , \"900123456\", \n, , [9]], [, , \"801\\\\d{6}\", , , , \"801123456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"RO\", 40, \"00\", \"0\", \" int \", , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"2[3-6]\", \"2[3-6]\\\\d9\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"219|31\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[23]1\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[237-9]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"(?:37\\\\d|80[578])\\\\d{6}\", , , , \"372123456\", \n, , [9]], , , [, , , , , , , , , [-1]]], RS:[, [, , \"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\", , , , , , , [6, 7, 8, 9, 10, 11, 12], [4, 5]], [, , \"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\", , , , \"10234567\", , , [7, 8, 9, 10, 11, 12], [4, 5, 6]], [, , \"6(?:[0-689]|7\\\\d)\\\\d{6,7}\", , , , \"601234567\", , , [8, 9, 10]], [, , \"800\\\\d{3,9}\", , , , \"80012345\"], [, , \"(?:78\\\\d|90[0169])\\\\d{3,7}\", \n, , , \"90012345\", , , [6, 7, 8, 9, 10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"RS\", 381, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3,9})\", \"$1 $2\", [\"(?:2[389]|39)0|[7-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{5,10})\", \"$1 $2\", [\"[1-36]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"7[06]\\\\d{4,10}\", , , , \"700123456\"], , , [, , , , , , , , , [-1]]], RU:[, [, , \"[347-9]\\\\d{9}\", , , , , , , [10], [7]], [, , \"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\\\d{7}\", \n, , , \"3011234567\", , , , [7]], [, , \"9\\\\d{9}\", , , , \"9123456789\"], [, , \"80[04]\\\\d{7}\", , , , \"8001234567\"], [, , \"80[39]\\\\d{7}\", , , , \"8091234567\"], [, , , , , , , , , [-1]], [, , \"808\\\\d{7}\", , , , \"8081234567\"], [, , , , , , , , , [-1]], \"RU\", 7, \"810\", \"8\", , , \"8\", , \"8~10\", , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"[0-79]\"]], [, \"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \n\"8 ($1)\", , 1], [, \"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"], \"8 ($1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[3489]\"], \n\"8 ($1)\", , 1]], [[, \"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-8]|2[1-9])\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\", \"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"], \"8 ($1)\", , 1], [, \"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"7(?:1[0-68]|2[1-9])\", \"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\", \"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"], \n\"8 ($1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"8 ($1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[3489]\"], \"8 ($1)\", , 1]], [, , , , , , , , , [-1]], 1, \"3[04-689]|[489]\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], RW:[, [, , \"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\", , , , , , , [8, 9]], [, , \"(?:06|2[23568]\\\\d)\\\\d{6}\", , , , \"250123456\"], [, , \"7[238]\\\\d{7}\", , , , \"720123456\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", \n, , [9]], [, , \"900\\\\d{6}\", , , , \"900123456\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"RW\", 250, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"0\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[7-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SA:[, [, , \"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\", \n, , , , , , [9, 10], [7]], [, , \"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\", , , , \"112345678\", , , [9], [7]], [, , \"5(?:[013-689]\\\\d|7[0-36-8])\\\\d{6}\", , , , \"512345678\", , , [9]], [, , \"800\\\\d{7}\", , , , \"8001234567\", , , [10]], [, , \"925\\\\d{6}\", , , , \"925012345\", , , [9]], [, , \"920\\\\d{6}\", , , , \"920012345\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SA\", 966, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"9\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", \n[\"1\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"5\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"81\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"811\\\\d{7}\", , , , \"8110123456\", , , [10]], , , [, , , , , , , , , [-1]]], SB:[, [, , \"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\", , , , , , , [5, 7]], [, , \"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\", , , , \"40123\", , , [5]], [, , \"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\", \n, , , \"7421234\"], [, , \"1[38]\\\\d{3}\", , , , \"18123\", , , [5]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"5[12]\\\\d{3}\", , , , \"51123\", , , [5]], \"SB\", 677, \"0[01]\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SC:[, [, , \"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\", , , , , , , [7]], [, , \"4[2-46]\\\\d{5}\", , , , \"4217123\"], \n[, , \"2[5-8]\\\\d{5}\", , , , \"2510123\"], [, , \"8000\\\\d{3}\", , , , \"8000000\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"971\\\\d{4}|(?:64|95)\\\\d{5}\", , , , \"6412345\"], \"SC\", 248, \"010|0[0-2]\", , , , , , \"00\", , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[246]|9[57]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SD:[, [, , \"[19]\\\\d{8}\", , , , , , , [9]], [, , \"1(?:5\\\\d|8[35-7])\\\\d{6}\", , \n, , \"153123456\"], [, , \"(?:1[0-2]|9[0-3569])\\\\d{7}\", , , , \"911231234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SD\", 249, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SE:[, [, , \"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\", \n, , , , , , [6, 7, 8, 9, 10, 12]], [, , \"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\", \n, , , \"8123456\", , , [7, 8, 9]], [, , \"7[02369]\\\\d{7}\", , , , \"701234567\", , , [9]], [, , \"20\\\\d{4,7}\", , , , \"20123456\", , , [6, 7, 8, 9]], [, , \"649\\\\d{6}|9(?:00|39|44)[1-8]\\\\d{3,6}\", , , , \"9001234567\", , , [7, 8, 9, 10]], [, , \"77[0-7]\\\\d{6}\", , , , \"771234567\", , , [9]], [, , \"75[1-8]\\\\d{6}\", , , , \"751234567\", , , [9]], [, , , , , , , , , [-1]], \"SE\", 46, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"20\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"9(?:00|39|44)\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1-$2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1-$2 $3\", [\"9(?:00|39|44)\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"10|7\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"8\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1-$2 $3 $4\", [\"9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1-$2 $3 $4 $5\", [\"[26]\"], \"0$1\"]], [[, \"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\", \"$1 $2 $3\", [\"20\"]], [, \n\"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"9(?:00|39|44)\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3\", [\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"]], [, \"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\", \"$1 $2 $3\", [\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]], [, \"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\", \"$1 $2 $3\", [\"9(?:00|39|44)\"]], [, \"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"]], \n[, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"10|7\"]], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"9\"]], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4 $5\", [\"[26]\"]]], [, , \"74[02-9]\\\\d{6}\", , , , \"740123456\", , , [9]], , , [, , , , , , , , , [-1]], [, , \"10[1-8]\\\\d{6}\", \n, , , \"102345678\", , , [9]], , , [, , \"(?:25[245]|67[3-68])\\\\d{9}\", , , , \"254123456789\", , , [12]]], SG:[, [, , \"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\", , , , , , , [8, 10, 11]], [, , \"662[0-24-9]\\\\d{4}|6(?:[1-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\", , , , \"61234567\", , , [8]], [, , \"(?:8(?:[1-8]\\\\d\\\\d|9(?:[014]\\\\d|2[1-9]|3[0-489]))|9[0-8]\\\\d\\\\d)\\\\d{4}\", , , , \"81234567\", , , [8]], [, , \"(?:18|8)00\\\\d{7}\", , , , \"18001234567\", , , [10, 11]], [, , \"1900\\\\d{7}\", , , , \"19001234567\", , , [11]], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:3[12]\\\\d\\\\d|666[46])\\\\d{4}\", , , , \"31234567\", , , [8]], \"SG\", 65, \"0[0-3]\\\\d\", , , , , , , , [[, \"(\\\\d{4,5})\", \"$1\", [\"1[013-9]|77\", \"1(?:[013-8]|9(?:0[1-9]|[1-9]))|77\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8[1-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"8\"]], [, \"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[369]|8[1-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \n\"$1 $2 $3\", [\"8\"]], [, \"(\\\\d{4})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"]], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"7000\\\\d{7}\", , , , \"70001234567\", , , [11]], , , [, , , , , , , , , [-1]]], SH:[, [, , \"(?:[256]\\\\d|8)\\\\d{3}\", , , , , , , [4, 5]], [, , \"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\", , , , \"22158\"], [, , \"[56]\\\\d{4}\", , , , \"51234\", , , [5]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , \n, , , , , [-1]], [, , \"262\\\\d\\\\d\", , , , \"26212\", , , [5]], \"SH\", 290, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], 1, \"[256]\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SI:[, [, , \"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\", , , , , , , [5, 6, 7, 8]], [, , \"(?:[1-357][2-8]|4[24-8])\\\\d{6}\", , , , \"12345678\", , , [8], [7]], [, , \"65(?:1\\\\d|55|[67]0)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\", , , , \"31234567\", , , [8]], [, , \"80\\\\d{4,6}\", , , , \"80123456\", , , \n[6, 7, 8]], [, , \"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\", , , , \"90123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[01389])|2(?:0\\\\d|2[0378]|8[0-2489])|3[389]\\\\d))\\\\d{4}\", , , , \"59012345\", , , [8]], \"SI\", 386, \"00|10(?:22|66|88|99)\", \"0\", , , \"0\", , \"00\", , [[, \"(\\\\d{2})(\\\\d{3,6})\", \"$1 $2\", [\"8[09]|9\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"59|8\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[37][01]|4[0139]|51|6\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \n\"$1 $2 $3 $4\", [\"[1-57]\"], \"(0$1)\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SJ:[, [, , \"0\\\\d{4}|(?:[4589]\\\\d|79)\\\\d{6}\", , , , , , , [5, 8]], [, , \"79\\\\d{6}\", , , , \"79123456\", , , [8]], [, , \"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\", , , , \"41234567\", , , [8]], [, , \"80[01]\\\\d{5}\", , , , \"80012345\", , , [8]], [, , \"82[09]\\\\d{5}\", , , , \"82012345\", , , [8]], [, , \"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\", , , , \"81021234\", , , [8]], [, , \"880\\\\d{5}\", \n, , , \"88012345\", , , [8]], [, , \"85[0-5]\\\\d{5}\", , , , \"85012345\", , , [8]], \"SJ\", 47, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , \"79\", [, , , , , , , , , [-1]], [, , \"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\", , , , \"02000\"], , , [, , \"81[23]\\\\d{5}\", , , , \"81212345\", , , [8]]], SK:[, [, , \"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\", , , , , , , [6, 7, 9]], [, , \"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\", \n, , , \"221234567\"], [, , \"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\", , , , \"912123456\", , , [9]], [, , \"800\\\\d{6}\", , , , \"800123456\", , , [9]], [, , \"9(?:00|[78]\\\\d)\\\\d{6}\", , , , \"900123456\", , , [9]], [, , \"8[5-9]\\\\d{7}\", , , , \"850123456\", , , [9]], [, , , , , , , , , [-1]], [, , \"6(?:02|5[0-4]|9[0-6])\\\\d{6}\", , , , \"690123456\", , , [9]], \"SK\", 421, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", \n[\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"909\", \"9090\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], [[, \"(\\\\d)(\\\\d{2})(\\\\d{3,4})\", \"$1 $2 $3\", [\"21\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\", \"$1 $2 $3\", [\"[3-5][1-8]1\", \"[3-5][1-8]1[67]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\", \"$1/$2 $3 $4\", \n[\"2\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[689]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1/$2 $3 $4\", [\"[3-5]\"], \"0$1\"]], [, , \"9090\\\\d{3}\", , , , \"9090123\", , , [7]], , , [, , \"9090\\\\d{3}|(?:602|8(?:00|[5-9]\\\\d)|9(?:00|[78]\\\\d))\\\\d{6}\", , , , , , , [7, 9]], [, , \"96\\\\d{7}\", , , , \"961234567\", , , [9]], , , [, , , , , , , , , [-1]]], SL:[, [, , \"(?:[2378]\\\\d|66|99)\\\\d{6}\", , , , , , , [8], [6]], [, , \"22[2-4][2-9]\\\\d{4}\", , , , \"22221234\", , , , [6]], [, , \"(?:25|3[013-5]|66|7[5-9]|8[08]|99)\\\\d{6}\", \n, , , \"25123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SL\", 232, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"[236-9]\"], \"(0$1)\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SM:[, [, , \"(?:0549|[5-7]\\\\d)\\\\d{6}\", , , , , , , [8, 10], [6]], [, , \"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\", , , , \"0549886377\", , , [10], [6]], [, , \n\"6[16]\\\\d{6}\", , , , \"66661212\", , , [8]], [, , , , , , , , , [-1]], [, , \"7[178]\\\\d{6}\", , , , \"71123456\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"5[158]\\\\d{6}\", , , , \"58001110\", , , [8]], \"SM\", 378, \"00\", , , , \"([89]\\\\d{5})$\", \"0549$1\", , , [[, \"(\\\\d{6})\", \"$1\", [\"[89]\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [, \"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"0\"]]], [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[5-7]\"]], [, \"(\\\\d{4})(\\\\d{6})\", \n\"$1 $2\", [\"0\"]]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SN:[, [, , \"(?:[378]\\\\d{4}|93330)\\\\d{4}\", , , , , , , [9]], [, , \"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\", , , , \"301012345\"], [, , \"7(?:[06-8]\\\\d|21|90)\\\\d{6}\", , , , \"701234567\"], [, , \"800\\\\d{6}\", , , , \"800123456\"], [, , \"88[4689]\\\\d{6}\", , , , \"884123456\"], [, , \"81[02468]\\\\d{6}\", , , , \"810123456\"], [, , , , , , , , , [-1]], [, , \"93330\\\\d{4}|3(?:392|9[01]\\\\d)\\\\d{5}\", \n, , , \"933301234\"], \"SN\", 221, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"8\"]], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[379]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SO:[, [, , \"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\", , , , , , , [6, 7, 8, 9]], [, , \"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\", , , , \"4012345\", , , [6, 7]], \n[, , \"28\\\\d{5}|(?:6[1-9]|79)\\\\d{6,7}|(?:15|24|(?:3[59]|4[89]|8[08])\\\\d|60|7[1-8]|9(?:0\\\\d|[2-9]))\\\\d{6}\", , , , \"71123456\", , , [7, 8, 9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SO\", 252, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", [\"8[125]\"]], [, \"(\\\\d{6})\", \"$1\", [\"[134]\"]], [, \"(\\\\d)(\\\\d{6})\", \"$1 $2\", [\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]], [, \"(\\\\d)(\\\\d{7})\", \"$1 $2\", [\"24|[67]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \n\"$1 $2 $3\", [\"[3478]|64|90\"]], [, \"(\\\\d{2})(\\\\d{5,7})\", \"$1 $2\", [\"1|28|6[1-35-9]|9[2-9]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SR:[, [, , \"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\", , , , , , , [6, 7]], [, , \"(?:2[1-3]|3[0-7]|(?:4|68)\\\\d|5[2-58])\\\\d{4}\", , , , \"211234\"], [, , \"(?:7[124-7]|8[125-9])\\\\d{5}\", , , , \"7412345\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n[, , \"56\\\\d{4}\", , , , \"561234\", , , [6]], \"SR\", 597, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1-$2-$3\", [\"56\"]], [, \"(\\\\d{3})(\\\\d{3})\", \"$1-$2\", [\"[2-5]\"]], [, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[6-8]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SS:[, [, , \"[19]\\\\d{8}\", , , , , , , [9]], [, , \"18\\\\d{7}\", , , , \"181234567\"], [, , \"(?:12|9[1257])\\\\d{7}\", , , , \"977123456\"], [, , , , , , , , , [-1]], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SS\", 211, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[19]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], ST:[, [, , \"(?:22|9\\\\d)\\\\d{5}\", , , , , , , [7]], [, , \"22\\\\d{5}\", , , , \"2221234\"], [, , \"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\", , , , \"9812345\"], [, , , , , , , , , [-1]], [, , , , , , , , , \n[-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"ST\", 239, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[29]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SV:[, [, , \"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\", , , , , , , [7, 8, 11]], [, , \"2[1-6]\\\\d{6}\", , , , \"21234567\", , , [8]], [, , \"[67]\\\\d{7}\", , , , \"70123456\", , , [8]], [, , \"800\\\\d{4}(?:\\\\d{4})?\", , , , \"8001234\", , , [7, \n11]], [, , \"900\\\\d{4}(?:\\\\d{4})?\", , , , \"9001234\", , , [7, 11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SV\", 503, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[89]\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[267]\"]], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SX:[, [, , \"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], \n[7]], [, , \"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\", , , , \"7215425678\", , , , [7]], [, , \"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\", , , , \"7215205678\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002123456\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002123456\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"SX\", 1, \"011\", \"1\", , , \"1|(5\\\\d{6})$\", \"721$1\", , , , , [, , , , , , , , , [-1]], , \"721\", [, , , , , , \n, , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SY:[, [, , \"[1-39]\\\\d{8}|[1-5]\\\\d{7}\", , , , , , , [8, 9], [6, 7]], [, , \"[12]1\\\\d{6,7}|(?:1(?:[2356]|4\\\\d)|2[235]|3(?:[13]\\\\d|4)|4[13]|5[1-3])\\\\d{6}\", , , , \"112345678\", , , , [6, 7]], [, , \"9(?:22|[3-589]\\\\d|6[024-9])\\\\d{6}\", , , , \"944567890\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"SY\", 963, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \n\"$1 $2 $3\", [\"[1-5]\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\", , 1]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], SZ:[, [, , \"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\", , , , , , , [8, 9]], [, , \"[23][2-5]\\\\d{6}\", , , , \"22171234\", , , [8]], [, , \"7[6-9]\\\\d{6}\", , , , \"76123456\", , , [8]], [, , \"0800\\\\d{4}\", , , , \"08001234\", , , [8]], [, , \"900\\\\d{6}\", , , , \"900012345\", , , [9]], [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], [, , \"70\\\\d{6}\", , , , \"70012345\", , , [8]], \"SZ\", 268, \"00\", , , , , , , , [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[0237]\"]], [, \"(\\\\d{5})(\\\\d{4})\", \"$1 $2\", [\"9\"]]], , [, , , , , , , , , [-1]], , , [, , \"0800\\\\d{4}\", , , , , , , [8]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TA:[, [, , \"8\\\\d{3}\", , , , , , , [4]], [, , \"8\\\\d{3}\", , , , \"8999\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , \n, , , , [-1]], [, , , , , , , , , [-1]], \"TA\", 290, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , \"8\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TC:[, [, , \"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"649(?:712|9(?:4\\\\d|50))\\\\d{4}\", , , , \"6497121234\", , , , [7]], [, , \"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-8])|4[34][1-3])\\\\d{4}\", , , , \"6492311234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, \n, \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , \"64971[01]\\\\d{4}\", , , , \"6497101234\", , , , [7]], \"TC\", 1, \"011\", \"1\", , , \"1|([2-479]\\\\d{6})$\", \"649$1\", , , , , [, , , , , , , , , [-1]], , \"649\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TD:[, [, , \"(?:22|[69]\\\\d|77)\\\\d{6}\", , , , , , , [8]], [, , \"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\", , , , \"22501234\"], [, , \"(?:6[023568]|77|9\\\\d)\\\\d{6}\", \n, , , \"63012345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TD\", 235, \"00|16\", , , , , , \"00\", , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[2679]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TG:[, [, , \"[279]\\\\d{7}\", , , , , , , [8]], [, , \"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\", , , , \"22212345\"], [, , \"(?:7[09]|9[0-36-9])\\\\d{6}\", \n, , , \"90112345\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TG\", 228, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[279]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TH:[, [, , \"1\\\\d{8,9}|(?:[2-57]|[689]\\\\d)\\\\d{7}\", , , , , , , [8, 9, 10]], [, , \"(?:2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\", , , , \"21234567\", \n, , [8]], [, , \"(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\", , , , \"812345678\", , , [9]], [, , \"1800\\\\d{6}\", , , , \"1800123456\", , , [10]], [, , \"1900\\\\d{6}\", , , , \"1900123456\", , , [10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"6[08]\\\\d{7}\", , , , \"601234567\", , , [9]], \"TH\", 66, \"00[1-9]\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"2\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"14|[3-9]\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"1\"]]], , [, , , \n, , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TJ:[, [, , \"(?:00|11|[3-579]\\\\d|88)\\\\d{7}\", , , , , , , [9], [3, 5, 6, 7]], [, , \"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\", , , , \"372123456\", , , , [3, 5, 6, 7]], [, , \"41[18]\\\\d{6}|(?:00|11|5[05]|7[07]|88|9\\\\d)\\\\d{7}\", , , , \"917123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n\"TJ\", 992, \"810\", \"8\", , , \"8\", , \"8~10\", , [[, \"(\\\\d{6})(\\\\d)(\\\\d{2})\", \"$1 $2 $3\", [\"331\", \"3317\"], , , 1], [, \"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[34]7|91[78]\"], , , 1], [, \"(\\\\d{4})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"3\"], , , 1], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[0457-9]|11\"], , , 1]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TK:[, [, , \"[2-47]\\\\d{3,6}\", , , , , , , [4, 5, 6, 7]], [, , \"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\", \n, , , \"3101\"], [, , \"7[2-4]\\\\d{2,5}\", , , , \"7290\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TK\", 690, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TL:[, [, , \"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\", , , , , , , [7, 8]], [, , \"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\", , , , \"2112345\", , , [7]], [, , \"7[2-8]\\\\d{6}\", , , , \"77212345\", \n, , [8]], [, , \"80\\\\d{5}\", , , , \"8012345\", , , [7]], [, , \"90\\\\d{5}\", , , , \"9012345\", , , [7]], [, , , , , , , , , [-1]], [, , \"70\\\\d{5}\", , , , \"7012345\", , , [7]], [, , , , , , , , , [-1]], \"TL\", 670, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[2-489]|70\"]], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"7\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TM:[, [, , \"[1-6]\\\\d{7}\", , , , , , , [8]], [, , \"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\", \n, , , \"12345678\"], [, , \"6\\\\d{7}\", , , , \"66123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TM\", 993, \"810\", \"8\", , , \"8\", , \"8~10\", , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"12\"], \"(8 $1)\"], [, \"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\", \"$1 $2-$3-$4\", [\"[1-5]\"], \"(8 $1)\"], [, \"(\\\\d{2})(\\\\d{6})\", \"$1 $2\", [\"6\"], \"8 $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , \n[-1]], , , [, , , , , , , , , [-1]]], TN:[, [, , \"[2-57-9]\\\\d{7}\", , , , , , , [8]], [, , \"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\", , , , \"30010123\"], [, , \"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-6])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\", , , , \"20123456\"], [, , \"8010\\\\d{4}\", , , , \"80101234\"], [, , \"88\\\\d{6}\", , , , \"88123456\"], [, , \"8[12]10\\\\d{4}\", , , , \"81101234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TN\", 216, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-57-9]\"]]], \n, [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TO:[, [, , \"(?:0800|[5-8]\\\\d{3})\\\\d{3}|[2-8]\\\\d{4}\", , , , , , , [5, 7]], [, , \"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\", , , , \"20123\", , , [5]], [, , \"6(?:3[02]|8[5-9])\\\\d{4}|(?:6[09]|7\\\\d|8[46-9])\\\\d{5}\", , , , \"7715123\", , , [7]], [, , \"0800\\\\d{3}\", , , , \"0800222\", , , [7]], [, , \"55[04]\\\\d{4}\", , , , \"5501234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , \n, [-1]], [, , , , , , , , , [-1]], \"TO\", 676, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})\", \"$1-$2\", [\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]], [, \"(\\\\d{4})(\\\\d{3})\", \"$1 $2\", [\"0\"]], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[5-8]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TR:[, [, , \"(?:4|8\\\\d{5})\\\\d{6}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [7, 10, 12]], [, , \"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\", \n, , , \"2123456789\", , , [10]], [, , \"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\", , , , \"5012345678\", , , [10]], [, , \"800\\\\d{7}(?:\\\\d{2})?\", , , , \"8001234567\", , , [10, 12]], [, , \"(?:8[89]8|900)\\\\d{7}\", , , , \"9001234567\", , , [10]], [, , , , , , , , , [-1]], [, , \"592(?:21[12]|461)\\\\d{4}\", , , , \"5922121234\", , , [10]], [, , , , , , , , , [-1]], \"TR\", 90, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d)(\\\\d{3})\", \"$1 $2 $3\", [\"444\"], , , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", \n[\"512|8[0589]|90\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{6})\", \"$1 $2 $3\", [\"80\"], \"0$1\", , 1]], [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"512|8[0589]|90\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"5(?:[0-59]|61)\", \"5(?:[0-59]|616)\", \"5(?:[0-59]|6161)\"], \n\"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[24][1-8]|3[1-9]\"], \"(0$1)\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{6})\", \"$1 $2 $3\", [\"80\"], \"0$1\", , 1]], [, , \"512\\\\d{7}\", , , , \"5123456789\", , , [10]], , , [, , \"444\\\\d{4}\", , , , , , , [7]], [, , \"(?:444|850\\\\d{3})\\\\d{4}\", , , , \"4441444\", , , [7, 10]], , , [, , , , , , , , , [-1]]], TT:[, [, , \"(?:[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"868(?:2(?:01|1[89]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\", \n, , , \"8682211234\", , , , [7]], [, , \"868(?:2(?:6[346-9]|[7-9]\\\\d)|[37](?:0[1-9]|1[02-9]|[2-9]\\\\d)|4[6-9]\\\\d|6(?:20|78|8\\\\d))\\\\d{4}\", , , , \"8682911234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"TT\", 1, \"011\", \"1\", , , \"1|([2-46-8]\\\\d{6})$\", \"868$1\", , , , , [, , , , , , , , , [-1]], , \"868\", [, , \n, , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , \"868619\\\\d{4}\", , , , \"8686191234\", , , , [7]]], TV:[, [, , \"(?:2|7\\\\d\\\\d|90)\\\\d{4}\", , , , , , , [5, 6, 7]], [, , \"2[02-9]\\\\d{3}\", , , , \"20123\", , , [5]], [, , \"(?:7[01]\\\\d|90)\\\\d{4}\", , , , \"901234\", , , [6, 7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"TV\", 688, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{3})\", \"$1 $2\", [\"2\"]], [, \"(\\\\d{2})(\\\\d{4})\", \"$1 $2\", \n[\"90\"]], [, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], TW:[, [, , \"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\", , , , , , , [7, 8, 9, 10, 11]], [, , \"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\", \n, , , \"221234567\", , , [8, 9]], [, , \"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\", , , , \"912345678\", , , [9]], [, , \"80[0-79]\\\\d{6}|800\\\\d{5}\", , , , \"800123456\", , , [8, 9]], [, , \"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\", , , , \"203123456\", , , [7, 9]], [, , , , , , , , , [-1]], [, , \"99\\\\d{7}\", , , , \"990123456\", , , [9]], [, , \"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\", , , , \"7012345678\", , , [10, 11]], \"TW\", 886, \"0(?:0[25-79]|19)\", \"0\", \"#\", , \"0\", , , , [[, \"(\\\\d{2})(\\\\d)(\\\\d{4})\", \"$1 $2 $3\", [\"202\"], \n\"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[258]0\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\", \"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[49]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"50[0-46-9]\\\\d{6}\", , , , \"500123456\", , , [9]], , , [, , , , , , , , , [-1]]], TZ:[, [, , \"(?:[26-8]\\\\d|41|90)\\\\d{7}\", \n, , , , , , [9]], [, , \"2[2-8]\\\\d{7}\", , , , \"222345678\"], [, , \"(?:6[2-9]|7[13-9])\\\\d{7}\", , , , \"621234567\"], [, , \"80[08]\\\\d{6}\", , , , \"800123456\"], [, , \"90\\\\d{7}\", , , , \"900123456\"], [, , \"8(?:40|6[01])\\\\d{6}\", , , , \"840123456\"], [, , , , , , , , , [-1]], [, , \"41\\\\d{7}\", , , , \"412345678\"], \"TZ\", 255, \"00[056]\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[24]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", \n[\"[67]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , \"(?:8(?:[04]0|6[01])|90\\\\d)\\\\d{6}\"], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], UA:[, [, , \"[89]\\\\d{9}|[3-9]\\\\d{8}\", , , , , , , [9, 10], [5, 6, 7]], [, , \"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\", , , , \"311234567\", , , [9], [5, 6, 7]], [, , \"(?:50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\", , , , \"501234567\", , , [9]], [, , \"800[1-8]\\\\d{5,6}\", , , , \"800123456\"], [, , \"900[239]\\\\d{5,6}\", , , , \"900212345\"], [, , , , , , , , , [-1]], [, , \n, , , , , , , [-1]], [, , \"89[1-579]\\\\d{6}\", , , , \"891234567\", , , [9]], \"UA\", 380, \"00\", \"0\", , , \"0\", , \"0~0\", , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\", \"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\", \"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"], \n\"0$1\"], [, \"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"[3-6]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[89]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], UG:[, [, , \"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\", , , , , , , [9], [5, 6, 7]], [, , \"20(?:(?:(?:24|81)0|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[0147]\\\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\", , , , \"312345678\", , , , [5, 6, 7]], [, , \"7260\\\\d{5}|7(?:[0157-9]\\\\d|20|36|4[0-4])\\\\d{6}\", \n, , , \"712345678\"], [, , \"800[1-3]\\\\d{5}\", , , , \"800123456\"], [, , \"90[1-3]\\\\d{6}\", , , , \"901123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"UG\", 256, \"00[057]\", \"0\", , , \"0\", , , , [[, \"(\\\\d{4})(\\\\d{5})\", \"$1 $2\", [\"202\", \"2024\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{6})\", \"$1 $2\", [\"[27-9]|4(?:6[45]|[7-9])\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[34]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , \n, , , , [-1]]], US:[, [, , \"[2-9]\\\\d{9}\", , , , , , , [10], [7]], [, , \"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\", \n, , , \"2015550123\", , , , [7]], [, , \"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\", \n, , , \"2015550123\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"US\", 1, \"011\", \"1\", , , \"1\", , , 1, [[, \"(\\\\d{3})(\\\\d{4})\", \"$1-$2\", [\"[2-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"($1) $2-$3\", [\"[2-9]\"], , , 1]], [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{4})\", \"$1-$2-$3\", [\"[2-9]\"]]], [, , , , , , , , , [-1]], 1, , [, \n, , , , , , , , [-1]], [, , \"710[2-9]\\\\d{6}\", , , , \"7102123456\"], , , [, , , , , , , , , [-1]]], UY:[, [, , \"(?:[249]\\\\d\\\\d|80)\\\\d{5}|9\\\\d{6}\", , , , , , , [7, 8]], [, , \"(?:2\\\\d|4[2-7])\\\\d{6}\", , , , \"21231234\", , , [8], [7]], [, , \"9[1-9]\\\\d{6}\", , , , \"94231234\", , , [8]], [, , \"80[05]\\\\d{4}\", , , , \"8001234\", , , [7]], [, , \"90[0-8]\\\\d{4}\", , , , \"9001234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"UY\", 598, \"0(?:0|1[3-9]\\\\d)\", \"0\", \" int. \", , \n\"0\", , \"00\", , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"8|90\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"9\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\", [\"[24]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], UZ:[, [, , \"[679]\\\\d{8}\", , , , , , , [9]], [, , \"78(?:1(?:13|2[02]|50)|2(?:10|2[139]|98)|77[01])\\\\d{4}|(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\\\d\\\\d|7(?:[23]\\\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|1[12]\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\\\d{5}\", \n, , , \"669050123\"], [, , \"(?:6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:0\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07])))|9[0-57-9]\\\\d{3})\\\\d{4}\", \n, , , \"912345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"UZ\", 998, \"810\", \"8\", , , \"8\", , \"8~10\", , [[, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[679]\"], \"8 $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], VA:[, [, , \"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\", , , , , , , [6, 7, 8, 9, \n10, 11, 12]], [, , \"06698\\\\d{1,6}\", , , , \"0669812345\", , , [6, 7, 8, 9, 10, 11]], [, , \"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\", , , , \"3123456789\", , , [9, 10]], [, , \"80(?:0\\\\d{3}|3)\\\\d{3}\", , , , \"800123456\", , , [6, 9]], [, , \"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\", , , , \"899123456\", , , [6, 8, 9, 10]], [, , \"84(?:[08]\\\\d{3}|[17])\\\\d{3}\", , , , \"848123456\", , , [6, 9]], [, , \"1(?:78\\\\d|99)\\\\d{6}\", , , , \"1781234567\", , , [9, 10]], [, , \"55\\\\d{8}\", \n, , , \"5512345678\", , , [10]], \"VA\", 39, \"00\", , , , , , , , , , [, , , , , , , , , [-1]], , \"06698\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , \"3[2-8]\\\\d{9,10}\", , , , \"33101234501\", , , [11, 12]]], VC:[, [, , \"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"784(?:266|3(?:6[6-9]|7\\\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\", , , , \"7842661234\", , , , [7]], [, , \"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4]))\\\\d{4}\", , , , \"7844301234\", \n, , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"VC\", 1, \"011\", \"1\", , , \"1|([2-7]\\\\d{6})$\", \"784$1\", , , , , [, , , , , , , , , [-1]], , \"784\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], VE:[, [, , \"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\", , , , , , , [10], [7]], [, \n, \"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\", , , , \"2121234567\", , , , [7]], [, , \"4(?:1[24-8]|2[46])\\\\d{7}\", , , , \"4121234567\"], [, , \"800\\\\d{7}\", , , , \"8001234567\"], [, , \"90[01]\\\\d{7}\", , , , \"9001234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"VE\", 58, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{7})\", \"$1-$2\", [\"[24-689]\"], \"0$1\", \"$CC $1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"501\\\\d{7}\", , , , \"5010123456\", \n, , , [7]], , , [, , , , , , , , , [-1]]], VG:[, [, , \"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\", , , , , , , [10], [7]], [, , \"284496[0-5]\\\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\", , , , \"2842291234\", , , , [7]], [, , \"284496[6-9]\\\\d{3}|284(?:3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|54[0-57])\\\\d{4}\", , , , \"2843001234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", \n, , , \"5002345678\"], [, , , , , , , , , [-1]], \"VG\", 1, \"011\", \"1\", , , \"1|([2-578]\\\\d{6})$\", \"284$1\", , , , , [, , , , , , , , , [-1]], , \"284\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], VI:[, [, , \"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\", , , , , , , [10], [7]], [, , \"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:22|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|27|7\\\\d)|884|998)\\\\d{4}\", , , , \"3406421234\", , , , [7]], [, , \"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:22|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|27|7\\\\d)|884|998)\\\\d{4}\", \n, , , \"3406421234\", , , , [7]], [, , \"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\", , , , \"8002345678\"], [, , \"900[2-9]\\\\d{6}\", , , , \"9002345678\"], [, , , , , , , , , [-1]], [, , \"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\", , , , \"5002345678\"], [, , , , , , , , , [-1]], \"VI\", 1, \"011\", \"1\", , , \"1|([2-9]\\\\d{6})$\", \"340$1\", , 1, , , [, , , , , , , , , [-1]], , \"340\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], VN:[, [, , \"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\", \n, , , , , , [7, 8, 9, 10]], [, , \"2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\\\d{7}\", , , , \"2101234567\", , , [10]], [, , \"(?:52[238]|8(?:79|9[689])|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-68]|9[0-8])\\\\d{7}\", , , , \"912345678\", , , [9]], [, , \"1800\\\\d{4,6}|12(?:03|28)\\\\d{4}\", , , , \"1800123456\", , , [8, 9, 10]], [, , \"1900\\\\d{4,6}\", , , , \"1900123456\", , , [8, 9, 10]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"672\\\\d{6}\", , , , \"672012345\", \n, , [9]], \"VN\", 84, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"[17]99\"], \"0$1\", , 1], [, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{4,5})\", \"$1 $2\", [\"69\"], \"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], , , 1], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \n\"$1 $2 $3\", [\"2\"], \"0$1\", , 1]], [[, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"80\"], \"0$1\", , 1], [, \"(\\\\d{4})(\\\\d{4,6})\", \"$1 $2\", [\"1\"], , , 1], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3 $4\", [\"[69]\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[3578]\"], \"0$1\", , 1], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"2[48]\"], \"0$1\", , 1], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"2\"], \"0$1\", , 1]], [, , , , , , , , , [-1]], , , [, , \"[17]99\\\\d{4}|69\\\\d{5,6}\", , , , , , , [7, 8]], [, , \"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\", \n, , , \"1992000\", , , [7, 8]], , , [, , , , , , , , , [-1]]], VU:[, [, , \"(?:[23]\\\\d|[48]8)\\\\d{3}|(?:[57]\\\\d|90)\\\\d{5}\", , , , , , , [5, 7]], [, , \"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\", , , , \"22123\", , , [5]], [, , \"(?:5\\\\d|7[013-7])\\\\d{5}\", , , , \"5912345\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"90[1-9]\\\\d{4}\", , , , \"9010123\", , , [7]], \"VU\", 678, \"00\", , , , , , , , [[, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", \n[\"[579]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"(?:3[03]|900\\\\d)\\\\d{3}\", , , , \"30123\"], , , [, , , , , , , , , [-1]]], WF:[, [, , \"(?:[45]0|68|72|8\\\\d)\\\\d{4}\", , , , , , , [6]], [, , \"(?:50|68|72)\\\\d{4}\", , , , \"501234\"], [, , \"(?:50|68|72|8[23])\\\\d{4}\", , , , \"501234\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"WF\", 681, \"00\", , , , , , , , [[, \"(\\\\d{2})(\\\\d{2})(\\\\d{2})\", \"$1 $2 $3\", \n[\"[4-8]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , \"[48]0\\\\d{4}\", , , , \"401234\"]], WS:[, [, , \"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\", , , , , , , [5, 6, 7, 10]], [, , \"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\", , , , \"22123\", , , [5, 6]], [, , \"(?:7[235-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\", , , , \"7212345\", , , [7, 10]], [, , \"800\\\\d{3}\", , , , \"800123\", , , [6]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , \n, , , , , , [-1]], \"WS\", 685, \"0\", , , , , , , , [[, \"(\\\\d{5})\", \"$1\", [\"[2-5]|6[1-9]\"]], [, \"(\\\\d{3})(\\\\d{3,7})\", \"$1 $2\", [\"[68]\"]], [, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"7\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], XK:[, [, , \"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\", , , , , , , [8, 9]], [, , \"(?:2[89]|39)0\\\\d{6}|[23][89]\\\\d{6}\", , , , \"28012345\"], [, , \"4[3-9]\\\\d{6}\", , , , \"43201234\", , , [8]], [, , \"800\\\\d{5}\", , , , \"80001234\", \n, , [8]], [, , \"900\\\\d{5}\", , , , \"90001234\", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"XK\", 383, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{5})\", \"$1 $2\", [\"[89]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[2-4]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[23]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], YE:[, [, , \"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\", \n, , , , , , [7, 8, 9], [6]], [, , \"17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\\\d{5}\", , , , \"1234567\", , , [7, 8], [6]], [, , \"7[0137]\\\\d{7}\", , , , \"712345678\", , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"YE\", 967, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"[1-6]|7[24-68]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"7\"], \"0$1\"]], , [, , , , \n, , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], YT:[, [, , \"80\\\\d{7}|(?:26|63)9\\\\d{6}\", , , , , , , [9]], [, , \"269(?:0[67]|5[0-2]|6\\\\d|[78]0)\\\\d{4}\", , , , \"269601234\"], [, , \"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|[45]0|9[04-79])\\\\d{4}\", , , , \"639012345\"], [, , \"80\\\\d{7}\", , , , \"801234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"YT\", 262, \"00\", \"0\", , , \"0\", , , , , , [, , , \n, , , , , , [-1]], , \"269|63\", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], ZA:[, [, , \"[1-9]\\\\d{8}|8\\\\d{4,7}\", , , , , , , [5, 6, 7, 8, 9]], [, , \"(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\", , , , \"101234567\", , , [9]], [, , \"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\", \n, , , \"711234567\"], [, , \"80\\\\d{7}\", , , , \"801234567\", , , [9]], [, , \"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\", , , , \"862345678\", , , [9]], [, , \"860\\\\d{6}\", , , , \"860123456\", , , [9]], [, , , , , , , , , [-1]], [, , \"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\", , , , \"871234567\", , , [9]], \"ZA\", 27, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{2})(\\\\d{3,4})\", \"$1 $2\", [\"8[1-4]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\", \"$1 $2 $3\", [\"8[1-4]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \n\"$1 $2 $3\", [\"860\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"[1-9]\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"861\\\\d{6}\", , , , \"861123456\", , , [9]], , , [, , , , , , , , , [-1]]], ZM:[, [, , \"(?:63|80)0\\\\d{6}|(?:21|[79]\\\\d)\\\\d{7}\", , , , , , , [9], [6]], [, , \"21[1-8]\\\\d{6}\", , , , \"211234567\", , , , [6]], [, , \"(?:7[679]|9[5-8])\\\\d{7}\", , , , \"955123456\"], [, , \"800\\\\d{6}\", , , , \"800123456\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], [, , \"630\\\\d{6}\", , , , \"630012345\"], \"ZM\", 260, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3})\", \"$1 $2\", [\"[1-9]\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[28]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"[79]\"], \"0$1\"]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], ZW:[, [, , \"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\", \n, , , , , , [5, 6, 7, 8, 9, 10], [3, 4]], [, , \"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\", \n, , , \"1312345\", , , , [3, 4]], [, , \"7(?:[17]\\\\d|[38][1-9])\\\\d{6}\", , , , \"712345678\", , , [9]], [, , \"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\", , , , \"8001234\", , , [7]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\", , , , \"8686123456\", , , [10]], \"ZW\", 263, \"00\", \"0\", , , \"0\", , , , [[, \"(\\\\d{3})(\\\\d{3,5})\", \"$1 $2\", [\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"], \"0$1\"], [, \"(\\\\d)(\\\\d{3})(\\\\d{2,4})\", \n\"$1 $2 $3\", [\"[49]\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{4})\", \"$1 $2\", [\"80\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{7})\", \"$1 $2\", [\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\", \"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"], \"(0$1)\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{4})\", \"$1 $2 $3\", [\"7\"], \"0$1\"], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\", \"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{6})\", \"$1 $2\", [\"8\"], \"0$1\"], \n[, \"(\\\\d{2})(\\\\d{3,5})\", \"$1 $2\", [\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"], \"0$1\"], [, \"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\", \"$1 $2 $3\", [\"29[013-9]|39|54\"], \"0$1\"], [, \"(\\\\d{4})(\\\\d{3,5})\", \"$1 $2\", [\"(?:25|54)8\", \"258|5483\"], \"0$1\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 800:[, [, , \"\\\\d{8}\", , , , , , , [8]], [, , , , , , , , \n, [-1]], [, , , , , , , , , [-1]], [, , \"\\\\d{8}\", , , , \"12345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"001\", 800, , , , , , , , 1, [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 808:[, [, , \"\\\\d{8}\", , , , , , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \n\"\\\\d{8}\", , , , \"12345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"001\", 808, , , , , , , , 1, [[, \"(\\\\d{4})(\\\\d{4})\", \"$1 $2\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 870:[, [, , \"[35-7]\\\\d{8}\", , , , , , , [9]], [, , , , , , , , , [-1]], [, , \"(?:[356]\\\\d|7[6-8])\\\\d{7}\", , , , \"301234567\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , \n, , , , [-1]], \"001\", 870, , , , , , , , , [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"[35-7]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 878:[, [, , \"10\\\\d{10}\", , , , , , , [12]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"10\\\\d{10}\", , , , \"101234567890\"], \"001\", 878, , , , , , , , 1, [[, \"(\\\\d{2})(\\\\d{5})(\\\\d{5})\", \n\"$1 $2 $3\", [\"1\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 881:[, [, , \"[67]\\\\d{8}\", , , , , , , [9]], [, , , , , , , , , [-1]], [, , \"[67]\\\\d{8}\", , , , \"612345678\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"001\", 881, , , , , , , , , [[, \"(\\\\d)(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\", [\"[67]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , \n, , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 882:[, [, , \"1\\\\d{6,11}|3\\\\d{6}(?:\\\\d{2,5})?\", , , , , , , [7, 8, 9, 10, 11, 12]], [, , , , , , , , , [-1]], [, , \"3(?:37\\\\d\\\\d|42)\\\\d{4}|3(?:2|47|7\\\\d{3})\\\\d{7}\", , , , \"3421234\", , , [7, 9, 10, 12]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|3(?:45|9\\\\d{3})\\\\d{7}\", , \n, , \"390123456789\"], \"001\", 882, , , , , , , , , [[, \"(\\\\d{2})(\\\\d{5})\", \"$1 $2\", [\"16|342\"]], [, \"(\\\\d{2})(\\\\d{2})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{3})\", \"$1 $2 $3\", [\"3[23]\"]], [, \"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\", \"$1 $2 $3\", [\"1\"]], [, \"(\\\\d{2})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34[57]\"]], [, \"(\\\\d{3})(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\", [\"34\"]], [, \"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\", \"$1 $2 $3\", [\"[13]\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, , [, , \"348[57]\\\\d{7}\", , , , \"34851234567\", , , [11]]], 883:[, [, , \"51\\\\d{7}(?:\\\\d{3})?\", , , , , , , [9, 12]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"51[013]0\\\\d{8}|5100\\\\d{5}\", , , , \"510012345\"], \"001\", 883, , , , , , , , 1, [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3\", [\"510\"]], [, \"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\", \"$1 $2 $3 $4\", [\"510\"]], [, \"(\\\\d{4})(\\\\d{4})(\\\\d{4})\", \n\"$1 $2 $3\", [\"5\"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]], 888:[, [, , \"\\\\d{11}\", , , , , , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"001\", 888, , , , , , , , 1, [[, \"(\\\\d{3})(\\\\d{3})(\\\\d{5})\", \"$1 $2 $3\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , \"\\\\d{11}\", \n, , , \"12345678901\"], , , [, , , , , , , , , [-1]]], 979:[, [, , \"\\\\d{9}\", , , , , , , [9]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , \"\\\\d{9}\", , , , \"123456789\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \"001\", 979, , , , , , , , 1, [[, \"(\\\\d)(\\\\d{4})(\\\\d{4})\", \"$1 $2 $3\"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]]};\n/*\n\n Copyright (C) 2010 The Libphonenumber Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\ni18n.phonenumbers.PhoneNumberUtil = function() {\n this.regionToMetadataMap = {};\n};\ngoog.addSingletonGetter(i18n.phonenumbers.PhoneNumberUtil);\ni18n.phonenumbers.Error = {INVALID_COUNTRY_CODE:\"Invalid country calling code\", NOT_A_NUMBER:\"The string supplied did not seem to be a phone number\", TOO_SHORT_AFTER_IDD:\"Phone number too short after IDD\", TOO_SHORT_NSN:\"The string supplied is too short to be a phone number\", TOO_LONG:\"The string supplied is too long to be a phone number\"};\ni18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_ = 1;\ni18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_ = 2;\ni18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_ = 17;\ni18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_ = 3;\ni18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_ = 250;\ni18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_ = \"ZZ\";\ni18n.phonenumbers.PhoneNumberUtil.COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_ = \"3\";\ni18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_ = {54:\"9\"};\ni18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_ = [52, 54, 55];\ni18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN = \"+\";\ni18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_ = \"*\";\ni18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ = \";ext=\";\ni18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_ = \"tel:\";\ni18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_ = \";phone-context=\";\ni18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_ = \";isub=\";\ni18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS = {0:\"0\", 1:\"1\", 2:\"2\", 3:\"3\", 4:\"4\", 5:\"5\", 6:\"6\", 7:\"7\", 8:\"8\", 9:\"9\", \"\\uff10\":\"0\", \"\\uff11\":\"1\", \"\\uff12\":\"2\", \"\\uff13\":\"3\", \"\\uff14\":\"4\", \"\\uff15\":\"5\", \"\\uff16\":\"6\", \"\\uff17\":\"7\", \"\\uff18\":\"8\", \"\\uff19\":\"9\", \"\\u0660\":\"0\", \"\\u0661\":\"1\", \"\\u0662\":\"2\", \"\\u0663\":\"3\", \"\\u0664\":\"4\", \"\\u0665\":\"5\", \"\\u0666\":\"6\", \"\\u0667\":\"7\", \"\\u0668\":\"8\", \"\\u0669\":\"9\", \"\\u06f0\":\"0\", \"\\u06f1\":\"1\", \"\\u06f2\":\"2\", \"\\u06f3\":\"3\", \"\\u06f4\":\"4\", \"\\u06f5\":\"5\", \"\\u06f6\":\"6\", \"\\u06f7\":\"7\", \n\"\\u06f8\":\"8\", \"\\u06f9\":\"9\"};\ni18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_ = {0:\"0\", 1:\"1\", 2:\"2\", 3:\"3\", 4:\"4\", 5:\"5\", 6:\"6\", 7:\"7\", 8:\"8\", 9:\"9\", \"+\":i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN, \"*\":\"*\", \"#\":\"#\"};\ni18n.phonenumbers.PhoneNumberUtil.ALPHA_MAPPINGS_ = {A:\"2\", B:\"2\", C:\"2\", D:\"3\", E:\"3\", F:\"3\", G:\"4\", H:\"4\", I:\"4\", J:\"5\", K:\"5\", L:\"5\", M:\"6\", N:\"6\", O:\"6\", P:\"7\", Q:\"7\", R:\"7\", S:\"7\", T:\"8\", U:\"8\", V:\"8\", W:\"9\", X:\"9\", Y:\"9\", Z:\"9\"};\ni18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_ = {0:\"0\", 1:\"1\", 2:\"2\", 3:\"3\", 4:\"4\", 5:\"5\", 6:\"6\", 7:\"7\", 8:\"8\", 9:\"9\", \"\\uff10\":\"0\", \"\\uff11\":\"1\", \"\\uff12\":\"2\", \"\\uff13\":\"3\", \"\\uff14\":\"4\", \"\\uff15\":\"5\", \"\\uff16\":\"6\", \"\\uff17\":\"7\", \"\\uff18\":\"8\", \"\\uff19\":\"9\", \"\\u0660\":\"0\", \"\\u0661\":\"1\", \"\\u0662\":\"2\", \"\\u0663\":\"3\", \"\\u0664\":\"4\", \"\\u0665\":\"5\", \"\\u0666\":\"6\", \"\\u0667\":\"7\", \"\\u0668\":\"8\", \"\\u0669\":\"9\", \"\\u06f0\":\"0\", \"\\u06f1\":\"1\", \"\\u06f2\":\"2\", \"\\u06f3\":\"3\", \"\\u06f4\":\"4\", \"\\u06f5\":\"5\", \"\\u06f6\":\"6\", \n\"\\u06f7\":\"7\", \"\\u06f8\":\"8\", \"\\u06f9\":\"9\", A:\"2\", B:\"2\", C:\"2\", D:\"3\", E:\"3\", F:\"3\", G:\"4\", H:\"4\", I:\"4\", J:\"5\", K:\"5\", L:\"5\", M:\"6\", N:\"6\", O:\"6\", P:\"7\", Q:\"7\", R:\"7\", S:\"7\", T:\"8\", U:\"8\", V:\"8\", W:\"9\", X:\"9\", Y:\"9\", Z:\"9\"};\ni18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_ = {0:\"0\", 1:\"1\", 2:\"2\", 3:\"3\", 4:\"4\", 5:\"5\", 6:\"6\", 7:\"7\", 8:\"8\", 9:\"9\", A:\"A\", B:\"B\", C:\"C\", D:\"D\", E:\"E\", F:\"F\", G:\"G\", H:\"H\", I:\"I\", J:\"J\", K:\"K\", L:\"L\", M:\"M\", N:\"N\", O:\"O\", P:\"P\", Q:\"Q\", R:\"R\", S:\"S\", T:\"T\", U:\"U\", V:\"V\", W:\"W\", X:\"X\", Y:\"Y\", Z:\"Z\", a:\"A\", b:\"B\", c:\"C\", d:\"D\", e:\"E\", f:\"F\", g:\"G\", h:\"H\", i:\"I\", j:\"J\", k:\"K\", l:\"L\", m:\"M\", n:\"N\", o:\"O\", p:\"P\", q:\"Q\", r:\"R\", s:\"S\", t:\"T\", u:\"U\", v:\"V\", w:\"W\", x:\"X\", y:\"Y\", z:\"Z\", \n\"-\":\"-\", \"\\uff0d\":\"-\", \"\\u2010\":\"-\", \"\\u2011\":\"-\", \"\\u2012\":\"-\", \"\\u2013\":\"-\", \"\\u2014\":\"-\", \"\\u2015\":\"-\", \"\\u2212\":\"-\", \"/\":\"/\", \"\\uff0f\":\"/\", \" \":\" \", \"\\u3000\":\" \", \"\\u2060\":\" \", \".\":\".\", \"\\uff0e\":\".\"};\ni18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_ = /[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?/;\ni18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION = \"-x\\u2010-\\u2015\\u2212\\u30fc\\uff0d-\\uff0f \\u00a0\\u00ad\\u200b\\u2060\\u3000()\\uff08\\uff09\\uff3b\\uff3d.\\\\[\\\\]/~\\u2053\\u223c\\uff5e\";\ni18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ = \"0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9\";\ni18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_ = \"A-Za-z\";\ni18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ = \"+\\uff0b\";\ni18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN = new RegExp(\"[\" + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + \"]+\");\ni18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN = new RegExp(\"^[\" + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + \"]+\");\ni18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_ = \"[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + \"]+\";\ni18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN = new RegExp(\"([\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"])\");\ni18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_ = new RegExp(\"[\" + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]\");\ni18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_ = /[\\\\\\/] *x/;\ni18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_ = new RegExp(\"[^\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_ + \"#]+$\");\ni18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_ = /(?:.*?[A-Za-z]){3}.*/;\ni18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_ = \"[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]{\" + i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_ + \"}\";\ni18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_ = \"[\" + i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_ + \"]*(?:[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_ + \"]*[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]){3,}[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + i18n.phonenumbers.PhoneNumberUtil.STAR_SIGN_ + i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_ + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]*\";\ni18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_ = \" ext. \";\ni18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ = \"([\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]{1,7})\";\ni18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ = i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + \"|[ \\u00a0\\\\t,]*(?:e?xt(?:ensi(?:o\\u0301?|\\u00f3))?n?|\\uff45?\\uff58\\uff54\\uff4e?|\\u0434\\u043e\\u0431|[;,x\\uff58#\\uff03~\\uff5e]|int|anexo|\\uff49\\uff4e\\uff54)[:\\\\.\\uff0e]?[ \\u00a0\\\\t,-]*\" + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + \"#?|[- ]+([\" + i18n.phonenumbers.PhoneNumberUtil.VALID_DIGITS_ + \"]{1,5})#\";\ni18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_ = new RegExp(\"(?:\" + i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ + \")$\", \"i\");\ni18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_ = new RegExp(\"^\" + i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_PHONE_NUMBER_PATTERN_ + \"$|^\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_ + \"(?:\" + i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ + \")?$\", \"i\");\ni18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_ = /\\D+/;\ni18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_ = /(\\$\\d)/;\ni18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_ = /\\$NP/;\ni18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_ = /\\$FG/;\ni18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_ = /\\$CC/;\ni18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_ = /^\\(?\\$1\\)?$/;\ni18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY = \"001\";\ni18n.phonenumbers.PhoneNumberFormat = {E164:0, INTERNATIONAL:1, NATIONAL:2, RFC3966:3};\ni18n.phonenumbers.PhoneNumberType = {FIXED_LINE:0, MOBILE:1, FIXED_LINE_OR_MOBILE:2, TOLL_FREE:3, PREMIUM_RATE:4, SHARED_COST:5, VOIP:6, PERSONAL_NUMBER:7, PAGER:8, UAN:9, VOICEMAIL:10, UNKNOWN:-1};\ni18n.phonenumbers.PhoneNumberUtil.MatchType = {NOT_A_NUMBER:0, NO_MATCH:1, SHORT_NSN_MATCH:2, NSN_MATCH:3, EXACT_MATCH:4};\ni18n.phonenumbers.PhoneNumberUtil.ValidationResult = {IS_POSSIBLE:0, IS_POSSIBLE_LOCAL_ONLY:4, INVALID_COUNTRY_CODE:1, TOO_SHORT:2, INVALID_LENGTH:5, TOO_LONG:3};\ni18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber = function(a) {\n var b = a.search(i18n.phonenumbers.PhoneNumberUtil.VALID_START_CHAR_PATTERN_);\n 0 <= b ? (a = a.substring(b), a = a.replace(i18n.phonenumbers.PhoneNumberUtil.UNWANTED_END_CHAR_PATTERN_, \"\"), b = a.search(i18n.phonenumbers.PhoneNumberUtil.SECOND_NUMBER_START_PATTERN_), 0 <= b && (a = a.substring(0, b))) : a = \"\";\n return a;\n};\ni18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber = function(a) {\n return a.length < i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_ ? !1 : i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_PHONE_NUMBER_PATTERN_, a);\n};\ni18n.phonenumbers.PhoneNumberUtil.normalize = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_, a) ? i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(a, i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_, !0) : i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(a);\n};\ni18n.phonenumbers.PhoneNumberUtil.normalizeSB_ = function(a) {\n var b = i18n.phonenumbers.PhoneNumberUtil.normalize(a.toString());\n a.clear();\n a.append(b);\n};\ni18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(a, i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS, !0);\n};\ni18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(a, i18n.phonenumbers.PhoneNumberUtil.DIALLABLE_CHAR_MAPPINGS_, !0);\n};\ni18n.phonenumbers.PhoneNumberUtil.convertAlphaCharactersInNumber = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(a, i18n.phonenumbers.PhoneNumberUtil.ALL_NORMALIZATION_MAPPINGS_, !1);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfGeographicalAreaCode = function(a) {\n var b = this.getMetadataForRegion(this.getRegionCodeForNumber(a));\n return null != b && (b.hasNationalPrefix() || a.hasItalianLeadingZero()) && this.isNumberGeographical(a) ? this.getLengthOfNationalDestinationCode(a) : 0;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getLengthOfNationalDestinationCode = function(a) {\n if (a.hasExtension()) {\n var b = a.clone();\n b.clearExtension();\n } else {\n b = a;\n }\n b = this.format(b, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(i18n.phonenumbers.PhoneNumberUtil.NON_DIGITS_PATTERN_);\n 0 == b[0].length && b.shift();\n return 2 >= b.length ? 0 : this.getNumberType(a) == i18n.phonenumbers.PhoneNumberType.MOBILE && (a = i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(a.getCountryCodeOrDefault()), \"\" != a) ? b[2].length + a.length : b[1].length;\n};\ni18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[a] || \"\";\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions = function() {\n return goog.array.filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata), function(a) {\n return isNaN(a);\n });\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes = function() {\n var a = goog.array.filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata), function(a) {\n return !isNaN(a);\n });\n return goog.array.map(a, function(a) {\n return parseInt(a, 10);\n });\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes = function() {\n var a = Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);\n return goog.array.join(this.getSupportedGlobalNetworkCallingCodes(), goog.array.map(a, function(a) {\n return parseInt(a, 10);\n }));\n};\ni18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_ = function(a) {\n return null != a && (1 != a.possibleLengthCount() || -1 != a.possibleLengthArray()[0]);\n};\ni18n.phonenumbers.PhoneNumberUtil.descHasData_ = function(a) {\n return null != a && (a.hasExampleNumber() || i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(a) || a.hasNationalNumberPattern());\n};\ni18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_ = function(a) {\n var b = [];\n goog.object.forEach(i18n.phonenumbers.PhoneNumberType, function(c) {\n if (c != i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE && c != i18n.phonenumbers.PhoneNumberType.UNKNOWN) {\n var d = i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(a, c);\n i18n.phonenumbers.PhoneNumberUtil.descHasData_(d) && b.push(c);\n }\n });\n return b;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForRegion = function(a) {\n return this.isValidRegionCode_(a) ? i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(this.getMetadataForRegion(a)) : [];\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForNonGeoEntity = function(a) {\n a = this.getMetadataForNonGeographicalRegion(a);\n return null == a ? [] : i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(a);\n};\ni18n.phonenumbers.PhoneNumberUtil.normalizeHelper_ = function(a, b, c) {\n for (var d = new goog.string.StringBuffer, e, f, g = a.length, h = 0; h < g; ++h) {\n e = a.charAt(h), f = b[e.toUpperCase()], null != f ? d.append(f) : c || d.append(e);\n }\n return d.toString();\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formattingRuleHasFirstGroupOnly = function(a) {\n return 0 == a.length || i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_ONLY_PREFIX_PATTERN_.test(a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isNumberGeographical = function(a) {\n var b = this.getNumberType(a);\n return b == i18n.phonenumbers.PhoneNumberType.FIXED_LINE || b == i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE || goog.array.contains(i18n.phonenumbers.PhoneNumberUtil.GEO_MOBILE_COUNTRIES_, a.getCountryCodeOrDefault()) && b == i18n.phonenumbers.PhoneNumberType.MOBILE;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isValidRegionCode_ = function(a) {\n return null != a && isNaN(a) && a.toUpperCase() in i18n.phonenumbers.metadata.countryToMetadata;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.hasValidCountryCallingCode_ = function(a) {\n return a in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.format = function(a, b) {\n if (0 == a.getNationalNumber() && a.hasRawInput()) {\n var c = a.getRawInputOrDefault();\n if (0 < c.length) {\n return c;\n }\n }\n c = a.getCountryCodeOrDefault();\n var d = this.getNationalSignificantNumber(a);\n if (b == i18n.phonenumbers.PhoneNumberFormat.E164) {\n return this.prefixNumberWithCountryCallingCode_(c, i18n.phonenumbers.PhoneNumberFormat.E164, d, \"\");\n }\n if (!this.hasValidCountryCallingCode_(c)) {\n return d;\n }\n var e = this.getRegionCodeForCountryCode(c), f = this.getMetadataForRegionOrCallingCode_(c, e);\n e = this.maybeGetFormattedExtension_(a, f, b);\n d = this.formatNsn_(d, f, b);\n return this.prefixNumberWithCountryCallingCode_(c, b, d, e);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatByPattern = function(a, b, c) {\n var d = a.getCountryCodeOrDefault(), e = this.getNationalSignificantNumber(a);\n if (!this.hasValidCountryCallingCode_(d)) {\n return e;\n }\n var f = this.getRegionCodeForCountryCode(d);\n f = this.getMetadataForRegionOrCallingCode_(d, f);\n var g = this.chooseFormattingPatternForNumber_(c, e);\n if (null != g) {\n c = g.clone();\n g = g.getNationalPrefixFormattingRuleOrDefault();\n if (0 < g.length) {\n var h = f.getNationalPrefixOrDefault();\n 0 < h.length ? (g = g.replace(i18n.phonenumbers.PhoneNumberUtil.NP_PATTERN_, h).replace(i18n.phonenumbers.PhoneNumberUtil.FG_PATTERN_, \"$1\"), c.setNationalPrefixFormattingRule(g)) : c.clearNationalPrefixFormattingRule();\n }\n e = this.formatNsnUsingPattern_(e, c, b);\n }\n a = this.maybeGetFormattedExtension_(a, f, b);\n return this.prefixNumberWithCountryCallingCode_(d, b, e, a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithCarrierCode = function(a, b) {\n var c = a.getCountryCodeOrDefault(), d = this.getNationalSignificantNumber(a);\n if (!this.hasValidCountryCallingCode_(c)) {\n return d;\n }\n var e = this.getRegionCodeForCountryCode(c), f = this.getMetadataForRegionOrCallingCode_(c, e);\n e = this.maybeGetFormattedExtension_(a, f, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n d = this.formatNsn_(d, f, i18n.phonenumbers.PhoneNumberFormat.NATIONAL, b);\n return this.prefixNumberWithCountryCallingCode_(c, i18n.phonenumbers.PhoneNumberFormat.NATIONAL, d, e);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegionOrCallingCode_ = function(a, b) {\n return i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY == b ? this.getMetadataForNonGeographicalRegion(a) : this.getMetadataForRegion(b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatNationalNumberWithPreferredCarrierCode = function(a, b) {\n return this.formatNationalNumberWithCarrierCode(a, 0 < a.getPreferredDomesticCarrierCodeOrDefault().length ? a.getPreferredDomesticCarrierCodeOrDefault() : b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatNumberForMobileDialing = function(a, b, c) {\n var d = a.getCountryCodeOrDefault();\n if (!this.hasValidCountryCallingCode_(d)) {\n return a.hasRawInput() ? a.getRawInputOrDefault() : \"\";\n }\n var e = \"\";\n a = a.clone();\n a.clearExtension();\n var f = this.getRegionCodeForCountryCode(d), g = this.getNumberType(a), h = g != i18n.phonenumbers.PhoneNumberType.UNKNOWN;\n if (b == f) {\n e = g == i18n.phonenumbers.PhoneNumberType.FIXED_LINE || g == i18n.phonenumbers.PhoneNumberType.MOBILE || g == i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE, \"CO\" == f && g == i18n.phonenumbers.PhoneNumberType.FIXED_LINE ? e = this.formatNationalNumberWithCarrierCode(a, i18n.phonenumbers.PhoneNumberUtil.COLOMBIA_MOBILE_TO_FIXED_LINE_PREFIX_) : \"BR\" == f && e ? e = 0 < a.getPreferredDomesticCarrierCodeOrDefault().length ? this.formatNationalNumberWithPreferredCarrierCode(a, \"\") : \"\" : \n d == i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_ ? (b = this.getMetadataForRegion(b), e = this.canBeInternationallyDialled(a) && this.testNumberLength_(this.getNationalSignificantNumber(a), b) != i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT ? this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL) : this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL)) : e = (f == i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY || (\"MX\" == f || \"CL\" == \n f || \"UZ\" == f) && e) && this.canBeInternationallyDialled(a) ? this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL) : this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n } else {\n if (h && this.canBeInternationallyDialled(a)) {\n return c ? this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL) : this.format(a, i18n.phonenumbers.PhoneNumberFormat.E164);\n }\n }\n return c ? e : i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(e);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryCallingNumber = function(a, b) {\n if (!this.isValidRegionCode_(b)) {\n return this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);\n }\n var c = a.getCountryCodeOrDefault(), d = this.getNationalSignificantNumber(a);\n if (!this.hasValidCountryCallingCode_(c)) {\n return d;\n }\n if (c == i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_) {\n if (this.isNANPACountry(b)) {\n return c + \" \" + this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n }\n } else {\n if (c == this.getCountryCodeForValidRegion_(b)) {\n return this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n }\n }\n var e = this.getMetadataForRegion(b), f = e.getInternationalPrefixOrDefault(), g = \"\";\n i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_, f) ? g = f : e.hasPreferredInternationalPrefix() && (g = e.getPreferredInternationalPrefixOrDefault());\n e = this.getRegionCodeForCountryCode(c);\n e = this.getMetadataForRegionOrCallingCode_(c, e);\n d = this.formatNsn_(d, e, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);\n e = this.maybeGetFormattedExtension_(a, e, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);\n return 0 < g.length ? g + \" \" + c + \" \" + d + e : this.prefixNumberWithCountryCallingCode_(c, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL, d, e);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatInOriginalFormat = function(a, b) {\n if (a.hasRawInput() && !this.hasFormattingPatternForNumber_(a)) {\n return a.getRawInputOrDefault();\n }\n if (!a.hasCountryCodeSource()) {\n return this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n }\n switch(a.getCountryCodeSource()) {\n case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN:\n var c = this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);\n break;\n case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD:\n c = this.formatOutOfCountryCallingNumber(a, b);\n break;\n case i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN:\n c = this.format(a, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL).substring(1);\n break;\n default:\n var d = this.getRegionCodeForCountryCode(a.getCountryCodeOrDefault()), e = this.getNddPrefixForRegion(d, !0);\n c = this.format(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n if (null != e && 0 != e.length && !this.rawInputContainsNationalPrefix_(a.getRawInputOrDefault(), e, d) && (d = this.getMetadataForRegion(d), e = this.getNationalSignificantNumber(a), d = this.chooseFormattingPatternForNumber_(d.numberFormatArray(), e), null != d)) {\n e = d.getNationalPrefixFormattingRuleOrDefault();\n var f = e.indexOf(\"$1\");\n 0 >= f || (e = e.substring(0, f), e = i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(e), 0 != e.length && (c = d.clone(), c.clearNationalPrefixFormattingRule(), c = this.formatByPattern(a, i18n.phonenumbers.PhoneNumberFormat.NATIONAL, [c])));\n }\n }\n d = a.getRawInputOrDefault();\n null != c && 0 < d.length && (e = i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(c), f = i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(d), e != f && (c = d));\n return c;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.rawInputContainsNationalPrefix_ = function(a, b, c) {\n a = i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(a);\n if (goog.string.startsWith(a, b)) {\n try {\n return this.isValidNumber(this.parse(a.substring(b.length), c));\n } catch (d) {\n }\n }\n return !1;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.hasFormattingPatternForNumber_ = function(a) {\n var b = a.getCountryCodeOrDefault(), c = this.getRegionCodeForCountryCode(b);\n b = this.getMetadataForRegionOrCallingCode_(b, c);\n if (null == b) {\n return !1;\n }\n a = this.getNationalSignificantNumber(a);\n return null != this.chooseFormattingPatternForNumber_(b.numberFormatArray(), a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatOutOfCountryKeepingAlphaChars = function(a, b) {\n var c = a.getRawInputOrDefault();\n if (0 == c.length) {\n return this.formatOutOfCountryCallingNumber(a, b);\n }\n var d = a.getCountryCodeOrDefault();\n if (!this.hasValidCountryCallingCode_(d)) {\n return c;\n }\n c = i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_(c, i18n.phonenumbers.PhoneNumberUtil.ALL_PLUS_NUMBER_GROUPING_SYMBOLS_, !0);\n var e = this.getNationalSignificantNumber(a);\n if (3 < e.length) {\n var f = c.indexOf(e.substring(0, 3));\n -1 != f && (c = c.substring(f));\n }\n f = this.getMetadataForRegion(b);\n if (d == i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_) {\n if (this.isNANPACountry(b)) {\n return d + \" \" + c;\n }\n } else {\n if (null != f && d == this.getCountryCodeForValidRegion_(b)) {\n d = this.chooseFormattingPatternForNumber_(f.numberFormatArray(), e);\n if (null == d) {\n return c;\n }\n d = d.clone();\n d.setPattern(\"(\\\\d+)(.*)\");\n d.setFormat(\"$1$2\");\n return this.formatNsnUsingPattern_(c, d, i18n.phonenumbers.PhoneNumberFormat.NATIONAL);\n }\n }\n e = \"\";\n null != f && (e = f.getInternationalPrefixOrDefault(), e = i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.SINGLE_INTERNATIONAL_PREFIX_, e) ? e : f.getPreferredInternationalPrefixOrDefault());\n f = this.getRegionCodeForCountryCode(d);\n f = this.getMetadataForRegionOrCallingCode_(d, f);\n f = this.maybeGetFormattedExtension_(a, f, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL);\n return 0 < e.length ? e + \" \" + d + \" \" + c + f : this.prefixNumberWithCountryCallingCode_(d, i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL, c, f);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getNationalSignificantNumber = function(a) {\n if (!a.hasNationalNumber()) {\n return \"\";\n }\n var b = \"\" + a.getNationalNumber();\n return a.hasItalianLeadingZero() && a.getItalianLeadingZero() && 0 < a.getNumberOfLeadingZerosOrDefault() ? Array(a.getNumberOfLeadingZerosOrDefault() + 1).join(\"0\") + b : b;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.prefixNumberWithCountryCallingCode_ = function(a, b, c, d) {\n switch(b) {\n case i18n.phonenumbers.PhoneNumberFormat.E164:\n return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN + a + c + d;\n case i18n.phonenumbers.PhoneNumberFormat.INTERNATIONAL:\n return i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN + a + \" \" + c + d;\n case i18n.phonenumbers.PhoneNumberFormat.RFC3966:\n return i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_ + i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN + a + \"-\" + c + d;\n default:\n return c + d;\n }\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatNsn_ = function(a, b, c, d) {\n b = 0 == b.intlNumberFormatArray().length || c == i18n.phonenumbers.PhoneNumberFormat.NATIONAL ? b.numberFormatArray() : b.intlNumberFormatArray();\n b = this.chooseFormattingPatternForNumber_(b, a);\n return null == b ? a : this.formatNsnUsingPattern_(a, b, c, d);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.chooseFormattingPatternForNumber_ = function(a, b) {\n for (var c, d = a.length, e = 0; e < d; ++e) {\n c = a[e];\n var f = c.leadingDigitsPatternCount();\n if (0 == f || 0 == b.search(c.getLeadingDigitsPattern(f - 1))) {\n if (f = new RegExp(c.getPattern()), i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(f, b)) {\n return c;\n }\n }\n }\n return null;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.formatNsnUsingPattern_ = function(a, b, c, d) {\n var e = b.getFormatOrDefault(), f = new RegExp(b.getPattern()), g = b.getDomesticCarrierCodeFormattingRuleOrDefault();\n c == i18n.phonenumbers.PhoneNumberFormat.NATIONAL && null != d && 0 < d.length && 0 < g.length ? (b = g.replace(i18n.phonenumbers.PhoneNumberUtil.CC_PATTERN_, d), e = e.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_, b), a = a.replace(f, e)) : (b = b.getNationalPrefixFormattingRuleOrDefault(), a = c == i18n.phonenumbers.PhoneNumberFormat.NATIONAL && null != b && 0 < b.length ? a.replace(f, e.replace(i18n.phonenumbers.PhoneNumberUtil.FIRST_GROUP_PATTERN_, b)) : a.replace(f, e));\n c == i18n.phonenumbers.PhoneNumberFormat.RFC3966 && (a = a.replace(new RegExp(\"^\" + i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_), \"\"), a = a.replace(new RegExp(i18n.phonenumbers.PhoneNumberUtil.SEPARATOR_PATTERN_, \"g\"), \"-\"));\n return a;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumber = function(a) {\n return this.getExampleNumberForType(a, i18n.phonenumbers.PhoneNumberType.FIXED_LINE);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForType = function(a, b) {\n if (!this.isValidRegionCode_(a)) {\n return null;\n }\n var c = i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(this.getMetadataForRegion(a), b);\n try {\n if (c.hasExampleNumber()) {\n return this.parse(c.getExampleNumber(), a);\n }\n } catch (d) {\n }\n return null;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getExampleNumberForNonGeoEntity = function(a) {\n var b = this.getMetadataForNonGeographicalRegion(a);\n if (null != b && (b = goog.array.find([b.getMobile(), b.getTollFree(), b.getSharedCost(), b.getVoip(), b.getVoicemail(), b.getUan(), b.getPremiumRate()], function(a, b) {\n return a.hasExampleNumber();\n }), null != b)) {\n try {\n return this.parse(\"+\" + a + b.getExampleNumber(), \"ZZ\");\n } catch (c) {\n }\n }\n return null;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.maybeGetFormattedExtension_ = function(a, b, c) {\n return a.hasExtension() && 0 != a.getExtension().length ? c == i18n.phonenumbers.PhoneNumberFormat.RFC3966 ? i18n.phonenumbers.PhoneNumberUtil.RFC3966_EXTN_PREFIX_ + a.getExtension() : b.hasPreferredExtnPrefix() ? b.getPreferredExtnPrefix() + a.getExtensionOrDefault() : i18n.phonenumbers.PhoneNumberUtil.DEFAULT_EXTN_PREFIX_ + a.getExtensionOrDefault() : \"\";\n};\ni18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_ = function(a, b) {\n switch(b) {\n case i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE:\n return a.getPremiumRate();\n case i18n.phonenumbers.PhoneNumberType.TOLL_FREE:\n return a.getTollFree();\n case i18n.phonenumbers.PhoneNumberType.MOBILE:\n return a.getMobile();\n case i18n.phonenumbers.PhoneNumberType.FIXED_LINE:\n case i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE:\n return a.getFixedLine();\n case i18n.phonenumbers.PhoneNumberType.SHARED_COST:\n return a.getSharedCost();\n case i18n.phonenumbers.PhoneNumberType.VOIP:\n return a.getVoip();\n case i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER:\n return a.getPersonalNumber();\n case i18n.phonenumbers.PhoneNumberType.PAGER:\n return a.getPager();\n case i18n.phonenumbers.PhoneNumberType.UAN:\n return a.getUan();\n case i18n.phonenumbers.PhoneNumberType.VOICEMAIL:\n return a.getVoicemail();\n default:\n return a.getGeneralDesc();\n }\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getNumberType = function(a) {\n var b = this.getRegionCodeForNumber(a);\n b = this.getMetadataForRegionOrCallingCode_(a.getCountryCodeOrDefault(), b);\n if (null == b) {\n return i18n.phonenumbers.PhoneNumberType.UNKNOWN;\n }\n a = this.getNationalSignificantNumber(a);\n return this.getNumberTypeHelper_(a, b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getNumberTypeHelper_ = function(a, b) {\n return this.isNumberMatchingDesc_(a, b.getGeneralDesc()) ? this.isNumberMatchingDesc_(a, b.getPremiumRate()) ? i18n.phonenumbers.PhoneNumberType.PREMIUM_RATE : this.isNumberMatchingDesc_(a, b.getTollFree()) ? i18n.phonenumbers.PhoneNumberType.TOLL_FREE : this.isNumberMatchingDesc_(a, b.getSharedCost()) ? i18n.phonenumbers.PhoneNumberType.SHARED_COST : this.isNumberMatchingDesc_(a, b.getVoip()) ? i18n.phonenumbers.PhoneNumberType.VOIP : this.isNumberMatchingDesc_(a, b.getPersonalNumber()) ? i18n.phonenumbers.PhoneNumberType.PERSONAL_NUMBER : \n this.isNumberMatchingDesc_(a, b.getPager()) ? i18n.phonenumbers.PhoneNumberType.PAGER : this.isNumberMatchingDesc_(a, b.getUan()) ? i18n.phonenumbers.PhoneNumberType.UAN : this.isNumberMatchingDesc_(a, b.getVoicemail()) ? i18n.phonenumbers.PhoneNumberType.VOICEMAIL : this.isNumberMatchingDesc_(a, b.getFixedLine()) ? b.getSameMobileAndFixedLinePattern() || this.isNumberMatchingDesc_(a, b.getMobile()) ? i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE : i18n.phonenumbers.PhoneNumberType.FIXED_LINE : \n !b.getSameMobileAndFixedLinePattern() && this.isNumberMatchingDesc_(a, b.getMobile()) ? i18n.phonenumbers.PhoneNumberType.MOBILE : i18n.phonenumbers.PhoneNumberType.UNKNOWN : i18n.phonenumbers.PhoneNumberType.UNKNOWN;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForRegion = function(a) {\n if (null == a) {\n return null;\n }\n a = a.toUpperCase();\n var b = this.regionToMetadataMap[a];\n if (null == b) {\n b = new goog.proto2.PbLiteSerializer;\n var c = i18n.phonenumbers.metadata.countryToMetadata[a];\n if (null == c) {\n return null;\n }\n b = b.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(), c);\n this.regionToMetadataMap[a] = b;\n }\n return b;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getMetadataForNonGeographicalRegion = function(a) {\n return this.getMetadataForRegion(\"\" + a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatchingDesc_ = function(a, b) {\n var c = a.length;\n return 0 < b.possibleLengthCount() && -1 == goog.array.indexOf(b.possibleLengthArray(), c) ? !1 : i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(b.getNationalNumberPatternOrDefault(), a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumber = function(a) {\n var b = this.getRegionCodeForNumber(a);\n return this.isValidNumberForRegion(a, b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isValidNumberForRegion = function(a, b) {\n var c = a.getCountryCodeOrDefault(), d = this.getMetadataForRegionOrCallingCode_(c, b);\n if (null == d || i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY != b && c != this.getCountryCodeForValidRegion_(b)) {\n return !1;\n }\n c = this.getNationalSignificantNumber(a);\n return this.getNumberTypeHelper_(c, d) != i18n.phonenumbers.PhoneNumberType.UNKNOWN;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumber = function(a) {\n if (null == a) {\n return null;\n }\n var b = a.getCountryCodeOrDefault();\n b = i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[b];\n return null == b ? null : 1 == b.length ? b[0] : this.getRegionCodeForNumberFromRegionList_(a, b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForNumberFromRegionList_ = function(a, b) {\n for (var c = this.getNationalSignificantNumber(a), d, e = b.length, f = 0; f < e; f++) {\n d = b[f];\n var g = this.getMetadataForRegion(d);\n if (g.hasLeadingDigits()) {\n if (0 == c.search(g.getLeadingDigits())) {\n return d;\n }\n } else {\n if (this.getNumberTypeHelper_(c, g) != i18n.phonenumbers.PhoneNumberType.UNKNOWN) {\n return d;\n }\n }\n }\n return null;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodeForCountryCode = function(a) {\n a = i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[a];\n return null == a ? i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_ : a[0];\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getRegionCodesForCountryCode = function(a) {\n a = i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[a];\n return null == a ? [] : a;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForRegion = function(a) {\n return this.isValidRegionCode_(a) ? this.getCountryCodeForValidRegion_(a) : 0;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getCountryCodeForValidRegion_ = function(a) {\n var b = this.getMetadataForRegion(a);\n if (null == b) {\n throw Error(\"Invalid region code: \" + a);\n }\n return b.getCountryCodeOrDefault();\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.getNddPrefixForRegion = function(a, b) {\n var c = this.getMetadataForRegion(a);\n if (null == c) {\n return null;\n }\n c = c.getNationalPrefixOrDefault();\n if (0 == c.length) {\n return null;\n }\n b && (c = c.replace(\"~\", \"\"));\n return c;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isNANPACountry = function(a) {\n return null != a && goog.array.contains(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[i18n.phonenumbers.PhoneNumberUtil.NANPA_COUNTRY_CODE_], a.toUpperCase());\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isAlphaNumber = function(a) {\n if (!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(a)) {\n return !1;\n }\n a = new goog.string.StringBuffer(a);\n this.maybeStripExtension(a);\n return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(i18n.phonenumbers.PhoneNumberUtil.VALID_ALPHA_PHONE_PATTERN_, a.toString());\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumber = function(a) {\n a = this.isPossibleNumberWithReason(a);\n return a == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE || a == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForType = function(a, b) {\n var c = this.isPossibleNumberForTypeWithReason(a, b);\n return c == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE || c == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLength_ = function(a, b) {\n return this.testNumberLengthForType_(a, b, i18n.phonenumbers.PhoneNumberType.UNKNOWN);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.testNumberLengthForType_ = function(a, b, c) {\n var d = i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(b, c), e = 0 == d.possibleLengthCount() ? b.getGeneralDesc().possibleLengthArray() : d.possibleLengthArray();\n d = d.possibleLengthLocalOnlyArray();\n if (c == i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE) {\n if (i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(b, i18n.phonenumbers.PhoneNumberType.FIXED_LINE))) {\n c = i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(b, i18n.phonenumbers.PhoneNumberType.MOBILE), i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(c) && (e = e.concat(0 == c.possibleLengthCount() ? b.getGeneralDesc().possibleLengthArray() : c.possibleLengthArray()), goog.array.sort(e), 0 == d.length ? d = c.possibleLengthLocalOnlyArray() : (d = d.concat(c.possibleLengthLocalOnlyArray()), goog.array.sort(d)));\n } else {\n return this.testNumberLengthForType_(a, b, i18n.phonenumbers.PhoneNumberType.MOBILE);\n }\n }\n if (-1 == e[0]) {\n return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH;\n }\n a = a.length;\n if (-1 < goog.array.indexOf(d, a)) {\n return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE_LOCAL_ONLY;\n }\n b = e[0];\n return b == a ? i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE : b > a ? i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT : e[e.length - 1] < a ? i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG : -1 < goog.array.indexOf(e, a, 1) ? i18n.phonenumbers.PhoneNumberUtil.ValidationResult.IS_POSSIBLE : i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_LENGTH;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberWithReason = function(a) {\n return this.isPossibleNumberForTypeWithReason(a, i18n.phonenumbers.PhoneNumberType.UNKNOWN);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberForTypeWithReason = function(a, b) {\n var c = this.getNationalSignificantNumber(a), d = a.getCountryCodeOrDefault();\n if (!this.hasValidCountryCallingCode_(d)) {\n return i18n.phonenumbers.PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE;\n }\n var e = this.getRegionCodeForCountryCode(d);\n d = this.getMetadataForRegionOrCallingCode_(d, e);\n return this.testNumberLengthForType_(c, d, b);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isPossibleNumberString = function(a, b) {\n try {\n return this.isPossibleNumber(this.parse(a, b));\n } catch (c) {\n return !1;\n }\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.truncateTooLongNumber = function(a) {\n if (this.isValidNumber(a)) {\n return !0;\n }\n var b = a.clone(), c = a.getNationalNumberOrDefault();\n do {\n if (c = Math.floor(c / 10), b.setNationalNumber(c), 0 == c || this.isPossibleNumberWithReason(b) == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT) {\n return !1;\n }\n } while (!this.isValidNumber(b));\n a.setNationalNumber(c);\n return !0;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.extractCountryCode = function(a, b) {\n var c = a.toString();\n if (0 == c.length || \"0\" == c.charAt(0)) {\n return 0;\n }\n for (var d, e = c.length, f = 1; f <= i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_COUNTRY_CODE_ && f <= e; ++f) {\n if (d = parseInt(c.substring(0, f), 10), d in i18n.phonenumbers.metadata.countryCodeToRegionCodeMap) {\n return b.append(c.substring(f)), d;\n }\n }\n return 0;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.maybeExtractCountryCode = function(a, b, c, d, e) {\n if (0 == a.length) {\n return 0;\n }\n a = new goog.string.StringBuffer(a);\n var f;\n null != b && (f = b.getInternationalPrefix());\n null == f && (f = \"NonMatch\");\n f = this.maybeStripInternationalPrefixAndNormalize(a, f);\n d && e.setCountryCodeSource(f);\n if (f != i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY) {\n if (a.getLength() <= i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_) {\n throw Error(i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD);\n }\n b = this.extractCountryCode(a, c);\n if (0 != b) {\n return e.setCountryCode(b), b;\n }\n throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);\n }\n if (null != b) {\n f = b.getCountryCodeOrDefault();\n var g = \"\" + f, h = a.toString();\n if (goog.string.startsWith(h, g) && (g = new goog.string.StringBuffer(h.substring(g.length)), h = b.getGeneralDesc(), h = new RegExp(h.getNationalNumberPatternOrDefault()), this.maybeStripNationalPrefixAndCarrierCode(g, b, null), g = g.toString(), !i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(h, a.toString()) && i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(h, g) || this.testNumberLength_(a.toString(), b) == i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_LONG)) {\n return c.append(g), d && e.setCountryCodeSource(i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN), e.setCountryCode(f), f;\n }\n }\n e.setCountryCode(0);\n return 0;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.parsePrefixAsIdd_ = function(a, b) {\n var c = b.toString();\n if (0 == c.search(a)) {\n var d = c.match(a)[0].length, e = c.substring(d).match(i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN);\n if (e && null != e[1] && 0 < e[1].length && \"0\" == i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(e[1])) {\n return !1;\n }\n b.clear();\n b.append(c.substring(d));\n return !0;\n }\n return !1;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripInternationalPrefixAndNormalize = function(a, b) {\n var c = a.toString();\n if (0 == c.length) {\n return i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY;\n }\n if (i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(c)) {\n return c = c.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN, \"\"), a.clear(), a.append(i18n.phonenumbers.PhoneNumberUtil.normalize(c)), i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN;\n }\n c = new RegExp(b);\n i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(a);\n return this.parsePrefixAsIdd_(c, a) ? i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_IDD : i18n.phonenumbers.PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripNationalPrefixAndCarrierCode = function(a, b, c) {\n var d = a.toString(), e = d.length, f = b.getNationalPrefixForParsing();\n if (0 == e || null == f || 0 == f.length) {\n return !1;\n }\n var g = new RegExp(\"^(?:\" + f + \")\");\n if (e = g.exec(d)) {\n f = new RegExp(b.getGeneralDesc().getNationalNumberPatternOrDefault());\n var h = i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(f, d), k = e.length - 1;\n b = b.getNationalPrefixTransformRule();\n if (null == b || 0 == b.length || null == e[k] || 0 == e[k].length) {\n if (h && !i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(f, d.substring(e[0].length))) {\n return !1;\n }\n null != c && 0 < k && null != e[k] && c.append(e[1]);\n a.set(d.substring(e[0].length));\n } else {\n d = d.replace(g, b);\n if (h && !i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(f, d)) {\n return !1;\n }\n null != c && 0 < k && c.append(e[1]);\n a.set(d);\n }\n return !0;\n }\n return !1;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.maybeStripExtension = function(a) {\n var b = a.toString(), c = b.search(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_);\n if (0 <= c && i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(b.substring(0, c))) {\n for (var d = b.match(i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERN_), e = d.length, f = 1; f < e; ++f) {\n if (null != d[f] && 0 < d[f].length) {\n return a.clear(), a.append(b.substring(0, c)), d[f];\n }\n }\n }\n return \"\";\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.checkRegionForParsing_ = function(a, b) {\n return this.isValidRegionCode_(b) || null != a && 0 < a.length && i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(a);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.parse = function(a, b) {\n return this.parseHelper_(a, b, !1, !0);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.parseAndKeepRawInput = function(a, b) {\n if (!this.isValidRegionCode_(b) && 0 < a.length && a.charAt(0) != i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN) {\n throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);\n }\n return this.parseHelper_(a, b, !0, !0);\n};\ni18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_ = function(a, b) {\n if (1 < a.length && \"0\" == a.charAt(0)) {\n b.setItalianLeadingZero(!0);\n for (var c = 1; c < a.length - 1 && \"0\" == a.charAt(c);) {\n c++;\n }\n 1 != c && b.setNumberOfLeadingZeros(c);\n }\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.parseHelper_ = function(a, b, c, d) {\n if (null == a) {\n throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);\n }\n if (a.length > i18n.phonenumbers.PhoneNumberUtil.MAX_INPUT_STRING_LENGTH_) {\n throw Error(i18n.phonenumbers.Error.TOO_LONG);\n }\n var e = new goog.string.StringBuffer;\n this.buildNationalNumberForParsing_(a, e);\n if (!i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber(e.toString())) {\n throw Error(i18n.phonenumbers.Error.NOT_A_NUMBER);\n }\n if (d && !this.checkRegionForParsing_(e.toString(), b)) {\n throw Error(i18n.phonenumbers.Error.INVALID_COUNTRY_CODE);\n }\n d = new i18n.phonenumbers.PhoneNumber;\n c && d.setRawInput(a);\n a = this.maybeStripExtension(e);\n 0 < a.length && d.setExtension(a);\n var f = this.getMetadataForRegion(b);\n a = new goog.string.StringBuffer;\n var g = 0, h = e.toString();\n try {\n g = this.maybeExtractCountryCode(h, f, a, c, d);\n } catch (k) {\n if (k.message == i18n.phonenumbers.Error.INVALID_COUNTRY_CODE && i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(h)) {\n if (h = h.replace(i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN, \"\"), g = this.maybeExtractCountryCode(h, f, a, c, d), 0 == g) {\n throw k;\n }\n } else {\n throw k;\n }\n }\n 0 != g ? (e = this.getRegionCodeForCountryCode(g), e != b && (f = this.getMetadataForRegionOrCallingCode_(g, e))) : (i18n.phonenumbers.PhoneNumberUtil.normalizeSB_(e), a.append(e.toString()), null != b ? (g = f.getCountryCodeOrDefault(), d.setCountryCode(g)) : c && d.clearCountryCodeSource());\n if (a.getLength() < i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_) {\n throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);\n }\n null != f && (b = new goog.string.StringBuffer, e = new goog.string.StringBuffer(a.toString()), this.maybeStripNationalPrefixAndCarrierCode(e, f, b), f = this.testNumberLength_(e.toString(), f), g = i18n.phonenumbers.PhoneNumberUtil.ValidationResult, f != g.TOO_SHORT && f != g.IS_POSSIBLE_LOCAL_ONLY && f != g.INVALID_LENGTH && (a = e, c && 0 < b.toString().length && d.setPreferredDomesticCarrierCode(b.toString())));\n c = a.toString();\n a = c.length;\n if (a < i18n.phonenumbers.PhoneNumberUtil.MIN_LENGTH_FOR_NSN_) {\n throw Error(i18n.phonenumbers.Error.TOO_SHORT_NSN);\n }\n if (a > i18n.phonenumbers.PhoneNumberUtil.MAX_LENGTH_FOR_NSN_) {\n throw Error(i18n.phonenumbers.Error.TOO_LONG);\n }\n i18n.phonenumbers.PhoneNumberUtil.setItalianLeadingZerosForPhoneNumber_(c, d);\n d.setNationalNumber(parseInt(c, 10));\n return d;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.buildNationalNumberForParsing_ = function(a, b) {\n var c = a.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_);\n if (0 <= c) {\n var d = c + i18n.phonenumbers.PhoneNumberUtil.RFC3966_PHONE_CONTEXT_.length;\n if (a.charAt(d) == i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN) {\n var e = a.indexOf(\";\", d);\n 0 < e ? b.append(a.substring(d, e)) : b.append(a.substring(d));\n }\n d = a.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_);\n b.append(a.substring(0 <= d ? d + i18n.phonenumbers.PhoneNumberUtil.RFC3966_PREFIX_.length : 0, c));\n } else {\n b.append(i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(a));\n }\n c = b.toString();\n d = c.indexOf(i18n.phonenumbers.PhoneNumberUtil.RFC3966_ISDN_SUBADDRESS_);\n 0 < d && (b.clear(), b.append(c.substring(0, d)));\n};\ni18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_ = function(a) {\n var b = new i18n.phonenumbers.PhoneNumber;\n b.setCountryCode(a.getCountryCodeOrDefault());\n b.setNationalNumber(a.getNationalNumberOrDefault());\n 0 < a.getExtensionOrDefault().length && b.setExtension(a.getExtensionOrDefault());\n a.getItalianLeadingZero() && (b.setItalianLeadingZero(!0), b.setNumberOfLeadingZeros(a.getNumberOfLeadingZerosOrDefault()));\n return b;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isNumberMatch = function(a, b) {\n if (\"string\" == typeof a) {\n try {\n var c = this.parse(a, i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_);\n } catch (g) {\n if (g.message != i18n.phonenumbers.Error.INVALID_COUNTRY_CODE) {\n return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER;\n }\n if (\"string\" != typeof b) {\n var d = this.getRegionCodeForCountryCode(b.getCountryCodeOrDefault());\n if (d != i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_) {\n try {\n c = this.parse(a, d);\n } catch (h) {\n return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER;\n }\n c = this.isNumberMatch(c, b);\n return c == i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH ? i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH : c;\n }\n }\n try {\n c = this.parseHelper_(a, null, !1, !1);\n } catch (h) {\n return i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER;\n }\n }\n } else {\n c = a.clone();\n }\n if (\"string\" == typeof b) {\n try {\n var e = this.parse(b, i18n.phonenumbers.PhoneNumberUtil.UNKNOWN_REGION_);\n return this.isNumberMatch(a, e);\n } catch (g) {\n return g.message != i18n.phonenumbers.Error.INVALID_COUNTRY_CODE ? i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER : this.isNumberMatch(b, c);\n }\n } else {\n e = b.clone();\n }\n c = i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(c);\n e = i18n.phonenumbers.PhoneNumberUtil.copyCoreFieldsOnly_(e);\n if (c.hasExtension() && e.hasExtension() && c.getExtension() != e.getExtension()) {\n return i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH;\n }\n d = c.getCountryCodeOrDefault();\n var f = e.getCountryCodeOrDefault();\n if (0 != d && 0 != f) {\n return c.equals(e) ? i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH : d == f && this.isNationalNumberSuffixOfTheOther_(c, e) ? i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH : i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH;\n }\n c.setCountryCode(0);\n e.setCountryCode(0);\n return c.equals(e) ? i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH : this.isNationalNumberSuffixOfTheOther_(c, e) ? i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH : i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH;\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.isNationalNumberSuffixOfTheOther_ = function(a, b) {\n var c = \"\" + a.getNationalNumber(), d = \"\" + b.getNationalNumber();\n return goog.string.endsWith(c, d) || goog.string.endsWith(d, c);\n};\ni18n.phonenumbers.PhoneNumberUtil.prototype.canBeInternationallyDialled = function(a) {\n var b = this.getMetadataForRegion(this.getRegionCodeForNumber(a));\n if (null == b) {\n return !0;\n }\n a = this.getNationalSignificantNumber(a);\n return !this.isNumberMatchingDesc_(a, b.getNoInternationalDialling());\n};\ni18n.phonenumbers.PhoneNumberUtil.matchesEntirely = function(a, b) {\n var c = \"string\" == typeof a ? b.match(\"^(?:\" + a + \")$\") : b.match(a);\n return c && c[0].length == b.length ? !0 : !1;\n};\ni18n.phonenumbers.PhoneNumberUtil.matchesPrefix = function(a, b) {\n var c = \"string\" == typeof a ? b.match(\"^(?:\" + a + \")\") : b.match(a);\n return c && goog.string.startsWith(b, c[0]) ? !0 : !1;\n};\ni18n.phonenumbers.AsYouTypeFormatter = function(a) {\n this.DIGIT_PLACEHOLDER_ = \"\\u2008\";\n this.DIGIT_PATTERN_ = new RegExp(this.DIGIT_PLACEHOLDER_);\n this.currentOutput_ = \"\";\n this.formattingTemplate_ = new goog.string.StringBuffer;\n this.currentFormattingPattern_ = \"\";\n this.accruedInput_ = new goog.string.StringBuffer;\n this.accruedInputWithoutFormatting_ = new goog.string.StringBuffer;\n this.ableToFormat_ = !0;\n this.isExpectingCountryCallingCode_ = this.isCompleteNumber_ = this.inputHasFormatting_ = !1;\n this.phoneUtil_ = i18n.phonenumbers.PhoneNumberUtil.getInstance();\n this.positionToRemember_ = this.originalPosition_ = this.lastMatchPosition_ = 0;\n this.prefixBeforeNationalNumber_ = new goog.string.StringBuffer;\n this.shouldAddSpaceAfterNationalPrefix_ = !1;\n this.extractedNationalPrefix_ = \"\";\n this.nationalNumber_ = new goog.string.StringBuffer;\n this.possibleFormats_ = [];\n this.defaultCountry_ = a;\n this.defaultMetadata_ = this.currentMetadata_ = this.getMetadataForRegion_(this.defaultCountry_);\n};\ni18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_ = \" \";\ni18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_ = new i18n.phonenumbers.PhoneMetadata;\ni18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_.setInternationalPrefix(\"NA\");\ni18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_ = new RegExp(\"^[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + \"]*(\\\\$\\\\d[\" + i18n.phonenumbers.PhoneNumberUtil.VALID_PUNCTUATION + \"]*)+$\");\ni18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_ = /[- ]/;\ni18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_ = 3;\ni18n.phonenumbers.AsYouTypeFormatter.prototype.getMetadataForRegion_ = function(a) {\n a = this.phoneUtil_.getCountryCodeForRegion(a);\n a = this.phoneUtil_.getRegionCodeForCountryCode(a);\n a = this.phoneUtil_.getMetadataForRegion(a);\n return null != a ? a : i18n.phonenumbers.AsYouTypeFormatter.EMPTY_METADATA_;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.maybeCreateNewTemplate_ = function() {\n for (var a = this.possibleFormats_.length, b = 0; b < a; ++b) {\n var c = this.possibleFormats_[b], d = c.getPatternOrDefault();\n if (this.currentFormattingPattern_ == d) {\n return !1;\n }\n if (this.createFormattingTemplate_(c)) {\n return this.currentFormattingPattern_ = d, this.shouldAddSpaceAfterNationalPrefix_ = i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(c.getNationalPrefixFormattingRule()), this.lastMatchPosition_ = 0, !0;\n }\n }\n return this.ableToFormat_ = !1;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ = function(a) {\n for (var b = this.isCompleteNumber_ && 0 == this.extractedNationalPrefix_.length && 0 < this.currentMetadata_.intlNumberFormatCount() ? this.currentMetadata_.intlNumberFormatArray() : this.currentMetadata_.numberFormatArray(), c = b.length, d = 0; d < c; ++d) {\n var e = b[d];\n 0 < this.extractedNationalPrefix_.length && this.phoneUtil_.formattingRuleHasFirstGroupOnly(e.getNationalPrefixFormattingRuleOrDefault()) && !e.getNationalPrefixOptionalWhenFormatting() && !e.hasDomesticCarrierCodeFormattingRule() || (0 != this.extractedNationalPrefix_.length || this.isCompleteNumber_ || this.phoneUtil_.formattingRuleHasFirstGroupOnly(e.getNationalPrefixFormattingRuleOrDefault()) || e.getNationalPrefixOptionalWhenFormatting()) && i18n.phonenumbers.AsYouTypeFormatter.ELIGIBLE_FORMAT_PATTERN_.test(e.getFormatOrDefault()) && \n this.possibleFormats_.push(e);\n }\n this.narrowDownPossibleFormats_(a);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.narrowDownPossibleFormats_ = function(a) {\n for (var b = [], c = a.length - i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_, d = this.possibleFormats_.length, e = 0; e < d; ++e) {\n var f = this.possibleFormats_[e];\n if (0 == f.leadingDigitsPatternCount()) {\n b.push(this.possibleFormats_[e]);\n } else {\n var g = Math.min(c, f.leadingDigitsPatternCount() - 1);\n f = f.getLeadingDigitsPattern(g);\n 0 == a.search(f) && b.push(this.possibleFormats_[e]);\n }\n }\n this.possibleFormats_ = b;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.createFormattingTemplate_ = function(a) {\n var b = a.getPatternOrDefault();\n this.formattingTemplate_.clear();\n a = this.getFormattingTemplate_(b, a.getFormatOrDefault());\n return 0 < a.length ? (this.formattingTemplate_.append(a), !0) : !1;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.getFormattingTemplate_ = function(a, b) {\n var c = \"999999999999999\".match(a)[0];\n if (c.length < this.nationalNumber_.getLength()) {\n return \"\";\n }\n c = c.replace(new RegExp(a, \"g\"), b);\n return c = c.replace(RegExp(\"9\", \"g\"), this.DIGIT_PLACEHOLDER_);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.clear = function() {\n this.currentOutput_ = \"\";\n this.accruedInput_.clear();\n this.accruedInputWithoutFormatting_.clear();\n this.formattingTemplate_.clear();\n this.lastMatchPosition_ = 0;\n this.currentFormattingPattern_ = \"\";\n this.prefixBeforeNationalNumber_.clear();\n this.extractedNationalPrefix_ = \"\";\n this.nationalNumber_.clear();\n this.ableToFormat_ = !0;\n this.inputHasFormatting_ = !1;\n this.originalPosition_ = this.positionToRemember_ = 0;\n this.isExpectingCountryCallingCode_ = this.isCompleteNumber_ = !1;\n this.possibleFormats_ = [];\n this.shouldAddSpaceAfterNationalPrefix_ = !1;\n this.currentMetadata_ != this.defaultMetadata_ && (this.currentMetadata_ = this.getMetadataForRegion_(this.defaultCountry_));\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigit = function(a) {\n return this.currentOutput_ = this.inputDigitWithOptionToRememberPosition_(a, !1);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitAndRememberPosition = function(a) {\n return this.currentOutput_ = this.inputDigitWithOptionToRememberPosition_(a, !0);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitWithOptionToRememberPosition_ = function(a, b) {\n this.accruedInput_.append(a);\n b && (this.originalPosition_ = this.accruedInput_.getLength());\n this.isDigitOrLeadingPlusSign_(a) ? a = this.normalizeAndAccrueDigitsAndPlusSign_(a, b) : (this.ableToFormat_ = !1, this.inputHasFormatting_ = !0);\n if (!this.ableToFormat_) {\n if (!this.inputHasFormatting_) {\n if (this.attemptToExtractIdd_()) {\n if (this.attemptToExtractCountryCallingCode_()) {\n return this.attemptToChoosePatternWithPrefixExtracted_();\n }\n } else {\n if (this.ableToExtractLongerNdd_()) {\n return this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_), this.attemptToChoosePatternWithPrefixExtracted_();\n }\n }\n }\n return this.accruedInput_.toString();\n }\n switch(this.accruedInputWithoutFormatting_.getLength()) {\n case 0:\n case 1:\n case 2:\n return this.accruedInput_.toString();\n case 3:\n if (this.attemptToExtractIdd_()) {\n this.isExpectingCountryCallingCode_ = !0;\n } else {\n return this.extractedNationalPrefix_ = this.removeNationalPrefixFromNationalNumber_(), this.attemptToChooseFormattingPattern_();\n }\n default:\n if (this.isExpectingCountryCallingCode_) {\n return this.attemptToExtractCountryCallingCode_() && (this.isExpectingCountryCallingCode_ = !1), this.prefixBeforeNationalNumber_.toString() + this.nationalNumber_.toString();\n }\n if (0 < this.possibleFormats_.length) {\n var c = this.inputDigitHelper_(a), d = this.attemptToFormatAccruedDigits_();\n if (0 < d.length) {\n return d;\n }\n this.narrowDownPossibleFormats_(this.nationalNumber_.toString());\n return this.maybeCreateNewTemplate_() ? this.inputAccruedNationalNumber_() : this.ableToFormat_ ? this.appendNationalNumber_(c) : this.accruedInput_.toString();\n }\n return this.attemptToChooseFormattingPattern_();\n }\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChoosePatternWithPrefixExtracted_ = function() {\n this.ableToFormat_ = !0;\n this.isExpectingCountryCallingCode_ = !1;\n this.possibleFormats_ = [];\n this.lastMatchPosition_ = 0;\n this.formattingTemplate_.clear();\n this.currentFormattingPattern_ = \"\";\n return this.attemptToChooseFormattingPattern_();\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.getExtractedNationalPrefix_ = function() {\n return this.extractedNationalPrefix_;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.ableToExtractLongerNdd_ = function() {\n if (0 < this.extractedNationalPrefix_.length) {\n var a = this.nationalNumber_.toString();\n this.nationalNumber_.clear();\n this.nationalNumber_.append(this.extractedNationalPrefix_);\n this.nationalNumber_.append(a);\n a = this.prefixBeforeNationalNumber_.toString();\n var b = a.lastIndexOf(this.extractedNationalPrefix_);\n this.prefixBeforeNationalNumber_.clear();\n this.prefixBeforeNationalNumber_.append(a.substring(0, b));\n }\n return this.extractedNationalPrefix_ != this.removeNationalPrefixFromNationalNumber_();\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.isDigitOrLeadingPlusSign_ = function(a) {\n return i18n.phonenumbers.PhoneNumberUtil.CAPTURING_DIGIT_PATTERN.test(a) || 1 == this.accruedInput_.getLength() && i18n.phonenumbers.PhoneNumberUtil.PLUS_CHARS_PATTERN.test(a);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToFormatAccruedDigits_ = function() {\n for (var a = this.nationalNumber_.toString(), b = this.possibleFormats_.length, c = 0; c < b; ++c) {\n var d = this.possibleFormats_[c], e = d.getPatternOrDefault();\n if ((new RegExp(\"^(?:\" + e + \")$\")).test(a) && (this.shouldAddSpaceAfterNationalPrefix_ = i18n.phonenumbers.AsYouTypeFormatter.NATIONAL_PREFIX_SEPARATORS_PATTERN_.test(d.getNationalPrefixFormattingRule()), d = a.replace(new RegExp(e, \"g\"), d.getFormat()), d = this.appendNationalNumber_(d), i18n.phonenumbers.PhoneNumberUtil.normalizeDiallableCharsOnly(d) == this.accruedInputWithoutFormatting_)) {\n return d;\n }\n }\n return \"\";\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.appendNationalNumber_ = function(a) {\n var b = this.prefixBeforeNationalNumber_.getLength();\n return this.shouldAddSpaceAfterNationalPrefix_ && 0 < b && this.prefixBeforeNationalNumber_.toString().charAt(b - 1) != i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_ ? this.prefixBeforeNationalNumber_ + i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_ + a : this.prefixBeforeNationalNumber_ + a;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.getRememberedPosition = function() {\n if (!this.ableToFormat_) {\n return this.originalPosition_;\n }\n for (var a = 0, b = 0, c = this.accruedInputWithoutFormatting_.toString(), d = this.currentOutput_.toString(); a < this.positionToRemember_ && b < d.length;) {\n c.charAt(a) == d.charAt(b) && a++, b++;\n }\n return b;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToChooseFormattingPattern_ = function() {\n var a = this.nationalNumber_.toString();\n return a.length >= i18n.phonenumbers.AsYouTypeFormatter.MIN_LEADING_DIGITS_LENGTH_ ? (this.getAvailableFormats_(a), a = this.attemptToFormatAccruedDigits_(), 0 < a.length ? a : this.maybeCreateNewTemplate_() ? this.inputAccruedNationalNumber_() : this.accruedInput_.toString()) : this.appendNationalNumber_(a);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.inputAccruedNationalNumber_ = function() {\n var a = this.nationalNumber_.toString(), b = a.length;\n if (0 < b) {\n for (var c = \"\", d = 0; d < b; d++) {\n c = this.inputDigitHelper_(a.charAt(d));\n }\n return this.ableToFormat_ ? this.appendNationalNumber_(c) : this.accruedInput_.toString();\n }\n return this.prefixBeforeNationalNumber_.toString();\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.isNanpaNumberWithNationalPrefix_ = function() {\n if (1 != this.currentMetadata_.getCountryCode()) {\n return !1;\n }\n var a = this.nationalNumber_.toString();\n return \"1\" == a.charAt(0) && \"0\" != a.charAt(1) && \"1\" != a.charAt(1);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.removeNationalPrefixFromNationalNumber_ = function() {\n var a = this.nationalNumber_.toString(), b = 0;\n if (this.isNanpaNumberWithNationalPrefix_()) {\n b = 1, this.prefixBeforeNationalNumber_.append(\"1\").append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_), this.isCompleteNumber_ = !0;\n } else {\n if (this.currentMetadata_.hasNationalPrefixForParsing()) {\n var c = new RegExp(\"^(?:\" + this.currentMetadata_.getNationalPrefixForParsing() + \")\");\n c = a.match(c);\n null != c && null != c[0] && 0 < c[0].length && (this.isCompleteNumber_ = !0, b = c[0].length, this.prefixBeforeNationalNumber_.append(a.substring(0, b)));\n }\n }\n this.nationalNumber_.clear();\n this.nationalNumber_.append(a.substring(b));\n return a.substring(0, b);\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractIdd_ = function() {\n var a = this.accruedInputWithoutFormatting_.toString(), b = new RegExp(\"^(?:\\\\\" + i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN + \"|\" + this.currentMetadata_.getInternationalPrefix() + \")\");\n b = a.match(b);\n return null != b && null != b[0] && 0 < b[0].length ? (this.isCompleteNumber_ = !0, b = b[0].length, this.nationalNumber_.clear(), this.nationalNumber_.append(a.substring(b)), this.prefixBeforeNationalNumber_.clear(), this.prefixBeforeNationalNumber_.append(a.substring(0, b)), a.charAt(0) != i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN && this.prefixBeforeNationalNumber_.append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_), !0) : !1;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.attemptToExtractCountryCallingCode_ = function() {\n if (0 == this.nationalNumber_.getLength()) {\n return !1;\n }\n var a = new goog.string.StringBuffer, b = this.phoneUtil_.extractCountryCode(this.nationalNumber_, a);\n if (0 == b) {\n return !1;\n }\n this.nationalNumber_.clear();\n this.nationalNumber_.append(a.toString());\n a = this.phoneUtil_.getRegionCodeForCountryCode(b);\n i18n.phonenumbers.PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY == a ? this.currentMetadata_ = this.phoneUtil_.getMetadataForNonGeographicalRegion(b) : a != this.defaultCountry_ && (this.currentMetadata_ = this.getMetadataForRegion_(a));\n this.prefixBeforeNationalNumber_.append(\"\" + b).append(i18n.phonenumbers.AsYouTypeFormatter.SEPARATOR_BEFORE_NATIONAL_NUMBER_);\n this.extractedNationalPrefix_ = \"\";\n return !0;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.normalizeAndAccrueDigitsAndPlusSign_ = function(a, b) {\n if (a == i18n.phonenumbers.PhoneNumberUtil.PLUS_SIGN) {\n var c = a;\n this.accruedInputWithoutFormatting_.append(a);\n } else {\n c = i18n.phonenumbers.PhoneNumberUtil.DIGIT_MAPPINGS[a], this.accruedInputWithoutFormatting_.append(c), this.nationalNumber_.append(c);\n }\n b && (this.positionToRemember_ = this.accruedInputWithoutFormatting_.getLength());\n return c;\n};\ni18n.phonenumbers.AsYouTypeFormatter.prototype.inputDigitHelper_ = function(a) {\n var b = this.formattingTemplate_.toString();\n if (0 <= b.substring(this.lastMatchPosition_).search(this.DIGIT_PATTERN_)) {\n var c = b.search(this.DIGIT_PATTERN_);\n a = b.replace(this.DIGIT_PATTERN_, a);\n this.formattingTemplate_.clear();\n this.formattingTemplate_.append(a);\n this.lastMatchPosition_ = c;\n return a.substring(0, this.lastMatchPosition_ + 1);\n }\n 1 == this.possibleFormats_.length && (this.ableToFormat_ = !1);\n this.currentFormattingPattern_ = \"\";\n return this.accruedInput_.toString();\n};\ni18n.phonenumbers.shortnumbermetadata = {};\ni18n.phonenumbers.shortnumbermetadata.countryCodeToRegionCodeMap = {0:\"AC AD AE AF AG AI AL AM AO AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GR GT GU GW GY HK HN HR HT HU ID IE IL IM IN IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX SY SZ TC TD TG TH TJ TL TM TN TO TR TT TV TW TZ UA UG US UY UZ VA VC VE VG VI VN VU WF WS XK YE YT ZA ZM ZW\".split(\" \")};\ni18n.phonenumbers.shortnumbermetadata.countryToMetadata = {AC:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"AC\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], AD:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[0268]\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"AD\", , , , , , , , , , , , , , , , , , [, , \"11[0268]\", , \n, , \"110\"], , [, , \"11[0268]\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], AE:[, [, , \"[149]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"112|99[7-9]\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"AE\", , , , , , , , , , , , , , , , , , [, , \"112|99[7-9]\", , , , \"112\", , , [3]], , [, , \"112|445[16]|99[7-9]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"445\\\\d\", , , , \"4450\", , , [4]]], AF:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", \n, , , , , , [3, 5]], , , [, , \"1(?:0[02]|19)\", , , , \"100\", , , [3]], [, , , , , , , , , [-1]], , , , \"AF\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[02]|19)\", , , , \"100\", , , [3]], , [, , \"1(?:0[02]|19)|40404\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], AG:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"AG\", , , , , , , , , , , , , , , , , , [, \n, \"9(?:11|99)\", , , , \"911\"], , [, , \"176|9(?:11|99)\", , , , \"176\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], AI:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"AI\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"176|911\", , , , \"176\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], AL:[, [, , \"[15]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1(?:2|6[01]\\\\d\\\\d)|2[7-9]|3[15]|41)\", \n, , , \"112\", , , [3, 6]], [, , \"5\\\\d{4}\", , , , \"50000\", , , [5]], , , , \"AL\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|2[7-9])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:6(?:000|1(?:06|11|23))|8\\\\d\\\\d)|65\\\\d|89[12])|5\\\\d{4}|1(?:[1349]\\\\d|2[2-9])\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"123\", , , , \"123\", , , [3]], , [, , \"131|5\\\\d{4}\", , , , \"131\", , , [3, 5]]], AM:[, [, , \"[148]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"10[1-3]\", , , , \"101\", , , [3]], [, , , , , , , , , [-1]], , , \n, \"AM\", , , , , , , , , , , , , , , , , , [, , \"10[1-3]\", , , , \"101\", , , [3]], , [, , \"(?:1|8[1-7])\\\\d\\\\d|40404\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], AO:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[235]\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"AO\", , , , , , , , , , , , , , , , , , [, , \"11[235]\", , , , \"112\"], , [, , \"11[235]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, [, , , , , , , , , [-1]]], AR:[, [, , \"[01389]\\\\d{1,4}\", , , , , , , [2, 3, 4, 5]], , , [, , \"000|1(?:0[0-35-7]|1[0245]|2[15]|9)|911\", , , , \"19\", , , [2, 3]], [, , , , , , , , , [-1]], , , , \"AR\", , , , , , , , , , , , , , , , , , [, , \"10[017]|911\", , , , \"100\", , , [3]], , [, , \"000|1(?:0[0-35-7]|1[02-5]|2[15]|9)|3372|89338|911\", , , , \"19\"], [, , , , , , , , , [-1]], [, , \"893\\\\d\\\\d\", , , , \"89300\", , , [5]], , [, , \"(?:337|893\\\\d)\\\\d\", , , , \"3370\", , , [4, 5]]], AS:[, [, , \"[49]\\\\d\\\\d(?:\\\\d{2})?\", \n, , , , , , [3, 5]], , , [, , \"911\", , , , \"911\", , , [3]], [, , , , , , , , , [-1]], , , , \"AS\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\", , , [3]], , [, , \"40404|911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], AT:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"116\\\\d{3}|1(?:[12]2|33|44)\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"AT\", , , , , , , , , , , , , , , , , , [, , \"1(?:[12]2|33|44)\", \n, , , \"112\", , , [3]], , [, , \"116(?:00[06]|1(?:17|23))|1(?:[12]2|33|44)\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], AU:[, [, , \"[0-27]\\\\d{2,7}\", , , , , , , [3, 4, 5, 6, 7, 8]], , , [, , \"000|1(?:06|12|258885|55\\\\d)|733\", , , , \"000\", , , [3, 4, 7]], [, , \"1(?:2(?:34|456)|9\\\\d{4,6})\", , , , \"1234\", , , [4, 5, 6, 7, 8]], , , , \"AU\", , , , , , , , , , , , , , , , , , [, , \"000|1(?:06|12)\", , , , \"000\", , , [3]], , [, , \"000|1(?:06|1(?:00|2|9[46])|2(?:[23]\\\\d|(?:4|5\\\\d)\\\\d{2,3}|8(?:[013-9]\\\\d|2))|555|9\\\\d{4,6})|225|7(?:33|67)\", \n, , , \"000\"], [, , \"1(?:1[09]\\\\d|24733)|225|767\", , , , \"225\", , , [3, 4, 6]], [, , \"1(?:258885|55\\\\d)\", , , , \"1550\", , , [4, 7]], , [, , \"19\\\\d{4,6}\", , , , \"190000\", , , [6, 7, 8]]], AW:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"100|911\", , , , \"100\"], [, , , , , , , , , [-1]], , , , \"AW\", , , , , , , , , , , , , , , , , , [, , \"100|911\", , , , \"100\"], , [, , \"1(?:00|18|76)|91[13]\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], AX:[, [, , \n\"[17]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"112\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"AX\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"112|75[12]\\\\d\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], AZ:[, [, , \"[148]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:0[1-3]|12)\", , , , \"101\", , , [3]], [, , , , , , , , , [-1]], , , , \"AZ\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[1-3]|12)\", \n, , , \"101\", , , [3]], , [, , \"1(?:0[1-3]|12)|(?:404|880)0\", , , , \"101\"], [, , , , , , , , , [-1]], [, , \"(?:404|880)\\\\d\", , , , \"4040\", , , [4]], , [, , \"(?:404|880)\\\\d\", , , , \"4040\", , , [4]]], BA:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:16\\\\d{3}|2[2-4])\", , , , \"122\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"BA\", , , , , , , , , , , , , , , , , , [, , \"12[2-4]\", , , , \"122\", , , [3]], , [, , \"1(?:16(?:00[06]|1(?:1[17]|23))|2(?:0[0-7]|[2-5]|6[0-26])|(?:[3-5]|7\\\\d)\\\\d\\\\d)|1(?:18|2[78])\\\\d\\\\d?\", \n, , , \"122\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BB:[, [, , \"[2-689]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"[2359]11\", , , , \"211\"], [, , , , , , , , , [-1]], , , , \"BB\", , , , , , , , , , , , , , , , , , [, , \"[2359]11\", , , , \"211\"], , [, , \"[2-689]11\", , , , \"211\"], [, , , , , , , , , [-1]], [, , \"[468]11\", , , , \"411\"], , [, , , , , , , , , [-1]]], BD:[, [, , \"[1579]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"10[0-26]|[19]99\", , , , \"100\", , , [3]], \n[, , , , , , , , , [-1]], , , , \"BD\", , , , , , , , , , , , , , , , , , [, , \"10[0-2]|[19]99\", , , , \"100\", , , [3]], , [, , \"1(?:0(?:[0-369]|5[1-4]|7[0-4]|8[0-29])|1[16-9]|2(?:[134]|2[0-5])|3(?:1\\\\d?|6[3-6])|5[2-9])|5012|786|9594|[19]99|1(?:0(?:50|6\\\\d)|33|4(?:0|1\\\\d))\\\\d\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"1(?:11|2[13])|(?:501|959)\\\\d|786\", , , , \"111\", , , [3, 4]], , [, , \"959\\\\d\", , , , \"9590\", , , [4]]], BE:[, [, , \"[1-9]\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, \n, \"1(?:0[0-25-8]|1[02]|7(?:12|77)|813)|(?:116|8)\\\\d{3}\", , , , \"100\"], [, , \"1(?:2[03]|40)4|(?:1(?:[24]1|3[01])|[2-79]\\\\d\\\\d)\\\\d\", , , , \"1204\", , , [4]], , , , \"BE\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[01]|12)\", , , , \"100\", , , [3]], , [, , \"1(?:0[0-8]|1(?:[027]|6117)|2(?:12|3[0-24])|313|414|5(?:1[05]|5[15]|66|95)|6(?:1[167]|36|6[16])|7(?:[07][017]|1[27-9]|22|33|65)|81[39])|[2-9]\\\\d{3}|1(?:1600|45)0|1(?:[2-4]9|78)9|1[2-4]0[47]\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , \n, [-1]], , [, , \"[2-9]\\\\d{3}\", , , , \"2000\", , , [4]]], BF:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"BF\", , , , , , , , , , , , , , , , , , [, , \"1[78]\", , , , \"17\"], , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BG:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"1(?:1(?:2|6\\\\d{3})|50|6[06])\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"BG\", , , , , , , , , , , , \n, , , , , , [, , \"1(?:12|50|6[06])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:000|111))|50|6[06])\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BH:[, [, , \"[0189]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"(?:0[167]|81)\\\\d{3}|[19]99\", , , , \"199\"], [, , \"9[148]\\\\d{3}\", , , , \"91000\", , , [5]], , , , \"BH\", , , , , , , , , , , , , , , , , , [, , \"[19]99\", , , , \"199\", , , [3]], , [, , \"1(?:[02]\\\\d|12|4[01]|51|8[18]|9[169])|99[02489]|(?:0[167]|8[158]|9[148])\\\\d{3}\", \n, , , \"100\"], [, , , , , , , , , [-1]], [, , \"0[67]\\\\d{3}|88000|98555\", , , , \"06000\", , , [5]], , [, , \"88000|98555\", , , , \"88000\", , , [5]]], BI:[, [, , \"[16-9]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"11[237]|611\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"BI\", , , , , , , , , , , , , , , , , , [, , \"11[237]\", , , , \"112\", , , [3]], , [, , \"1(?:1\\\\d|5[2-9]|6[0-256])|611|7(?:10|77|979)|8[28]8|900\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"611|7(?:10|77)|888|900\", , , , \"611\", \n, , [3]], , [, , \"(?:71|90)0\", , , , \"710\", , , [3]]], BJ:[, [, , \"[17]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"11[78]|7[3-5]\\\\d\\\\d\", , , , \"117\"], [, , , , , , , , , [-1]], , , , \"BJ\", , , , , , , , , , , , , , , , , , [, , \"11[78]\", , , , \"117\", , , [3]], , [, , \"1(?:1[78]|2[02-5]|60)|7[0-5]\\\\d\\\\d\", , , , \"117\"], [, , , , , , , , , [-1]], [, , \"12[02-5]\", , , , \"120\", , , [3]], , [, , , , , , , , , [-1]]], BL:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"18\", , , , \"18\"], [, , , , , , , , , [-1]], \n, , , \"BL\", , , , , , , , , , , , , , , , , , [, , \"18\", , , , \"18\"], , [, , \"18\", , , , \"18\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BM:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"BM\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"176|911\", , , , \"176\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], BN:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], \n, , [, , \"99[135]\", , , , \"991\"], [, , , , , , , , , [-1]], , , , \"BN\", , , , , , , , , , , , , , , , , , [, , \"99[135]\", , , , \"991\"], , [, , \"99[135]\", , , , \"991\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BO:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"11[089]\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"BO\", , , , , , , , , , , , , , , , , , [, , \"11[089]\", , , , \"110\", , , [3]], , [, , \"11[089]|40404\", , , , \"110\"], [, \n, , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], BQ:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112|911\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"BQ\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\"], , [, , \"1(?:12|76)|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], BR:[, [, , \"[1-69]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:00|12|28|8[015]|9[0-47-9])|4(?:57|82\\\\d)|911\", \n, , , \"100\", , , [3, 4]], [, , , , , , , , , [-1]], , , , \"BR\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|28|9[023])|911\", , , , \"112\", , , [3]], , [, , \"1(?:0(?:[02]|3(?:1[2-579]|2[13-9]|3[124-9]|4[1-3578]|5[1-468]|6[139]|8[149]|9[168])|5[0-35-9]|6(?:0|1[0-35-8]?|2[0145]|3[0137]?|4[37-9]?|5[0-35]|6[016]?|7[137]?|8[5-8]|9[1359]))|1[25-8]|2[357-9]|3[024-68]|4[12568]|5\\\\d|6[0-8]|8[015]|9[0-47-9])|2(?:7(?:330|878)|85959?)|(?:32|91)1|4(?:0404?|57|828)|55555|6(?:0\\\\d{4}|10000)|(?:133|411)[12]\", , \n, , \"100\"], [, , \"102|273\\\\d\\\\d|321\", , , , \"102\", , , [3, 5]], [, , \"151|(?:278|555)\\\\d\\\\d|4(?:04\\\\d\\\\d?|11\\\\d|57)\", , , , \"151\", , , [3, 4, 5]], , [, , \"285\\\\d{2,3}|321|40404|(?:27[38]\\\\d|482)\\\\d|6(?:0\\\\d|10)\\\\d{3}\", , , , \"321\"]], BS:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"91[19]\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"BS\", , , , , , , , , , , , , , , , , , [, , \"91[19]\", , , , \"911\"], , [, , \"91[19]\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , \n, , , , , [-1]]], BT:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"11[023]\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"BT\", , , , , , , , , , , , , , , , , , [, , \"11[023]\", , , , \"110\", , , [3]], , [, , \"11[0-6]|40404\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], BW:[, [, , \"[19]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"99[7-9]\", , , , \"997\", , , [3]], [, , , , , , , , , [-1]], , , , \"BW\", \n, , , , , , , , , , , , , , , , , [, , \"99[7-9]\", , , , \"997\", , , [3]], , [, , \"13123|99[7-9]\", , , , \"997\"], [, , , , , , , , , [-1]], [, , \"131\\\\d\\\\d\", , , , \"13100\", , , [5]], , [, , \"131\\\\d\\\\d\", , , , \"13100\", , , [5]]], BY:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:0[1-3]|12)\", , , , \"101\"], [, , , , , , , , , [-1]], , , , \"BY\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[1-3]|12)\", , , , \"101\"], , [, , \"1(?:0[1-79]|1[246]|35|5[1-35]|6[89]|7[5-7]|8[58]|9[1-7])\", , , , \"101\"], [, , \n, , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], BZ:[, [, , \"9\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"9(?:0|11)\", , , , \"90\"], [, , , , , , , , , [-1]], , , , \"BZ\", , , , , , , , , , , , , , , , , , [, , \"9(?:0|11)\", , , , \"90\"], , [, , \"9(?:0|11)\", , , , \"90\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CA:[, [, , \"[1-9]\\\\d\\\\d(?:\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?)?\", , , , , , , [3, 5, 6, 8]], , , [, , \"112|[29]11\", , , , \"112\", , , [3]], \n[, , , , , , , , , [-1]], , , , \"CA\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\", , , [3]], , [, , \"112|30000\\\\d{3}|[1-35-9]\\\\d{4,5}|[2-9]11\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"[235-7]11\", , , , \"211\", , , [3]], , [, , \"300\\\\d{5}|[1-35-9]\\\\d{4,5}\", , , , \"10000\", , , [5, 6, 8]]], CC:[, [, , \"[01]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"000|112\", , , , \"000\"], [, , , , , , , , , [-1]], , , , \"CC\", , , , , , , , , , , , , , , , , , [, , \"000|112\", , , , \"000\"], , [, , \"000|112\", \n, , , \"000\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CD:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"1(?:1[348]|77|88)\", , , , \"113\", , , [3]], [, , , , , , , , , [-1]], , , , \"CD\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[348]|77|88)\", , , , \"113\", , , [3]], , [, , \"1(?:1[348]|23|77|88)|40404\", , , , \"113\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], CF:[, [, \n, \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[78]|22\\\\d)\", , , , \"117\"], [, , , , , , , , , [-1]], , , , \"CF\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[78]|220)\", , , , \"117\"], , [, , \"1(?:1[478]|220)\", , , , \"114\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CG:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[178]\", , , , \"111\"], [, , , , , , , , , [-1]], , , , \"CG\", , , , , , , , , , , , , , , , , , [, , \"11[78]\", , , , \"117\"], , [, , \"11[126-8]\", \n, , , \"111\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CH:[, [, , \"[1-9]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1(?:[278]|6\\\\d{3})|4[47])|5200\", , , , \"112\", , , [3, 4, 6]], [, , \"1(?:14|8[01589])\\\\d|543|83111\", , , , \"543\", , , [3, 4, 5]], , , , \"CH\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[278]|44)\", , , , \"112\", , , [3]], , [, , \"1(?:0[78]\\\\d\\\\d|1(?:[278]|45|6(?:000|111))|4(?:[03-57]|1[45])|6(?:00|[1-46])|8(?:02|1[189]|50|7|8[08]|99))|[2-9]\\\\d{2,4}\", \n, , , \"112\"], [, , \"1(?:4[035]|6[1-46])|1(?:41|60)\\\\d\", , , , \"140\", , , [3, 4]], [, , \"5(?:200|35)\", , , , \"535\", , , [3, 4]], , [, , \"[2-9]\\\\d{2,4}\", , , , \"200\", , , [3, 4, 5]]], CI:[, [, , \"[14]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[01]|[78]0)\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"CI\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[01]|[78]0)\", , , , \"110\", , , [3]], , [, , \"1(?:1[01]|[78]0)|4443\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"444\\\\d\", , , , \"4440\", \n, , [4]], , [, , \"444\\\\d\", , , , \"4440\", , , [4]]], CK:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"99[689]\", , , , \"996\"], [, , , , , , , , , [-1]], , , , \"CK\", , , , , , , , , , , , , , , , , , [, , \"99[689]\", , , , \"996\"], , [, , \"99[689]\", , , , \"996\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CL:[, [, , \"[1-9]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:213|3[1-3])|434\\\\d|911\", , , , \"131\", , , [3, 4]], [, , \"1(?:211|3(?:13|[348]0|5[01]))|(?:1(?:[05]6|[48]1|9[18])|2(?:01\\\\d|[23]2|77|88)|3(?:0[59]|13|3[279]|66)|4(?:[12]4|36\\\\d|4[017]|55)|5(?:00|41\\\\d|5[67]|99)|6(?:07\\\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\\\d\", \n, , , \"1060\", , , [4, 5]], , , , \"CL\", , , , , , , , , , , , , , , , , , [, , \"13[1-3]|911\", , , , \"131\", , , [3]], , [, , \"1(?:00|21[13]|3(?:13|[348]0|5[01])|4(?:0[02-6]|17|[379])|818|919)|2(?:0(?:01|122)|22[47]|323|777|882)|3(?:0(?:51|99)|132|3(?:29|[37]7)|665)|43656|5(?:(?:00|415)4|5(?:66|77)|995)|6(?:131|222|366|699)|7878|8(?:011|11[28]|482|889)|9(?:01|1)1|13\\\\d|4(?:[13]42|243|4(?:02|15|77)|554)|(?:1(?:[05]6|98)|339|6(?:07|[35])0|9(?:[12]0|33))0\", , , , \"100\"], [, , \"(?:200|333)\\\\d\", , , , \"2000\", \n, , [4]], [, , , , , , , , , [-1]], , [, , \"13(?:13|[348]0|5[01])|(?:1(?:[05]6|[28]1|4[01]|9[18])|2(?:0(?:0|1\\\\d)|[23]2|77|88)|3(?:0[59]|13|3[2379]|66)|436\\\\d|5(?:00|41\\\\d|5[67]|99)|6(?:07\\\\d|13|22|3[06]|50|69)|787|8(?:[01]1|[48]8)|9(?:01|[12]0|33))\\\\d|4(?:[1-3]4|4[017]|55)\\\\d\", , , , \"1060\", , , [4, 5]]], CM:[, [, , \"[18]\\\\d{1,3}\", , , , , , , [2, 3, 4]], , , [, , \"1(?:1[37]|[37])\", , , , \"13\", , , [2, 3]], [, , , , , , , , , [-1]], , , , \"CM\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[37]|[37])\", \n, , , \"13\", , , [2, 3]], , [, , \"1(?:1[37]|[37])|8711\", , , , \"13\"], [, , , , , , , , , [-1]], [, , \"871\\\\d\", , , , \"8710\", , , [4]], , [, , \"871\\\\d\", , , , \"8710\", , , [4]]], CN:[, [, , \"[19]\\\\d\\\\d(?:\\\\d{2,3})?\", , , , , , , [3, 5, 6]], , , [, , \"1(?:1[09]|20)\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"CN\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[09]|20)\", , , , \"110\", , , [3]], , [, , \"1(?:00\\\\d\\\\d|1[029]|20)|95\\\\d{3,4}\", , , , \"110\"], [, , \"1(?:00\\\\d\\\\d|12)|95\\\\d{3,4}\", , \n, , \"112\"], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CO:[, [, , \"[148]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"1(?:1[29]|23|32|56)\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"CO\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[29]|23|32|56)\", , , , \"112\", , , [3]], , [, , \"1(?:06|1[2-9]|2[35-7]|3[27]|4[467]|5[36]|6[4-7]|95)|40404|85432\", , , , \"106\"], [, , , , , , , , , [-1]], [, , \"(?:40|85)4\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"(?:40|85)4\\\\d\\\\d\", , , , \"40400\", \n, , [5]]], CR:[, [, , \"[1359]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"112|911\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"CR\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\", , , [3]], , [, , \"1(?:0(?:00|15|2[2-4679])|1(?:1[0-35-9]|2|37|[46]6|7[57]|8[79]|9[0-379])|2(?:00|[12]2|34|55)|3(?:21|33)|4(?:0[06]|1[4-6])|5(?:15|5[15])|693|7(?:00|1[7-9]|2[02]|[67]7)|975)|3855|5(?:0(?:30|49)|510)|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"(?:385|5(?:0[34]|51))\\\\d\", \n, , , \"3850\", , , [4]]], CU:[, [, , \"[12]\\\\d\\\\d(?:\\\\d{3,4})?\", , , , , , , [3, 6, 7]], , , [, , \"10[4-7]|(?:116|204\\\\d)\\\\d{3}\", , , , \"104\"], [, , , , , , , , , [-1]], , , , \"CU\", , , , , , , , , , , , , , , , , , [, , \"10[4-6]\", , , , \"104\", , , [3]], , [, , \"1(?:0[4-7]|1(?:6111|8)|40)|2045252\", , , , \"104\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CV:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"13[0-2]\", , , , \"130\"], [, , , , , , , , , [-1]], , , , \"CV\", \n, , , , , , , , , , , , , , , , , [, , \"13[0-2]\", , , , \"130\"], , [, , \"13[0-2]\", , , , \"130\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CW:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112|911\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"CW\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\"], , [, , \"1(?:12|76)|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], CX:[, [, , \"[01]\\\\d\\\\d\", \n, , , , , , [3]], , , [, , \"000|112\", , , , \"000\"], [, , , , , , , , , [-1]], , , , \"CX\", , , , , , , , , , , , , , , , , , [, , \"000|112\", , , , \"000\"], , [, , \"000|112\", , , , \"000\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CY:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"1(?:1(?:2|6\\\\d{3})|99)\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"CY\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|99)\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:000|111))|99)\", \n, , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], CZ:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|5[0568])\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"CZ\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|5[0568])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|8\\\\d)|(?:2|3\\\\d)\\\\d{2,3}|5[0568]|99)|1(?:16|4)\\\\d{3}\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , \n, , [-1]]], DE:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"11(?:[02]|6\\\\d{3})\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"DE\", , , , , , , , , , , , , , , , , , [, , \"11[02]\", , , , \"110\", , , [3]], , [, , \"11(?:[025]|6(?:00[06]|1(?:1[167]|23)))\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], DJ:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"DJ\", , , , , , , , , , , , , , , , \n, , [, , \"1[78]\", , , , \"17\"], , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], DK:[, [, , \"1\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \"11(?:[24]|6\\\\d{3})\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"DK\", , , , , , , , , , , , , , , , , , [, , \"11[24]\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:[2-48]|6(?:00[06]|111))|8(?:[08]1|1[0238]|28|30|5[13]))\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , \n, , [-1]], , [, , , , , , , , , [-1]]], DM:[, [, , \"[39]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"333|9(?:11|99)\", , , , \"333\"], [, , , , , , , , , [-1]], , , , \"DM\", , , , , , , , , , , , , , , , , , [, , \"333|9(?:11|99)\", , , , \"333\"], , [, , \"333|9(?:11|99)\", , , , \"333\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], DO:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112|911\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"DO\", , , , , , , , , , , , , , , , , , \n[, , \"112|911\", , , , \"112\"], , [, , \"112|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], DZ:[, [, , \"[17]\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1[47]\", , , , \"14\", , , [2]], [, , , , , , , , , [-1]], , , , \"DZ\", , , , , , , , , , , , , , , , , , [, , \"1[47]\", , , , \"14\", , , [2]], , [, , \"1[47]|730\", , , , \"14\"], [, , , , , , , , , [-1]], [, , \"730\", , , , \"730\", , , [3]], , [, , \"730\", , , , \"730\", , , [3]]], EC:[, [, , \"[19]\\\\d\\\\d\", , , , \n, , , [3]], , , [, , \"1(?:0[12]|12)|911\", , , , \"101\"], [, , , , , , , , , [-1]], , , , \"EC\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[12]|12)|911\", , , , \"101\"], , [, , \"1(?:0[12]|12)|911\", , , , \"101\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], EE:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1(?:[02]|6\\\\d{3})|2(?:05|28)|3(?:014|3(?:21|5\\\\d?)|660)|492|5(?:1[03]|410|501)|6(?:112|333|644)|7(?:012|127|89)|8(?:10|8[57])|9(?:0[134]|14))\", , \n, , \"110\"], [, , \"1(?:18(?:00|[12458]\\\\d?)|2(?:0(?:[02-46-8]\\\\d?|1[0-36])|1(?:[0-4]\\\\d?|6[06])|2(?:[0-4]\\\\d?|5[25])|[367]|4(?:0[04]|[12]\\\\d?|4[24]|54)|55[12457])|3(?:0(?:[02]\\\\d?|1[13578]|3[356])|1[1347]|2[02-5]|3(?:[01347]\\\\d?|2[023]|88)|4(?:[35]\\\\d?|4[34])|5(?:3[134]|5[035])|666)|4(?:2(?:00|4\\\\d?)|4(?:0[01358]|1[024]|50|7\\\\d?)|900)|5(?:0[0-35]|1(?:[1267]\\\\d?|5[0-7]|82)|2(?:[014-6]\\\\d?|22)|330|4(?:[35]\\\\d?|44)|5(?:00|[1-69]\\\\d?)|9(?:[159]\\\\d?|[38]0|77))|6(?:1(?:00|1[19]|[35-9]\\\\d?)|2(?:2[26]|[68]\\\\d?)|3(?:22|36|6[36])|5|6(?:[0-359]\\\\d?|6[0-26])|7(?:00|55|7\\\\d?|8[89])|9(?:00|1\\\\d?|69))|7(?:0(?:[023]\\\\d?|1[0578])|1(?:00|2[034]|[4-9]\\\\d?)|2(?:[07]\\\\d?|20|44)|7(?:[0-57]\\\\d?|9[79])|8(?:0[08]|2\\\\d?|8[0178])|9(?:00|97))|8(?:1[127]|8[1268]|9[269])|9(?:0(?:[02]\\\\d?|69|9[0269])|1[1-3689]|21))\", \n, , , \"123\", , , [3, 4, 5]], , , , \"EE\", , , , , , , , , , , , , , , , , , [, , \"11[02]\", , , , \"110\", , , [3]], , [, , \"1(?:1(?:[02-579]|6(?:000|111)|8(?:[09]\\\\d|[1-8]))|2[36-9]|3[7-9]|4[05-7]|5[6-8]|6[05]|7[3-6]|8[02-7]|9[3-9])|1(?:2[0-245]|3[0-6]|4[1-489]|5[0-59]|6[1-46-9]|7[0-27-9]|8[189]|9[0-2])\\\\d\\\\d?\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"1(?:18[1258]|2(?:0(?:1[036]|[46]\\\\d?)|166|21|4(?:0[04]|1\\\\d?|5[47])|[67])|3(?:0(?:1[13-578]|2\\\\d?|3[56])|1[15]|2[045]|3(?:[13]\\\\d?|2[13])|43|5(?:00|3[34]|53))|44(?:0[0135]|14|50|7\\\\d?)|5(?:05|1(?:[12]\\\\d?|5[1246]|8[12])|2(?:[01]\\\\d?|22)|3(?:00|3[03])|4(?:15|5\\\\d?)|500|9(?:5\\\\d?|77|80))|6(?:1[35-8]|226|3(?:22|3[36]|66)|644|7(?:00|7\\\\d?|89)|9(?:00|69))|7(?:01[258]|1(?:00|[15]\\\\d?)|2(?:44|7\\\\d?)|8(?:00|87|9\\\\d?))|8(?:1[128]|8[56]|9(?:[26]\\\\d?|77))|90(?:2\\\\d?|69|92))\", \n, , , \"126\", , , [3, 4, 5]]], EG:[, [, , \"[13]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"1(?:2[23]|80)\", , , , \"122\", , , [3]], [, , , , , , , , , [-1]], , , , \"EG\", , , , , , , , , , , , , , , , , , [, , \"1(?:2[23]|80)\", , , , \"122\", , , [3]], , [, , \"1(?:2[23]|[69]\\\\d{3}|80)|34400\", , , , \"122\"], [, , , , , , , , , [-1]], [, , \"344\\\\d\\\\d\", , , , \"34400\", , , [5]], , [, , \"344\\\\d\\\\d\", , , , \"34400\", , , [5]]], EH:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:[59]|77)\", , , , \"15\"], \n[, , , , , , , , , [-1]], , , , \"EH\", , , , , , , , , , , , , , , , , , [, , \"1(?:[59]|77)\", , , , \"15\"], , [, , \"1(?:[59]|77)\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ER:[, [, , \"[12]\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"11[2-46]|(?:12[47]|20[12])\\\\d{3}\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"ER\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[2-46]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99\", , , , \"112\"], , [, , \"1(?:1[2-6]|24422)|20(?:1(?:606|917)|2914)|(?:1277|2020)99\", \n, , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ES:[, [, , \"[0-379]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"0(?:16|6[57]|8[58])|1(?:006|12|[3-7]\\\\d\\\\d)|(?:116|20\\\\d)\\\\d{3}\", , , , \"016\", , , [3, 4, 6]], [, , \"[12]2\\\\d{1,4}|90(?:5\\\\d|7)|(?:118|2(?:[357]\\\\d|80)|3[357]\\\\d)\\\\d\\\\d|[79]9[57]\\\\d{3}\", , , , \"120\"], , , , \"ES\", , , , , , , , , , , , , , , , , , [, , \"08[58]|112\", , , , \"085\", , , [3]], , [, , \"0(?:1[0-26]|6[0-257]|8[058]|9[12])|1(?:0[03-57]\\\\d{1,3}|1(?:2|6(?:000|111)|8\\\\d\\\\d)|2\\\\d{1,4}|[3-9]\\\\d\\\\d)|2(?:2\\\\d{1,4}|80\\\\d\\\\d)|90(?:5[124578]|7)|1(?:3[34]|77)|(?:2[01]\\\\d|[79]9[57])\\\\d{3}|[23][357]\\\\d{3}\", \n, , , \"010\"], [, , \"0(?:[16][0-2]|80|9[12])|21\\\\d{4}\", , , , \"010\", , , [3, 6]], [, , \"1(?:3[34]|77)|[12]2\\\\d{1,4}\", , , , \"120\"], , [, , \"(?:2[0-2]\\\\d|3[357]|[79]9[57])\\\\d{3}|2(?:[2357]\\\\d|80)\\\\d\\\\d\", , , , \"22000\", , , [5, 6]]], ET:[, [, , \"9\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"9(?:07|11?|2|39?|9[17])\", , , , \"91\"], [, , , , , , , , , [-1]], , , , \"ET\", , , , , , , , , , , , , , , , , , [, , \"9(?:11?|2|39?|9[17])\", , , , \"91\"], , [, , \"9(?:07|11?|2|39?|45|9[17])\", , , , \"91\"], [, , , , , , \n, , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], FI:[, [, , \"[17]\\\\d\\\\d(?:\\\\d{2,3})?\", , , , , , , [3, 5, 6]], , , [, , \"11(?:2|6\\\\d{3})\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"FI\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"11(?:2|6111)|75[12]\\\\d\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], FJ:[, [, , \"[0-579]\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [2, 3, 5]], , , [, , \"91[17]\", \n, , , \"911\", , , [3]], [, , , , , , , , , [-1]], , , , \"FJ\", , , , , , , , , , , , , , , , , , [, , \"91[17]\", , , , \"911\", , , [3]], , [, , \"0(?:1[34]|8[1-4])|1(?:0[1-3]|[25]9)|2[289]|30|40404|91[137]|[45]4|75\", , , , \"22\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], FK:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"FK\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \n\"1\\\\d\\\\d|999\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], FM:[, [, , \"[39]\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"320\\\\d{3}|911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"FM\", , , , , , , , , , , , , , , , , , [, , \"(?:32022|91)1\", , , , \"911\"], , [, , \"(?:32022|91)1\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], FO:[, [, , \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"11[24]\", , , \n, \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"FO\", , , , , , , , , , , , , , , , , , [, , \"11[24]\", , , , \"112\", , , [3]], , [, , \"11[248]|1(?:4[124]|71|8[7-9])\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], FR:[, [, , \"[1-8]\\\\d{1,5}\", , , , , , , [2, 3, 4, 5, 6]], , , [, , \"1(?:0(?:07|[13]3)|1[02459]|[578]|9[167])|224|(?:3370|74)0|(?:116\\\\d|3[01])\\\\d\\\\d\", , , , \"15\"], [, , \"(?:118|[4-8]\\\\d)\\\\d{3}|36665\", , , , \"36665\", , , [5, 6]], , , , \n\"FR\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|[578])\", , , , \"15\", , , [2, 3]], , [, , \"1(?:0\\\\d\\\\d|1(?:[02459]|6(?:000|111)|8\\\\d{3})|[578]|9[167])|2(?:0(?:00|2)0|24)|[3-8]\\\\d{4}|3\\\\d{3}|6(?:1[14]|34)|7(?:0[06]|22|40)\", , , , \"15\"], [, , \"10(?:[134]4|2[23]|5\\\\d|99)|202\\\\d|3(?:646|9[07]0)|634|70[06]|(?:106|61)[14]\", , , , \"611\", , , [3, 4]], [, , \"118777|224|6(?:1[14]|34)|7(?:0[06]|22|40)|20(?:0\\\\d|2)\\\\d\", , , , \"224\", , , [3, 4, 5, 6]], , [, , \"114|[3-8]\\\\d{4}\", , , , \"114\", , , [3, 5]]], \nGA:[, [, , \"1\\\\d(?:\\\\d{2})?\", , , , , , , [2, 4]], , , [, , \"18|1(?:3\\\\d|73)\\\\d\", , , , \"18\"], [, , , , , , , , , [-1]], , , , \"GA\", , , , , , , , , , , , , , , , , , [, , \"1(?:3\\\\d\\\\d|730|8)\", , , , \"18\"], , [, , \"1(?:3\\\\d\\\\d|730|8)\", , , , \"18\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GB:[, [, , \"[1-46-9]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:05|1(?:2|6\\\\d{3})|7[56]\\\\d|8000)|2(?:20\\\\d|48)|4444|999\", , , , \"105\"], [, , , , , , , , , [-1]], , \n, , \"GB\", , , , , , , , , , , , , , , , , , [, , \"112|999\", , , , \"112\", , , [3]], , [, , \"1(?:0[015]|1(?:[12]|6(?:000|1(?:11|23))|8\\\\d{3})|2(?:[1-3]|50)|33|4(?:1|7\\\\d)|571|7(?:0\\\\d|[56]0)|800\\\\d|9[15])|2(?:0202|1300|2(?:02|11)|3(?:02|336|45)|4(?:25|8))|3[13]3|4(?:0[02]|35[01]|44[45]|5\\\\d)|(?:[68]\\\\d|7[089])\\\\d{3}|15\\\\d|2[02]2|650|789|9(?:01|99)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"1(?:(?:25|7[56])\\\\d|571)|2(?:02(?:\\\\d{2})?|[13]3\\\\d\\\\d|48)|4444|901\", , , , \"202\", , , [3, 4, 5]], , [, , \n\"(?:125|2(?:020|13\\\\d)|(?:7[089]|8[01])\\\\d\\\\d)\\\\d\", , , , \"1250\", , , [4, 5]]], GD:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"GD\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"176|911\", , , , \"176\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], GE:[, [, , \"[014]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"0(?:11|33)|11[1-3]|[01]22\", , , , \"011\", , , [3]], [, , , , , , , , , \n[-1]], , , , \"GE\", , , , , , , , , , , , , , , , , , [, , \"0(?:11|33)|11[1-3]|[01]22\", , , , \"011\", , , [3]], , [, , \"0(?:11|33)|11[1-3]|40404|[01]22\", , , , \"011\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], GF:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"GF\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\"], , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GG:[, [, , \"[19]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"112|999\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"GG\", , , , , , , , , , , , , , , , , , [, , \"112|999\", , , , \"112\", , , [3]], , [, , \"1(?:0[01]|1[12]|23|41|55|9[05])|999|1(?:1[68]\\\\d\\\\d|47|800)\\\\d\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GH:[, [, , \"[14589]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"19[1-3]|999\", \n, , , \"191\", , , [3]], [, , , , , , , , , [-1]], , , , \"GH\", , , , , , , , , , , , , , , , , , [, , \"19[1-3]|999\", , , , \"191\", , , [3]], , [, , \"19[1-3]|40404|(?:54|83)00|999\", , , , \"191\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d|(?:54|83)0\\\\d\", , , , \"5400\", , , [4, 5]], , [, , \"404\\\\d\\\\d|(?:54|83)0\\\\d\", , , , \"5400\", , , [4, 5]]], GI:[, [, , \"[158]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:00|1[25]|23|4(?:1|7\\\\d)|5[15]|9[02-49])|555|(?:116\\\\d|80)\\\\d\\\\d\", , , , \"100\", , , [3, 4, 6]], \n[, , \"8[1-69]\\\\d\\\\d\", , , , \"8100\", , , [4]], , , , \"GI\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|9[09])\", , , , \"112\", , , [3]], , [, , \"1(?:00|1(?:[25]|6(?:00[06]|1(?:1[17]|23))|8\\\\d\\\\d)|23|4(?:1|7[014])|5[015]|9[02-49])|555|8[0-79]\\\\d\\\\d|8(?:00|4[0-2]|8[0-589])\", , , , \"100\"], [, , \"150|87\\\\d\\\\d\", , , , \"150\", , , [3, 4]], [, , \"1(?:00|1(?:5|8\\\\d\\\\d)|23|51|9[2-4])|555|8(?:00|4[0-2]|8[0-589])\", , , , \"100\", , , [3, 5]], , [, , , , , , , , , [-1]]], GL:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], \n, , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"GL\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\"], , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GM:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:1[6-8]|[6-8])\", , , , \"16\"], [, , , , , , , , , [-1]], , , , \"GM\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[6-8]|[6-8])\", , , , \"16\"], , [, , \"1(?:1[6-8]|[6-8])\", , , , \"16\"], [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GN:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , , \"GN\", , , , , , , , , , , , , , , , , , [, , , , , , , , , [-1]], , [, , \"12\\\\d|40404\", , , , \"120\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], GP:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"GP\", , , \n, , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\"], , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GR:[, [, , \"1\\\\d\\\\d(?:\\\\d{2,3})?\", , , , , , , [3, 5, 6]], , , [, , \"1(?:0[089]|1(?:2|6\\\\d{3})|66|99)\", , , , \"100\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"GR\", , , , , , , , , , , , , , , , , , [, , \"1(?:00|12|66|99)\", , , , \"100\", , , [3]], , [, , \"1(?:0[089]|1(?:2|320|6(?:000|1(?:1[17]|23)))|(?:389|9)9|66)\", , , , \"100\"], \n[, , \"113\\\\d\\\\d\", , , , \"11300\", , , [5]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GT:[, [, , \"[14]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:10|2[03])\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"GT\", , , , , , , , , , , , , , , , , , [, , \"1(?:10|2[03])\", , , , \"110\", , , [3]], , [, , \"110|40404|1(?:2|[57]\\\\d)\\\\d\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], GU:[, [, , \"9\\\\d\\\\d\", \n, , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"GU\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], GW:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[378]\", , , , \"113\"], [, , , , , , , , , [-1]], , , , \"GW\", , , , , , , , , , , , , , , , , , [, , \"11[378]\", , , , \"113\"], , [, , \"11[378]\", , , , \"113\"], [, , , , , , , , , [-1]], [, , , , , , \n, , , [-1]], , [, , , , , , , , , [-1]]], GY:[, [, , \"[019]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"91[1-3]\", , , , \"911\", , , [3]], [, , , , , , , , , [-1]], , , , \"GY\", , , , , , , , , , , , , , , , , , [, , \"91[1-3]\", , , , \"911\", , , [3]], , [, , \"0(?:02|(?:17|80)1|444|7(?:[67]7|9)|9(?:0[78]|[2-47]))|1(?:443|5[568])|91[1-3]\", , , , \"002\"], [, , , , , , , , , [-1]], [, , \"144\\\\d\", , , , \"1440\", , , [4]], , [, , \"144\\\\d\", , , , \"1440\", , , [4]]], HK:[, [, , \"[19]\\\\d{2,6}\", , , , , , , [3, 4, 5, \n6, 7]], , , [, , \"112|99[29]\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"HK\", , , , , , , , , , , , , , , , , , [, , \"112|99[29]\", , , , \"112\", , , [3]], , [, , \"1(?:0(?:(?:[0136]\\\\d|2[14])\\\\d{0,3}|8[138])|12|2(?:[0-3]\\\\d{0,4}|(?:58|8[13])\\\\d{0,3})|7(?:[135-9]\\\\d{0,4}|219\\\\d{0,2})|8(?:0(?:(?:[13]|60\\\\d)\\\\d|8)|1(?:0\\\\d|[2-8])|2(?:0[5-9]|(?:18|2)2|3|8[128])|(?:(?:3[0-689]\\\\d|7(?:2[1-389]|8[0235-9]|93))\\\\d|8)\\\\d|50[138]|6(?:1(?:11|86)|8)))|99[29]|10[0139]\", , , , \"100\"], [, , , , , , , \n, , [-1]], [, , \"109|1(?:08|85\\\\d)\\\\d\", , , , \"109\", , , [3, 4, 5]], , [, , \"992\", , , , \"992\", , , [3]]], HN:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"199\", , , , \"199\", , , [3]], [, , , , , , , , , [-1]], , , , \"HN\", , , , , , , , , , , , , , , , , , [, , \"199\", , , , \"199\", , , [3]], , [, , \"199|40404\", , , , \"199\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], HR:[, [, , \"[19]\\\\d{1,5}\", , , , , , , [2, \n3, 4, 5, 6]], , , [, , \"1(?:12|9[2-4])|9[34]|1(?:16\\\\d|39)\\\\d\\\\d\", , , , \"93\", , , [2, 3, 5, 6]], [, , \"118\\\\d\\\\d\", , , , \"11800\", , , [5]], , , , \"HR\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|9[2-4])|9[34]\", , , , \"93\", , , [2, 3]], , [, , \"1(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\\\d\\\\d)|3977|9(?:[2-5]|87))|9[34]\", , , , \"93\"], [, , , , , , , , , [-1]], [, , \"139\\\\d\\\\d\", , , , \"13900\", , , [5]], , [, , \"139\\\\d\\\\d\", , , , \"13900\", , , [5]]], HT:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, \n5]], , , [, , \"11[48]\", , , , \"114\", , , [3]], [, , , , , , , , , [-1]], , , , \"HT\", , , , , , , , , , , , , , , , , , [, , \"11[48]\", , , , \"114\", , , [3]], , [, , \"11[48]|40404\", , , , \"114\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], HU:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"1(?:0[457]|1(?:2|6\\\\d{3}))\", , , , \"104\"], [, , , , , , , , , [-1]], , , , \"HU\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[457]|12)\", \n, , , \"104\", , , [3]], , [, , \"1(?:0[457]|1(?:2|6(?:000|1(?:11|23))))\", , , , \"104\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ID:[, [, , \"[178]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"11[02389]\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"ID\", , , , , , , , , , , , , , , , , , [, , \"11[02389]\", , , , \"110\", , , [3]], , [, , \"1(?:1[02389]|40\\\\d\\\\d)|71400|89887\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"(?:714|898)\\\\d\\\\d\", , , , \"71400\", \n, , [5]], , [, , \"714\\\\d\\\\d\", , , , \"71400\", , , [5]]], IE:[, [, , \"[159]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:2|6\\\\d{3})|999\", , , , \"112\", , , [3, 6]], [, , \"5[37]\\\\d{3}\", , , , \"53000\", , , [5]], , , , \"IE\", , , , , , , , , , , , , , , , , , [, , \"112|999\", , , , \"112\", , , [3]], , [, , \"11(?:2|6(?:00[06]|1(?:1[17]|23)))|999|(?:1(?:18|9)|5[0137]\\\\d)\\\\d\\\\d\", , , , \"112\"], [, , \"51\\\\d{3}\", , , , \"51000\", , , [5]], [, , \"51210\", , , , \"51210\", , , [5]], , [, , \"51210|(?:118|5[037]\\\\d)\\\\d\\\\d\", \n, , , \"11800\", , , [5]]], IL:[, [, , \"[12]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:0[0-2]|12)\", , , , \"100\", , , [3]], [, , , , , , , , , [-1]], , , , \"IL\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[0-2]|12)\", , , , \"100\", , , [3]], , [, , \"1(?:0[0-2]|1(?:[013-9]\\\\d|2)|[2-9]\\\\d\\\\d)|2407|(?:104|27)00\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"104\\\\d\\\\d\", , , , \"10400\", , , [5]], , [, , \"104\\\\d\\\\d\", , , , \"10400\", , , [5]]], IM:[, [, , \"[189]\\\\d\\\\d(?:\\\\d{2,3})?\", , , , , , , [3, 5, \n6]], , , [, , \"999\", , , , \"999\", , , [3]], [, , , , , , , , , [-1]], , , , \"IM\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\", , , [3]], , [, , \"1\\\\d\\\\d(?:\\\\d{3})?|8(?:6444|9887)|999\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"8(?:64|98)\\\\d\\\\d\", , , , \"86400\", , , [5]]], IN:[, [, , \"[12578]\\\\d{2,8}\", , , , , , , [3, 4, 5, 6, 7, 8, 9]], , , [, , \"1(?:0[0-248]|1[289]|21|[39][89]|4[01]|6(?:1|6\\\\d?)|8[12])|777|800|1[05]5\\\\d|1(?:07|51|94)\\\\d\\\\d?|(?:1(?:[05]5\\\\d|70)\\\\d|261)\\\\d|1(?:0[369]|10|29|3[126]|9[0-256])\\\\d\", \n, , , \"100\", , , [3, 4, 5, 6]], [, , \"11[67]\\\\d{4}|56161561\", , , , \"1160000\", , , [7, 8]], , , , \"IN\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[0-28]|12|298)|2611\", , , , \"100\", , , [3, 4]], , [, , \"1(?:0(?:[0-248]|3[39]|5(?:010|6)|6[3468]|7(?:[01357]|[28]0?|4[01])|9[0135-9])|1(?:00|[289])|2(?:1|98)|3(?:11|2[0-2]|63|[89])|4[01]|5(?:1(?:0[0-36]|[127])|54)|6(?:1|6[01]?)|7000|8[12]|9(?:0[013-59]|12|25|4[4-9]\\\\d?|50|6[1347]|[89]))|2611|5(?:0(?:0(?:0\\\\d|1|20?)|325|5[2-79]\\\\d{3,5})|1(?:234|555|717|818|96[49])|2(?:0(?:0[01]|[14]0)|151|555|666|888|9(?:06|99\\\\d?))|3(?:0[01]0|131|553|(?:66|77)6)|(?:464|55[05])\\\\d{1,3}|6(?:070|3[68]|43)|717\\\\d)|777|800|5(?:05(?:0|1\\\\d)|221|3(?:03|3[23]))\\\\d{1,4}|5(?:(?:04|88)0|2(?:2[0267]|3[16])|4(?:1[04]|20|3[02])|5(?:3[16]|67)|6(?:06|[67]\\\\d)|787|9(?:64|90))\\\\d\\\\d?|(?:1(?:05[79]|(?:1[67][0-2]|802)\\\\d|55[23])\\\\d|5(?:(?:00(?:0\\\\d|1)|(?:304|616)\\\\d\\\\d)\\\\d|1(?:0[12]|4[2-4])|2(?:2[3589]|3(?:1\\\\d{3}|2)|4[04]|7[78])|4(?:[02]4|32\\\\d{4}|4[04]|99)|5(?:1[25]|[36]5|4[45]|93)|7(?:(?:17\\\\d|57)\\\\d\\\\d|[27]7|88)|8(?:3[4-69]|4[01]|5[58]|88(?:8\\\\d\\\\d|9)|99)|9(?:0(?:0|2\\\\d{3})|55|6[67]|77|88)))\\\\d\", \n, , , \"100\"], [, , \"5(?:14(?:2[5-9]|[34]\\\\d)|757555)\", , , , \"51425\", , , [5, 7]], [, , \"1(?:(?:1[67]\\\\d\\\\d|70)\\\\d\\\\d|55330|909)|5(?:300\\\\d|6161(?:17[89]|561))|1(?:[19][89]|21|4[01])\", , , , \"118\", , , [3, 4, 5, 6, 7, 8]], , [, , \"1(?:39|90[019])|5(?:14(?:2[5-9]|[34]\\\\d)|6161(?:17[89]|561)|757555)\", , , , \"139\", , , [3, 4, 5, 7, 8]]], IQ:[, [, , \"[1479]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:0[04]|15|22)\", , , , \"100\", , , [3]], [, , , , , , , , , [-1]], , , , \"IQ\", , , , , , , , , , , , \n, , , , , , [, , \"1(?:0[04]|15|22)\", , , , \"100\", , , [3]], , [, , \"1(?:0[04]|15|22)|4432|71117|9988\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"(?:443|711\\\\d|998)\\\\d\", , , , \"4430\", , , [4, 5]], , [, , \"(?:443|711\\\\d|998)\\\\d\", , , , \"4430\", , , [4, 5]]], IR:[, [, , \"[129]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1[0-68]|2[0-59]|9[0-579])|911\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"IR\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[025]|25)|911\", , , , \"110\", , , [3]], \n, [, , \"1(?:1[0-68]|2[0-59]|3[346-8]|4(?:[0147]|[289]0)|5(?:0[14]|1[02479]|2[0-3]|39|[49]0|65)|6(?:[16]6|[27]|90)|8(?:03|1[18]|22|3[37]|4[28]|88|99)|9[0-579])|20(?:[09]0|1(?:[038]|1[079]|26|9[69])|2[01])|9(?:11|9(?:0009|90))\", , , , \"110\"], [, , \"1(?:5[0-469]|8[0-489])\\\\d\", , , , \"1500\", , , [4]], [, , \"(?:1(?:5[0-469]|8[0-489])|99(?:0\\\\d\\\\d|9))\\\\d\", , , , \"1500\", , , [4, 6]], , [, , \"990\\\\d{3}\", , , , \"990000\", , , [6]]], IS:[, [, , \"1\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \n\"1(?:12|71\\\\d)\", , , , \"112\", , , [3, 4]], [, , , , , , , , , [-1]], , , , \"IS\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:[28]|61(?:16|23))|4(?:00|1[145]|4[0146])|55|7(?:00|17|7[07-9])|8(?:[02]0|1[16-9]|88)|900)\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"14(?:0\\\\d|41)\", , , , \"1400\", , , [4]], , [, , \"1(?:415|90\\\\d)\", , , , \"1415\", , , [4]]], IT:[, [, , \"[14]\\\\d{2,6}\", , , , , , , [3, 4, 5, 6, 7]], , , [, , \"1(?:1(?:[2358]|6\\\\d{3})|87)\", , , , \"112\", \n, , [3, 6]], [, , \"(?:12|4(?:[478](?:[0-4]|[5-9]\\\\d\\\\d)|55))\\\\d\\\\d\", , , , \"1200\", , , [4, 5, 7]], , , , \"IT\", , , , , , , , , , , , , , , , , , [, , \"11[2358]\", , , , \"112\", , , [3]], , [, , \"1(?:0\\\\d{2,3}|1(?:[2-57-9]|6(?:000|111))|3[39]|4(?:82|9\\\\d{1,3})|5(?:00|1[58]|2[25]|3[03]|44|[59])|60|8[67]|9(?:[01]|2[2-9]|4\\\\d|696))|4(?:2323|5045)|(?:1(?:2|92[01])|4(?:3(?:[01]|[45]\\\\d\\\\d)|[478](?:[0-4]|[5-9]\\\\d\\\\d)|55))\\\\d\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"4(?:3(?:[01]|[45]\\\\d\\\\d)|[478](?:[0-4]|[5-9]\\\\d\\\\d)|5[05])\\\\d\\\\d\", \n, , , \"43000\", , , [5, 7]]], JE:[, [, , \"[129]\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \"112|999\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"JE\", , , , , , , , , , , , , , , , , , [, , \"112|999\", , , , \"112\", , , [3]], , [, , \"1(?:00|1(?:2|8\\\\d{3})|23|4(?:[14]|28|7\\\\d)|5\\\\d|7(?:0[12]|[128]|35?)|808|9[0135])|23[2-4]|999\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], JM:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, \n, \"11[029]|911\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"JM\", , , , , , , , , , , , , , , , , , [, , \"11[029]|911\", , , , \"110\"], , [, , \"1(?:1[029]|76)|911\", , , , \"110\"], [, , , , , , , , , [-1]], [, , \"176\", , , , \"176\"], , [, , \"176\", , , , \"176\"]], JO:[, [, , \"[19]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"1(?:12|9[127])|911\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"JO\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|9[127])|911\", , , , \"112\", , , [3]], , [, , \n\"1(?:09|1[0-2]|9[0-24-79])|9(?:0903|11|8788)\", , , , \"109\"], [, , , , , , , , , [-1]], [, , \"9(?:09|87)\\\\d\\\\d\", , , , \"90900\", , , [5]], , [, , \"9(?:09|87)\\\\d\\\\d\", , , , \"90900\", , , [5]]], JP:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[09]\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"JP\", , , , , , , , , , , , , , , , , , [, , \"11[09]\", , , , \"110\"], , [, , \"11[09]\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KE:[, [, , \"[1-9]\\\\d{2,4}\", \n, , , , , , [3, 4, 5]], , , [, , \"1(?:1(?:[246]|9\\\\d)|5(?:01|2[127]|6[26]\\\\d))|999\", , , , \"112\"], [, , \"909\\\\d\\\\d\", , , , \"90900\", , , [5]], , , , \"KE\", , , , , , , , , , , , , , , , , , [, , \"11[24]|999\", , , , \"112\", , , [3]], , [, , \"1(?:0(?:[07-9]|1[0-25]|400)|1(?:[024-6]|9[0-579])|2[1-3]|3[01]|4[14]|5(?:[01][01]|2[0-24-79]|33|4[05]|5[59]|6(?:00|29|6[67]))|(?:6[035]\\\\d|[78])\\\\d|9(?:[02-9]\\\\d\\\\d|19))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\\\d)\\\\d|5(?:[0-7]\\\\d|99))\\\\d\\\\d|9(?:09\\\\d\\\\d|99)|8988\", \n, , , \"100\"], [, , , , , , , , , [-1]], [, , \"1(?:(?:04|6[35])\\\\d\\\\d|3[01]|4[14]|5(?:1\\\\d|2[25]))|(?:(?:2[0-79]|[37][0-29]|4[0-4]|6[2357]|8\\\\d)\\\\d|5(?:[0-7]\\\\d|99)|909)\\\\d\\\\d|898\\\\d\", , , , \"130\"], , [, , \"1(?:(?:04|6[035])\\\\d\\\\d|4[14]|5(?:01|55|6[26]\\\\d))|40404|8988|909\\\\d\\\\d\", , , , \"141\"]], KG:[, [, , \"[14]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"10[1-3]\", , , , \"101\", , , [3]], [, , , , , , , , , [-1]], , , , \"KG\", , , , , , , , , , , , , , , , , , [, , \"10[1-3]\", , , , \"101\", , , [3]], , [, \n, \"10[1-3]|4040\", , , , \"101\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\", , , , \"4040\", , , [4]], , [, , \"404\\\\d\", , , , \"4040\", , , [4]]], KH:[, [, , \"[146]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"11[7-9]|666\", , , , \"117\", , , [3]], [, , , , , , , , , [-1]], , , , \"KH\", , , , , , , , , , , , , , , , , , [, , \"11[7-9]|666\", , , , \"117\", , , [3]], , [, , \"11[7-9]|40404|666\", , , , \"117\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", \n, , [5]]], KI:[, [, , \"[179]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"19[2-5]|99[2-4]\", , , , \"192\", , , [3]], [, , , , , , , , , [-1]], , , , \"KI\", , , , , , , , , , , , , , , , , , [, , \"19[2-5]|99[2-4]\", , , , \"192\", , , [3]], , [, , \"1(?:05[0-259]|88|9[2-5])|777|99[2-4]|10[0-8]\", , , , \"100\"], [, , \"103\", , , , \"103\", , , [3]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KM:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"KM\", , , , \n, , , , , , , , , , , , , , [, , \"1[78]\", , , , \"17\"], , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KN:[, [, , \"[39]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"333|9(?:11|99)\", , , , \"333\"], [, , , , , , , , , [-1]], , , , \"KN\", , , , , , , , , , , , , , , , , , [, , \"333|9(?:11|99)\", , , , \"333\"], , [, , \"333|9(?:11|99)\", , , , \"333\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KP:[, [, , \"[18]\\\\d\\\\d\", \n, , , , , , [3]], , , [, , \"11[29]|819\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"KP\", , , , , , , , , , , , , , , , , , [, , \"11[29]|819\", , , , \"112\"], , [, , \"11[29]|819\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KR:[, [, , \"1\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:1[27-9]|28|330|82)\", , , , \"112\", , , [3, 4]], [, , , , , , , , , [-1]], , , , \"KR\", , , , , , , , , , , , , , , , , , [, , \"11[29]\", , , , \"112\", , , [3]], , [, , \n\"1(?:[016-9]114|3(?:0[01]|2|3[0-35-9]|45?|5[057]|6[569]|7[79]|8[2589]|9[0189]))|1(?:0[015]|1\\\\d|2[01357-9]|41|8[28])\", , , , \"100\"], [, , , , , , , , , [-1]], [, , \"1(?:0[01]|1[4-6]|41)|1(?:[06-9]1\\\\d|111)\\\\d\", , , , \"100\", , , [3, 5]], , [, , , , , , , , , [-1]]], KW:[, [, , \"[18]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"112\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"KW\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"1[0-7]\\\\d|89887\", , , , \n\"100\"], [, , , , , , , , , [-1]], [, , \"898\\\\d\\\\d\", , , , \"89800\", , , [5]], , [, , , , , , , , , [-1]]], KY:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"KY\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], KZ:[, [, , \"[134]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:0[1-3]|12)\", , , , \"101\", , , [3]], [, , , , , , , , \n, [-1]], , , , \"KZ\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[1-3]|12)\", , , , \"101\", , , [3]], , [, , \"1(?:0[1-4]|12)|(?:3040|404)0\", , , , \"101\"], [, , , , , , , , , [-1]], [, , \"(?:304\\\\d|404)\\\\d\", , , , \"4040\", , , [4, 5]], , [, , \"(?:304\\\\d|404)\\\\d\", , , , \"4040\", , , [4, 5]]], LA:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"19[015]\", , , , \"190\"], [, , , , , , , , , [-1]], , , , \"LA\", , , , , , , , , , , , , , , , , , [, , \"19[015]\", , , , \"190\"], , [, , \"19[015]\", , , , \"190\"], [, , \n, , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LB:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:12|40|75)|999\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"LB\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|40|75)|999\", , , , \"112\"], , [, , \"1(?:12|40|75)|999\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LC:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], \n, , , \"LC\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\"], , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LI:[, [, , \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[278]|44)\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"LI\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[278]|44)\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:[278]|45)|4[3-57]|50|75|81[18])\", , , , \"112\"], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LK:[, [, , \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"11[02689]\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"LK\", , , , , , , , , , , , , , , , , , [, , \"11[02689]\", , , , \"110\", , , [3]], , [, , \"1(?:1[024-9]|3(?:00|1[2-49]|2[23]|3[1-3]|44|5[07]|[67]9|88|9[039])|9(?:0[0-2589]|1[0-357-9]|2[0-25689]|3[0389]|4[0489]|5[014-69]|6[0-2689]|7[03579]|8[02457-9]|9[0-2569]))\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, [, , , , , , , , , [-1]]], LR:[, [, , \"[3489]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"355|911\", , , , \"355\", , , [3]], [, , , , , , , , , [-1]], , , , \"LR\", , , , , , , , , , , , , , , , , , [, , \"355|911\", , , , \"355\", , , [3]], , [, , \"355|4040|8(?:400|933)|911\", , , , \"355\"], [, , , , , , , , , [-1]], [, , \"(?:404|8(?:40|93))\\\\d\", , , , \"4040\", , , [4]], , [, , \"(?:404|8(?:40|93))\\\\d\", , , , \"4040\", , , [4]]], LS:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[257]\", , , , \"112\"], [, , , \n, , , , , , [-1]], , , , \"LS\", , , , , , , , , , , , , , , , , , [, , \"11[257]\", , , , \"112\"], , [, , \"11[257]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LT:[, [, , \"[01]\\\\d(?:\\\\d(?:\\\\d{3})?)?\", , , , , , , [2, 3, 6]], , , [, , \"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:2|6111))|116(?:0\\\\d|12)\\\\d\", , , , \"01\"], [, , , , , , , , , [-1]], , , , \"LT\", , , , , , , , , , , , , , , , , , [, , \"0(?:11?|22?|33?)|1(?:0[1-3]|12)\", , , , \"01\", , , [2, 3]], , [, , \n\"0(?:11?|22?|33?)|1(?:0[1-3]|1(?:[27-9]|6(?:000|1(?:1[17]|23))))\", , , , \"01\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], LU:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:[23]|6\\\\d{3})\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"LU\", , , , , , , , , , , , , , , , , , [, , \"11[23]\", , , , \"112\", , , [3]], , [, , \"11(?:[23]|6(?:000|111))|1(?:18|[25]\\\\d|3)\\\\d\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, [, , , , , , , , , [-1]]], LV:[, [, , \"[018]\\\\d{1,5}\", , , , , , , [2, 3, 4, 5, 6]], , , [, , \"0[1-3]|11(?:[023]|6\\\\d{3})\", , , , \"01\", , , [2, 3, 6]], [, , \"1180|821\\\\d\\\\d\", , , , \"1180\", , , [4, 5]], , , , \"LV\", , , , , , , , , , , , , , , , , , [, , \"0[1-3]|11[023]\", , , , \"01\", , , [2, 3]], , [, , \"0[1-4]|1(?:1(?:[02-4]|6(?:000|111)|8[0189])|(?:5|65)5|77)|821[57]4\", , , , \"01\"], [, , \"1181\", , , , \"1181\", , , [4]], [, , \"165\\\\d\", , , , \"1650\", , , [4]], , [, , , , , , , , , [-1]]], LY:[, [, \n, \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"19[013]\", , , , \"190\"], [, , , , , , , , , [-1]], , , , \"LY\", , , , , , , , , , , , , , , , , , [, , \"19[013]\", , , , \"190\"], , [, , \"19[013]\", , , , \"190\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MA:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:[59]|77)\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"MA\", , , , , , , , , , , , , , , , , , [, , \"1(?:[59]|77)\", , , , \"15\"], , [, , \"1(?:[59]|77)\", , , , \"15\"], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MC:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:12|[578])\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"MC\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|[578])\", , , , \"15\"], , [, , \"1(?:12|41|[578])\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MD:[, [, , \"[19]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:2|6(?:000|1(?:11|2\\\\d)))|90[1-3]\", , , , \n\"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"MD\", , , , , , , , , , , , , , , , , , [, , \"112|90[1-3]\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:00[06]|1(?:1[17]|23))|8\\\\d\\\\d?|99)|90[04-9])|90[1-3]|1(?:4\\\\d\\\\d|6[0-389]|9[1-4])\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ME:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:12|2[2-4])\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], , , , \"ME\", , , , , , , , , , , , , \n, , , , , [, , \"1(?:12|2[2-4])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:(?:[013-57-9]|6\\\\d\\\\d)\\\\d|2)|[249]\\\\d{3}|5999|8(?:0[089]|1[0-8]|888))|1(?:[02-5]\\\\d\\\\d|60[06]|700)|12\\\\d\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MF:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"MF\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\"], , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], [, \n, , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MG:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:1[78]|[78])\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"MG\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[78]|[78])\", , , , \"17\"], , [, , \"1(?:1[78]|[78])\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MH:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"MH\", , , , , , , , , , , , , , , \n, , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MK:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:12|9[2-4])\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"MK\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|9[2-4])\", , , , \"112\"], , [, , \"1(?:12|9[2-4])\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ML:[, [, , \"[136-8]\\\\d{1,4}\", , , , , , , [2, 3, 4, \n5]], , , [, , \"1[578]|(?:352|67)00|7402|(?:677|744|8000)\\\\d\", , , , \"15\", , , [2, 4, 5]], [, , \"(?:12|800)2\\\\d|3(?:52(?:11|2[02]|3[04-6]|99)|7574)\", , , , \"1220\", , , [4, 5]], , , , \"ML\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\", , , [2]], , [, , \"1(?:1(?:[013-9]\\\\d|2)|2(?:1[02-469]|2[13])|[578])|350(?:35|57)|67(?:0[09]|[59]9|77|8[89])|74(?:0[02]|44|55)|800[0-2][12]|3(?:52|[67]\\\\d)\\\\d\\\\d\", , , , \"15\"], [, , \"37(?:433|575)|7400|8001\\\\d\", , , , \"7400\", , , [4, 5]], [, , \"3503\\\\d|(?:3[67]\\\\d|800)\\\\d\\\\d\", \n, , , \"35030\", , , [5]], , [, , \"374(?:0[24-9]|[1-9]\\\\d)|7400|3(?:6\\\\d|75)\\\\d\\\\d\", , , , \"7400\", , , [4, 5]]], MM:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"199\", , , , \"199\"], [, , , , , , , , , [-1]], , , , \"MM\", , , , , , , , , , , , , , , , , , [, , \"199\", , , , \"199\"], , [, , \"199\", , , , \"199\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MN:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"10[0-3]\", , , , \"100\"], [, , , , , , , , , [-1]], , , , \"MN\", , \n, , , , , , , , , , , , , , , , [, , \"10[0-3]\", , , , \"100\"], , [, , \"10[0-3]\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MO:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"MO\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MP:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \n\"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"MP\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MQ:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:12|[578])\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"MQ\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|[578])\", , , , \"15\"], , [, , \"1(?:12|[578])\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, [, , , , , , , , , [-1]]], MR:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"MR\", , , , , , , , , , , , , , , , , , [, , \"1[78]\", , , , \"17\"], , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MS:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"MS\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\"], , [, , \"9(?:11|99)\", \n, , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MT:[, [, , \"1\\\\d\\\\d(?:\\\\d{3})?\", , , , , , , [3, 6]], , , [, , \"11(?:2|6\\\\d{3})\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"MT\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"11(?:2|6(?:000|1(?:11|23)))\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MU:[, [, , \"[189]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"11[45]|99[59]\", \n, , , \"114\", , , [3]], [, , , , , , , , , [-1]], , , , \"MU\", , , , , , , , , , , , , , , , , , [, , \"11[45]|99[59]\", , , , \"114\", , , [3]], , [, , \"1\\\\d{2,4}|(?:8\\\\d\\\\d|99)\\\\d\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], MV:[, [, , \"[14]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:02|1[89])\", , , , \"102\", , , [3]], [, , , , , , , , , [-1]], , , , \"MV\", , , , , , , , , , , , , , , , , , [, , \"1(?:02|1[89])\", , , , \"102\", , , [3]], , [, , \"1(?:[0-37-9]|[4-6]\\\\d)\\\\d|4040|1[45]1\", \n, , , \"100\"], [, , , , , , , , , [-1]], [, , \"1[45]1\", , , , \"141\", , , [3]], , [, , , , , , , , , [-1]]], MW:[, [, , \"[189]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"199|99[7-9]\", , , , \"199\", , , [3]], [, , , , , , , , , [-1]], , , , \"MW\", , , , , , , , , , , , , , , , , , [, , \"199|99[7-9]\", , , , \"199\", , , [3]], , [, , \"199|80400|99[7-9]\", , , , \"199\"], [, , , , , , , , , [-1]], [, , \"804\\\\d\\\\d\", , , , \"80400\", , , [5]], , [, , \"804\\\\d\\\\d\", , , , \"80400\", , , [5]]], MX:[, [, , \"[0579]\\\\d{2,4}\", \n, , , , , , [3, 4, 5]], , , [, , \"0(?:6[0568]|80)|911\", , , , \"060\", , , [3]], [, , \"(?:530\\\\d|776)\\\\d\", , , , \"7760\", , , [4, 5]], , , , \"MX\", , , , , , , , , , , , , , , , , , [, , \"0(?:6[0568]|80)|911\", , , , \"060\", , , [3]], , [, , \"0[1-9]\\\\d|53053|7766|911\", , , , \"010\"], [, , , , , , , , , [-1]], [, , \"0(?:[249]0|[35][01])\", , , , \"020\", , , [3]], , [, , , , , , , , , [-1]]], MY:[, [, , \"[1369]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"112|999\", , , , \"112\", , , [3]], [, , , , , , , , , [-1]], \n, , , \"MY\", , , , , , , , , , , , , , , , , , [, , \"112|999\", , , , \"112\", , , [3]], , [, , \"1(?:0[01348]|1(?:[02]|1[128]|311)|2(?:0[125]|[13-6]|2\\\\d{0,2})|(?:3[1-35-79]|7[45])\\\\d\\\\d?|5(?:454|5\\\\d\\\\d?|77|888|999?)|8(?:18?|2|8[18])|9(?:[124]\\\\d?|68|71|9[0679]))|66628|99[1-469]|13[5-7]|(?:1(?:0[569]|309|5[12]|7[136-9]|9[03])|3[23679]\\\\d\\\\d)\\\\d\", , , , \"100\"], [, , \"666\\\\d\\\\d\", , , , \"66600\", , , [5]], [, , , , , , , , , [-1]], , [, , \"(?:3[23679]\\\\d|666)\\\\d\\\\d\", , , , \"32000\", , , [5]]], MZ:[, [, , \n\"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[79]|9[78])\", , , , \"117\", , , [3]], [, , , , , , , , , [-1]], , , , \"MZ\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[79]|9[78])\", , , , \"117\", , , [3]], , [, , \"1(?:[02-5]\\\\d\\\\d|1[79]|9[78])\", , , , \"117\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NA:[, [, , \"[19]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"10111\", , , , \"10111\", , , [5]], [, , , , , , , , , [-1]], , , , \"NA\", , , , , , , , , , , , , , , \n, , , [, , \"10111\", , , , \"10111\", , , [5]], , [, , \"(?:10|93)111|(?:1\\\\d|9)\\\\d\\\\d\", , , , \"900\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NC:[, [, , \"[135]\\\\d{1,3}\", , , , , , , [2, 3, 4]], , , [, , \"1(?:0(?:00|1[23]|3[0-2]|8\\\\d)|[5-8])|363\\\\d|577\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"NC\", , , , , , , , , , , , , , , , , , [, , \"1[5-8]\", , , , \"15\", , , [2]], , [, , \"1(?:0(?:0[06]|1[02-46]|20|3[0-25]|42|5[058]|77|88)|[5-8])|3631|5[6-8]\\\\d\", , , \n, \"15\"], [, , \"5(?:67|88)\", , , , \"567\", , , [3]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NE:[, [, , \"[1-3578]\\\\d(?:\\\\d(?:\\\\d{3})?)?\", , , , , , , [2, 3, 6]], , , [, , \"1[578]|723\\\\d{3}\", , , , \"15\", , , [2, 6]], [, , , , , , , , , [-1]], , , , \"NE\", , , , , , , , , , , , , , , , , , [, , \"1[578]|723141\", , , , \"15\", , , [2, 6]], , [, , \"1(?:0[01]|1[12]|2[034]|3[013]|[46]0|55?|[78])|222|333|555|723141|888\", , , , \"15\"], [, , , , , , , , , [-1]], [, , \"1(?:0[01]|1[12]|2[034]|3[013]|[46]0|55)|222|333|555|888\", \n, , , \"100\", , , [3]], , [, , , , , , , , , [-1]]], NF:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|55|77)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"NF\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|55|77)\", , , , \"911\"], , [, , \"9(?:11|55|77)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NG:[, [, , \"[14]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"199\", , , , \"199\", , , [3]], [, , , , , , , , , [-1]], , , , \"NG\", , , , , \n, , , , , , , , , , , , , [, , \"199\", , , , \"199\", , , [3]], , [, , \"199|40700\", , , , \"199\"], [, , , , , , , , , [-1]], [, , \"407\\\\d\\\\d\", , , , \"40700\", , , [5]], , [, , \"407\\\\d\\\\d\", , , , \"40700\", , , [5]]], NI:[, [, , \"[12467]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[58]|2[08])|737\\\\d\", , , , \"115\"], [, , , , , , , , , [-1]], , , , \"NI\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[58]|2[08])\", , , , \"115\", , , [3]], , [, , \"1(?:1[58]|200)|4878|7(?:010|373)|12[0158]|(?:19|[267]1)00\", , \n, , \"115\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NL:[, [, , \"[1349]\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \"11(?:2|6\\\\d{3})|911\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"NL\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:00[06]|1(?:11|23)))|2(?:0[0-4]|3[34]|44)|3[03-9]\\\\d|400|8(?:[02-9]\\\\d|1[0-79]))|[34]000|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"120\\\\d\", \n, , , \"1200\", , , [4]], , [, , \"[34]00\\\\d\", , , , \"3000\", , , [4]]], NO:[, [, , \"1\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \"11(?:[023]|6\\\\d{3})\", , , , \"110\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"NO\", , , , , , , , , , , , , , , , , , [, , \"11[023]\", , , , \"110\", , , [3]], , [, , \"1(?:1(?:[0239]|61(?:1[17]|23))|2[048]|4(?:12|[59])|7[57]|8[5-9]\\\\d|90)\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NP:[, [, , \"1\\\\d\\\\d\", \n, , , , , , [3]], , , [, , \"1(?:0[0-3]|12)\", , , , \"100\"], [, , , , , , , , , [-1]], , , , \"NP\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[0-3]|12)\", , , , \"100\"], , [, , \"1(?:0[0-3]|12)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NR:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[0-2]\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"NR\", , , , , , , , , , , , , , , , , , [, , \"11[0-2]\", , , , \"110\"], , [, , \"1(?:1[0-2]|23|92)\", , , , \"110\"], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], NU:[, [, , \"[019]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"NU\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"01[05]|101|999\", , , , \"010\"], [, , , , , , , , , [-1]], [, , \"010\", , , , \"010\"], , [, , , , , , , , , [-1]]], NZ:[, [, , \"\\\\d{3,4}\", , , , , , , [3, 4]], , , [, , \"111\", , , , \"111\", , , [3]], [, , \"018\", , , , \"018\", , , [3]], , , , \"NZ\", \n, , , , , , , , , , , , , , , , , [, , \"111\", , , , \"111\", , , [3]], , [, , \"018|1(?:(?:1|37)1|(?:23|94)4|7[03]7)|[2-57-9]\\\\d{2,3}|6(?:161|26[0-3]|742)\", , , , \"018\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"018|(?:1(?:23|37|7[03]|94)|6(?:[12]6|74))\\\\d|[2-57-9]\\\\d{2,3}\", , , , \"018\"]], OM:[, [, , \"[19]\\\\d{3}\", , , , , , , [4]], , , [, , \"1444|999\\\\d\", , , , \"1444\"], [, , , , , , , , , [-1]], , , , \"OM\", , , , , , , , , , , , , , , , , , [, , \"1444|9999\", , , , \"1444\"], , [, , \n\"1(?:111|222|4(?:4[0-5]|50|66|7[7-9])|51[0-8])|9999|1(?:2[3-5]|3[0-2]|50)\\\\d\", , , , \"1111\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PA:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"PA\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"10[2-4]|911\", , , , \"102\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PE:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], \n, , [, , \"1(?:05|1[67])\", , , , \"105\"], [, , , , , , , , , [-1]], , , , \"PE\", , , , , , , , , , , , , , , , , , [, , \"1(?:05|1[67])\", , , , \"105\"], , [, , \"1(?:05|1[67])\", , , , \"105\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PF:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"PF\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\"], , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , \n, , , , , [-1]], , [, , , , , , , , , [-1]]], PG:[, [, , \"[01]\\\\d{2,6}\", , , , , , , [3, 4, 5, 6, 7]], , , [, , \"000|11[01]\", , , , \"000\", , , [3]], [, , , , , , , , , [-1]], , , , \"PG\", , , , , , , , , , , , , , , , , , [, , \"000|11[01]\", , , , \"000\", , , [3]], , [, , \"000|1(?:1[01]|5\\\\d\\\\d|6\\\\d{2,5})\", , , , \"000\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , \"16\\\\d{2,5}\", , , , \"1600\", , , [4, 5, 6, 7]]], PH:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[27]|911\", , , , \"112\"], \n[, , , , , , , , , [-1]], , , , \"PH\", , , , , , , , , , , , , , , , , , [, , \"11[27]|911\", , , , \"112\"], , [, , \"11[27]|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PK:[, [, , \"1\\\\d{1,3}\", , , , , , , [2, 3, 4]], , , [, , \"1(?:1(?:2\\\\d?|5)|[56])\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"PK\", , , , , , , , , , , , , , , , , , [, , \"1(?:1(?:22?|5)|[56])\", , , , \"15\"], , [, , \"1(?:122|3[014]|[56])|11[2457-9]\", , , , \"15\"], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PL:[, [, , \"[19]\\\\d\\\\d(?:\\\\d{2,3})?\", , , , , , , [3, 5, 6]], , , [, , \"11(?:2|6\\\\d{3})|99[7-9]\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"PL\", , , , , , , , , , , , , , , , , , [, , \"112|99[7-9]\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|61(?:11|23)|891[23])|9\\\\d{3})|9(?:8[4-7]|9[1-9])|11[68]000\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PM:[, [, , \"[13]\\\\d(?:\\\\d{2})?\", \n, , , , , , [2, 4]], , , [, , \"1[578]\", , , , \"15\", , , [2]], [, , , , , , , , , [-1]], , , , \"PM\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\", , , [2]], , [, , \"1[578]|3103\", , , , \"15\"], [, , , , , , , , , [-1]], [, , \"310\\\\d\", , , , \"3100\", , , [4]], , [, , , , , , , , , [-1]]], PR:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"PR\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , \n, , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PS:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:0[0-2]|66)\", , , , \"100\"], [, , , , , , , , , [-1]], , , , \"PS\", , , , , , , , , , , , , , , , , , [, , \"10[0-2]\", , , , \"100\"], , [, , \"1(?:0[0-2]|44|66|99)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PT:[, [, , \"1\\\\d\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [3, 4, 6]], , , [, , \"11[25]|1(?:16\\\\d\\\\d|5[1589]|8[279])\\\\d\", \n, , , \"112\"], [, , , , , , , , , [-1]], , , , \"PT\", , , , , , , , , , , , , , , , , , [, , \"11[25]\", , , , \"112\", , , [3]], , [, , \"1(?:0(?:45|5[01])|1(?:[2578]|600[06])|4(?:1[45]|4)|583|6(?:1[0236]|3[02]|9[169]))|1(?:1611|59)1|1[068]78|1[08]9[16]|1(?:0[1-38]|40|5[15]|6[258]|82)0\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PW:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"PW\", , , , , , , , , \n, , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], PY:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"128|911\", , , , \"128\"], [, , , , , , , , , [-1]], , , , \"PY\", , , , , , , , , , , , , , , , , , [, , \"128|911\", , , , \"128\"], , [, , \"1[1-4]\\\\d|911\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], QA:[, [, , \"[129]\\\\d{2,4}\", , , , , , , [3, 4, 5]], \n, , [, , \"999\", , , , \"999\", , , [3]], [, , , , , , , , , [-1]], , , , \"QA\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\", , , [3]], , [, , \"999|(?:1|20|9[27]\\\\d)\\\\d\\\\d\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], RE:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:12|[578])\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"RE\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|[578])\", , , , \"15\"], , [, , \"1(?:12|[578])\", , , , \"15\"], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], RO:[, [, , \"[18]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:2|6\\\\d{3})\", , , , \"112\", , , [3, 6]], [, , \"(?:1(?:18[39]|[24])|8[48])\\\\d\\\\d\", , , , \"1200\", , , [4, 6]], , , , \"RO\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:000|1(?:11|23))|8(?:(?:01|8[18])1|119|[23]00|932))|[24]\\\\d\\\\d|9(?:0(?:00|19)|1[19]|21|3[02]|5[178]))|8[48]\\\\d\\\\d\", , , , \"112\"], [, , , , , , \n, , , [-1]], [, , , , , , , , , [-1]], , [, , \"(?:1[24]|8[48])\\\\d\\\\d\", , , , \"1200\", , , [4]]], RS:[, [, , \"[19]\\\\d{1,5}\", , , , , , , [2, 3, 4, 5, 6]], , , [, , \"112|9[2-4]\", , , , \"92\", , , [2, 3]], [, , , , , , , , , [-1]], , , , \"RS\", , , , , , , , , , , , , , , , , , [, , \"112|9[2-4]\", , , , \"92\", , , [2, 3]], , [, , \"1[189]\\\\d{1,4}|9[2-4]\", , , , \"92\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], RU:[, [, , \"[01]\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"112|(?:0|10)[1-3]\", \n, , , \"01\"], [, , , , , , , , , [-1]], , , , \"RU\", , , , , , , , , , , , , , , , , , [, , \"112|(?:0|10)[1-3]\", , , , \"01\"], , [, , \"112|(?:0|10)[1-4]\", , , , \"01\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], RW:[, [, , \"[14]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[1245]\", , , , \"111\"], [, , , , , , , , , [-1]], , , , \"RW\", , , , , , , , , , , , , , , , , , [, , \"11[12]\", , , , \"111\"], , [, , \"1(?:0[0-2]|1[0-24-6]|2[13]|70|99)|456\", , , , \"100\"], [, , , , , , , \n, , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SA:[, [, , \"[19]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:2|6\\\\d{3})|9(?:11|37|9[7-9])\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"SA\", , , , , , , , , , , , , , , , , , [, , \"112|9(?:11|9[79])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:00|2|6111)|410|9(?:00|1[89]|9(?:099|22|91)))|9(?:0[24-79]|11|3[379]|40|66|8[5-9]|9[02-9])\", , , , \"112\"], [, , \"141\\\\d\", , , , \"1410\", , , [4]], [, , \"1(?:10|41)\\\\d|90[24679]\", \n, , , \"902\", , , [3, 4]], , [, , , , , , , , , [-1]]], SB:[, [, , \"[127-9]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"SB\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"1(?:[02]\\\\d|1[12]|[35][01]|[49][1-9]|6[2-9]|7[7-9]|8[0-8])|269|777|835|9(?:[01]1|22|33|55|77|88|99)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SC:[, [, , \"[19]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"999\", , , \n, \"999\", , , [3]], [, , , , , , , , , [-1]], , , , \"SC\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\", , , [3]], , [, , \"1(?:0\\\\d|1[027]|2[0-8]|3[13]|4[0-2]|[59][15]|6[1-9]|7[124-6]|8[158])|9(?:6\\\\d\\\\d|99)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SD:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"SD\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"999\", , , \n, \"999\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SE:[, [, , \"[1-37-9]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"112|(?:116\\\\d|900)\\\\d\\\\d\", , , , \"112\", , , [3, 5, 6]], [, , \"11811[89]|72\\\\d{3}\", , , , \"72000\", , , [5, 6]], , , , \"SE\", , , , , , , , , , , , , , , , , , [, , \"112|90000\", , , , \"112\", , , [3, 5]], , [, , \"11(?:[25]|313|6(?:00[06]|1(?:1[17]|23))|7[0-8])|2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|9(?:0(?:00|51)0|12)|(?:11(?:4|8[02-46-9])|7\\\\d\\\\d|90[2-4])\\\\d\\\\d|(?:118|90)1(?:[02-9]\\\\d|1[013-9])\", \n, , , \"112\"], [, , , , , , , , , [-1]], [, , \"2(?:2[02358]|33|4[01]|50|6[1-4])|32[13]|8(?:22|88)|912\", , , , \"220\", , , [3]], , [, , \"7\\\\d{4}\", , , , \"70000\", , , [5]]], SG:[, [, , \"[179]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"99[359]\", , , , \"993\", , , [3]], [, , , , , , , , , [-1]], , , , \"SG\", , , , , , , , , , , , , , , , , , [, , \"99[359]\", , , , \"993\", , , [3]], , [, , \"1(?:(?:[01368]\\\\d|44)\\\\d|[57]\\\\d{2,3}|9(?:0[1-9]|[1-9]\\\\d))|77222|99[02-9]|100\", , , , \"100\"], [, , , , , , , , , [-1]], \n[, , , , , , , , , [-1]], , [, , \"772\\\\d\\\\d\", , , , \"77200\", , , [5]]], SH:[, [, , \"[129]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"9(?:11|99)\", , , , \"911\", , , [3]], [, , , , , , , , , [-1]], , , , \"SH\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\", , , [3]], , [, , \"1\\\\d{2,3}|26[01]\\\\d\\\\d|9(?:11|99)\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SI:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"11(?:(?:0|6\\\\d)\\\\d\\\\d|[23]|8\\\\d\\\\d?)\", \n, , , \"112\"], [, , , , , , , , , [-1]], , , , \"SI\", , , , , , , , , , , , , , , , , , [, , \"11[23]\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:00[146]|[23]|6(?:000|1(?:11|23))|8(?:[08]|99))|9(?:059|1(?:0[12]|16)|5|70|87|9(?:00|[149])))|19(?:08|81)[09]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SJ:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[023]\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"SJ\", , , , , , , , , , , , , , , , , , [, , \"11[023]\", \n, , , \"110\"], , [, , \"11[023]\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SK:[, [, , \"1\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:1(?:2|6\\\\d{3})|5[058])\", , , , \"112\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"SK\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|5[058])\", , , , \"112\", , , [3]], , [, , \"1(?:1(?:2|6(?:000|111)|8[0-8])|[248]\\\\d{3}|5[0589])\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , \n, , , , [-1]]], SL:[, [, , \"[069]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"(?:01|99)9\", , , , \"019\", , , [3]], [, , , , , , , , , [-1]], , , , \"SL\", , , , , , , , , , , , , , , , , , [, , \"(?:01|99)9\", , , , \"019\", , , [3]], , [, , \"(?:01|99)9|60400\", , , , \"019\"], [, , , , , , , , , [-1]], [, , \"604\\\\d\\\\d\", , , , \"60400\", , , [5]], , [, , \"604\\\\d\\\\d\", , , , \"60400\", , , [5]]], SM:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[358]\", , , , \"113\"], [, , , , , , , , , [-1]], , , , \"SM\", \n, , , , , , , , , , , , , , , , , [, , \"11[358]\", , , , \"113\"], , [, , \"11[358]\", , , , \"113\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SN:[, [, , \"[12]\\\\d{1,5}\", , , , , , , [2, 3, 4, 5, 6]], , , [, , \"1(?:515|[78])|2(?:00|1)\\\\d{3}\", , , , \"17\", , , [2, 4, 5, 6]], [, , \"2(?:0[246]|[468])\\\\d{3}\", , , , \"24000\", , , [5, 6]], , , , \"SN\", , , , , , , , , , , , , , , , , , [, , \"1[78]\", , , , \"17\", , , [2]], , [, , \"1(?:1[69]|(?:[246]\\\\d|51)\\\\d)|2(?:0[0-246]|[12468])\\\\d{3}|1[278]\", \n, , , \"12\"], [, , \"2(?:01|2)\\\\d{3}\", , , , \"22000\", , , [5, 6]], [, , \"1[46]\\\\d\\\\d\", , , , \"1400\", , , [4]], , [, , \"2[468]\\\\d{3}\", , , , \"24000\", , , [5]]], SO:[, [, , \"[57-9]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"555|888|999\", , , , \"555\"], [, , , , , , , , , [-1]], , , , \"SO\", , , , , , , , , , , , , , , , , , [, , \"555|888|999\", , , , \"555\"], , [, , \"555|777|888|999\", , , , \"555\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SR:[, [, , \"1\\\\d{2,3}\", , , , , , \n, [3, 4]], , , [, , \"115\", , , , \"115\", , , [3]], [, , , , , , , , , [-1]], , , , \"SR\", , , , , , , , , , , , , , , , , , [, , \"115\", , , , \"115\", , , [3]], , [, , \"1\\\\d{2,3}\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ST:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"ST\", , , , , , , , , , , , , , , , , , [, , \"112\", , , , \"112\"], , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , \n, , , , , , [-1]], , [, , , , , , , , , [-1]]], SV:[, [, , \"[49]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"911\", , , , \"911\", , , [3]], [, , , , , , , , , [-1]], , , , \"SV\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\", , , [3]], , [, , \"40404|911\", , , , \"911\"], [, , , , , , , , , [-1]], [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]], , [, , \"404\\\\d\\\\d\", , , , \"40400\", , , [5]]], SX:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"919\", , , , \"919\"], [, , , , , , , , , [-1]], , , , \n\"SX\", , , , , , , , , , , , , , , , , , [, , \"919\", , , , \"919\"], , [, , \"919\", , , , \"919\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SY:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[023]\", , , , \"110\"], [, , , , , , , , , [-1]], , , , \"SY\", , , , , , , , , , , , , , , , , , [, , \"11[023]\", , , , \"110\"], , [, , \"11[023]\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], SZ:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], \n, , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"SZ\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TC:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"TC\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\"], , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], \n, [, , , , , , , , , [-1]]], TD:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], , , , \"TD\", , , , , , , , , , , , , , , , , , [, , \"1[78]\", , , , \"17\"], , [, , \"1[78]\", , , , \"17\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TG:[, [, , \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1[78]|7[127])\", , , , \"117\", , , [3]], [, , , , , , , , , [-1]], , , , \"TG\", , , , , , , , , , , , , , , , , , [, , \"1(?:1[78]|7[127])\", \n, , , \"117\", , , [3]], , [, , \"1(?:011|1[078]|7[127])\", , , , \"110\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TH:[, [, , \"1\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"1(?:1(?:00|2[03]|3[3479]|7[67]|9[0246])|578|6(?:44|6[79]|88|9[16])|88\\\\d|9[19])|1[15]55\", , , , \"191\"], [, , \"1(?:113|2[23]\\\\d|5(?:09|56))\", , , , \"1113\", , , [4]], , , , \"TH\", , , , , , , , , , , , , , , , , , [, , \"1(?:669|9[19])\", , , , \"191\"], , [, , \"1(?:0[0-2]|1(?:0[03]|1[1-35]|2[0358]|3[03-79]|4[02-489]|5[04-9]|6[04-79]|7[03-9]|8[027-9]|9[02-79])|2(?:22|3[89]|66)|3(?:18|2[23]|3[013]|5[56]|6[45]|73)|477|5(?:0\\\\d|4[0-37-9]|5[1-8]|6[01679]|7[12568]|8[0-24589]|9[013589])|6(?:0[0-29]|2[03]|4[3-6]|6[1-9]|7[0257-9]|8[0158]|9[014-9])|7(?:[14]9|7[27]|90)|888|9[19])\", \n, , , \"100\"], [, , \"1(?:1(?:03|1[15]|2[58]|3[056]|4[02-49]|5[046-9]|7[03-589]|9[579])|5(?:0[0-8]|4[0-378]|5[1-478]|7[156])|6(?:20|4[356]|6[1-68]|7[057-9]|8[015]|9[0457-9]))|1(?:1[68]|26|3[1-35]|5[689]|60|7[17])\\\\d\", , , , \"1103\", , , [4]], [, , \"114[89]\", , , , \"1148\", , , [4]], , [, , , , , , , , , [-1]]], TJ:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:0[1-3]|12)\", , , , \"101\"], [, , , , , , , , , [-1]], , , , \"TJ\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[1-3]|12)\", , , , \"101\"], , \n[, , \"1(?:0[1-3]|12)\", , , , \"101\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TL:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[25]\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"TL\", , , , , , , , , , , , , , , , , , [, , \"11[25]\", , , , \"112\"], , [, , \"1(?:0[02]|1[25]|2[0138]|72|9[07])\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TM:[, [, , \"0\\\\d\", , , , , , , [2]], , , [, , \"0[1-49]\", , , , \"01\"], \n[, , , , , , , , , [-1]], , , , \"TM\", , , , , , , , , , , , , , , , , , [, , \"0[1-3]\", , , , \"01\"], , [, , \"0[1-49]\", , , , \"01\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TN:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"19[078]\", , , , \"190\"], [, , , , , , , , , [-1]], , , , \"TN\", , , , , , , , , , , , , , , , , , [, , \"19[078]\", , , , \"190\"], , [, , \"19[078]\", , , , \"190\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], \nTO:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|22|33|99)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"TO\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|22|33|99)\", , , , \"911\"], , [, , \"9(?:11|22|33|99)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TR:[, [, , \"[1-9]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:1[02]|22|3[126]|4[04]|5[15-9]|6[18]|77|83)\", , , , \"110\", , , [3]], [, , , , , , , , , [-1]], , , , \"TR\", , , , , , , , \n, , , , , , , , , , [, , \"1(?:1[02]|55)\", , , , \"110\", , , [3]], , [, , \"1(?:1(?:[02-79]|8(?:1[018]|2[0245]|3[2-4]|42|5[058]|6[06]|7[07]|8[01389]|9[089]))|3(?:37|[58]6|65)|471|5(?:07|78)|6(?:[02]6|99)|8(?:63|95))|2(?:077|268|4(?:17|23)|5(?:7[26]|82)|6[14]4|8\\\\d\\\\d|9(?:30|89))|3(?:0(?:05|72)|353|4(?:06|30|64)|502|674|747|851|9(?:1[29]|60))|4(?:0(?:25|3[12]|[47]2)|3(?:3[13]|[89]1)|439|5(?:43|55)|717|832)|5(?:145|290|[4-6]\\\\d\\\\d|772|833|9(?:[06]1|92))|6(?:236|6(?:12|39|8[59])|769)|7890|8(?:688|7(?:28|65)|85[06])|9(?:159|290)|1[2-9]\\\\d\", \n, , , \"110\"], [, , \"(?:285|542)0\", , , , \"2850\", , , [4]], [, , , , , , , , , [-1]], , [, , \"1(?:3(?:37|[58]6|65)|4(?:4|71)|5(?:07|78)|6(?:[02]6|99)|8(?:3|63|95))|(?:2(?:07|26|4[12]|5[78]|6[14]|8\\\\d|9[38])|3(?:0[07]|[38]5|4[036]|50|67|74|9[16])|4(?:0[2-47]|3[389]|[48]3|5[45]|71)|5(?:14|29|[4-6]\\\\d|77|83|9[069])|6(?:23|6[138]|76)|789|8(?:68|7[26]|85)|9(?:15|29))\\\\d\", , , , \"144\", , , [3, 4]]], TT:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"99[09]\", , , , \"990\"], [, , , , , , , , , [-1]], , , , \n\"TT\", , , , , , , , , , , , , , , , , , [, , \"99[09]\", , , , \"990\"], , [, , \"99[09]\", , , , \"990\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TV:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"TV\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"1\\\\d\\\\d|911\", , , , \"100\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TW:[, [, , \"1\\\\d{2,3}\", , , , , \n, , [3, 4]], , , [, , \"11[0289]|1(?:81|92)\\\\d\", , , , \"110\"], [, , \"10[56]\", , , , \"105\", , , [3]], , , , \"TW\", , , , , , , , , , , , , , , , , , [, , \"11[029]\", , , , \"110\", , , [3]], , [, , \"1(?:0[04-6]|1[0237-9]|3[389]|6[05-8]|7[07]|8(?:0|11)|9(?:19|22|5[057]|68|8[05]|9[15689]))\", , , , \"100\"], [, , \"1(?:65|9(?:1\\\\d|50|85|98))\", , , , \"165\"], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], TZ:[, [, , \"[149]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"11[12]|999\", , , , \"111\", , , \n[3]], [, , , , , , , , , [-1]], , , , \"TZ\", , , , , , , , , , , , , , , , , , [, , \"11[12]|999\", , , , \"111\", , , [3]], , [, , \"11[12]|46400|999\", , , , \"111\"], [, , , , , , , , , [-1]], [, , \"464\\\\d\\\\d\", , , , \"46400\", , , [5]], , [, , \"464\\\\d\\\\d\", , , , \"46400\", , , [5]]], UA:[, [, , \"[189]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"1(?:0[1-3]|1(?:2|6\\\\d{3}))\", , , , \"101\", , , [3, 6]], [, , , , , , , , , [-1]], , , , \"UA\", , , , , , , , , , , , , , , , , , [, , \"1(?:0[1-3]|12)\", , , , \"101\", \n, , [3]], , [, , \"1(?:0[1-49]|1(?:2|6(?:000|1(?:11|23))|8\\\\d\\\\d?)|(?:[278]|5\\\\d)\\\\d)|[89]00\\\\d\\\\d?|151|1(?:06|4\\\\d|6)\\\\d\\\\d\", , , , \"101\"], [, , , , , , , , , [-1]], [, , \"(?:118|[89]00)\\\\d\\\\d?\", , , , \"1180\", , , [4, 5]], , [, , , , , , , , , [-1]]], UG:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], , , , \"UG\", , , , , , , , , , , , , , , , , , [, , \"999\", , , , \"999\"], , [, , \"999\", , , , \"999\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , \n[, , , , , , , , , [-1]]], US:[, [, , \"[1-9]\\\\d{2,5}\", , , , , , , [3, 4, 5, 6]], , , [, , \"112|[69]11\", , , , \"112\", , , [3]], [, , \"24280|(?:381|968)35|4(?:3355|7553|8221)|5(?:(?:489|934)2|5928)|72078|(?:323|960)40|(?:276|414)63|(?:2(?:520|744)|7390|9968)9|(?:693|732|976)88|(?:3(?:556|825)|5294|8623|9729)4|(?:3378|4136|7642|8961|9979)6|(?:4(?:6(?:15|32)|827)|(?:591|720)8|9529)7\", , , , \"24280\", , , [5]], , , , \"US\", , , , , , , , , , , , , , , , , , [, , \"112|911\", , , , \"112\", , , [3]], , [, , \n\"11(?:2|5[1-47]|[68]\\\\d|7[0-57]|98)|[2-9]\\\\d{3,5}|[2-9]11\", , , , \"112\"], [, , \"2(?:3333|(?:4224|7562|900)2|56447|6688)|3(?:1010|2665|7404)|40404|560560|6(?:0060|22639|5246|7622)|7(?:0701|3822|4666)|8(?:(?:3825|7226)5|4816)|99099\", , , , \"23333\", , , [5, 6]], [, , \"336\\\\d\\\\d|[2-9]\\\\d{3}|[2356]11\", , , , \"211\", , , [3, 4, 5]], , [, , \"[2-9]\\\\d{4,5}\", , , , \"20000\", , , [5, 6]]], UY:[, [, , \"[19]\\\\d{2,3}\", , , , , , , [3, 4]], , , [, , \"128|911\", , , , \"128\", , , [3]], [, , , , , , , , , [-1]], , , \n, \"UY\", , , , , , , , , , , , , , , , , , [, , \"128|911\", , , , \"128\", , , [3]], , [, , \"1(?:0[4-9]|1[2368]|2[0-3568]|787)|911\", , , , \"104\"], [, , \"178\\\\d\", , , , \"1780\", , , [4]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], UZ:[, [, , \"[04]\\\\d(?:\\\\d(?:\\\\d{2})?)?\", , , , , , , [2, 3, 5]], , , [, , \"0(?:0[1-3]|[1-3]|50)\", , , , \"01\", , , [2, 3]], [, , , , , , , , , [-1]], , , , \"UZ\", , , , , , , , , , , , , , , , , , [, , \"0(?:0[1-3]|[1-3]|50)\", , , , \"01\", , , [2, 3]], , [, , \"0(?:0[1-3]|[1-3]|50)|45400\", \n, , , \"01\"], [, , , , , , , , , [-1]], [, , \"454\\\\d\\\\d\", , , , \"45400\", , , [5]], , [, , \"454\\\\d\\\\d\", , , , \"45400\", , , [5]]], VA:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[2358]\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"VA\", , , , , , , , , , , , , , , , , , [, , \"11[2358]\", , , , \"112\"], , [, , \"11[2358]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], VC:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , \n, , , , , , , [-1]], , , , \"VC\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\"], , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], VE:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:12|71)|911\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"VE\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|71)|911\", , , , \"112\"], , [, , \"1(?:12|71)|911\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , \n[, , , , , , , , , [-1]]], VG:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"VG\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|99)\", , , , \"911\"], , [, , \"9(?:11|99)\", , , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], VI:[, [, , \"9\\\\d\\\\d\", , , , , , , [3]], , , [, , \"911\", , , , \"911\"], [, , , , , , , , , [-1]], , , , \"VI\", , , , , , , , , , , , , , , , , , [, , \"911\", , , , \"911\"], , [, , \"911\", \n, , , \"911\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], VN:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"11[3-5]\", , , , \"113\"], [, , , , , , , , , [-1]], , , , \"VN\", , , , , , , , , , , , , , , , , , [, , \"11[3-5]\", , , , \"113\"], , [, , \"11[3-5]\", , , , \"113\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], VU:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"VU\", , , , , , \n, , , , , , , , , , , , [, , \"112\", , , , \"112\"], , [, , \"112\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], WF:[, [, , \"1\\\\d\", , , , , , , [2]], , , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"WF\", , , , , , , , , , , , , , , , , , [, , \"1[578]\", , , , \"15\"], , [, , \"1[578]\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], WS:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"9(?:11|9[4-69])\", \n, , , \"911\"], [, , , , , , , , , [-1]], , , , \"WS\", , , , , , , , , , , , , , , , , , [, , \"9(?:11|9[4-69])\", , , , \"911\"], , [, , \"1(?:1[12]|2[0-6]|[39]0)|9(?:11|9[4-79])\", , , , \"111\"], [, , , , , , , , , [-1]], [, , \"12[0-6]\", , , , \"120\"], , [, , , , , , , , , [-1]]], XK:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"1(?:12|9[2-4])\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"XK\", , , , , , , , , , , , , , , , , , [, , \"1(?:12|9[2-4])\", , , , \"112\"], , [, , \"1(?:12|9[2-4])\", , , , \"112\"], \n[, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], YE:[, [, , \"1\\\\d\\\\d\", , , , , , , [3]], , , [, , \"19[1459]\", , , , \"191\"], [, , , , , , , , , [-1]], , , , \"YE\", , , , , , , , , , , , , , , , , , [, , \"19[1459]\", , , , \"191\"], , [, , \"19[1459]\", , , , \"191\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], YT:[, [, , \"1\\\\d\\\\d?\", , , , , , , [2, 3]], , , [, , \"1(?:12|5)\", , , , \"15\"], [, , , , , , , , , [-1]], , , , \"YT\", , , , , , , \n, , , , , , , , , , , [, , \"1(?:12|5)\", , , , \"15\"], , [, , \"1(?:12|5)\", , , , \"15\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ZA:[, [, , \"[134]\\\\d{2,4}\", , , , , , , [3, 4, 5]], , , [, , \"1(?:01\\\\d\\\\d|12)\", , , , \"112\", , , [3, 5]], [, , \"41(?:348|851)\", , , , \"41348\", , , [5]], , , , \"ZA\", , , , , , , , , , , , , , , , , , [, , \"1(?:01(?:11|77)|12)\", , , , \"112\", , , [3, 5]], , [, , \"1(?:0(?:1(?:11|77)|20|7)|1[12]|77(?:3[237]|[45]7|6[279]|9[26]))|[34]\\\\d{4}\", \n, , , \"107\"], [, , \"3(?:078[23]|7(?:064|567)|8126)|4(?:394[16]|7751|8837)|4[23]699\", , , , \"30782\", , , [5]], [, , \"111\", , , , \"111\", , , [3]], , [, , \"[34]\\\\d{4}\", , , , \"30000\", , , [5]]], ZM:[, [, , \"[19]\\\\d\\\\d\", , , , , , , [3]], , , [, , \"112|99[139]\", , , , \"112\"], [, , , , , , , , , [-1]], , , , \"ZM\", , , , , , , , , , , , , , , , , , [, , \"112|99[139]\", , , , \"112\"], , [, , \"112|99[139]\", , , , \"112\"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , [, , , , , , , , , [-1]]], ZW:[, \n[, , \"[139]\\\\d\\\\d(?:\\\\d{2})?\", , , , , , , [3, 5]], , , [, , \"112|9(?:5[023]|61|9[3-59])\", , , , \"112\", , , [3]], [, , \"3[013-57-9]\\\\d{3}\", , , , \"30000\", , , [5]], , , , \"ZW\", , , , , , , , , , , , , , , , , , [, , \"112|99[3-59]\", , , , \"112\", , , [3]], , [, , \"11[2469]|3[013-57-9]\\\\d{3}|9(?:5[023]|6[0-25]|9[3-59])\", , , , \"112\"], [, , , , , , , , , [-1]], [, , \"114|9(?:5[023]|6[0-25])\", , , , \"114\", , , [3]], , [, , , , , , , , , [-1]]]};\n/*\n\n Copyright (C) 2018 The Libphonenumber Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\ni18n.phonenumbers.ShortNumberInfo = function() {\n this.regionToMetadataMap = {};\n};\ngoog.addSingletonGetter(i18n.phonenumbers.ShortNumberInfo);\ni18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_ = [\"BR\", \"CL\", \"NI\"];\ni18n.phonenumbers.ShortNumberInfo.ShortNumberCost = {TOLL_FREE:0, STANDARD_RATE:1, PREMIUM_RATE:2, UNKNOWN_COST:3};\ni18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodesForCountryCode_ = function(a) {\n return (a = i18n.phonenumbers.metadata.countryCodeToRegionCodeMap[a]) ? a : [];\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.regionDialingFromMatchesNumber_ = function(a, b) {\n var c = this.getRegionCodesForCountryCode_(a.getCountryCodeOrDefault());\n return goog.array.contains(c, b);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumberForRegion = function(a, b) {\n if (!this.regionDialingFromMatchesNumber_(a, b)) {\n return !1;\n }\n var c = this.getMetadataForRegion_(b);\n if (!c) {\n return !1;\n }\n var d = this.getNationalSignificantNumber_(a).length;\n return goog.array.contains(c.getGeneralDesc().possibleLengthArray(), d);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isPossibleShortNumber = function(a) {\n var b = this.getRegionCodesForCountryCode_(a.getCountryCodeOrDefault());\n a = this.getNationalSignificantNumber_(a).length;\n for (var c = 0; c < b.length; c++) {\n var d = this.getMetadataForRegion_(b[c]);\n if (d && (d = d.getGeneralDesc().possibleLengthArray(), goog.array.contains(d, a))) {\n return !0;\n }\n }\n return !1;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumberForRegion = function(a, b) {\n if (!this.regionDialingFromMatchesNumber_(a, b)) {\n return !1;\n }\n var c = this.getMetadataForRegion_(b);\n if (!c) {\n return !1;\n }\n var d = this.getNationalSignificantNumber_(a), e = c.getGeneralDesc();\n if (!this.matchesPossibleNumberAndNationalNumber_(d, e)) {\n return !1;\n }\n c = c.getShortCode();\n return this.matchesPossibleNumberAndNationalNumber_(d, c);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isValidShortNumber = function(a) {\n var b = this.getRegionCodesForCountryCode_(a.getCountryCodeOrDefault()), c = this.getRegionCodeForShortNumberFromRegionList_(a, b);\n return 1 < b.length && null != c ? !0 : this.isValidShortNumberForRegion(a, c);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCostForRegion = function(a, b) {\n var c = i18n.phonenumbers.ShortNumberInfo.ShortNumberCost;\n if (!this.regionDialingFromMatchesNumber_(a, b)) {\n return c.UNKNOWN_COST;\n }\n var d = this.getMetadataForRegion_(b);\n if (!d) {\n return c.UNKNOWN_COST;\n }\n var e = this.getNationalSignificantNumber_(a);\n return goog.array.contains(d.getGeneralDesc().possibleLengthArray(), e.length) ? this.matchesPossibleNumberAndNationalNumber_(e, d.getPremiumRate()) ? c.PREMIUM_RATE : this.matchesPossibleNumberAndNationalNumber_(e, d.getStandardRate()) ? c.STANDARD_RATE : this.matchesPossibleNumberAndNationalNumber_(e, d.getTollFree()) || this.isEmergencyNumber(e, b) ? c.TOLL_FREE : c.UNKNOWN_COST : c.UNKNOWN_COST;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getExpectedCost = function(a) {\n var b = i18n.phonenumbers.ShortNumberInfo.ShortNumberCost, c = this.getRegionCodesForCountryCode_(a.getCountryCodeOrDefault());\n if (0 === c.length) {\n return b.UNKNOWN_COST;\n }\n if (1 === c.length) {\n return this.getExpectedCostForRegion(a, c[0]);\n }\n for (var d = b.TOLL_FREE, e = 0; e < c.length; e++) {\n var f = this.getExpectedCostForRegion(a, c[e]);\n switch(f) {\n case b.PREMIUM_RATE:\n return b.PREMIUM_RATE;\n case b.UNKNOWN_COST:\n d = b.UNKNOWN_COST;\n break;\n case b.STANDARD_RATE:\n d !== b.UNKNOWN_COST && (d = b.STANDARD_RATE);\n break;\n case b.TOLL_FREE:\n break;\n default:\n throw Error(\"Unrecognized cost for region: \" + f);\n }\n }\n return d;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getRegionCodeForShortNumberFromRegionList_ = function(a, b) {\n if (0 === b.length) {\n return null;\n }\n if (1 === b.length) {\n return b[0];\n }\n for (var c = this.getNationalSignificantNumber_(a), d = 0; d < b.length; d++) {\n var e = b[d], f = this.getMetadataForRegion_(e);\n if (f && this.matchesPossibleNumberAndNationalNumber_(c, f.getShortCode())) {\n return e;\n }\n }\n return null;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getSupportedRegions = function() {\n return goog.array.filter(Object.keys(i18n.phonenumbers.shortnumbermetadata.countryToMetadata), function(a) {\n return isNaN(a);\n });\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumber = function(a) {\n a = this.getMetadataForRegion_(a);\n if (!a) {\n return \"\";\n }\n a = a.getShortCode();\n return a.hasExampleNumber() ? a.getExampleNumber() || \"\" : \"\";\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getExampleShortNumberForCost = function(a, b) {\n var c = this.getMetadataForRegion_(a);\n if (!c) {\n return \"\";\n }\n var d = i18n.phonenumbers.ShortNumberInfo.ShortNumberCost, e = null;\n switch(b) {\n case d.TOLL_FREE:\n e = c.getTollFree();\n break;\n case d.STANDARD_RATE:\n e = c.getStandardRate();\n break;\n case d.PREMIUM_RATE:\n e = c.getPremiumRate();\n }\n return e && e.hasExampleNumber() ? e.getExampleNumber() || \"\" : \"\";\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.connectsToEmergencyNumber = function(a, b) {\n return this.matchesEmergencyNumberHelper_(a, b, !0);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isEmergencyNumber = function(a, b) {\n return this.matchesEmergencyNumberHelper_(a, b, !1);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getMetadataForRegion_ = function(a) {\n if (!a) {\n return null;\n }\n a = a.toUpperCase();\n var b = this.regionToMetadataMap[a];\n if (null == b) {\n b = new goog.proto2.PbLiteSerializer;\n var c = i18n.phonenumbers.shortnumbermetadata.countryToMetadata[a];\n if (null == c) {\n return null;\n }\n b = b.deserialize(i18n.phonenumbers.PhoneMetadata.getDescriptor(), c);\n this.regionToMetadataMap[a] = b;\n }\n return b;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.matchesEmergencyNumberHelper_ = function(a, b, c) {\n var d = i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber(a);\n if (i18n.phonenumbers.PhoneNumberUtil.LEADING_PLUS_CHARS_PATTERN.test(d)) {\n return !1;\n }\n a = this.getMetadataForRegion_(b);\n if (null == a || !a.hasEmergency()) {\n return !1;\n }\n d = i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(d);\n b = c && !goog.array.contains(i18n.phonenumbers.ShortNumberInfo.REGIONS_WHERE_EMERGENCY_NUMBERS_MUST_BE_EXACT_, b);\n c = a.getEmergency().getNationalNumberPatternOrDefault();\n return i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(c, d) || b && i18n.phonenumbers.PhoneNumberUtil.matchesPrefix(c, d);\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecific = function(a) {\n var b = this.getRegionCodesForCountryCode_(a.getCountryCodeOrDefault());\n b = this.getRegionCodeForShortNumberFromRegionList_(a, b);\n a = this.getNationalSignificantNumber_(a);\n b = this.getMetadataForRegion_(b);\n return !!b && this.matchesPossibleNumberAndNationalNumber_(a, b.getCarrierSpecific());\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isCarrierSpecificForRegion = function(a, b) {\n if (!this.regionDialingFromMatchesNumber_(a, b)) {\n return !1;\n }\n var c = this.getNationalSignificantNumber_(a), d = this.getMetadataForRegion_(b);\n return !!d && this.matchesPossibleNumberAndNationalNumber_(c, d.getCarrierSpecific());\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.isSmsServiceForRegion = function(a, b) {\n if (!this.regionDialingFromMatchesNumber_(a, b)) {\n return !1;\n }\n var c = this.getMetadataForRegion_(b), d = this.getNationalSignificantNumber_(a);\n return !!c && this.matchesPossibleNumberAndNationalNumber_(d, c.getSmsServices());\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.getNationalSignificantNumber_ = function(a) {\n if (!a.hasNationalNumber()) {\n return \"\";\n }\n var b = \"\" + a.getNationalNumber();\n return a.hasItalianLeadingZero() && a.getItalianLeadingZero() && 0 < a.getNumberOfLeadingZerosOrDefault() ? Array(a.getNumberOfLeadingZerosOrDefault() + 1).join(\"0\") + b : b;\n};\ni18n.phonenumbers.ShortNumberInfo.prototype.matchesPossibleNumberAndNationalNumber_ = function(a, b) {\n return 0 < b.possibleLengthArray().length && !goog.array.contains(b.possibleLengthArray(), a.length) ? !1 : i18n.phonenumbers.PhoneNumberUtil.matchesEntirely(b.getNationalNumberPatternOrDefault(), a.toString());\n};\nObject.defineProperty(exports, \"__esModule\", {value:!0});\nexports[\"default\"] = i18n.phonenumbers;\nmodule.exports = exports[\"default\"];\n\n\n},{}]},{},[1])(1)\n});\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {\n var metadataKey = METADATA_KEY.TAGGED;\n _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);\n}\nexports.tagParameter = tagParameter;\nfunction tagProperty(annotationTarget, propertyName, metadata) {\n var metadataKey = METADATA_KEY.TAGGED_PROP;\n _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);\n}\nexports.tagProperty = tagProperty;\nfunction _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {\n var paramsOrPropertiesMetadata = {};\n var isParameterDecorator = (typeof parameterIndex === \"number\");\n var key = (parameterIndex !== undefined && isParameterDecorator) ? parameterIndex.toString() : propertyName;\n if (isParameterDecorator && propertyName !== undefined) {\n throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\n }\n if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {\n paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);\n }\n var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];\n if (!Array.isArray(paramOrPropertyMetadata)) {\n paramOrPropertyMetadata = [];\n }\n else {\n for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {\n var m = paramOrPropertyMetadata_1[_i];\n if (m.key === metadata.key) {\n throw new Error(ERROR_MSGS.DUPLICATED_METADATA + \" \" + m.key.toString());\n }\n }\n }\n paramOrPropertyMetadata.push(metadata);\n paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;\n Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);\n}\nfunction _decorate(decorators, target) {\n Reflect.decorate(decorators, target);\n}\nfunction _param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); };\n}\nfunction decorate(decorator, target, parameterIndex) {\n if (typeof parameterIndex === \"number\") {\n _decorate([_param(parameterIndex, decorator)], target);\n }\n else if (typeof parameterIndex === \"string\") {\n Reflect.decorate([decorator], target, parameterIndex);\n }\n else {\n _decorate([decorator], target);\n }\n}\nexports.decorate = decorate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar error_msgs_1 = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nvar LazyServiceIdentifer = (function () {\n function LazyServiceIdentifer(cb) {\n this._cb = cb;\n }\n LazyServiceIdentifer.prototype.unwrap = function () {\n return this._cb();\n };\n return LazyServiceIdentifer;\n}());\nexports.LazyServiceIdentifer = LazyServiceIdentifer;\nfunction inject(serviceIdentifier) {\n return function (target, targetKey, index) {\n if (serviceIdentifier === undefined) {\n throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));\n }\n var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);\n if (typeof index === \"number\") {\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n }\n else {\n decorator_utils_1.tagProperty(target, targetKey, metadata);\n }\n };\n}\nexports.inject = inject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERRORS_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction injectable() {\n return function (target) {\n if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {\n throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);\n }\n var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];\n Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);\n return target;\n };\n}\nexports.injectable = injectable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction multiInject(serviceIdentifier) {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);\n if (typeof index === \"number\") {\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n }\n else {\n decorator_utils_1.tagProperty(target, targetKey, metadata);\n }\n };\n}\nexports.multiInject = multiInject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction named(name) {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);\n if (typeof index === \"number\") {\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n }\n else {\n decorator_utils_1.tagProperty(target, targetKey, metadata);\n }\n };\n}\nexports.named = named;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction optional() {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);\n if (typeof index === \"number\") {\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n }\n else {\n decorator_utils_1.tagProperty(target, targetKey, metadata);\n }\n };\n}\nexports.optional = optional;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERRORS_MSGS = require(\"../constants/error_msgs\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nfunction postConstruct() {\n return function (target, propertyKey, descriptor) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);\n if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {\n throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);\n }\n Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);\n };\n}\nexports.postConstruct = postConstruct;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction tagged(metadataKey, metadataValue) {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(metadataKey, metadataValue);\n if (typeof index === \"number\") {\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n }\n else {\n decorator_utils_1.tagProperty(target, targetKey, metadata);\n }\n };\n}\nexports.tagged = tagged;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction targetName(name) {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n };\n}\nexports.targetName = targetName;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar decorator_utils_1 = require(\"./decorator_utils\");\nfunction unmanaged() {\n return function (target, targetKey, index) {\n var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);\n decorator_utils_1.tagParameter(target, targetKey, index, metadata);\n };\n}\nexports.unmanaged = unmanaged;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar id_1 = require(\"../utils/id\");\nvar Binding = (function () {\n function Binding(serviceIdentifier, scope) {\n this.id = id_1.id();\n this.activated = false;\n this.serviceIdentifier = serviceIdentifier;\n this.scope = scope;\n this.type = literal_types_1.BindingTypeEnum.Invalid;\n this.constraint = function (request) { return true; };\n this.implementationType = null;\n this.cache = null;\n this.factory = null;\n this.provider = null;\n this.onActivation = null;\n this.dynamicValue = null;\n }\n Binding.prototype.clone = function () {\n var clone = new Binding(this.serviceIdentifier, this.scope);\n clone.activated = false;\n clone.implementationType = this.implementationType;\n clone.dynamicValue = this.dynamicValue;\n clone.scope = this.scope;\n clone.type = this.type;\n clone.factory = this.factory;\n clone.provider = this.provider;\n clone.constraint = this.constraint;\n clone.onActivation = this.onActivation;\n clone.cache = this.cache;\n return clone;\n };\n return Binding;\n}());\nexports.Binding = Binding;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BindingCount = {\n MultipleBindingsAvailable: 2,\n NoBindingsAvailable: 0,\n OnlyOneBindingAvailable: 1\n};\nexports.BindingCount = BindingCount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DUPLICATED_INJECTABLE_DECORATOR = \"Cannot apply @injectable decorator multiple times.\";\nexports.DUPLICATED_METADATA = \"Metadata key was used more than once in a parameter:\";\nexports.NULL_ARGUMENT = \"NULL argument\";\nexports.KEY_NOT_FOUND = \"Key Not Found\";\nexports.AMBIGUOUS_MATCH = \"Ambiguous match found for serviceIdentifier:\";\nexports.CANNOT_UNBIND = \"Could not unbind serviceIdentifier:\";\nexports.NOT_REGISTERED = \"No matching bindings found for serviceIdentifier:\";\nexports.MISSING_INJECTABLE_ANNOTATION = \"Missing required @injectable annotation in:\";\nexports.MISSING_INJECT_ANNOTATION = \"Missing required @inject or @multiInject annotation in:\";\nexports.UNDEFINED_INJECT_ANNOTATION = function (name) {\n return \"@inject called with undefined this could mean that the class \" + name + \" has \" +\n \"a circular dependency problem. You can use a LazyServiceIdentifer to \" +\n \"overcome this limitation.\";\n};\nexports.CIRCULAR_DEPENDENCY = \"Circular dependency found:\";\nexports.NOT_IMPLEMENTED = \"Sorry, this feature is not fully implemented yet.\";\nexports.INVALID_BINDING_TYPE = \"Invalid binding type:\";\nexports.NO_MORE_SNAPSHOTS_AVAILABLE = \"No snapshot available to restore.\";\nexports.INVALID_MIDDLEWARE_RETURN = \"Invalid return type in middleware. Middleware must return!\";\nexports.INVALID_FUNCTION_BINDING = \"Value provided to function binding must be a function!\";\nexports.INVALID_TO_SELF_VALUE = \"The toSelf function can only be applied when a constructor is \" +\n \"used as service identifier\";\nexports.INVALID_DECORATOR_OPERATION = \"The @inject @multiInject @tagged and @named decorators \" +\n \"must be applied to the parameters of a class constructor or a class property.\";\nexports.ARGUMENTS_LENGTH_MISMATCH = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return \"The number of constructor arguments in the derived class \" +\n (values[0] + \" must be >= than the number of constructor arguments of its base class.\");\n};\nexports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = \"Invalid Container constructor argument. Container options \" +\n \"must be an object.\";\nexports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = \"Invalid Container option. Default scope must \" +\n \"be a string ('singleton' or 'transient').\";\nexports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = \"Invalid Container option. Auto bind injectable must \" +\n \"be a boolean\";\nexports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = \"Invalid Container option. Skip base check must \" +\n \"be a boolean\";\nexports.MULTIPLE_POST_CONSTRUCT_METHODS = \"Cannot apply @postConstruct decorator multiple times in the same class\";\nexports.POST_CONSTRUCT_ERROR = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return \"@postConstruct error in class \" + values[0] + \": \" + values[1];\n};\nexports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n return \"It looks like there is a circular dependency \" +\n (\"in one of the '\" + values[0] + \"' bindings. Please investigate bindings with\") +\n (\"service identifier '\" + values[1] + \"'.\");\n};\nexports.STACK_OVERFLOW = \"Maximum call stack size exceeded\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BindingScopeEnum = {\n Request: \"Request\",\n Singleton: \"Singleton\",\n Transient: \"Transient\"\n};\nexports.BindingScopeEnum = BindingScopeEnum;\nvar BindingTypeEnum = {\n ConstantValue: \"ConstantValue\",\n Constructor: \"Constructor\",\n DynamicValue: \"DynamicValue\",\n Factory: \"Factory\",\n Function: \"Function\",\n Instance: \"Instance\",\n Invalid: \"Invalid\",\n Provider: \"Provider\"\n};\nexports.BindingTypeEnum = BindingTypeEnum;\nvar TargetTypeEnum = {\n ClassProperty: \"ClassProperty\",\n ConstructorArgument: \"ConstructorArgument\",\n Variable: \"Variable\"\n};\nexports.TargetTypeEnum = TargetTypeEnum;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NAMED_TAG = \"named\";\nexports.NAME_TAG = \"name\";\nexports.UNMANAGED_TAG = \"unmanaged\";\nexports.OPTIONAL_TAG = \"optional\";\nexports.INJECT_TAG = \"inject\";\nexports.MULTI_INJECT_TAG = \"multi_inject\";\nexports.TAGGED = \"inversify:tagged\";\nexports.TAGGED_PROP = \"inversify:tagged_props\";\nexports.PARAM_TYPES = \"inversify:paramtypes\";\nexports.DESIGN_PARAM_TYPES = \"design:paramtypes\";\nexports.POST_CONSTRUCT = \"post_construct\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_1 = require(\"../bindings/binding\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_reader_1 = require(\"../planning/metadata_reader\");\nvar planner_1 = require(\"../planning/planner\");\nvar resolver_1 = require(\"../resolution/resolver\");\nvar binding_to_syntax_1 = require(\"../syntax/binding_to_syntax\");\nvar id_1 = require(\"../utils/id\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar container_snapshot_1 = require(\"./container_snapshot\");\nvar lookup_1 = require(\"./lookup\");\nvar Container = (function () {\n function Container(containerOptions) {\n var options = containerOptions || {};\n if (typeof options !== \"object\") {\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);\n }\n if (options.defaultScope === undefined) {\n options.defaultScope = literal_types_1.BindingScopeEnum.Transient;\n }\n else if (options.defaultScope !== literal_types_1.BindingScopeEnum.Singleton &&\n options.defaultScope !== literal_types_1.BindingScopeEnum.Transient &&\n options.defaultScope !== literal_types_1.BindingScopeEnum.Request) {\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);\n }\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n }\n else if (typeof options.autoBindInjectable !== \"boolean\") {\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);\n }\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n }\n else if (typeof options.skipBaseClassChecks !== \"boolean\") {\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);\n }\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n this.id = id_1.id();\n this._bindingDictionary = new lookup_1.Lookup();\n this._snapshots = [];\n this._middleware = null;\n this.parent = null;\n this._metadataReader = new metadata_reader_1.MetadataReader();\n }\n Container.merge = function (container1, container2) {\n var container = new Container();\n var bindingDictionary = planner_1.getBindingDictionary(container);\n var bindingDictionary1 = planner_1.getBindingDictionary(container1);\n var bindingDictionary2 = planner_1.getBindingDictionary(container2);\n function copyDictionary(origin, destination) {\n origin.traverse(function (key, value) {\n value.forEach(function (binding) {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n }\n copyDictionary(bindingDictionary1, bindingDictionary);\n copyDictionary(bindingDictionary2, bindingDictionary);\n return container;\n };\n Container.prototype.load = function () {\n var modules = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n modules[_i] = arguments[_i];\n }\n var getHelpers = this._getContainerModuleHelpersFactory();\n for (var _a = 0, modules_1 = modules; _a < modules_1.length; _a++) {\n var currentModule = modules_1[_a];\n var containerModuleHelpers = getHelpers(currentModule.id);\n currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction);\n }\n };\n Container.prototype.loadAsync = function () {\n var modules = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n modules[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var getHelpers, _a, modules_2, currentModule, containerModuleHelpers;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n getHelpers = this._getContainerModuleHelpersFactory();\n _a = 0, modules_2 = modules;\n _b.label = 1;\n case 1:\n if (!(_a < modules_2.length)) return [3, 4];\n currentModule = modules_2[_a];\n containerModuleHelpers = getHelpers(currentModule.id);\n return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _a++;\n return [3, 1];\n case 4: return [2];\n }\n });\n });\n };\n Container.prototype.unload = function () {\n var _this = this;\n var modules = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n modules[_i] = arguments[_i];\n }\n var conditionFactory = function (expected) { return function (item) {\n return item.moduleId === expected;\n }; };\n modules.forEach(function (module) {\n var condition = conditionFactory(module.id);\n _this._bindingDictionary.removeByCondition(condition);\n });\n };\n Container.prototype.bind = function (serviceIdentifier) {\n var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;\n var binding = new binding_1.Binding(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding);\n return new binding_to_syntax_1.BindingToSyntax(binding);\n };\n Container.prototype.rebind = function (serviceIdentifier) {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n };\n Container.prototype.unbind = function (serviceIdentifier) {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n }\n catch (e) {\n throw new Error(ERROR_MSGS.CANNOT_UNBIND + \" \" + serialization_1.getServiceIdentifierAsString(serviceIdentifier));\n }\n };\n Container.prototype.unbindAll = function () {\n this._bindingDictionary = new lookup_1.Lookup();\n };\n Container.prototype.isBound = function (serviceIdentifier) {\n var bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n };\n Container.prototype.isBoundNamed = function (serviceIdentifier, named) {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n };\n Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {\n var bound = false;\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n var bindings = this._bindingDictionary.get(serviceIdentifier);\n var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some(function (b) { return b.constraint(request_1); });\n }\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n return bound;\n };\n Container.prototype.snapshot = function () {\n this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));\n };\n Container.prototype.restore = function () {\n var snapshot = this._snapshots.pop();\n if (snapshot === undefined) {\n throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);\n }\n this._bindingDictionary = snapshot.bindings;\n this._middleware = snapshot.middleware;\n };\n Container.prototype.createChild = function (containerOptions) {\n var child = new Container(containerOptions || this.options);\n child.parent = this;\n return child;\n };\n Container.prototype.applyMiddleware = function () {\n var middlewares = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n middlewares[_i] = arguments[_i];\n }\n var initial = (this._middleware) ? this._middleware : this._planAndResolve();\n this._middleware = middlewares.reduce(function (prev, curr) { return curr(prev); }, initial);\n };\n Container.prototype.applyCustomMetadataReader = function (metadataReader) {\n this._metadataReader = metadataReader;\n };\n Container.prototype.get = function (serviceIdentifier) {\n return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);\n };\n Container.prototype.getTagged = function (serviceIdentifier, key, value) {\n return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);\n };\n Container.prototype.getNamed = function (serviceIdentifier, named) {\n return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n };\n Container.prototype.getAll = function (serviceIdentifier) {\n return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);\n };\n Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {\n return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);\n };\n Container.prototype.getAllNamed = function (serviceIdentifier, named) {\n return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n };\n Container.prototype.resolve = function (constructorFunction) {\n var tempContainer = this.createChild();\n tempContainer.bind(constructorFunction).toSelf();\n return tempContainer.get(constructorFunction);\n };\n Container.prototype._getContainerModuleHelpersFactory = function () {\n var _this = this;\n var setModuleId = function (bindingToSyntax, moduleId) {\n bindingToSyntax._binding.moduleId = moduleId;\n };\n var getBindFunction = function (moduleId) {\n return function (serviceIdentifier) {\n var _bind = _this.bind.bind(_this);\n var bindingToSyntax = _bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n };\n var getUnbindFunction = function (moduleId) {\n return function (serviceIdentifier) {\n var _unbind = _this.unbind.bind(_this);\n _unbind(serviceIdentifier);\n };\n };\n var getIsboundFunction = function (moduleId) {\n return function (serviceIdentifier) {\n var _isBound = _this.isBound.bind(_this);\n return _isBound(serviceIdentifier);\n };\n };\n var getRebindFunction = function (moduleId) {\n return function (serviceIdentifier) {\n var _rebind = _this.rebind.bind(_this);\n var bindingToSyntax = _rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax;\n };\n };\n return function (mId) { return ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(mId)\n }); };\n };\n Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {\n var result = null;\n var defaultArgs = {\n avoidConstraints: avoidConstraints,\n contextInterceptor: function (context) { return context; },\n isMultiInject: isMultiInject,\n key: key,\n serviceIdentifier: serviceIdentifier,\n targetType: targetType,\n value: value\n };\n if (this._middleware) {\n result = this._middleware(defaultArgs);\n if (result === undefined || result === null) {\n throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n }\n }\n else {\n result = this._planAndResolve()(defaultArgs);\n }\n return result;\n };\n Container.prototype._planAndResolve = function () {\n var _this = this;\n return function (args) {\n var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);\n context = args.contextInterceptor(context);\n var result = resolver_1.resolve(context);\n return result;\n };\n };\n return Container;\n}());\nexports.Container = Container;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar id_1 = require(\"../utils/id\");\nvar ContainerModule = (function () {\n function ContainerModule(registry) {\n this.id = id_1.id();\n this.registry = registry;\n }\n return ContainerModule;\n}());\nexports.ContainerModule = ContainerModule;\nvar AsyncContainerModule = (function () {\n function AsyncContainerModule(registry) {\n this.id = id_1.id();\n this.registry = registry;\n }\n return AsyncContainerModule;\n}());\nexports.AsyncContainerModule = AsyncContainerModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ContainerSnapshot = (function () {\n function ContainerSnapshot() {\n }\n ContainerSnapshot.of = function (bindings, middleware) {\n var snapshot = new ContainerSnapshot();\n snapshot.bindings = bindings;\n snapshot.middleware = middleware;\n return snapshot;\n };\n return ContainerSnapshot;\n}());\nexports.ContainerSnapshot = ContainerSnapshot;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar Lookup = (function () {\n function Lookup() {\n this._map = new Map();\n }\n Lookup.prototype.getMap = function () {\n return this._map;\n };\n Lookup.prototype.add = function (serviceIdentifier, value) {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n if (value === null || value === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n var entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n entry.push(value);\n this._map.set(serviceIdentifier, entry);\n }\n else {\n this._map.set(serviceIdentifier, [value]);\n }\n };\n Lookup.prototype.get = function (serviceIdentifier) {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n var entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n return entry;\n }\n else {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n };\n Lookup.prototype.remove = function (serviceIdentifier) {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n if (!this._map.delete(serviceIdentifier)) {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n };\n Lookup.prototype.removeByCondition = function (condition) {\n var _this = this;\n this._map.forEach(function (entries, key) {\n var updatedEntries = entries.filter(function (entry) { return !condition(entry); });\n if (updatedEntries.length > 0) {\n _this._map.set(key, updatedEntries);\n }\n else {\n _this._map.delete(key);\n }\n });\n };\n Lookup.prototype.hasKey = function (serviceIdentifier) {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n return this._map.has(serviceIdentifier);\n };\n Lookup.prototype.clone = function () {\n var copy = new Lookup();\n this._map.forEach(function (value, key) {\n value.forEach(function (b) { return copy.add(key, b.clone()); });\n });\n return copy;\n };\n Lookup.prototype.traverse = function (func) {\n this._map.forEach(function (value, key) {\n func(key, value);\n });\n };\n return Lookup;\n}());\nexports.Lookup = Lookup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar keys = require(\"./constants/metadata_keys\");\nexports.METADATA_KEY = keys;\nvar container_1 = require(\"./container/container\");\nexports.Container = container_1.Container;\nvar literal_types_1 = require(\"./constants/literal_types\");\nexports.BindingScopeEnum = literal_types_1.BindingScopeEnum;\nexports.BindingTypeEnum = literal_types_1.BindingTypeEnum;\nexports.TargetTypeEnum = literal_types_1.TargetTypeEnum;\nvar container_module_1 = require(\"./container/container_module\");\nexports.AsyncContainerModule = container_module_1.AsyncContainerModule;\nexports.ContainerModule = container_module_1.ContainerModule;\nvar injectable_1 = require(\"./annotation/injectable\");\nexports.injectable = injectable_1.injectable;\nvar tagged_1 = require(\"./annotation/tagged\");\nexports.tagged = tagged_1.tagged;\nvar named_1 = require(\"./annotation/named\");\nexports.named = named_1.named;\nvar inject_1 = require(\"./annotation/inject\");\nexports.inject = inject_1.inject;\nexports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;\nvar optional_1 = require(\"./annotation/optional\");\nexports.optional = optional_1.optional;\nvar unmanaged_1 = require(\"./annotation/unmanaged\");\nexports.unmanaged = unmanaged_1.unmanaged;\nvar multi_inject_1 = require(\"./annotation/multi_inject\");\nexports.multiInject = multi_inject_1.multiInject;\nvar target_name_1 = require(\"./annotation/target_name\");\nexports.targetName = target_name_1.targetName;\nvar post_construct_1 = require(\"./annotation/post_construct\");\nexports.postConstruct = post_construct_1.postConstruct;\nvar metadata_reader_1 = require(\"./planning/metadata_reader\");\nexports.MetadataReader = metadata_reader_1.MetadataReader;\nvar id_1 = require(\"./utils/id\");\nexports.id = id_1.id;\nvar decorator_utils_1 = require(\"./annotation/decorator_utils\");\nexports.decorate = decorator_utils_1.decorate;\nvar constraint_helpers_1 = require(\"./syntax/constraint_helpers\");\nexports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;\nexports.taggedConstraint = constraint_helpers_1.taggedConstraint;\nexports.namedConstraint = constraint_helpers_1.namedConstraint;\nexports.typeConstraint = constraint_helpers_1.typeConstraint;\nvar serialization_1 = require(\"./utils/serialization\");\nexports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;\nvar binding_utils_1 = require(\"./utils/binding_utils\");\nexports.multiBindToService = binding_utils_1.multiBindToService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar id_1 = require(\"../utils/id\");\nvar Context = (function () {\n function Context(container) {\n this.id = id_1.id();\n this.container = container;\n }\n Context.prototype.addPlan = function (plan) {\n this.plan = plan;\n };\n Context.prototype.setCurrentRequest = function (currentRequest) {\n this.currentRequest = currentRequest;\n };\n return Context;\n}());\nexports.Context = Context;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar Metadata = (function () {\n function Metadata(key, value) {\n this.key = key;\n this.value = value;\n }\n Metadata.prototype.toString = function () {\n if (this.key === METADATA_KEY.NAMED_TAG) {\n return \"named: \" + this.value.toString() + \" \";\n }\n else {\n return \"tagged: { key:\" + this.key.toString() + \", value: \" + this.value + \" }\";\n }\n };\n return Metadata;\n}());\nexports.Metadata = Metadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar MetadataReader = (function () {\n function MetadataReader() {\n }\n MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {\n var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);\n var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);\n return {\n compilerGeneratedMetadata: compilerGeneratedMetadata,\n userGeneratedMetadata: userGeneratedMetadata || {}\n };\n };\n MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {\n var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];\n return userGeneratedMetadata;\n };\n return MetadataReader;\n}());\nexports.MetadataReader = MetadataReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Plan = (function () {\n function Plan(parentContext, rootRequest) {\n this.parentContext = parentContext;\n this.rootRequest = rootRequest;\n }\n return Plan;\n}());\nexports.Plan = Plan;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_count_1 = require(\"../bindings/binding_count\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar exceptions_1 = require(\"../utils/exceptions\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar context_1 = require(\"./context\");\nvar metadata_1 = require(\"./metadata\");\nvar plan_1 = require(\"./plan\");\nvar reflection_utils_1 = require(\"./reflection_utils\");\nvar request_1 = require(\"./request\");\nvar target_1 = require(\"./target\");\nfunction getBindingDictionary(cntnr) {\n return cntnr._bindingDictionary;\n}\nexports.getBindingDictionary = getBindingDictionary;\nfunction _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {\n var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;\n var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);\n var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);\n if (key !== undefined) {\n var tagMetadata = new metadata_1.Metadata(key, value);\n target.metadata.push(tagMetadata);\n }\n return target;\n}\nfunction _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {\n var bindings = getBindings(context.container, target.serviceIdentifier);\n var activeBindings = [];\n if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable &&\n context.container.options.autoBindInjectable &&\n typeof target.serviceIdentifier === \"function\" &&\n metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {\n context.container.bind(target.serviceIdentifier).toSelf();\n bindings = getBindings(context.container, target.serviceIdentifier);\n }\n if (!avoidConstraints) {\n activeBindings = bindings.filter(function (binding) {\n var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);\n return binding.constraint(request);\n });\n }\n else {\n activeBindings = bindings;\n }\n _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);\n return activeBindings;\n}\nfunction _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {\n switch (bindings.length) {\n case binding_count_1.BindingCount.NoBindingsAvailable:\n if (target.isOptional()) {\n return bindings;\n }\n else {\n var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);\n var msg = ERROR_MSGS.NOT_REGISTERED;\n msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);\n msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n }\n case binding_count_1.BindingCount.OnlyOneBindingAvailable:\n if (!target.isArray()) {\n return bindings;\n }\n case binding_count_1.BindingCount.MultipleBindingsAvailable:\n default:\n if (!target.isArray()) {\n var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);\n var msg = ERROR_MSGS.AMBIGUOUS_MATCH + \" \" + serviceIdentifierString;\n msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\n throw new Error(msg);\n }\n else {\n return bindings;\n }\n }\n}\nfunction _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {\n var activeBindings;\n var childRequest;\n if (parentRequest === null) {\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);\n childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);\n var thePlan = new plan_1.Plan(context, childRequest);\n context.addPlan(thePlan);\n }\n else {\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);\n childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);\n }\n activeBindings.forEach(function (binding) {\n var subChildRequest = null;\n if (target.isArray()) {\n subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);\n }\n else {\n if (binding.cache) {\n return;\n }\n subChildRequest = childRequest;\n }\n if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {\n var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);\n if (!context.container.options.skipBaseClassChecks) {\n var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType);\n if (dependencies.length < baseClassDependencyCount) {\n var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType));\n throw new Error(error);\n }\n }\n dependencies.forEach(function (dependency) {\n _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);\n });\n }\n });\n}\nfunction getBindings(container, serviceIdentifier) {\n var bindings = [];\n var bindingDictionary = getBindingDictionary(container);\n if (bindingDictionary.hasKey(serviceIdentifier)) {\n bindings = bindingDictionary.get(serviceIdentifier);\n }\n else if (container.parent !== null) {\n bindings = getBindings(container.parent, serviceIdentifier);\n }\n return bindings;\n}\nfunction plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {\n if (avoidConstraints === void 0) { avoidConstraints = false; }\n var context = new context_1.Context(container);\n var target = _createTarget(isMultiInject, targetType, serviceIdentifier, \"\", key, value);\n try {\n _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);\n return context;\n }\n catch (error) {\n if (exceptions_1.isStackOverflowExeption(error)) {\n if (context.plan) {\n serialization_1.circularDependencyToException(context.plan.rootRequest);\n }\n }\n throw error;\n }\n}\nexports.plan = plan;\nfunction createMockRequest(container, serviceIdentifier, key, value) {\n var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, \"\", serviceIdentifier, new metadata_1.Metadata(key, value));\n var context = new context_1.Context(container);\n var request = new request_1.Request(serviceIdentifier, context, null, [], target);\n return request;\n}\nexports.createMockRequest = createMockRequest;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar QueryableString = (function () {\n function QueryableString(str) {\n this.str = str;\n }\n QueryableString.prototype.startsWith = function (searchString) {\n return this.str.indexOf(searchString) === 0;\n };\n QueryableString.prototype.endsWith = function (searchString) {\n var reverseString = \"\";\n var reverseSearchString = searchString.split(\"\").reverse().join(\"\");\n reverseString = this.str.split(\"\").reverse().join(\"\");\n return this.startsWith.call({ str: reverseString }, reverseSearchString);\n };\n QueryableString.prototype.contains = function (searchString) {\n return (this.str.indexOf(searchString) !== -1);\n };\n QueryableString.prototype.equals = function (compareString) {\n return this.str === compareString;\n };\n QueryableString.prototype.value = function () {\n return this.str;\n };\n return QueryableString;\n}());\nexports.QueryableString = QueryableString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inject_1 = require(\"../annotation/inject\");\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar serialization_1 = require(\"../utils/serialization\");\nexports.getFunctionName = serialization_1.getFunctionName;\nvar target_1 = require(\"./target\");\nfunction getDependencies(metadataReader, func) {\n var constructorName = serialization_1.getFunctionName(func);\n var targets = getTargets(metadataReader, constructorName, func, false);\n return targets;\n}\nexports.getDependencies = getDependencies;\nfunction getTargets(metadataReader, constructorName, func, isBaseClass) {\n var metadata = metadataReader.getConstructorMetadata(func);\n var serviceIdentifiers = metadata.compilerGeneratedMetadata;\n if (serviceIdentifiers === undefined) {\n var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + \" \" + constructorName + \".\";\n throw new Error(msg);\n }\n var constructorArgsMetadata = metadata.userGeneratedMetadata;\n var keys = Object.keys(constructorArgsMetadata);\n var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);\n var iterations = (hasUserDeclaredUnknownInjections) ? keys.length : func.length;\n var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);\n var propertyTargets = getClassPropsAsTargets(metadataReader, func);\n var targets = constructorTargets.concat(propertyTargets);\n return targets;\n}\nfunction getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {\n var targetMetadata = constructorArgsMetadata[index.toString()] || [];\n var metadata = formatTargetMetadata(targetMetadata);\n var isManaged = metadata.unmanaged !== true;\n var serviceIdentifier = serviceIdentifiers[index];\n var injectIdentifier = (metadata.inject || metadata.multiInject);\n serviceIdentifier = (injectIdentifier) ? (injectIdentifier) : serviceIdentifier;\n if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {\n serviceIdentifier = serviceIdentifier.unwrap();\n }\n if (isManaged) {\n var isObject = serviceIdentifier === Object;\n var isFunction = serviceIdentifier === Function;\n var isUndefined = serviceIdentifier === undefined;\n var isUnknownType = (isObject || isFunction || isUndefined);\n if (!isBaseClass && isUnknownType) {\n var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + \" argument \" + index + \" in class \" + constructorName + \".\";\n throw new Error(msg);\n }\n var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n return target;\n }\n return null;\n}\nfunction getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {\n var targets = [];\n for (var i = 0; i < iterations; i++) {\n var index = i;\n var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);\n if (target !== null) {\n targets.push(target);\n }\n }\n return targets;\n}\nfunction getClassPropsAsTargets(metadataReader, constructorFunc) {\n var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);\n var targets = [];\n var keys = Object.keys(classPropsMetadata);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var targetMetadata = classPropsMetadata[key];\n var metadata = formatTargetMetadata(classPropsMetadata[key]);\n var targetName = metadata.targetName || key;\n var serviceIdentifier = (metadata.inject || metadata.multiInject);\n var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);\n target.metadata = targetMetadata;\n targets.push(target);\n }\n var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;\n if (baseConstructor !== Object) {\n var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);\n targets = targets.concat(baseTargets);\n }\n return targets;\n}\nfunction getBaseClassDependencyCount(metadataReader, func) {\n var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;\n if (baseConstructor !== Object) {\n var baseConstructorName = serialization_1.getFunctionName(baseConstructor);\n var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);\n var metadata = targets.map(function (t) {\n return t.metadata.filter(function (m) {\n return m.key === METADATA_KEY.UNMANAGED_TAG;\n });\n });\n var unmanagedCount = [].concat.apply([], metadata).length;\n var dependencyCount = targets.length - unmanagedCount;\n if (dependencyCount > 0) {\n return dependencyCount;\n }\n else {\n return getBaseClassDependencyCount(metadataReader, baseConstructor);\n }\n }\n else {\n return 0;\n }\n}\nexports.getBaseClassDependencyCount = getBaseClassDependencyCount;\nfunction formatTargetMetadata(targetMetadata) {\n var targetMetadataMap = {};\n targetMetadata.forEach(function (m) {\n targetMetadataMap[m.key.toString()] = m.value;\n });\n return {\n inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],\n multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],\n targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],\n unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar id_1 = require(\"../utils/id\");\nvar Request = (function () {\n function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {\n this.id = id_1.id();\n this.serviceIdentifier = serviceIdentifier;\n this.parentContext = parentContext;\n this.parentRequest = parentRequest;\n this.target = target;\n this.childRequests = [];\n this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);\n this.requestScope = parentRequest === null\n ? new Map()\n : null;\n }\n Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {\n var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);\n this.childRequests.push(child);\n return child;\n };\n return Request;\n}());\nexports.Request = Request;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar id_1 = require(\"../utils/id\");\nvar metadata_1 = require(\"./metadata\");\nvar queryable_string_1 = require(\"./queryable_string\");\nvar Target = (function () {\n function Target(type, name, serviceIdentifier, namedOrTagged) {\n this.id = id_1.id();\n this.type = type;\n this.serviceIdentifier = serviceIdentifier;\n this.name = new queryable_string_1.QueryableString(name || \"\");\n this.metadata = new Array();\n var metadataItem = null;\n if (typeof namedOrTagged === \"string\") {\n metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);\n }\n else if (namedOrTagged instanceof metadata_1.Metadata) {\n metadataItem = namedOrTagged;\n }\n if (metadataItem !== null) {\n this.metadata.push(metadataItem);\n }\n }\n Target.prototype.hasTag = function (key) {\n for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {\n var m = _a[_i];\n if (m.key === key) {\n return true;\n }\n }\n return false;\n };\n Target.prototype.isArray = function () {\n return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);\n };\n Target.prototype.matchesArray = function (name) {\n return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);\n };\n Target.prototype.isNamed = function () {\n return this.hasTag(METADATA_KEY.NAMED_TAG);\n };\n Target.prototype.isTagged = function () {\n return this.metadata.some(function (m) {\n return (m.key !== METADATA_KEY.INJECT_TAG) &&\n (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&\n (m.key !== METADATA_KEY.NAME_TAG) &&\n (m.key !== METADATA_KEY.UNMANAGED_TAG) &&\n (m.key !== METADATA_KEY.NAMED_TAG);\n });\n };\n Target.prototype.isOptional = function () {\n return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);\n };\n Target.prototype.getNamedTag = function () {\n if (this.isNamed()) {\n return this.metadata.filter(function (m) { return m.key === METADATA_KEY.NAMED_TAG; })[0];\n }\n return null;\n };\n Target.prototype.getCustomTags = function () {\n if (this.isTagged()) {\n return this.metadata.filter(function (m) {\n return (m.key !== METADATA_KEY.INJECT_TAG) &&\n (m.key !== METADATA_KEY.MULTI_INJECT_TAG) &&\n (m.key !== METADATA_KEY.NAME_TAG) &&\n (m.key !== METADATA_KEY.UNMANAGED_TAG) &&\n (m.key !== METADATA_KEY.NAMED_TAG);\n });\n }\n return null;\n };\n Target.prototype.matchesNamedTag = function (name) {\n return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);\n };\n Target.prototype.matchesTag = function (key) {\n var _this = this;\n return function (value) {\n for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {\n var m = _a[_i];\n if (m.key === key && m.value === value) {\n return true;\n }\n }\n return false;\n };\n };\n return Target;\n}());\nexports.Target = Target;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar error_msgs_1 = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nfunction _injectProperties(instance, childRequests, resolveRequest) {\n var propertyInjectionsRequests = childRequests.filter(function (childRequest) {\n return (childRequest.target !== null &&\n childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty);\n });\n var propertyInjections = propertyInjectionsRequests.map(resolveRequest);\n propertyInjectionsRequests.forEach(function (r, index) {\n var propertyName = \"\";\n propertyName = r.target.name.value();\n var injection = propertyInjections[index];\n instance[propertyName] = injection;\n });\n return instance;\n}\nfunction _createInstance(Func, injections) {\n return new (Func.bind.apply(Func, [void 0].concat(injections)))();\n}\nfunction _postConstruct(constr, result) {\n if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {\n var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);\n try {\n result[data.value]();\n }\n catch (e) {\n throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));\n }\n }\n}\nfunction resolveInstance(constr, childRequests, resolveRequest) {\n var result = null;\n if (childRequests.length > 0) {\n var constructorInjectionsRequests = childRequests.filter(function (childRequest) {\n return (childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument);\n });\n var constructorInjections = constructorInjectionsRequests.map(resolveRequest);\n result = _createInstance(constr, constructorInjections);\n result = _injectProperties(result, childRequests, resolveRequest);\n }\n else {\n result = new constr();\n }\n _postConstruct(constr, result);\n return result;\n}\nexports.resolveInstance = resolveInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar exceptions_1 = require(\"../utils/exceptions\");\nvar serialization_1 = require(\"../utils/serialization\");\nvar instantiation_1 = require(\"./instantiation\");\nvar invokeFactory = function (factoryType, serviceIdentifier, fn) {\n try {\n return fn();\n }\n catch (error) {\n if (exceptions_1.isStackOverflowExeption(error)) {\n throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));\n }\n else {\n throw error;\n }\n }\n};\nvar _resolveRequest = function (requestScope) {\n return function (request) {\n request.parentContext.setCurrentRequest(request);\n var bindings = request.bindings;\n var childRequests = request.childRequests;\n var targetIsAnArray = request.target && request.target.isArray();\n var targetParentIsNotAnArray = !request.parentRequest ||\n !request.parentRequest.target ||\n !request.target ||\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\n if (targetIsAnArray && targetParentIsNotAnArray) {\n return childRequests.map(function (childRequest) {\n var _f = _resolveRequest(requestScope);\n return _f(childRequest);\n });\n }\n else {\n var result = null;\n if (request.target.isOptional() && bindings.length === 0) {\n return undefined;\n }\n var binding_1 = bindings[0];\n var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;\n var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;\n if (isSingleton && binding_1.activated) {\n return binding_1.cache;\n }\n if (isRequestSingleton &&\n requestScope !== null &&\n requestScope.has(binding_1.id)) {\n return requestScope.get(binding_1.id);\n }\n if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {\n result = binding_1.cache;\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {\n result = binding_1.cache;\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {\n result = binding_1.implementationType;\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {\n result = invokeFactory(\"toDynamicValue\", binding_1.serviceIdentifier, function () { return binding_1.dynamicValue(request.parentContext); });\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {\n result = invokeFactory(\"toFactory\", binding_1.serviceIdentifier, function () { return binding_1.factory(request.parentContext); });\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {\n result = invokeFactory(\"toProvider\", binding_1.serviceIdentifier, function () { return binding_1.provider(request.parentContext); });\n }\n else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {\n result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));\n }\n else {\n var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);\n throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + \" \" + serviceIdentifier);\n }\n if (typeof binding_1.onActivation === \"function\") {\n result = binding_1.onActivation(request.parentContext, result);\n }\n if (isSingleton) {\n binding_1.cache = result;\n binding_1.activated = true;\n }\n if (isRequestSingleton &&\n requestScope !== null &&\n !requestScope.has(binding_1.id)) {\n requestScope.set(binding_1.id, result);\n }\n return result;\n }\n };\n};\nfunction resolve(context) {\n var _f = _resolveRequest(context.plan.rootRequest.requestScope);\n return _f(context.plan.rootRequest);\n}\nexports.resolve = resolve;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar binding_when_on_syntax_1 = require(\"./binding_when_on_syntax\");\nvar BindingInSyntax = (function () {\n function BindingInSyntax(binding) {\n this._binding = binding;\n }\n BindingInSyntax.prototype.inRequestScope = function () {\n this._binding.scope = literal_types_1.BindingScopeEnum.Request;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingInSyntax.prototype.inSingletonScope = function () {\n this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingInSyntax.prototype.inTransientScope = function () {\n this._binding.scope = literal_types_1.BindingScopeEnum.Transient;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n return BindingInSyntax;\n}());\nexports.BindingInSyntax = BindingInSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_in_syntax_1 = require(\"./binding_in_syntax\");\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingInWhenOnSyntax = (function () {\n function BindingInWhenOnSyntax(binding) {\n this._binding = binding;\n this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);\n this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);\n }\n BindingInWhenOnSyntax.prototype.inRequestScope = function () {\n return this._bindingInSyntax.inRequestScope();\n };\n BindingInWhenOnSyntax.prototype.inSingletonScope = function () {\n return this._bindingInSyntax.inSingletonScope();\n };\n BindingInWhenOnSyntax.prototype.inTransientScope = function () {\n return this._bindingInSyntax.inTransientScope();\n };\n BindingInWhenOnSyntax.prototype.when = function (constraint) {\n return this._bindingWhenSyntax.when(constraint);\n };\n BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n };\n BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n };\n BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n };\n BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n };\n BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {\n return this._bindingWhenSyntax.whenParentNamed(name);\n };\n BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n };\n BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n };\n BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n };\n BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n };\n BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n };\n BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n };\n BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n };\n BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n };\n BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n };\n BindingInWhenOnSyntax.prototype.onActivation = function (handler) {\n return this._bindingOnSyntax.onActivation(handler);\n };\n return BindingInWhenOnSyntax;\n}());\nexports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingOnSyntax = (function () {\n function BindingOnSyntax(binding) {\n this._binding = binding;\n }\n BindingOnSyntax.prototype.onActivation = function (handler) {\n this._binding.onActivation = handler;\n return new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n };\n return BindingOnSyntax;\n}());\nexports.BindingOnSyntax = BindingOnSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nvar literal_types_1 = require(\"../constants/literal_types\");\nvar binding_in_when_on_syntax_1 = require(\"./binding_in_when_on_syntax\");\nvar binding_when_on_syntax_1 = require(\"./binding_when_on_syntax\");\nvar BindingToSyntax = (function () {\n function BindingToSyntax(binding) {\n this._binding = binding;\n }\n BindingToSyntax.prototype.to = function (constructor) {\n this._binding.type = literal_types_1.BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toSelf = function () {\n if (typeof this._binding.serviceIdentifier !== \"function\") {\n throw new Error(\"\" + ERROR_MSGS.INVALID_TO_SELF_VALUE);\n }\n var self = this._binding.serviceIdentifier;\n return this.to(self);\n };\n BindingToSyntax.prototype.toConstantValue = function (value) {\n this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toDynamicValue = function (func) {\n this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toConstructor = function (constructor) {\n this._binding.type = literal_types_1.BindingTypeEnum.Constructor;\n this._binding.implementationType = constructor;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toFactory = function (factory) {\n this._binding.type = literal_types_1.BindingTypeEnum.Factory;\n this._binding.factory = factory;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toFunction = function (func) {\n if (typeof func !== \"function\") {\n throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);\n }\n var bindingWhenOnSyntax = this.toConstantValue(func);\n this._binding.type = literal_types_1.BindingTypeEnum.Function;\n return bindingWhenOnSyntax;\n };\n BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {\n this._binding.type = literal_types_1.BindingTypeEnum.Factory;\n this._binding.factory = function (context) {\n var autofactory = function () { return context.container.get(serviceIdentifier); };\n return autofactory;\n };\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toProvider = function (provider) {\n this._binding.type = literal_types_1.BindingTypeEnum.Provider;\n this._binding.provider = provider;\n return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);\n };\n BindingToSyntax.prototype.toService = function (service) {\n this.toDynamicValue(function (context) { return context.container.get(service); });\n };\n return BindingToSyntax;\n}());\nexports.BindingToSyntax = BindingToSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar binding_when_syntax_1 = require(\"./binding_when_syntax\");\nvar BindingWhenOnSyntax = (function () {\n function BindingWhenOnSyntax(binding) {\n this._binding = binding;\n this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);\n this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);\n }\n BindingWhenOnSyntax.prototype.when = function (constraint) {\n return this._bindingWhenSyntax.when(constraint);\n };\n BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {\n return this._bindingWhenSyntax.whenTargetNamed(name);\n };\n BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {\n return this._bindingWhenSyntax.whenTargetIsDefault();\n };\n BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\n };\n BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\n return this._bindingWhenSyntax.whenInjectedInto(parent);\n };\n BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {\n return this._bindingWhenSyntax.whenParentNamed(name);\n };\n BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\n };\n BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\n };\n BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\n };\n BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\n };\n BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\n };\n BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\n };\n BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\n };\n BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\n };\n BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\n };\n BindingWhenOnSyntax.prototype.onActivation = function (handler) {\n return this._bindingOnSyntax.onActivation(handler);\n };\n return BindingWhenOnSyntax;\n}());\nexports.BindingWhenOnSyntax = BindingWhenOnSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binding_on_syntax_1 = require(\"./binding_on_syntax\");\nvar constraint_helpers_1 = require(\"./constraint_helpers\");\nvar BindingWhenSyntax = (function () {\n function BindingWhenSyntax(binding) {\n this._binding = binding;\n }\n BindingWhenSyntax.prototype.when = function (constraint) {\n this._binding.constraint = constraint;\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenTargetNamed = function (name) {\n this._binding.constraint = constraint_helpers_1.namedConstraint(name);\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenTargetIsDefault = function () {\n this._binding.constraint = function (request) {\n var targetIsDefault = (request.target !== null) &&\n (!request.target.isNamed()) &&\n (!request.target.isTagged());\n return targetIsDefault;\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {\n this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenParentNamed = function (name) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.namedConstraint(name)(request.parentRequest);\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {\n this._binding.constraint = function (request) {\n return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {\n this._binding.constraint = function (request) {\n return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\n this._binding.constraint = function (request) {\n return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\n this._binding.constraint = function (request) {\n return constraint_helpers_1.traverseAncerstors(request, constraint);\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {\n this._binding.constraint = function (request) {\n return !constraint_helpers_1.traverseAncerstors(request, constraint);\n };\n return new binding_on_syntax_1.BindingOnSyntax(this._binding);\n };\n return BindingWhenSyntax;\n}());\nexports.BindingWhenSyntax = BindingWhenSyntax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar METADATA_KEY = require(\"../constants/metadata_keys\");\nvar metadata_1 = require(\"../planning/metadata\");\nvar traverseAncerstors = function (request, constraint) {\n var parent = request.parentRequest;\n if (parent !== null) {\n return constraint(parent) ? true : traverseAncerstors(parent, constraint);\n }\n else {\n return false;\n }\n};\nexports.traverseAncerstors = traverseAncerstors;\nvar taggedConstraint = function (key) { return function (value) {\n var constraint = function (request) {\n return request !== null && request.target !== null && request.target.matchesTag(key)(value);\n };\n constraint.metaData = new metadata_1.Metadata(key, value);\n return constraint;\n}; };\nexports.taggedConstraint = taggedConstraint;\nvar namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);\nexports.namedConstraint = namedConstraint;\nvar typeConstraint = function (type) { return function (request) {\n var binding = null;\n if (request !== null) {\n binding = request.bindings[0];\n if (typeof type === \"string\") {\n var serviceIdentifier = binding.serviceIdentifier;\n return serviceIdentifier === type;\n }\n else {\n var constructor = request.bindings[0].implementationType;\n return type === constructor;\n }\n }\n return false;\n}; };\nexports.typeConstraint = typeConstraint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.multiBindToService = function (container) {\n return function (service) {\n return function () {\n var types = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n types[_i] = arguments[_i];\n }\n return types.forEach(function (t) { return container.bind(t).toService(service); });\n };\n };\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nfunction isStackOverflowExeption(error) {\n return (error instanceof RangeError ||\n error.message === ERROR_MSGS.STACK_OVERFLOW);\n}\nexports.isStackOverflowExeption = isStackOverflowExeption;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar idCounter = 0;\nfunction id() {\n return idCounter++;\n}\nexports.id = id;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ERROR_MSGS = require(\"../constants/error_msgs\");\nfunction getServiceIdentifierAsString(serviceIdentifier) {\n if (typeof serviceIdentifier === \"function\") {\n var _serviceIdentifier = serviceIdentifier;\n return _serviceIdentifier.name;\n }\n else if (typeof serviceIdentifier === \"symbol\") {\n return serviceIdentifier.toString();\n }\n else {\n var _serviceIdentifier = serviceIdentifier;\n return _serviceIdentifier;\n }\n}\nexports.getServiceIdentifierAsString = getServiceIdentifierAsString;\nfunction listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {\n var registeredBindingsList = \"\";\n var registeredBindings = getBindings(container, serviceIdentifier);\n if (registeredBindings.length !== 0) {\n registeredBindingsList = \"\\nRegistered bindings:\";\n registeredBindings.forEach(function (binding) {\n var name = \"Object\";\n if (binding.implementationType !== null) {\n name = getFunctionName(binding.implementationType);\n }\n registeredBindingsList = registeredBindingsList + \"\\n \" + name;\n if (binding.constraint.metaData) {\n registeredBindingsList = registeredBindingsList + \" - \" + binding.constraint.metaData;\n }\n });\n }\n return registeredBindingsList;\n}\nexports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;\nfunction alreadyDependencyChain(request, serviceIdentifier) {\n if (request.parentRequest === null) {\n return false;\n }\n else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {\n return true;\n }\n else {\n return alreadyDependencyChain(request.parentRequest, serviceIdentifier);\n }\n}\nfunction dependencyChainToString(request) {\n function _createStringArr(req, result) {\n if (result === void 0) { result = []; }\n var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);\n result.push(serviceIdentifier);\n if (req.parentRequest !== null) {\n return _createStringArr(req.parentRequest, result);\n }\n return result;\n }\n var stringArr = _createStringArr(request);\n return stringArr.reverse().join(\" --> \");\n}\nfunction circularDependencyToException(request) {\n request.childRequests.forEach(function (childRequest) {\n if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {\n var services = dependencyChainToString(childRequest);\n throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + \" \" + services);\n }\n else {\n circularDependencyToException(childRequest);\n }\n });\n}\nexports.circularDependencyToException = circularDependencyToException;\nfunction listMetadataForTarget(serviceIdentifierString, target) {\n if (target.isTagged() || target.isNamed()) {\n var m_1 = \"\";\n var namedTag = target.getNamedTag();\n var otherTags = target.getCustomTags();\n if (namedTag !== null) {\n m_1 += namedTag.toString() + \"\\n\";\n }\n if (otherTags !== null) {\n otherTags.forEach(function (tag) {\n m_1 += tag.toString() + \"\\n\";\n });\n }\n return \" \" + serviceIdentifierString + \"\\n \" + serviceIdentifierString + \" - \" + m_1;\n }\n else {\n return \" \" + serviceIdentifierString;\n }\n}\nexports.listMetadataForTarget = listMetadataForTarget;\nfunction getFunctionName(v) {\n if (v.name) {\n return v.name;\n }\n else {\n var name_1 = v.toString();\n var match = name_1.match(/^function\\s*([^\\s(]+)/);\n return match ? match[1] : \"Anonymous function: \" + name_1;\n }\n}\nexports.getFunctionName = getFunctionName;\n","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\ttoStr.call(value) !== '[object Array]' &&\n\t\ttoStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar generatorFunc = getGeneratorFunc();\nvar GeneratorFunction = generatorFunc ? getProto(generatorFunc) : {};\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar forEach = require('foreach');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('es-abstract/helpers/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasSymbols = require('has-symbols')();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\n\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new global[typedArray]();\n\t\tif (!(Symbol.toStringTag in arr)) {\n\t\t\tthrow new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n\t\t}\n\t\tvar proto = getPrototypeOf(arr);\n\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\tif (!descriptor) {\n\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t}\n\t\ttoStrTags[typedArray] = descriptor.get;\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined;\n\nvar $TypeError = TypeError;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%ArrayPrototype%': Array.prototype,\n\t'%ArrayProto_entries%': Array.prototype.entries,\n\t'%ArrayProto_forEach%': Array.prototype.forEach,\n\t'%ArrayProto_keys%': Array.prototype.keys,\n\t'%ArrayProto_values%': Array.prototype.values,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': asyncFunction,\n\t'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%Boolean%': Boolean,\n\t'%BooleanPrototype%': Boolean.prototype,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'%Date%': Date,\n\t'%DatePrototype%': Date.prototype,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%ErrorPrototype%': Error.prototype,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%EvalErrorPrototype%': EvalError.prototype,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'%Function%': Function,\n\t'%FunctionPrototype%': Function.prototype,\n\t'%Generator%': generator ? getProto(generator()) : undefined,\n\t'%GeneratorFunction%': generatorFunction,\n\t'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%NumberPrototype%': Number.prototype,\n\t'%Object%': Object,\n\t'%ObjectPrototype%': Object.prototype,\n\t'%ObjProto_toString%': Object.prototype.toString,\n\t'%ObjProto_valueOf%': Object.prototype.valueOf,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%RangeErrorPrototype%': RangeError.prototype,\n\t'%ReferenceError%': ReferenceError,\n\t'%ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%RegExpPrototype%': RegExp.prototype,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%StringPrototype%': String.prototype,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'%SyntaxError%': SyntaxError,\n\t'%SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'%TypeError%': $TypeError,\n\t'%TypeErrorPrototype%': $TypeError.prototype,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'%URIError%': URIError,\n\t'%URIErrorPrototype%': URIError.prototype,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = require('function-bind');\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tif (!(name in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\n\treturn INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\n\tvar value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\tfor (var i = 1; i < parts.length; i += 1) {\n\t\tif (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, parts[i]);\n\t\t\t\tif (!allowMissing && !(parts[i] in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\tvalue = desc ? (desc.get || desc.value) : value[parts[i]];\n\t\t\t} else {\n\t\t\t\tvalue = value[parts[i]];\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $Function = GetIntrinsic('%Function%');\nvar $apply = $Function.apply;\nvar $call = $Function.call;\n\nmodule.exports = function callBind() {\n\treturn bind.apply($call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n\treturn bind.apply($apply, arguments);\n};\n","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar callBind = require('./callBind');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","module.exports = function (string) {\n return ('' + string).replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, function (character) {\n // Escape all characters not included in SingleStringCharacters and\n // DoubleStringCharacters on\n // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n }\n })\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('es-abstract/helpers/callBind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\n/* globals\n\tAggregateError,\n\tAtomics,\n\tFinalizationRegistry,\n\tSharedArrayBuffer,\n\tWeakRef,\n*/\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\t// eslint-disable-next-line no-new-func\n\t\treturn Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar asyncGenFunction = getEvalledConstructor('async function* () {}');\nvar asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;\nvar asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': getEvalledConstructor('async function () {}'),\n\t'%AsyncGenerator%': asyncGenFunctionPrototype,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': getEvalledConstructor('function* () {}'),\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\tif (!allowMissing && !(part in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind() {\n\treturn $reflectApply(bind, $call, arguments);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 § 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","var nargs = /\\{([0-9a-zA-Z_]+)\\}/g\n\nmodule.exports = template\n\nfunction template(string) {\n var args\n\n if (arguments.length === 2 && typeof arguments[1] === \"object\") {\n args = arguments[1]\n } else {\n args = new Array(arguments.length - 1)\n for (var i = 1; i < arguments.length; ++i) {\n args[i - 1] = arguments[i]\n }\n }\n\n if (!args || !args.hasOwnProperty) {\n args = {}\n }\n\n return string.replace(nargs, function replaceArg(match, i, index) {\n var result\n\n if (string[index - 1] === \"{\" &&\n string[index + match.length] === \"}\") {\n return i\n } else {\n result = args.hasOwnProperty(i) ? args[i] : null\n if (result === null || result === undefined) {\n return \"\"\n }\n\n return result\n }\n })\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// @ts-ignore\nvar char_regex_1 = __importDefault(require(\"char-regex\"));\n/**\n * Converts a string to an array of string chars\n * @param {string} str The string to turn into array\n * @returns {string[]}\n */\nfunction toArray(str) {\n if (typeof str !== 'string') {\n throw new Error('A string is expected as input');\n }\n return str.match(char_regex_1.default()) || [];\n}\nexports.toArray = toArray;\n/**\n * Returns the length of a string\n *\n * @export\n * @param {string} str\n * @returns {number}\n */\nfunction length(str) {\n // Check for input\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n var match = str.match(char_regex_1.default());\n return match === null ? 0 : match.length;\n}\nexports.length = length;\n/**\n * Returns a substring by providing start and end position\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} end End position\n * @returns {string}\n */\nfunction substring(str, begin, end) {\n if (begin === void 0) { begin = 0; }\n // Check for input\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n // Even though negative numbers work here, theyre not in the spec\n if (typeof begin !== 'number' || begin < 0) {\n begin = 0;\n }\n if (typeof end === 'number' && end < 0) {\n end = 0;\n }\n var match = str.match(char_regex_1.default());\n if (!match)\n return '';\n return match.slice(begin, end).join('');\n}\nexports.substring = substring;\n/**\n * Returns a substring by providing start position and length\n *\n * @export\n * @param {string} str\n * @param {number} [begin=0] Starting position\n * @param {number} len Desired length\n * @returns {string}\n */\nfunction substr(str, begin, len) {\n if (begin === void 0) { begin = 0; }\n // Check for input\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n var strLength = length(str);\n // Fix type\n if (typeof begin !== 'number') {\n begin = parseInt(begin, 10);\n }\n // Return zero-length string if got oversize number.\n if (begin >= strLength) {\n return '';\n }\n // Calculating postive version of negative value.\n if (begin < 0) {\n begin += strLength;\n }\n var end;\n if (typeof len === 'undefined') {\n end = strLength;\n }\n else {\n // Fix type\n if (typeof len !== 'number') {\n len = parseInt(len, 10);\n }\n end = len >= 0 ? len + begin : begin;\n }\n var match = str.match(char_regex_1.default());\n if (!match)\n return '';\n return match.slice(begin, end).join('');\n}\nexports.substr = substr;\n/**\n * Enforces a string to be a certain length by\n * adding or removing characters\n *\n * @export\n * @param {string} str\n * @param {number} [limit=16] Limit\n * @param {string} [padString='#'] The Pad String\n * @param {string} [padPosition='right'] The Pad Position\n * @returns {string}\n */\nfunction limit(str, limit, padString, padPosition) {\n if (limit === void 0) { limit = 16; }\n if (padString === void 0) { padString = '#'; }\n if (padPosition === void 0) { padPosition = 'right'; }\n // Input should be a string, limit should be a number\n if (typeof str !== 'string' || typeof limit !== 'number') {\n throw new Error('Invalid arguments specified');\n }\n // Pad position should be either left or right\n if (['left', 'right'].indexOf(padPosition) === -1) {\n throw new Error('Pad position should be either left or right');\n }\n // Pad string can be anything, we convert it to string\n if (typeof padString !== 'string') {\n padString = String(padString);\n }\n // Calculate string length considering astral code points\n var strLength = length(str);\n if (strLength > limit) {\n return substring(str, 0, limit);\n }\n else if (strLength < limit) {\n var padRepeats = padString.repeat(limit - strLength);\n return padPosition === 'left' ? padRepeats + str : str + padRepeats;\n }\n return str;\n}\nexports.limit = limit;\n/**\n * Returns the index of the first occurrence of a given string\n *\n * @export\n * @param {string} str\n * @param {string} [searchStr] the string to search\n * @param {number} [pos] starting position\n * @returns {number}\n */\nfunction indexOf(str, searchStr, pos) {\n if (pos === void 0) { pos = 0; }\n if (typeof str !== 'string') {\n throw new Error('Input must be a string');\n }\n if (str === '') {\n if (searchStr === '') {\n return 0;\n }\n return -1;\n }\n // fix type\n pos = Number(pos);\n pos = isNaN(pos) ? 0 : pos;\n searchStr = String(searchStr);\n var strArr = toArray(str);\n if (pos >= strArr.length) {\n if (searchStr === '') {\n return strArr.length;\n }\n return -1;\n }\n if (searchStr === '') {\n return pos;\n }\n var searchArr = toArray(searchStr);\n var finded = false;\n var index;\n for (index = pos; index < strArr.length; index += 1) {\n var searchIndex = 0;\n while (searchIndex < searchArr.length &&\n searchArr[searchIndex] === strArr[index + searchIndex]) {\n searchIndex += 1;\n }\n if (searchIndex === searchArr.length &&\n searchArr[searchIndex - 1] === strArr[index + searchIndex - 1]) {\n finded = true;\n break;\n }\n }\n return finded ? index : -1;\n}\nexports.indexOf = indexOf;\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst JavaScriptObfuscatorFacade_1 = require(\"./src/JavaScriptObfuscatorFacade\");\nmodule.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASTParserFacade = void 0;\nconst acorn = __importStar(require(\"acorn\"));\nconst chalk_1 = __importDefault(require(\"chalk\"));\nclass ASTParserFacade {\n static parse(sourceCode, config) {\n const sourceTypeLength = ASTParserFacade.sourceTypes.length;\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc));\n }\n }\n throw new Error('Acorn parsing error');\n }\n static parseType(sourceCode, inputConfig, sourceType) {\n const comments = [];\n const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType });\n const program = acorn\n .parse(sourceCode, config);\n if (comments.length) {\n program.comments = comments;\n }\n return program;\n }\n static processParsingError(sourceCode, errorMessage, position) {\n if (!position || !position.line || !position.column) {\n throw new Error(errorMessage);\n }\n const sourceCodeLines = sourceCode.split(/\\r?\\n/);\n const errorLine = sourceCodeLines[position.line - 1];\n if (!errorLine) {\n throw new Error(errorMessage);\n }\n const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);\n const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);\n const formattedPointer = ASTParserFacade.colorError('>');\n const formattedCodeSlice = `...${errorLine.slice(startErrorIndex, endErrorIndex).replace(/^\\s+/, '')}...`;\n throw new Error(`ERROR at line ${position.line}: ${errorMessage}\\n${formattedPointer} ${formattedCodeSlice}`);\n }\n}\nexports.ASTParserFacade = ASTParserFacade;\nASTParserFacade.colorError = chalk_1.default.red;\nASTParserFacade.nearestSymbolsCount = 15;\nASTParserFacade.sourceTypes = [\n 'script',\n 'module'\n];\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar JavaScriptObfuscator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst CodeTransformer_1 = require(\"./enums/code-transformers/CodeTransformer\");\nconst CodeTransformationStage_1 = require(\"./enums/code-transformers/CodeTransformationStage\");\nconst LoggingMessage_1 = require(\"./enums/logger/LoggingMessage\");\nconst NodeTransformer_1 = require(\"./enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"./enums/node-transformers/NodeTransformationStage\");\nconst EcmaVersion_1 = require(\"./constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"./ASTParserFacade\");\nconst NodeGuards_1 = require(\"./node/NodeGuards\");\nconst Utils_1 = require(\"./utils/Utils\");\nlet JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator {\n constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {\n this.codeTransformersRunner = codeTransformersRunner;\n this.nodeTransformersRunner = nodeTransformersRunner;\n this.randomGenerator = randomGenerator;\n this.obfuscatedCodeFactory = obfuscatedCodeFactory;\n this.logger = logger;\n this.options = options;\n }\n obfuscate(sourceCode) {\n if (typeof sourceCode !== 'string') {\n sourceCode = '';\n }\n const timeStart = Date.now();\n this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP));\n this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);\n this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());\n sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers);\n const astTree = this.parseCode(sourceCode);\n const obfuscatedAstTree = this.transformAstTree(astTree);\n const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);\n generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers);\n const obfuscationTime = (Date.now() - timeStart) / 1000;\n this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);\n return this.getObfuscatedCode(generatorOutput);\n }\n parseCode(sourceCode) {\n return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions);\n }\n transformAstTree(astTree) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing);\n const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree)\n && !astTree.body.length\n && !astTree.leadingComments\n && !astTree.trailingComments;\n if (isEmptyAstTree) {\n this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);\n return astTree;\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing);\n if (this.options.deadCodeInjection) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection);\n }\n if (this.options.controlFlowFlattening) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening);\n }\n if (this.options.renameProperties) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray);\n if (this.options.simplify) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing);\n return astTree;\n }\n generateCode(sourceCode, astTree) {\n const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);\n if (this.options.sourceMap) {\n escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';\n escodegenParams.sourceContent = sourceCode;\n }\n const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: {\n compact: this.options.compact\n } }));\n generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';\n return generatorOutput;\n }\n getObfuscatedCode(generatorOutput) {\n return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);\n }\n runCodeTransformationStage(code, codeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage);\n return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage);\n }\n runNodeTransformationStage(astTree, nodeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage);\n return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage);\n }\n};\nJavaScriptObfuscator.parseOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n allowHashBang: true,\n allowImportExportEverywhere: true,\n allowReturnOutsideFunction: true,\n locations: true,\n ranges: true\n};\nJavaScriptObfuscator.escodegenParams = {\n comment: true,\n verbatim: 'x-verbatim-property',\n sourceMapWithCode: true\n};\nJavaScriptObfuscator.codeTransformersList = [\n CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer\n];\nJavaScriptObfuscator.nodeTransformersList = [\n NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.CommentsTransformer,\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer,\n NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer,\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer,\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer,\n NodeTransformer_1.NodeTransformer.MemberExpressionTransformer,\n NodeTransformer_1.NodeTransformer.MetadataTransformer,\n NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer,\n NodeTransformer_1.NodeTransformer.NumberLiteralTransformer,\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.SplitStringTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n];\nJavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Function, Object, Object])\n], JavaScriptObfuscator);\nexports.JavaScriptObfuscator = JavaScriptObfuscator;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nrequire(\"reflect-metadata\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst InversifyContainerFacade_1 = require(\"./container/InversifyContainerFacade\");\nconst Options_1 = require(\"./options/Options\");\nconst Utils_1 = require(\"./utils/Utils\");\nclass JavaScriptObfuscatorFacade {\n static obfuscate(sourceCode, inputOptions = {}) {\n const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();\n inversifyContainerFacade.load(sourceCode, '', inputOptions);\n const javaScriptObfuscator = inversifyContainerFacade\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);\n const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);\n inversifyContainerFacade.unload();\n return obfuscatedCode;\n }\n static obfuscateMultiple(sourceCodesObject, inputOptions = {}) {\n if (typeof sourceCodesObject !== 'object') {\n throw new Error('Source codes object should be a plain object');\n }\n return Object\n .keys(sourceCodesObject)\n .reduce((acc, sourceCodeIdentifier, index) => {\n const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index);\n const sourceCode = sourceCodesObject[sourceCodeIdentifier];\n const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix });\n return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) });\n }, {});\n }\n static getOptionsByPreset(optionsPreset) {\n return Options_1.Options.getOptionsByPreset(optionsPreset);\n }\n}\nexports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;\nJavaScriptObfuscatorFacade.version = (_a = process.env.VERSION) !== null && _a !== void 0 ? _a : 'unknown';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallsGraphAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsGraphAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst CalleeDataExtractor_1 = require(\"../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer {\n constructor(calleeDataExtractorFactory) {\n this.calleeDataExtractorFactory = calleeDataExtractorFactory;\n }\n static getLimitIndex(blockScopeBodyLength) {\n const lastIndex = blockScopeBodyLength - 1;\n const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1;\n let limitIndex = lastIndex;\n if (lastIndex > limitThresholdActivationIndex) {\n limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold));\n if (limitIndex > lastIndex) {\n limitIndex = lastIndex;\n }\n }\n return limitIndex;\n }\n analyze(astTree) {\n return this.analyzeRecursive(astTree.body);\n }\n analyzeRecursive(blockScopeBody) {\n const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length);\n const callsGraphData = [];\n const blockScopeBodyLength = blockScopeBody.length;\n for (let index = 0; index < blockScopeBodyLength; index++) {\n if (index > limitIndex) {\n break;\n }\n const blockScopeBodyNode = blockScopeBody[index];\n estraverse.traverse(blockScopeBodyNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {\n return;\n }\n if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {\n return estraverse.VisitorOption.Skip;\n }\n this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);\n }\n });\n }\n return callsGraphData;\n }\n analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) {\n CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => {\n const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName)\n .extract(blockScopeBody, callExpressionNode.callee);\n if (!calleeData) {\n return;\n }\n callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) }));\n });\n }\n};\nCallsGraphAnalyzer.calleeDataExtractorsList = [\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor\n];\nCallsGraphAnalyzer.limitThresholdActivationLength = 25;\nCallsGraphAnalyzer.limitThreshold = 0.002;\nCallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)),\n __metadata(\"design:paramtypes\", [Function])\n], CallsGraphAnalyzer);\nexports.CallsGraphAnalyzer = CallsGraphAnalyzer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nlet AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor {\n};\nAbstractCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], AbstractCalleeDataExtractor);\nexports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionDeclarationCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return null;\n }\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: callee.name\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionDeclarationCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionDeclarationCalleeDataExtractor);\nexports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n let calleeName = null;\n let calleeBlockStatement = null;\n if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n calleeName = callee.name;\n calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n }\n else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {\n calleeName = null;\n calleeBlockStatement = callee.body;\n }\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: calleeName\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) &&\n parentNode &&\n NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) &&\n parentNode.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionExpressionCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionExpressionCalleeDataExtractor);\nexports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ObjectExpressionCalleeDataExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {\n if (!propertyNode.key) {\n return false;\n }\n const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;\n const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) &&\n Boolean(propertyNode.key.value) &&\n propertyNode.key.value === nextItemInCallsChain;\n return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;\n }\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {\n return null;\n }\n const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);\n if (!objectMembersCallsChain.length) {\n return null;\n }\n const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: functionExpressionName\n };\n }\n createObjectMembersCallsChain(currentChain, memberExpression) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {\n currentChain.unshift(memberExpression.property.name);\n }\n else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) &&\n (typeof memberExpression.property.value === 'string' ||\n typeof memberExpression.property.value === 'number')) {\n currentChain.unshift(memberExpression.property.value);\n }\n else {\n return currentChain;\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {\n return this.createObjectMembersCallsChain(currentChain, memberExpression.object);\n }\n else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {\n currentChain.unshift(memberExpression.object.name);\n }\n return currentChain;\n }\n getCalleeBlockStatement(targetNode, objectMembersCallsChain) {\n const objectName = objectMembersCallsChain.shift();\n if (!objectName) {\n return null;\n }\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(node.id) &&\n node.init &&\n NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) &&\n node.id.name === objectName) {\n calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {\n const nextItemInCallsChain = objectMembersCallsChain.shift();\n if (!nextItemInCallsChain) {\n return null;\n }\n for (const propertyNode of objectExpressionProperties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) {\n continue;\n }\n if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {\n continue;\n }\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {\n return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);\n }\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {\n return propertyNode.value.body;\n }\n }\n return null;\n }\n};\nObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([\n inversify_1.injectable()\n], ObjectExpressionCalleeDataExtractor);\nexports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar NumberNumericalExpressionAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberNumericalExpressionAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer {\n constructor(randomGenerator) {\n this.numberFactorsMap = new Map();\n this.randomGenerator = randomGenerator;\n }\n analyze(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) {\n return [number];\n }\n const additionParts = this.generateAdditionParts(number);\n return additionParts.map((addition) => this.mixWithMultiplyParts(addition));\n }\n generateAdditionParts(number) {\n const additionParts = [];\n const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER);\n const from = Math.min(-10000, -upperNumberLimit);\n const to = Math.max(10000, upperNumberLimit);\n let temporarySum = 0;\n for (let i = 0; i < NumberNumericalExpressionAnalyzer_1.additionalParts; i++) {\n if (i < NumberNumericalExpressionAnalyzer_1.additionalParts - 1) {\n let addition = this.randomGenerator.getRandomInteger(from, to);\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition);\n if (isUnsafeCombination) {\n addition = -addition;\n }\n additionParts.push(addition);\n temporarySum += addition;\n }\n else {\n const combination = number - temporarySum;\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination);\n if (isUnsafeCombination) {\n additionParts.push(0 - temporarySum);\n additionParts.push(number);\n }\n else {\n additionParts.push(combination);\n }\n }\n }\n return additionParts;\n }\n mixWithMultiplyParts(number) {\n var _a;\n const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5;\n if (!shouldMixWithMultiplyParts || number === 0) {\n return number;\n }\n let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null;\n if (!factors) {\n factors = NumberUtils_1.NumberUtils.getFactors(number);\n this.numberFactorsMap.set(number, factors);\n }\n if (!factors.length) {\n return number;\n }\n const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)];\n return [factor, number / factor];\n }\n};\nNumberNumericalExpressionAnalyzer.additionalParts = 3;\nNumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [Object])\n], NumberNumericalExpressionAnalyzer);\nexports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PrevailingKindOfVariablesAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrevailingKindOfVariablesAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer {\n constructor(arrayUtils) {\n this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n this.arrayUtils = arrayUtils;\n }\n analyze(astTree) {\n var _a;\n const variableKinds = [];\n estraverse.traverse(astTree, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n variableKinds.push(node.kind);\n }\n });\n this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n }\n getPrevailingKind() {\n return this.prevailingKindOfVariables;\n }\n};\nPrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var';\nPrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [Object])\n], PrevailingKindOfVariablesAnalyzer);\nexports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ScopeAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eslintScope = __importStar(require(\"eslint-scope\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../../constants/EcmaVersion\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer {\n constructor() {\n this.scopeManager = null;\n }\n static attachMissingRanges(astTree) {\n estraverse.replace(astTree, {\n enter: (node, parentNode) => {\n var _a, _b, _c, _d;\n if (!node.range) {\n node.range = [\n (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue,\n (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ScopeAnalyzer_1.emptyRangeValue\n ];\n }\n return node;\n }\n });\n }\n static isRootNode(node) {\n return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node;\n }\n analyze(astTree) {\n const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length;\n ScopeAnalyzer_1.attachMissingRanges(astTree);\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] }));\n return;\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(error);\n }\n }\n throw new Error('Scope analyzing error');\n }\n acquireScope(node) {\n if (!this.scopeManager) {\n throw new Error('Scope manager is not defined');\n }\n const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node));\n if (!scope) {\n throw new Error('Cannot acquire scope for node');\n }\n this.sanitizeScopes(scope);\n return scope;\n }\n sanitizeScopes(scope) {\n scope.childScopes.forEach((childScope) => {\n if (childScope.type === 'class' && childScope.upper) {\n if (!childScope.variables.length) {\n return;\n }\n const classNameVariable = childScope.variables[0];\n const upperVariable = childScope.upper.variables\n .find((variable) => {\n const isValidClassNameVariable = classNameVariable.defs\n .some((definition) => definition.type === 'ClassName');\n return isValidClassNameVariable && variable.name === classNameVariable.name;\n });\n upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references);\n }\n });\n for (const childScope of scope.childScopes) {\n this.sanitizeScopes(childScope);\n }\n }\n};\nScopeAnalyzer.eslintScopeOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n optimistic: true\n};\nScopeAnalyzer.sourceTypes = [\n 'script',\n 'module'\n];\nScopeAnalyzer.emptyRangeValue = 0;\nScopeAnalyzer = ScopeAnalyzer_1 = __decorate([\n inversify_1.injectable()\n], ScopeAnalyzer);\nexports.ScopeAnalyzer = ScopeAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorageAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorageAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer {\n constructor(stringArrayStorage, randomGenerator, options) {\n this.stringArrayStorageData = new Map();\n this.stringArrayStorage = stringArrayStorage;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n analyze(astTree) {\n if (!this.options.stringArray) {\n return;\n }\n estraverse.traverse(astTree, {\n enter: (node, parentNode) => {\n if (!parentNode) {\n return;\n }\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return;\n }\n this.analyzeLiteralNode(node, parentNode);\n }\n });\n }\n getItemDataForLiteralNode(literalNode) {\n return this.stringArrayStorageData.get(literalNode);\n }\n analyzeLiteralNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return;\n }\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return;\n }\n if (!this.shouldAddValueToStringArray(literalNode)) {\n return;\n }\n this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value));\n }\n shouldAddValueToStringArray(literalNode) {\n const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode);\n if (isForceTransformNode) {\n return true;\n }\n return literalNode.value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray\n && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;\n }\n};\nStringArrayStorageAnalyzer.minimumLengthForStringArray = 3;\nStringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], StringArrayStorageAnalyzer);\nexports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet AbstractCodeTransformer = class AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractCodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], AbstractCodeTransformer);\nexports.AbstractCodeTransformer = AbstractCodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nCodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], CodeTransformerNamesGroupsBuilder);\nexports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet CodeTransformersRunner = class CodeTransformersRunner {\n constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) {\n this.codeTransformerFactory = codeTransformerFactory;\n this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;\n }\n transform(code, codeTransformerNames, codeTransformationStage) {\n if (!codeTransformerNames.length) {\n return code;\n }\n const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);\n const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);\n for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const codeTransformer = normalizedCodeTransformers[nodeTransformerName];\n code = codeTransformer.transformCode(code, codeTransformationStage);\n }\n }\n return code;\n }\n buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) {\n return codeTransformerNames\n .reduce((acc, codeTransformerName) => {\n const codeTransformer = this.codeTransformerFactory(codeTransformerName);\n return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer });\n }, {});\n }\n};\nCodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [Function, Object])\n], CodeTransformersRunner);\nexports.CodeTransformersRunner = CodeTransformersRunner;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashbangOperatorTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst CodeTransformationStage_1 = require(\"../../enums/code-transformers/CodeTransformationStage\");\nconst AbstractCodeTransformer_1 = require(\"../AbstractCodeTransformer\");\nlet HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.hashbangOperatorLine = null;\n }\n transformCode(code, codeTransformationStage) {\n switch (codeTransformationStage) {\n case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers:\n return this.removeAndSaveHashbangOperatorLine(code);\n case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers:\n return this.appendSavedHashbangOperatorLine(code);\n default:\n return code;\n }\n }\n removeAndSaveHashbangOperatorLine(code) {\n return code\n .replace(/^#!.*$(\\r?\\n)*/m, (substring) => {\n if (substring) {\n this.hashbangOperatorLine = substring;\n }\n return '';\n })\n .trim();\n }\n appendSavedHashbangOperatorLine(code) {\n var _a;\n return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`;\n }\n};\nHashbangOperatorTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], HashbangOperatorTransformer);\nexports.HashbangOperatorTransformer = HashbangOperatorTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetString = void 0;\nexports.alphabetString = 'abcdefghijklmnopqrstuvwxyz';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetStringUppercase = void 0;\nconst AlphabetString_1 = require(\"./AlphabetString\");\nexports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabet = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabetSwapped = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecmaVersion = void 0;\nexports.ecmaVersion = 12;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numbersString = void 0;\nexports.numbersString = '0123456789';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InversifyContainerFacade = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./ServiceIdentifiers\");\nconst AnalyzersModule_1 = require(\"./modules/analyzers/AnalyzersModule\");\nconst CodeTransformersModule_1 = require(\"./modules/code-transformers/CodeTransformersModule\");\nconst ControlFlowTransformersModule_1 = require(\"./modules/node-transformers/ControlFlowTransformersModule\");\nconst ConvertingTransformersModule_1 = require(\"./modules/node-transformers/ConvertingTransformersModule\");\nconst CustomCodeHelpersModule_1 = require(\"./modules/custom-code-helpers/CustomCodeHelpersModule\");\nconst CustomNodesModule_1 = require(\"./modules/custom-nodes/CustomNodesModule\");\nconst DeadCodeInjectionTransformersModule_1 = require(\"./modules/node-transformers/DeadCodeInjectionTransformersModule\");\nconst FinalizingTransformersModule_1 = require(\"./modules/node-transformers/FinalizingTransformersModule\");\nconst GeneratorsModule_1 = require(\"./modules/generators/GeneratorsModule\");\nconst InitializingTransformersModule_1 = require(\"./modules/node-transformers/InitializingTransformersModule\");\nconst NodeModule_1 = require(\"./modules/node/NodeModule\");\nconst NodeTransformersModule_1 = require(\"./modules/node-transformers/NodeTransformersModule\");\nconst OptionsModule_1 = require(\"./modules/options/OptionsModule\");\nconst PreparingTransformersModule_1 = require(\"./modules/node-transformers/PreparingTransformersModule\");\nconst RenameIdentifiersTransformersModule_1 = require(\"./modules/node-transformers/RenameIdentifiersTransformersModule\");\nconst RenamePropertiesTransformersModule_1 = require(\"./modules/node-transformers/RenamePropertiesTransformersModule\");\nconst SimplifyingTransformersModule_1 = require(\"./modules/node-transformers/SimplifyingTransformersModule\");\nconst StoragesModule_1 = require(\"./modules/storages/StoragesModule\");\nconst StringArrayTransformersModule_1 = require(\"./modules/node-transformers/StringArrayTransformersModule\");\nconst UtilsModule_1 = require(\"./modules/utils/UtilsModule\");\nconst CodeTransformersRunner_1 = require(\"../code-transformers/CodeTransformersRunner\");\nconst JavaScriptObfuscator_1 = require(\"../JavaScriptObfuscator\");\nconst Logger_1 = require(\"../logger/Logger\");\nconst NodeTransformersRunner_1 = require(\"../node-transformers/NodeTransformersRunner\");\nconst ObfuscationEventEmitter_1 = require(\"../event-emitters/ObfuscationEventEmitter\");\nconst ObfuscatedCode_1 = require(\"../source-code/ObfuscatedCode\");\nconst SourceCode_1 = require(\"../source-code/SourceCode\");\nclass InversifyContainerFacade {\n constructor() {\n this.container = new inversify_1.Container();\n }\n static getFactory(serviceIdentifier) {\n return (context) => {\n return (bindingName) => {\n return context.container.getNamed(serviceIdentifier, bindingName);\n };\n };\n }\n static getCacheFactory(serviceIdentifier) {\n return (context) => {\n const cache = new Map();\n return (bindingName) => {\n if (cache.has(bindingName)) {\n return cache.get(bindingName);\n }\n const object = context.container.getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, object);\n return object;\n };\n };\n }\n static getConstructorFactory(serviceIdentifier, ...dependencies) {\n return (context) => {\n const cache = new Map();\n const cachedDependencies = [];\n return (bindingName) => {\n dependencies.forEach((dependency, index) => {\n if (!cachedDependencies[index]) {\n cachedDependencies[index] = context.container.get(dependency);\n }\n });\n if (cache.has(bindingName)) {\n return new (cache.get(bindingName))(...cachedDependencies);\n }\n const constructor = context.container\n .getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, constructor);\n return new constructor(...cachedDependencies);\n };\n };\n }\n get(serviceIdentifier) {\n return this.container.get(serviceIdentifier);\n }\n getNamed(serviceIdentifier, named) {\n return this.container.getNamed(serviceIdentifier, named);\n }\n load(sourceCode, sourceMap, options) {\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)\n .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap))\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)\n .toDynamicValue(() => options)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)\n .to(Logger_1.Logger)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator)\n .to(JavaScriptObfuscator_1.JavaScriptObfuscator)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)\n .to(CodeTransformersRunner_1.CodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)\n .to(NodeTransformersRunner_1.NodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode)\n .to(ObfuscatedCode_1.ObfuscatedCode);\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)\n .toFactory((context) => {\n return (obfuscatedCodeAsString, sourceMapAsString) => {\n const obfuscatedCode = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode);\n obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);\n return obfuscatedCode;\n };\n });\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)\n .to(ObfuscationEventEmitter_1.ObfuscationEventEmitter)\n .inSingletonScope();\n this.container.load(AnalyzersModule_1.analyzersModule);\n this.container.load(CodeTransformersModule_1.codeTransformersModule);\n this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);\n this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);\n this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule);\n this.container.load(CustomNodesModule_1.customNodesModule);\n this.container.load(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule);\n this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);\n this.container.load(GeneratorsModule_1.generatorsModule);\n this.container.load(InitializingTransformersModule_1.initializingTransformersModule);\n this.container.load(NodeModule_1.nodeModule);\n this.container.load(NodeTransformersModule_1.nodeTransformersModule);\n this.container.load(OptionsModule_1.optionsModule);\n this.container.load(PreparingTransformersModule_1.preparingTransformersModule);\n this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule);\n this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule);\n this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule);\n this.container.load(StoragesModule_1.storagesModule);\n this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule);\n this.container.load(UtilsModule_1.utilsModule);\n }\n unload() {\n this.container.unbindAll();\n }\n}\nexports.InversifyContainerFacade = InversifyContainerFacade;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceIdentifiers = void 0;\nvar ServiceIdentifiers;\n(function (ServiceIdentifiers) {\n ServiceIdentifiers[\"Factory__ICalleeDataExtractor\"] = \"Factory<ICalleeDataExtractor>\";\n ServiceIdentifiers[\"Factory__ICodeTransformer\"] = \"Factory<ICodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IControlFlowCustomNode\"] = \"Factory<IControlFlowCustomNode>\";\n ServiceIdentifiers[\"Factory__IControlFlowReplacer\"] = \"Factory<IControlFlowReplacer>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelper\"] = \"Factory<ICustomCodeHelper>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelperGroup\"] = \"Factory<ICustomCodeHelperGroup>\";\n ServiceIdentifiers[\"Factory__IDeadCodeInjectionCustomNode\"] = \"Factory<IDeadCodeInjectionCustomNode>\";\n ServiceIdentifiers[\"Factory__IIdentifierNamesGenerator\"] = \"Factory<IIdentifierNamesGenerator>\";\n ServiceIdentifiers[\"Factory__INodeGuard\"] = \"Factory<INodeGuard>\";\n ServiceIdentifiers[\"Factory__INodeTransformer\"] = \"Factory<INodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IObfuscatedCode\"] = \"Factory<IObfuscatedCode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionKeysTransformerCustomNode\"] = \"Factory<IObjectExpressionKeysTransformerCustomNode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionExtractor\"] = \"Factory<IObjectExpressionExtractor>\";\n ServiceIdentifiers[\"Factory__IStringArrayCustomNode\"] = \"Factory<IStringArrayCustomNode>\";\n ServiceIdentifiers[\"Factory__IStringArrayIndexNode\"] = \"Factory<IStringArrayIndexNode>\";\n ServiceIdentifiers[\"Factory__TControlFlowStorage\"] = \"Factory<TControlFlowStorage>\";\n ServiceIdentifiers[\"IArrayUtils\"] = \"IArrayUtils\";\n ServiceIdentifiers[\"ICalleeDataExtractor\"] = \"ICalleeDataExtractor\";\n ServiceIdentifiers[\"ICallsGraphAnalyzer\"] = \"ICallsGraphAnalyzer\";\n ServiceIdentifiers[\"ICodeTransformer\"] = \"ICodeTransformer\";\n ServiceIdentifiers[\"ICodeTransformerNamesGroupsBuilder\"] = \"ICodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"ICodeTransformersRunner\"] = \"ICodeTransformersRunner\";\n ServiceIdentifiers[\"ICryptUtils\"] = \"ICryptUtils\";\n ServiceIdentifiers[\"ICryptUtilsSwappedAlphabet\"] = \"ICryptUtilsSwappedAlphabet\";\n ServiceIdentifiers[\"ICustomCodeHelper\"] = \"ICustomCodeHelper\";\n ServiceIdentifiers[\"ICustomCodeHelperGroup\"] = \"ICustomCodeHelperGroup\";\n ServiceIdentifiers[\"IControlFlowReplacer\"] = \"IControlFlowReplacer\";\n ServiceIdentifiers[\"ICustomCodeHelperFormatter\"] = \"ICustomCodeHelperFormatter\";\n ServiceIdentifiers[\"ICustomCodeHelperObfuscator\"] = \"ICustomCodeHelperObfuscator\";\n ServiceIdentifiers[\"IEscapeSequenceEncoder\"] = \"IEscapeSequenceEncoder\";\n ServiceIdentifiers[\"IIdentifierNamesGenerator\"] = \"IIdentifierNamesGenerator\";\n ServiceIdentifiers[\"IIdentifierReplacer\"] = \"IIdentifierReplacer\";\n ServiceIdentifiers[\"IJavaScriptObfuscator\"] = \"IJavaScriptObfuscator\";\n ServiceIdentifiers[\"ILevelledTopologicalSorter\"] = \"ILevelledTopologicalSorter\";\n ServiceIdentifiers[\"ILiteralNodesCacheStorage\"] = \"ILiteralNodesCacheStorage\";\n ServiceIdentifiers[\"ILogger\"] = \"ILogger\";\n ServiceIdentifiers[\"INodeGuard\"] = \"INodeGuard\";\n ServiceIdentifiers[\"INodeTransformer\"] = \"INodeTransformer\";\n ServiceIdentifiers[\"INodeTransformerNamesGroupsBuilder\"] = \"INodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"INodeTransformersRunner\"] = \"INodeTransformersRunner\";\n ServiceIdentifiers[\"INumberNumericalExpressionAnalyzer\"] = \"INumberNumericalExpressionAnalyzer\";\n ServiceIdentifiers[\"IObfuscationEventEmitter\"] = \"IObfuscationEventEmitter\";\n ServiceIdentifiers[\"IObfuscatedCode\"] = \"IObfuscatedCode\";\n ServiceIdentifiers[\"IOptions\"] = \"IOptions\";\n ServiceIdentifiers[\"IOptionsNormalizer\"] = \"IOptionsNormalizer\";\n ServiceIdentifiers[\"IPrevailingKindOfVariablesAnalyzer\"] = \"IPrevailingKindOfVariablesAnalyzer\";\n ServiceIdentifiers[\"IObjectExpressionExtractor\"] = \"IObjectExpressionExtractor\";\n ServiceIdentifiers[\"IRandomGenerator\"] = \"IRandomGenerator\";\n ServiceIdentifiers[\"IRenamePropertiesReplacer\"] = \"IRenamePropertiesReplacer\";\n ServiceIdentifiers[\"IScopeIdentifiersTraverser\"] = \"IScopeIdentifiersTraverser\";\n ServiceIdentifiers[\"ISourceCode\"] = \"ISourceCode\";\n ServiceIdentifiers[\"IScopeAnalyzer\"] = \"IScopeAnalyzer\";\n ServiceIdentifiers[\"IStringArrayIndexNode\"] = \"IStringArrayIndexNode\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\"] = \"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperNamesDataStorage\"] = \"IStringArrayScopeCallsWrapperNamesDataStorage\";\n ServiceIdentifiers[\"IStringArrayStorage\"] = \"IStringArrayStorage\";\n ServiceIdentifiers[\"IStringArrayStorageAnalyzer\"] = \"IStringArrayStorageAnalyzer\";\n ServiceIdentifiers[\"IVisitedLexicalScopeNodesStackStorage\"] = \"IVisitedLexicalScopeNodesStackStorage\";\n ServiceIdentifiers[\"Newable__ICustomNode\"] = \"Newable<ICustomNode>\";\n ServiceIdentifiers[\"Newable__TControlFlowStorage\"] = \"Newable<TControlFlowStorage>\";\n ServiceIdentifiers[\"TCustomNodeGroupStorage\"] = \"TCustomNodeGroupStorage\";\n ServiceIdentifiers[\"TInputOptions\"] = \"TInputOptions\";\n})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.analyzersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CalleeDataExtractor_1 = require(\"../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst CallsGraphAnalyzer_1 = require(\"../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer\");\nconst FunctionDeclarationCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor\");\nconst FunctionExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor\");\nconst NumberNumericalExpressionAnalyzer_1 = require(\"../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer\");\nconst ObjectExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor\");\nconst PrevailingKindOfVariablesAnalyzer_1 = require(\"../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer\");\nconst ScopeAnalyzer_1 = require(\"../../../analyzers/scope-analyzer/ScopeAnalyzer\");\nconst StringArrayStorageAnalyzer_1 = require(\"../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer\");\nexports.analyzersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)\n .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)\n .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)\n .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)\n .to(ScopeAnalyzer_1.ScopeAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)\n .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.codeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CodeTransformer_1 = require(\"../../../enums/code-transformers/CodeTransformer\");\nconst CodeTransformerNamesGroupsBuilder_1 = require(\"../../../code-transformers/CodeTransformerNamesGroupsBuilder\");\nconst HashbangOperatorTransformer_1 = require(\"../../../code-transformers/preparing-transformers/HashbangOperatorTransformer\");\nexports.codeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)\n .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)\n .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer)\n .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customCodeHelpersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst CustomCodeHelperGroup_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst ConsoleOutputCodeHelperGroup_1 = require(\"../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup\");\nconst DebugProtectionCodeHelperGroup_1 = require(\"../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup\");\nconst DomainLockCustomCodeHelperGroup_1 = require(\"../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup\");\nconst SelfDefendingCodeHelperGroup_1 = require(\"../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup\");\nconst StringArrayCodeHelperGroup_1 = require(\"../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup\");\nconst ConsoleOutputDisableCodeHelper_1 = require(\"../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper\");\nconst CustomCodeHelperFormatter_1 = require(\"../../../custom-code-helpers/CustomCodeHelperFormatter\");\nconst CustomCodeHelperObfuscator_1 = require(\"../../../custom-code-helpers/CustomCodeHelperObfuscator\");\nconst DebugProtectionFunctionCallCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper\");\nconst DebugProtectionFunctionIntervalCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper\");\nconst DebugProtectionFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper\");\nconst DomainLockCodeHelper_1 = require(\"../../../custom-code-helpers/domain-lock/DomainLockCodeHelper\");\nconst CallsControllerFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper\");\nconst SelfDefendingUnicodeCodeHelper_1 = require(\"../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper\");\nconst StringArrayCallsWrapperBase64CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper\");\nconst StringArrayCallsWrapperRc4CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper\");\nconst StringArrayCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCodeHelper\");\nconst StringArrayRotateFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper\");\nexports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DomainLockCodeHelper_1.DomainLockCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCodeHelper_1.StringArrayCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)\n .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)\n .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customNodesModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst DeadCodeInjectionCustomNode_1 = require(\"../../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst StringArrayCustomNode_1 = require(\"../../../enums/custom-nodes/StringArrayCustomNode\");\nconst BinaryExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode\");\nconst BlockStatementControlFlowFlatteningNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode\");\nconst BlockStatementDeadCodeInjectionNode_1 = require(\"../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode\");\nconst CallExpressionControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode\");\nconst CallExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode\");\nconst ControlFlowStorageNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode\");\nconst ExpressionWithOperatorControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode\");\nconst LogicalExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode\");\nconst ObjectExpressionVariableDeclarationHostNode_1 = require(\"../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode\");\nconst StringArrayCallNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayCallNode\");\nconst StringArrayHexadecimalNumberIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode\");\nconst StringArrayHexadecimalNumericStringIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode\");\nconst StringArrayIndexNode_1 = require(\"../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst StringArrayScopeCallsWrapperFunctionNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode\");\nconst StringArrayScopeCallsWrapperVariableNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode\");\nconst StringLiteralControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode\");\nconst StringLiteralNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode\");\nexports.customNodesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralNode_1.StringLiteralNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode)\n .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode)\n .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayCallNode_1.StringArrayCallNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generatorsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst IdentifierNamesGenerator_1 = require(\"../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst DictionaryIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator\");\nconst HexadecimalIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator\");\nconst MangledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator\");\nconst MangledShuffledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator\");\nexports.generatorsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n function identifierNameGeneratorFactory() {\n let cachedIdentifierNamesGenerator = null;\n return (context) => (options) => {\n if (cachedIdentifierNamesGenerator) {\n return cachedIdentifierNamesGenerator;\n }\n let identifierNamesGenerator;\n switch (options.identifierNamesGenerator) {\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:\n default:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n }\n cachedIdentifierNamesGenerator = identifierNamesGenerator;\n return identifierNamesGenerator;\n };\n }\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)\n .toFactory(identifierNameGeneratorFactory());\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.controlFlowTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowReplacer_1 = require(\"../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BinaryExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer\");\nconst BlockStatementControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer\");\nconst CallExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer\");\nconst FunctionControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer\");\nconst LogicalExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer\");\nconst StringLiteralControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer\");\nexports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObjectExpressionExtractor_1 = require(\"../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst BasePropertiesExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor\");\nconst BooleanLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/BooleanLiteralTransformer\");\nconst ExportSpecifierTransformer_1 = require(\"../../../node-transformers/converting-transformers/ExportSpecifierTransformer\");\nconst MemberExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MemberExpressionTransformer\");\nconst MethodDefinitionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MethodDefinitionTransformer\");\nconst NumberLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberLiteralTransformer\");\nconst NumberToNumericalExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer\");\nconst ObjectExpressionKeysTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer\");\nconst ObjectExpressionToVariableDeclarationExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor\");\nconst ObjectExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionTransformer\");\nconst ObjectPatternPropertiesTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer\");\nconst SplitStringTransformer_1 = require(\"../../../node-transformers/converting-transformers/SplitStringTransformer\");\nconst TemplateLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/TemplateLiteralTransformer\");\nexports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MemberExpressionTransformer_1.MemberExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MethodDefinitionTransformer_1.MethodDefinitionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberLiteralTransformer_1.NumberLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(SplitStringTransformer_1.SplitStringTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(BasePropertiesExtractor_1.BasePropertiesExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deadCodeInjectionTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst DeadCodeInjectionTransformer_1 = require(\"../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer\");\nexports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.finalizingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst EscapeSequenceTransformer_1 = require(\"../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer\");\nexports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst CommentsTransformer_1 = require(\"../../../node-transformers/initializing-transformers/CommentsTransformer\");\nexports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CommentsTransformer_1.CommentsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformerNamesGroupsBuilder_1 = require(\"../../../node-transformers/NodeTransformerNamesGroupsBuilder\");\nexports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)\n .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.preparingTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObfuscatingGuard_1 = require(\"../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst BlackListObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst CustomCodeHelpersTransformer_1 = require(\"../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer\");\nconst EvalCallExpressionTransformer_1 = require(\"../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer\");\nconst ForceTransformStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard\");\nconst IgnoredRequireImportObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard\");\nconst MetadataTransformer_1 = require(\"../../../node-transformers/preparing-transformers/MetadataTransformer\");\nconst ObfuscatingGuardsTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer\");\nconst ParentificationTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ParentificationTransformer\");\nconst ReservedStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard\");\nconst VariablePreserveTransformer_1 = require(\"../../../node-transformers/preparing-transformers/VariablePreserveTransformer\");\nexports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MetadataTransformer_1.MetadataTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ParentificationTransformer_1.ParentificationTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariablePreserveTransformer_1.VariablePreserveTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renameIdentifiersTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst IdentifierReplacer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer\");\nconst LabeledStatementTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer\");\nconst ScopeIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer\");\nconst ScopeThroughIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer\");\nexports.renameIdentifiersTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(LabeledStatementTransformer_1.LabeledStatementTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)\n .to(IdentifierReplacer_1.IdentifierReplacer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renamePropertiesTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst RenamePropertiesReplacer_1 = require(\"../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer\");\nconst RenamePropertiesTransformer_1 = require(\"../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer\");\nexports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)\n .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.simplifyingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BlockStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer\");\nconst ExpressionStatementsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer\");\nconst IfStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer\");\nconst VariableDeclarationsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer\");\nexports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArrayTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst StringArrayScopeCallsWrapperTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer\");\nconst StringArrayTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayTransformer\");\nexports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayTransformer_1.StringArrayTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ScopeIdentifiersTraverser_1 = require(\"../../../node/ScopeIdentifiersTraverser\");\nexports.nodeModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)\n .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst Options_1 = require(\"../../../options/Options\");\nconst OptionsNormalizer_1 = require(\"../../../options/OptionsNormalizer\");\nexports.optionsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)\n .to(Options_1.Options)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)\n .to(OptionsNormalizer_1.OptionsNormalizer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storagesModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowStorage_1 = require(\"../../../storages/custom-nodes/ControlFlowStorage\");\nconst CustomCodeHelperGroupStorage_1 = require(\"../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage\");\nconst LiteralNodesCacheStorage_1 = require(\"../../../storages/string-array-transformers/LiteralNodesCacheStorage\");\nconst StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst StringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage\");\nconst StringArrayStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayStorage\");\nconst VisitedLexicalScopeNodesStackStorage_1 = require(\"../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage\");\nexports.storagesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)\n .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)\n .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)\n .to(StringArrayStorage_1.StringArrayStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)\n .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)\n .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage)\n .toConstructor(ControlFlowStorage_1.ControlFlowStorage);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)\n .toFactory((context) => {\n return () => {\n const constructor = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);\n const randomGenerator = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);\n const options = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);\n const storage = new constructor(randomGenerator, options);\n storage.initialize();\n return storage;\n };\n });\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utilsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ArrayUtils_1 = require(\"../../../utils/ArrayUtils\");\nconst CryptUtils_1 = require(\"../../../utils/CryptUtils\");\nconst CryptUtilsSwappedAlphabet_1 = require(\"../../../utils/CryptUtilsSwappedAlphabet\");\nconst EscapeSequenceEncoder_1 = require(\"../../../utils/EscapeSequenceEncoder\");\nconst LevelledTopologicalSorter_1 = require(\"../../../utils/LevelledTopologicalSorter\");\nconst RandomGenerator_1 = require(\"../../../utils/RandomGenerator\");\nexports.utilsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)\n .to(ArrayUtils_1.ArrayUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)\n .to(RandomGenerator_1.RandomGenerator)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)\n .to(CryptUtils_1.CryptUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)\n .to(CryptUtilsSwappedAlphabet_1.CryptUtilsSwappedAlphabet)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)\n .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)\n .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractCustomCodeHelper_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst GlobalVariableTemplate1_1 = require(\"./common/templates/GlobalVariableTemplate1\");\nconst GlobalVariableTemplate2_1 = require(\"./common/templates/GlobalVariableTemplate2\");\nlet AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.customCodeHelperObfuscator = customCodeHelperObfuscator;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n const codeHelperTemplate = this.getCodeHelperTemplate();\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate));\n }\n return this.cachedNode;\n }\n getGlobalVariableTemplate() {\n return this.randomGenerator\n .getRandomGenerator()\n .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions);\n }\n getCodeHelperTemplate() {\n return '';\n }\n};\nAbstractCustomCodeHelper.globalVariableTemplateFunctions = [\n GlobalVariableTemplate1_1.GlobalVariableTemplate1(),\n GlobalVariableTemplate2_1.GlobalVariableTemplate2()\n];\nAbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], AbstractCustomCodeHelper);\nexports.AbstractCustomCodeHelper = AbstractCustomCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup {\n constructor(identifierNamesGeneratorFactory, randomGenerator, options) {\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getAppendEvent() {\n return this.appendEvent;\n }\n getCustomCodeHelpers() {\n return this.customCodeHelpers;\n }\n appendCustomNodeIfExist(customCodeHelperName, callback) {\n const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName);\n if (!customCodeHelper) {\n return;\n }\n callback(customCodeHelper);\n }\n getRandomCallsGraphIndex(callsGraphLength) {\n return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));\n }\n};\nAbstractCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], AbstractCustomCodeHelperGroup);\nexports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperFormatter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst string_template_1 = __importDefault(require(\"string-template\"));\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nlet CustomCodeHelperFormatter = class CustomCodeHelperFormatter {\n constructor(prevailingKindOfVariablesAnalyzer) {\n this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();\n }\n formatTemplate(template, mapping) {\n return string_template_1.default(template, mapping);\n }\n formatStructure(statements) {\n for (const statement of statements) {\n estraverse.replace(statement, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n if (this.prevailingKindOfVariables === 'var') {\n node.kind = 'var';\n }\n return node;\n }\n });\n }\n return statements;\n }\n};\nCustomCodeHelperFormatter = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __metadata(\"design:paramtypes\", [Object])\n], CustomCodeHelperFormatter);\nexports.CustomCodeHelperFormatter = CustomCodeHelperFormatter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst NoCustomNodes_1 = require(\"../options/presets/NoCustomNodes\");\nconst JavaScriptObfuscatorFacade_1 = require(\"../JavaScriptObfuscatorFacade\");\nlet CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n obfuscateTemplate(template, additionalOptions = {}) {\n return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, numbersToExpressions: this.options.numbersToExpressions, simplify: this.options.simplify, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode();\n }\n};\nCustomCodeHelperObfuscator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], CustomCodeHelperObfuscator);\nexports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsControllerFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SingleCallControllerTemplate_1 = require(\"../common/templates/SingleCallControllerTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(appendEvent, callsControllerFunctionName) {\n this.appendEvent = appendEvent;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n }));\n }\n return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallsControllerFunctionCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallsControllerFunctionCodeHelper.prototype, \"appendEvent\", void 0);\nCallsControllerFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], CallsControllerFunctionCodeHelper);\nexports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableNoEvalTemplate = void 0;\nfunction GlobalVariableNoEvalTemplate() {\n return `\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n `;\n}\nexports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate1 = void 0;\nfunction GlobalVariableTemplate1() {\n return `\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n `;\n}\nexports.GlobalVariableTemplate1 = GlobalVariableTemplate1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate2 = void 0;\nfunction GlobalVariableTemplate2() {\n return `\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n `;\n}\nexports.GlobalVariableTemplate2 = GlobalVariableTemplate2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingleCallControllerTemplate = void 0;\nfunction SingleCallControllerTemplate() {\n return `\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n `;\n}\nexports.SingleCallControllerTemplate = SingleCallControllerTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst ConsoleOutputDisableTemplate_1 = require(\"./templates/ConsoleOutputDisableTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"consoleOutputDisableFunctionName\", void 0);\nConsoleOutputDisableCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], ConsoleOutputDisableCodeHelper);\nexports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const consoleOutputDisableHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null;\n const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);\n NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], ConsoleOutputCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nConsoleOutputCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object])\n], ConsoleOutputCodeHelperGroup);\nexports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableTemplate = void 0;\nfunction ConsoleOutputDisableTemplate() {\n return `\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n `;\n}\nexports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionCallTemplate_1 = require(\"./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName, callsControllerFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName,\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCallCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], DebugProtectionFunctionCallCodeHelper);\nexports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebuggerTemplate_1 = require(\"./templates/debug-protection-function/DebuggerTemplate\");\nconst DebuggerTemplateNoEval_1 = require(\"./templates/debug-protection-function/DebuggerTemplateNoEval\");\nconst DebugProtectionFunctionTemplate_1 = require(\"./templates/debug-protection-function/DebugProtectionFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? DebuggerTemplate_1.DebuggerTemplate()\n : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {\n debuggerTemplate,\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], DebugProtectionFunctionCodeHelper);\nexports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionIntervalTemplate_1 = require(\"./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionIntervalCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionIntervalCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], DebugProtectionFunctionIntervalCodeHelper);\nexports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.debugProtection) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const debugProtectionFunctionCallHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null;\n const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => {\n const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)\n ? nodeWithStatements.consequent.length\n : nodeWithStatements.body.length;\n const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength);\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.debugProtection) {\n return;\n }\n const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);\n if (this.options.debugProtectionInterval) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);\n }\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], DebugProtectionCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDebugProtectionCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object])\n], DebugProtectionCodeHelperGroup);\nexports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallTemplate = void 0;\nfunction DebugProtectionFunctionCallTemplate() {\n return `\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\\\\\( *\\\\\\\\)');\n const regExp2 = new RegExp('\\\\\\\\+\\\\\\\\+ *\\\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n `;\n}\nexports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalTemplate = void 0;\nfunction DebugProtectionFunctionIntervalTemplate() {\n return `\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n `;\n}\nexports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionTemplate = void 0;\nfunction DebugProtectionFunctionTemplate() {\n return `\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n `;\n}\nexports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplate = void 0;\nfunction DebuggerTemplate() {\n return `\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n `;\n}\nexports.DebuggerTemplate = DebuggerTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplateNoEval = void 0;\nfunction DebuggerTemplateNoEval() {\n return `\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n `;\n}\nexports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DomainLockTemplate_1 = require(\"./templates/DomainLockTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.cryptUtils = cryptUtils;\n }\n initialize(callsControllerFunctionName, domainLockFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.domainLockFunctionName = domainLockFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const domainsString = this.options.domainLock.join(';');\n const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3);\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n domainLockFunctionName: this.domainLockFunctionName,\n diff,\n domains: hiddenDomainsString,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"domainLockFunctionName\", void 0);\nDomainLockCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object, Object])\n], DomainLockCodeHelper);\nexports.DomainLockCodeHelper = DomainLockCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.domainLock.length) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const domainLockFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const domainLockFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);\n NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.domainLock.length) {\n return;\n }\n const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], DomainLockCustomCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDomainLockCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object])\n], DomainLockCustomCodeHelperGroup);\nexports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockTemplate = void 0;\nfunction DomainLockTemplate() {\n return `\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp(\"[{diff}]\", \"g\");\n const domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n `;\n}\nexports.DomainLockTemplate = DomainLockTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingUnicodeCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/SelfDefendingTemplate\");\nconst SelfDefendingNoEvalTemplate_1 = require(\"./templates/SelfDefendingNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nlet SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, selfDefendingFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.selfDefendingFunctionName = selfDefendingFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? SelfDefendingTemplate_1.SelfDefendingTemplate()\n : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {\n callControllerFunctionName: this.callsControllerFunctionName,\n selfDefendingFunctionName: this.selfDefendingFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"selfDefendingFunctionName\", void 0);\nSelfDefendingUnicodeCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], SelfDefendingUnicodeCodeHelper);\nexports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.selfDefending) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const selfDefendingFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);\n NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.selfDefending) {\n return;\n }\n const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], SelfDefendingCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nSelfDefendingCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object])\n], SelfDefendingCodeHelperGroup);\nexports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingNoEvalTemplate = void 0;\nfunction SelfDefendingNoEvalTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperBase64CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst StringArrayBase64DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName: atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n atobFunctionName,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperBase64CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperBase64CodeHelper);\nexports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-calls-wrapper/SelfDefendingTemplate\");\nconst StringArrayCallsWrapperTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayCallsWrapperName, indexShiftAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.indexShiftAmount = indexShiftAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate();\n const preservedNames = [`^${this.stringArrayName}$`];\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {\n decodeCodeHelperTemplate,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName,\n indexShiftAmount: this.indexShiftAmount\n }), {\n reservedNames: preservedNames\n });\n }\n getDecodeStringArrayTemplate() {\n return '';\n }\n getSelfDefendingTemplate() {\n if (!this.options.selfDefending) {\n return '';\n }\n return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallsWrapperCodeHelper.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayCallsWrapperName\", void 0);\nStringArrayCallsWrapperCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object, Object])\n], StringArrayCallsWrapperCodeHelper);\nexports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperRc4CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst Rc4Template_1 = require(\"./templates/string-array-calls-wrapper/Rc4Template\");\nconst StringArrayRC4DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName\n });\n const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), {\n atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n rc4Polyfill,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperRc4CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperRc4CodeHelper);\nexports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst StringArrayTemplate_1 = require(\"./templates/string-array/StringArrayTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(stringArrayStorage, stringArrayName) {\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayName = stringArrayName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), {\n stringArrayName: this.stringArrayName,\n stringArrayStorageItems: this.getEncodedStringArrayStorageItems()\n });\n }\n getEncodedStringArrayStorageItems() {\n return Array\n .from(this.stringArrayStorage.getStorage().values())\n .map((stringArrayStorageItemData) => {\n const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue);\n return `'${escapedEncodedValue}'`;\n })\n .toString();\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCodeHelper.prototype, \"stringArrayStorage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCodeHelper.prototype, \"stringArrayName\", void 0);\nStringArrayCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], StringArrayCodeHelper);\nexports.StringArrayCodeHelper = StringArrayCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-rotate-function/SelfDefendingTemplate\");\nconst StringArrayRotateFunctionTemplate_1 = require(\"./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayRotationAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayRotationAmount = stringArrayRotationAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const timesName = this.identifierNamesGenerator.generateNext();\n const whileFunctionName = this.identifierNamesGenerator.generateNext();\n const preservedNames = [`^${this.stringArrayName}$`];\n let code = '';\n if (this.options.selfDefending) {\n code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {\n timesName,\n whileFunctionName\n });\n }\n else {\n code = `${whileFunctionName}(++${timesName})`;\n }\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {\n code,\n timesName,\n whileFunctionName,\n stringArrayName: this.stringArrayName,\n stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount)\n }), {\n reservedNames: preservedNames\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayRotationAmount\", void 0);\nStringArrayRotateFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object, Object])\n], StringArrayRotateFunctionCodeHelper);\nexports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayCodeHelperGroup_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst StringArrayEncoding_1 = require(\"../../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nlet StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n this.stringArrayStorage = stringArrayStorage;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n if (!this.stringArrayStorage.getLength()) {\n return;\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());\n });\n const stringArrayEncodingsLength = this.options.stringArrayEncoding.length;\n for (let i = 0; i < stringArrayEncodingsLength; i++) {\n const stringArrayEncoding = this.options.stringArrayEncoding[i];\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1);\n });\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.stringArray) {\n return;\n }\n const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n const stringArrayName = this.stringArrayStorage.getStorageName();\n stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper);\n for (const stringArrayEncoding of this.options.stringArrayEncoding) {\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);\n const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);\n stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount());\n this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);\n }\n const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, this.stringArrayStorage.getRotationAmount());\n if (this.options.rotateStringArray) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper);\n }\n }\n getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) {\n var _a;\n return (_a = StringArrayCodeHelperGroup_1\n .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper;\n }\n};\nStringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([\n [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper],\n [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64],\n [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4]\n]);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], StringArrayCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nStringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Function, Object, Object])\n], StringArrayCodeHelperGroup);\nexports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AtobTemplate = void 0;\nconst Base64AlphabetSwapped_1 = require(\"../../../../constants/Base64AlphabetSwapped\");\nfunction AtobTemplate() {\n return `\n var {atobFunctionName} = function (input) {\n const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `;\n}\nexports.AtobTemplate = AtobTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rc4Template = void 0;\nfunction Rc4Template() {\n return `\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n `;\n}\nexports.Rc4Template = Rc4Template;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {\n const identifierLength = 6;\n const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);\n const statesIdentifier = randomGenerator.getRandomString(identifierLength);\n const newStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const firstStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const secondStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const checkStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const runStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const getStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const stateResultIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n const StatesClass = function (${rc4BytesIdentifier}) {\n this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};\n this.${statesIdentifier} = [1, 0, 0];\n this.${newStateIdentifier} = function(){return 'newState';};\n this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *', true)}';\n this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\\'|\"].+[\\'|\"];? *}', true)}';\n };\n \n StatesClass.prototype.${checkStateIdentifier} = function () {\n const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});\n const expression = regExp.test(this.${newStateIdentifier}.toString())\n ? --this.${statesIdentifier}[1]\n : --this.${statesIdentifier}[0];\n \n return this.${runStateIdentifier}(expression);\n };\n \n StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {\n if (!Boolean(~${stateResultIdentifier})) {\n return ${stateResultIdentifier};\n }\n \n return this.${getStateIdentifier}(this.${rc4BytesIdentifier});\n };\n\n StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {\n for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {\n this.${statesIdentifier}.push(Math.round(Math.random()));\n len = this.${statesIdentifier}.length;\n }\n \n return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayBase64DecodeTemplate = void 0;\nfunction StringArrayBase64DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperTemplate = void 0;\nfunction StringArrayCallsWrapperTemplate() {\n return `\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n `;\n}\nexports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRC4DecodeTemplate = void 0;\nfunction StringArrayRC4DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const rc4Identifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n const onceIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${onceIdentifier} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(escapeSequenceEncoder) {\n return `\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + \"=\" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *[\\'|\"].+[\\'|\"];? *}', true)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionTemplate = void 0;\nfunction StringArrayRotateFunctionTemplate() {\n return `\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n `;\n}\nexports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTemplate = void 0;\nfunction StringArrayTemplate() {\n return `\n const {stringArrayName} = [{stringArrayStorageItems}];\n `;\n}\nexports.StringArrayTemplate = StringArrayTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet AbstractCustomNode = class AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure());\n }\n return this.cachedNode;\n }\n};\nAbstractCustomNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], AbstractCustomNode);\nexports.AbstractCustomNode = AbstractCustomNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBinaryExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], BinaryExpressionFunctionNode);\nexports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowFlatteningNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {\n this.blockStatementBody = blockStatementBody;\n this.shuffledKeys = shuffledKeys;\n this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;\n }\n getNodeStructure() {\n const controllerIdentifierName = this.randomGenerator.getRandomString(6);\n const indexIdentifierName = this.randomGenerator.getRandomString(6);\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [\n NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine)\n ]))\n ], 'const'),\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))\n ], 'let'),\n NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => {\n const statement = this.blockStatementBody[key];\n const consequent = [statement];\n if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {\n consequent.push(NodeFactory_1.NodeFactory.continueStatement());\n }\n return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);\n })),\n NodeFactory_1.NodeFactory.breakStatement()\n ]))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"blockStatementBody\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"originalKeysIndexesInShuffledArray\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"shuffledKeys\", void 0);\nBlockStatementControlFlowFlatteningNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], BlockStatementControlFlowFlatteningNode);\nexports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(expressionArguments) {\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');\n const params = [];\n const argumentsLength = this.expressionArguments.length;\n for (let i = 0; i < argumentsLength; i++) {\n params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`));\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n calleeIdentifier,\n ...params\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionFunctionNode.prototype, \"expressionArguments\", void 0);\nCallExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], CallExpressionFunctionNode);\nexports.CallExpressionFunctionNode = CallExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nLogicalExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], LogicalExpressionFunctionNode);\nexports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(literalValue) {\n this.literalValue = literalValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralNode.prototype, \"literalValue\", void 0);\nStringLiteralNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], StringLiteralNode);\nexports.StringLiteralNode = StringLiteralNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.callee = callee;\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.callee,\n ...this.expressionArguments\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], CallExpressionControlFlowStorageCallNode.prototype, \"callee\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionControlFlowStorageCallNode.prototype, \"expressionArguments\", void 0);\nCallExpressionControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], CallExpressionControlFlowStorageCallNode);\nexports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorageNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorage) {\n this.controlFlowStorage = controlFlowStorage;\n }\n getNodeStructure() {\n const propertyNodes = Array\n .from(this.controlFlowStorage.getStorage())\n .map(([key, value]) => {\n const node = value.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');\n }\n return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);\n });\n let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))\n ], 'const');\n structure = NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], ControlFlowStorageNode.prototype, \"controlFlowStorage\", void 0);\nControlFlowStorageNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], ControlFlowStorageNode);\nexports.ControlFlowStorageNode = ControlFlowStorageNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.leftValue = leftValue;\n this.rightValue = rightValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.leftValue,\n this.rightValue\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nExpressionWithOperatorControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], ExpressionWithOperatorControlFlowStorageCallNode);\nexports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nStringLiteralControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], StringLiteralControlFlowStorageCallNode);\nexports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementDeadCodeInjectionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {\n this.blockStatementNode = blockStatementNode;\n this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;\n }\n getNode() {\n return this.getNodeStructure();\n }\n getNodeStructure() {\n const random1 = this.randomGenerator.getMathRandom() > 0.5;\n const random2 = this.randomGenerator.getMathRandom() > 0.5;\n const operator = random1 ? '===' : '!==';\n const leftString = this.randomGenerator.getRandomString(5);\n const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);\n const [consequent, alternate] = random1 === random2\n ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]\n : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBlockStatementDeadCodeInjectionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], BlockStatementDeadCodeInjectionNode);\nexports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionVariableDeclarationHostNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(lexicalScopeNode, properties) {\n this.lexicalScopeNode = lexicalScopeNode;\n this.properties = properties;\n }\n getNodeStructure() {\n const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties))\n ], 'const');\n return [structure];\n }\n};\nObjectExpressionVariableDeclarationHostNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], ObjectExpressionVariableDeclarationHostNode);\nexports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractStringArrayCallNode_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayIndexNode_1 = require(\"../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory;\n this.stringArrayStorage = stringArrayStorage;\n this.arrayUtils = arrayUtils;\n }\n getStringArrayIndexNode(index) {\n var _a;\n const isPositive = index >= 0;\n const normalizedIndex = Math.abs(index);\n const stringArrayCallsIndexType = this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayIndexesType);\n const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null;\n if (!stringArrayIndexNodeName) {\n throw new Error('Invalid string array index node name');\n }\n const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName)\n .getNode(normalizedIndex);\n NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true });\n const hexadecimalNode = isPositive\n ? stringArrayCallIndexNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode);\n NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode);\n return hexadecimalNode;\n }\n getRc4KeyLiteralNode(decodeKey) {\n const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey);\n NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });\n return rc4KeyLiteralNode;\n }\n};\nAbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2;\nAbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]\n]);\nAbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object, Object, Object, Object])\n], AbstractStringArrayCallNode);\nexports.AbstractStringArrayCallNode = AbstractStringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) {\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData;\n this.index = index;\n this.indexShiftAmount = indexShiftAmount;\n this.decodeKey = decodeKey;\n }\n getNodeStructure() {\n var _a, _b;\n const resultIndex = this.indexShiftAmount + this.index;\n const indexNode = this.getStringArrayIndexNode(resultIndex);\n const rc4KeyLiteralNode = this.decodeKey\n ? this.getRc4KeyLiteralNode(this.decodeKey)\n : null;\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex));\n callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode);\n if (this.stringArrayCallsWrapperParameterIndexesData) {\n callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex));\n }\n else if (rc4KeyLiteralNode) {\n callExpressionArgs.splice(1, 1, rc4KeyLiteralNode);\n }\n else {\n callExpressionArgs.splice(1, 1);\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n getFakeStringArrayIndexNode(actualIndex) {\n return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex));\n }\n getFakeStringArrayIndex(actualIndex) {\n const stringArrayStorageLength = this.stringArrayStorage.getLength();\n const fakeIndexOffset = stringArrayStorageLength / 2;\n const minimumIndex = actualIndex - fakeIndexOffset;\n const maximumIndex = actualIndex + fakeIndexOffset;\n return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"decodeKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"index\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperParameterIndexesData\", void 0);\nStringArrayCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object, Object, Object, Object])\n], StringArrayCallNode);\nexports.StringArrayCallNode = StringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData;\n this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName;\n this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData;\n this.shiftedIndex = shiftedIndex;\n }\n getNodeStructure() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex));\n const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode());\n parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode);\n parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode);\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode()));\n callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode);\n callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode);\n const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs))\n ]));\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode)\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n for (const parameter of parameters) {\n parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode);\n }\n return [structure];\n }\n getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode);\n }\n getFakeParameterNode() {\n return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n }\n getFakeUpperStringArrayIndexNode() {\n return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500));\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"shiftedIndex\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperParameterIndexesData\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperParameterIndexesData\", void 0);\nStringArrayScopeCallsWrapperFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object, Object, Object, Object])\n], StringArrayScopeCallsWrapperFunctionNode);\nexports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperVariableNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\nStringArrayScopeCallsWrapperVariableNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Object, Object, Object, Object, Object])\n], StringArrayScopeCallsWrapperVariableNode);\nexports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nlet AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractStringArrayIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], AbstractStringArrayIndexNode);\nexports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumberIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumberIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], StringArrayHexadecimalNumberIndexNode);\nexports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumericStringIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumericStringIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], StringArrayHexadecimalNumericStringIndexNode);\nexports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializable = void 0;\nconst defaultDescriptor = {\n configurable: true,\n enumerable: true\n};\nconst initializedTargetMetadataKey = '_initialized';\nconst initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';\nconst wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';\nconst constructorMethodName = 'constructor';\nfunction initializable(initializeMethodName = 'initialize') {\n const decoratorName = Object.keys(this)[0];\n return (target, propertyKey) => {\n const initializeMethod = target[initializeMethodName];\n if (!initializeMethod || typeof initializeMethod !== 'function') {\n throw new Error(`\\`${initializeMethodName}\\` method with initialization logic not ` +\n `found. \\`@${decoratorName}\\` decorator requires \\`${initializeMethodName}\\` method`);\n }\n initializeTargetMetadata(initializedTargetMetadataKey, false, target);\n initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);\n initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);\n wrapTargetMethodsInInitializedCheck(target, initializeMethodName);\n wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);\n return wrapInitializableProperty(target, propertyKey);\n };\n}\nexports.initializable = initializable;\nfunction initializeTargetMetadata(metadataKey, metadataValue, target) {\n const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);\n if (!hasInitializedMetadata) {\n Reflect.defineMetadata(metadataKey, metadataValue, target);\n }\n}\nfunction wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {\n const ownPropertyNames = Object.getOwnPropertyNames(target);\n const prohibitedPropertyNames = new Set([initializeMethodName, constructorMethodName]);\n ownPropertyNames.forEach((propertyName) => {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n const wrappedMethodsSet = Reflect\n .getMetadata(wrappedMethodsSetMetadataKey, target);\n const isProhibitedPropertyName = prohibitedPropertyNames.has(propertyName)\n || initializablePropertiesSet.has(propertyName)\n || wrappedMethodsSet.has(propertyName);\n if (isProhibitedPropertyName) {\n return;\n }\n const targetProperty = target[propertyName];\n if (typeof targetProperty !== 'function') {\n return;\n }\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() {\n if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {\n throw new Error(`Class should be initialized with \\`${initializeMethodName}()\\` method`);\n }\n return originalMethod.apply(this, arguments);\n } }));\n wrappedMethodsSet.add(propertyName);\n });\n}\nfunction wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {\n var _a;\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () {\n Reflect.defineMetadata(initializedTargetMetadataKey, true, this);\n const result = originalMethod.apply(this, arguments);\n if (this[propertyKey]) { }\n return result;\n } }));\n}\nfunction wrapInitializableProperty(target, propertyKey) {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n initializablePropertiesSet.add(propertyKey);\n const initializablePropertyMetadataKey = `_${propertyKey.toString()}`;\n const propertyDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () {\n if (this[initializablePropertyMetadataKey] === undefined) {\n throw new Error(`Property \\`${propertyKey.toString()}\\` is not initialized! Initialize it first!`);\n }\n return this[initializablePropertyMetadataKey];\n }, set: function (newVal) {\n this[initializablePropertyMetadataKey] = newVal;\n } }));\n return propertyDescriptor;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationTarget = void 0;\nconst Utils_1 = require(\"../utils/Utils\");\nexports.ObfuscationTarget = Utils_1.Utils.makeEnum({\n Browser: 'browser',\n BrowserNoEval: 'browser-no-eval',\n Node: 'node'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringSeparator = void 0;\nvar StringSeparator;\n(function (StringSeparator) {\n StringSeparator[\"Comma\"] = \",\";\n StringSeparator[\"Dot\"] = \".\";\n StringSeparator[\"VerticalLine\"] = \"|\";\n})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalleeDataExtractor = void 0;\nvar CalleeDataExtractor;\n(function (CalleeDataExtractor) {\n CalleeDataExtractor[\"FunctionDeclarationCalleeDataExtractor\"] = \"FunctionDeclarationCalleeDataExtractor\";\n CalleeDataExtractor[\"FunctionExpressionCalleeDataExtractor\"] = \"FunctionExpressionCalleeDataExtractor\";\n CalleeDataExtractor[\"ObjectExpressionCalleeDataExtractor\"] = \"ObjectExpressionCalleeDataExtractor\";\n})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformationStage = void 0;\nvar CodeTransformationStage;\n(function (CodeTransformationStage) {\n CodeTransformationStage[\"PreparingTransformers\"] = \"PreparingTransformers\";\n CodeTransformationStage[\"FinalizingTransformers\"] = \"FinalizingTransformers\";\n})(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformer = void 0;\nvar CodeTransformer;\n(function (CodeTransformer) {\n CodeTransformer[\"HashbangOperatorTransformer\"] = \"HashbangOperatorTransformer\";\n})(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelper = void 0;\nvar CustomCodeHelper;\n(function (CustomCodeHelper) {\n CustomCodeHelper[\"CallsControllerFunction\"] = \"CallsControllerFunction\";\n CustomCodeHelper[\"ConsoleOutputDisable\"] = \"ConsoleOutputDisable\";\n CustomCodeHelper[\"DebugProtectionFunctionCall\"] = \"DebugProtectionFunctionCall\";\n CustomCodeHelper[\"DebugProtectionFunctionInterval\"] = \"DebugProtectionFunctionInterval\";\n CustomCodeHelper[\"DebugProtectionFunction\"] = \"DebugProtectionFunction\";\n CustomCodeHelper[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelper[\"SelfDefendingUnicode\"] = \"SelfDefendingUnicode\";\n CustomCodeHelper[\"StringArray\"] = \"StringArray\";\n CustomCodeHelper[\"StringArrayCallsWrapper\"] = \"StringArrayCallsWrapper\";\n CustomCodeHelper[\"StringArrayCallsWrapperBase64\"] = \"StringArrayCallsWrapperBase64\";\n CustomCodeHelper[\"StringArrayCallsWrapperRc4\"] = \"StringArrayCallsWrapperRc4\";\n CustomCodeHelper[\"StringArrayRotateFunction\"] = \"StringArrayRotateFunction\";\n})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroup = void 0;\nvar CustomCodeHelperGroup;\n(function (CustomCodeHelperGroup) {\n CustomCodeHelperGroup[\"ConsoleOutput\"] = \"ConsoleOutput\";\n CustomCodeHelperGroup[\"DebugProtection\"] = \"DebugProtection\";\n CustomCodeHelperGroup[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelperGroup[\"SelfDefending\"] = \"SelfDefending\";\n CustomCodeHelperGroup[\"StringArray\"] = \"StringArray\";\n})(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowCustomNode = void 0;\nvar ControlFlowCustomNode;\n(function (ControlFlowCustomNode) {\n ControlFlowCustomNode[\"BinaryExpressionFunctionNode\"] = \"BinaryExpressionFunctionNode\";\n ControlFlowCustomNode[\"BlockStatementControlFlowFlatteningNode\"] = \"BlockStatementControlFlowFlatteningNode\";\n ControlFlowCustomNode[\"CallExpressionControlFlowStorageCallNode\"] = \"CallExpressionControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"CallExpressionFunctionNode\"] = \"CallExpressionFunctionNode\";\n ControlFlowCustomNode[\"ControlFlowStorageNode\"] = \"ControlFlowStorageNode\";\n ControlFlowCustomNode[\"ExpressionWithOperatorControlFlowStorageCallNode\"] = \"ExpressionWithOperatorControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"LogicalExpressionFunctionNode\"] = \"LogicalExpressionFunctionNode\";\n ControlFlowCustomNode[\"StringLiteralControlFlowStorageCallNode\"] = \"StringLiteralControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"StringLiteralNode\"] = \"StringLiteralNode\";\n})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionCustomNode = void 0;\nvar DeadCodeInjectionCustomNode;\n(function (DeadCodeInjectionCustomNode) {\n DeadCodeInjectionCustomNode[\"BlockStatementDeadCodeInjectionNode\"] = \"BlockStatementDeadCodeInjectionNode\";\n})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformerCustomNode = void 0;\nvar ObjectExpressionKeysTransformerCustomNode;\n(function (ObjectExpressionKeysTransformerCustomNode) {\n ObjectExpressionKeysTransformerCustomNode[\"ObjectExpressionVariableDeclarationHostNode\"] = \"ObjectExpressionVariableDeclarationHostNode\";\n})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCustomNode = void 0;\nvar StringArrayCustomNode;\n(function (StringArrayCustomNode) {\n StringArrayCustomNode[\"StringArrayCallNode\"] = \"StringArrayCallNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperFunctionNode\"] = \"StringArrayScopeCallsWrapperFunctionNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperVariableNode\"] = \"StringArrayScopeCallsWrapperVariableNode\";\n})(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexNode = void 0;\nvar StringArrayIndexNode;\n(function (StringArrayIndexNode) {\n StringArrayIndexNode[\"StringArrayHexadecimalNumberIndexNode\"] = \"StringArrayHexadecimalNumberIndexNode\";\n StringArrayIndexNode[\"StringArrayHexadecimalNumericStringIndexNode\"] = \"StringArrayHexadecimalNumericStringIndexNode\";\n})(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEvent = void 0;\nvar ObfuscationEvent;\n(function (ObfuscationEvent) {\n ObfuscationEvent[\"AfterObfuscation\"] = \"afterObfuscation\";\n ObfuscationEvent[\"BeforeObfuscation\"] = \"beforeObfuscation\";\n})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierNamesGenerator = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({\n DictionaryIdentifierNamesGenerator: 'dictionary',\n HexadecimalIdentifierNamesGenerator: 'hexadecimal',\n MangledIdentifierNamesGenerator: 'mangled',\n MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingMessage = void 0;\nvar LoggingMessage;\n(function (LoggingMessage) {\n LoggingMessage[\"EmptySourceCode\"] = \"Empty source code. Obfuscation canceled...\";\n LoggingMessage[\"ObfuscationCompleted\"] = \"Obfuscation completed. Total time: %s sec.\";\n LoggingMessage[\"ObfuscationStarted\"] = \"Obfuscation started...\";\n LoggingMessage[\"RandomGeneratorSeed\"] = \"Random generator seed: %s...\";\n LoggingMessage[\"CodeTransformationStage\"] = \"Code transformation stage: %s...\";\n LoggingMessage[\"NodeTransformationStage\"] = \"AST transformation stage: %s...\";\n LoggingMessage[\"Version\"] = \"Version: %s\";\n})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingPrefix = void 0;\nvar LoggingPrefix;\n(function (LoggingPrefix) {\n LoggingPrefix[\"Base\"] = \"[javascript-obfuscator]\";\n LoggingPrefix[\"CLI\"] = \"[javascript-obfuscator-cli]\";\n})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformationStage = void 0;\nvar NodeTransformationStage;\n(function (NodeTransformationStage) {\n NodeTransformationStage[\"ControlFlowFlattening\"] = \"ControlFlowFlattening\";\n NodeTransformationStage[\"Converting\"] = \"Converting\";\n NodeTransformationStage[\"DeadCodeInjection\"] = \"DeadCodeInjection\";\n NodeTransformationStage[\"Finalizing\"] = \"Finalizing\";\n NodeTransformationStage[\"Initializing\"] = \"Initializing\";\n NodeTransformationStage[\"Preparing\"] = \"Preparing\";\n NodeTransformationStage[\"RenameIdentifiers\"] = \"RenameIdentifiers\";\n NodeTransformationStage[\"RenameProperties\"] = \"RenameProperties\";\n NodeTransformationStage[\"Simplifying\"] = \"Simplifying\";\n NodeTransformationStage[\"StringArray\"] = \"StringArray\";\n})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformer = void 0;\nvar NodeTransformer;\n(function (NodeTransformer) {\n NodeTransformer[\"BooleanLiteralTransformer\"] = \"BooleanLiteralTransformer\";\n NodeTransformer[\"BlockStatementControlFlowTransformer\"] = \"BlockStatementControlFlowTransformer\";\n NodeTransformer[\"BlockStatementSimplifyTransformer\"] = \"BlockStatementSimplifyTransformer\";\n NodeTransformer[\"CommentsTransformer\"] = \"CommentsTransformer\";\n NodeTransformer[\"CustomCodeHelpersTransformer\"] = \"CustomCodeHelpersTransformer\";\n NodeTransformer[\"DeadCodeInjectionTransformer\"] = \"DeadCodeInjectionTransformer\";\n NodeTransformer[\"EscapeSequenceTransformer\"] = \"EscapeSequenceTransformer\";\n NodeTransformer[\"EvalCallExpressionTransformer\"] = \"EvalCallExpressionTransformer\";\n NodeTransformer[\"ExportSpecifierTransformer\"] = \"ExportSpecifierTransformer\";\n NodeTransformer[\"ExpressionStatementsMergeTransformer\"] = \"ExpressionStatementsMergeTransformer\";\n NodeTransformer[\"FunctionControlFlowTransformer\"] = \"FunctionControlFlowTransformer\";\n NodeTransformer[\"IfStatementSimplifyTransformer\"] = \"IfStatementSimplifyTransformer\";\n NodeTransformer[\"LabeledStatementTransformer\"] = \"LabeledStatementTransformer\";\n NodeTransformer[\"MemberExpressionTransformer\"] = \"MemberExpressionTransformer\";\n NodeTransformer[\"MetadataTransformer\"] = \"MetadataTransformer\";\n NodeTransformer[\"MethodDefinitionTransformer\"] = \"MethodDefinitionTransformer\";\n NodeTransformer[\"NumberLiteralTransformer\"] = \"NumberLiteralTransformer\";\n NodeTransformer[\"NumberToNumericalExpressionTransformer\"] = \"NumberToNumericalExpressionTransformer\";\n NodeTransformer[\"ObfuscatingGuardsTransformer\"] = \"ObfuscatingGuardsTransformer\";\n NodeTransformer[\"ObjectExpressionKeysTransformer\"] = \"ObjectExpressionKeysTransformer\";\n NodeTransformer[\"ObjectExpressionTransformer\"] = \"ObjectExpressionTransformer\";\n NodeTransformer[\"ObjectPatternPropertiesTransformer\"] = \"ObjectPatternPropertiesTransformer\";\n NodeTransformer[\"ParentificationTransformer\"] = \"ParentificationTransformer\";\n NodeTransformer[\"RenamePropertiesTransformer\"] = \"RenamePropertiesTransformer\";\n NodeTransformer[\"ScopeIdentifiersTransformer\"] = \"ScopeIdentifiersTransformer\";\n NodeTransformer[\"ScopeThroughIdentifiersTransformer\"] = \"ScopeThroughIdentifiersTransformer\";\n NodeTransformer[\"SplitStringTransformer\"] = \"SplitStringTransformer\";\n NodeTransformer[\"StringArrayTransformer\"] = \"StringArrayTransformer\";\n NodeTransformer[\"StringArrayScopeCallsWrapperTransformer\"] = \"StringArrayScopeCallsWrapperTransformer\";\n NodeTransformer[\"TemplateLiteralTransformer\"] = \"TemplateLiteralTransformer\";\n NodeTransformer[\"VariableDeclarationsMergeTransformer\"] = \"VariableDeclarationsMergeTransformer\";\n NodeTransformer[\"VariablePreserveTransformer\"] = \"VariablePreserveTransformer\";\n})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitorDirection = void 0;\nvar VisitorDirection;\n(function (VisitorDirection) {\n VisitorDirection[\"Enter\"] = \"enter\";\n VisitorDirection[\"Leave\"] = \"leave\";\n})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowReplacer = void 0;\nvar ControlFlowReplacer;\n(function (ControlFlowReplacer) {\n ControlFlowReplacer[\"BinaryExpressionControlFlowReplacer\"] = \"BinaryExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"CallExpressionControlFlowReplacer\"] = \"CallExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"LogicalExpressionControlFlowReplacer\"] = \"LogicalExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"StringLiteralControlFlowReplacer\"] = \"StringLiteralControlFlowReplacer\";\n})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionExtractor = void 0;\nvar ObjectExpressionExtractor;\n(function (ObjectExpressionExtractor) {\n ObjectExpressionExtractor[\"BasePropertiesExtractor\"] = \"BasePropertiesExtractor\";\n ObjectExpressionExtractor[\"ObjectExpressionToVariableDeclarationExtractor\"] = \"ObjectExpressionToVariableDeclarationExtractor\";\n})(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuard = void 0;\nvar ObfuscatingGuard;\n(function (ObfuscatingGuard) {\n ObfuscatingGuard[\"BlackListObfuscatingGuard\"] = \"BlackListObfuscatingGuard\";\n ObfuscatingGuard[\"ConditionalCommentObfuscatingGuard\"] = \"ConditionalCommentObfuscatingGuard\";\n ObfuscatingGuard[\"ForceTransformStringObfuscatingGuard\"] = \"ForceTransformStringObfuscatingGuard\";\n ObfuscatingGuard[\"IgnoredRequireImportObfuscatingGuard\"] = \"IgnoredRequireImportObfuscatingGuard\";\n ObfuscatingGuard[\"ReservedStringObfuscatingGuard\"] = \"ReservedStringObfuscatingGuard\";\n})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncoding = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayEncoding = Utils_1.Utils.makeEnum({\n None: 'none',\n Base64: 'base64',\n Rc4: 'rc4'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexesType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayIndexesType = Utils_1.Utils.makeEnum({\n HexadecimalNumber: 'hexadecimal-number',\n HexadecimalNumericString: 'hexadecimal-numeric-string'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayWrappersType = Utils_1.Utils.makeEnum({\n Variable: 'variable',\n Function: 'function',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = void 0;\nvar NodeType;\n(function (NodeType) {\n NodeType[\"ArrayExpression\"] = \"ArrayExpression\";\n NodeType[\"ArrayPattern\"] = \"ArrayPattern\";\n NodeType[\"ArrowFunctionExpression\"] = \"ArrowFunctionExpression\";\n NodeType[\"AssignmentExpression\"] = \"AssignmentExpression\";\n NodeType[\"AssignmentPattern\"] = \"AssignmentPattern\";\n NodeType[\"AwaitExpression\"] = \"AwaitExpression\";\n NodeType[\"BinaryExpression\"] = \"BinaryExpression\";\n NodeType[\"BlockStatement\"] = \"BlockStatement\";\n NodeType[\"BreakStatement\"] = \"BreakStatement\";\n NodeType[\"CallExpression\"] = \"CallExpression\";\n NodeType[\"CatchClause\"] = \"CatchClause\";\n NodeType[\"ChainExpression\"] = \"ChainExpression\";\n NodeType[\"ClassDeclaration\"] = \"ClassDeclaration\";\n NodeType[\"ConditionalExpression\"] = \"ConditionalExpression\";\n NodeType[\"ContinueStatement\"] = \"ContinueStatement\";\n NodeType[\"ExportAllDeclaration\"] = \"ExportAllDeclaration\";\n NodeType[\"ExportNamedDeclaration\"] = \"ExportNamedDeclaration\";\n NodeType[\"ExportSpecifier\"] = \"ExportSpecifier\";\n NodeType[\"ExpressionStatement\"] = \"ExpressionStatement\";\n NodeType[\"ForStatement\"] = \"ForStatement\";\n NodeType[\"ForInStatement\"] = \"ForInStatement\";\n NodeType[\"ForOfStatement\"] = \"ForOfStatement\";\n NodeType[\"FunctionDeclaration\"] = \"FunctionDeclaration\";\n NodeType[\"FunctionExpression\"] = \"FunctionExpression\";\n NodeType[\"Identifier\"] = \"Identifier\";\n NodeType[\"IfStatement\"] = \"IfStatement\";\n NodeType[\"ImportDeclaration\"] = \"ImportDeclaration\";\n NodeType[\"ImportDefaultSpecifier\"] = \"ImportDefaultSpecifier\";\n NodeType[\"ImportNamespaceSpecifier\"] = \"ImportNamespaceSpecifier\";\n NodeType[\"ImportSpecifier\"] = \"ImportSpecifier\";\n NodeType[\"LabeledStatement\"] = \"LabeledStatement\";\n NodeType[\"Literal\"] = \"Literal\";\n NodeType[\"LogicalExpression\"] = \"LogicalExpression\";\n NodeType[\"MemberExpression\"] = \"MemberExpression\";\n NodeType[\"MethodDefinition\"] = \"MethodDefinition\";\n NodeType[\"ObjectExpression\"] = \"ObjectExpression\";\n NodeType[\"ObjectPattern\"] = \"ObjectPattern\";\n NodeType[\"Program\"] = \"Program\";\n NodeType[\"Property\"] = \"Property\";\n NodeType[\"RestElement\"] = \"RestElement\";\n NodeType[\"ReturnStatement\"] = \"ReturnStatement\";\n NodeType[\"SequenceExpression\"] = \"SequenceExpression\";\n NodeType[\"SpreadElement\"] = \"SpreadElement\";\n NodeType[\"Super\"] = \"Super\";\n NodeType[\"SwitchCase\"] = \"SwitchCase\";\n NodeType[\"SwitchStatement\"] = \"SwitchStatement\";\n NodeType[\"TaggedTemplateExpression\"] = \"TaggedTemplateExpression\";\n NodeType[\"TemplateElement\"] = \"TemplateElement\";\n NodeType[\"TemplateLiteral\"] = \"TemplateLiteral\";\n NodeType[\"ThrowStatement\"] = \"ThrowStatement\";\n NodeType[\"TryStatement\"] = \"TryStatement\";\n NodeType[\"UnaryExpression\"] = \"UnaryExpression\";\n NodeType[\"UpdateExpression\"] = \"UpdateExpression\";\n NodeType[\"VariableDeclaration\"] = \"VariableDeclaration\";\n NodeType[\"VariableDeclarator\"] = \"VariableDeclarator\";\n NodeType[\"WhileStatement\"] = \"WhileStatement\";\n NodeType[\"YieldExpression\"] = \"YieldExpression\";\n})(NodeType = exports.NodeType || (exports.NodeType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardResult = void 0;\nvar ObfuscatingGuardResult;\n(function (ObfuscatingGuardResult) {\n ObfuscatingGuardResult[\"ForceTransform\"] = \"ForceTransform\";\n ObfuscatingGuardResult[\"Ignore\"] = \"Ignore\";\n ObfuscatingGuardResult[\"Transform\"] = \"Transform\";\n})(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsPreset = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.OptionsPreset = Utils_1.Utils.makeEnum({\n Default: 'default',\n LowObfuscation: 'low-obfuscation',\n MediumObfuscation: 'medium-obfuscation',\n HighObfuscation: 'high-obfuscation'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapMode = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nexports.SourceMapMode = Utils_1.Utils.makeEnum({\n Inline: 'inline',\n Separate: 'separate'\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEventEmitter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eventemitter3_1 = __importDefault(require(\"eventemitter3\"));\ninversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default);\nlet ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default {\n};\nObfuscationEventEmitter = __decorate([\n inversify_1.injectable()\n], ObfuscationEventEmitter);\nexports.ObfuscationEventEmitter = ObfuscationEventEmitter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n this.preservedNamesSet = new Set();\n this.lexicalScopesPreservedNamesMap = new Map();\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n generate(lexicalScopeNode, nameLength) {\n return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode)\n ? this.generateForGlobalScope()\n : this.generateForLexicalScope(lexicalScopeNode);\n }\n preserveName(name) {\n this.preservedNamesSet.add(name);\n }\n preserveNameForLexicalScope(name, lexicalScopeNode) {\n var _a;\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set();\n preservedNamesForLexicalScopeSet.add(name);\n this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);\n }\n isValidIdentifierName(name) {\n return this.notReservedName(name) && !this.preservedNamesSet.has(name);\n }\n isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) {\n var _a;\n if (!this.isValidIdentifierName(name)) {\n return false;\n }\n for (const lexicalScope of lexicalScopeNodes) {\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!preservedNamesForLexicalScopeSet) {\n continue;\n }\n if (preservedNamesForLexicalScopeSet.has(name)) {\n return false;\n }\n }\n return true;\n }\n notReservedName(name) {\n return this.options.reservedNames.length\n ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null)\n : true;\n }\n};\nAbstractIdentifierNamesGenerator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], AbstractIdentifierNamesGenerator);\nexports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DictionaryIdentifierNamesGenerator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DictionaryIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));\n this.identifiersIterator = this.identifierNamesSet.values();\n }\n static incrementIdentifierName(identifierName) {\n let newIdentifierName = '';\n let isSuccess = false;\n for (const character of identifierName) {\n if (!isSuccess && character === character.toUpperCase()) {\n newIdentifierName += character.toLowerCase();\n }\n else if (!isSuccess && character === character.toLowerCase()) {\n newIdentifierName += character.toUpperCase();\n isSuccess = true;\n }\n else {\n newIdentifierName += character;\n }\n }\n if (isSuccess) {\n return newIdentifierName;\n }\n return null;\n }\n generateNext() {\n const identifierName = this.generateNewDictionaryName();\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope() {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewDictionaryName();\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope();\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const identifierName = this.generateNewDictionaryName();\n if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {\n return this.generateForLexicalScope(lexicalScopeNode);\n }\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n generateNewDictionaryName() {\n if (!this.identifierNamesSet.size) {\n throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');\n }\n const iteratorResult = this.identifiersIterator.next();\n if (!iteratorResult.done) {\n const identifierName = iteratorResult.value;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNewDictionaryName();\n }\n return iteratorResult.value;\n }\n this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));\n this.identifiersIterator = this.identifierNamesSet.values();\n return this.generateNewDictionaryName();\n }\n getInitialIdentifierNames(identifierNames) {\n const formattedIdentifierNames = identifierNames\n .filter(Boolean)\n .map((identifierName) => identifierName.toLowerCase());\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n getIncrementedIdentifierNames(identifierNames) {\n const formattedIdentifierNames = [];\n for (const identifierName of identifierNames) {\n const newIdentifierName = DictionaryIdentifierNamesGenerator_1\n .incrementIdentifierName(identifierName);\n if (newIdentifierName) {\n formattedIdentifierNames.push(newIdentifierName);\n }\n }\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n};\nDictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], DictionaryIdentifierNamesGenerator);\nexports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HexadecimalIdentifierNamesGenerator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HexadecimalIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nconst Utils_1 = require(\"../../utils/Utils\");\nlet HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n generateNext(nameLength) {\n const rangeMinInteger = 10000;\n const rangeMaxInteger = 99999999;\n const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);\n const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);\n const prefixLength = Utils_1.Utils.hexadecimalPrefix.length;\n const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength)\n + prefixLength;\n const baseIdentifierName = hexadecimalNumber.slice(0, baseNameLength);\n const identifierName = `_${baseIdentifierName}`;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNext(nameLength);\n }\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const identifierName = this.generateNext(nameLength);\n return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n return this.generateNext(nameLength);\n }\n};\nHexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;\nHexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], HexadecimalIdentifierNamesGenerator);\nexports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledIdentifierNamesGenerator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n generateNext(nameLength) {\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n this.updatePreviousMangledName(identifierName);\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n this.updatePreviousMangledName(identifierName);\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope(nameLength);\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes);\n let identifierName = lastMangledNameForScope;\n do {\n identifierName = this.generateNewMangledName(identifierName);\n } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));\n MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);\n this.updatePreviousMangledName(identifierName);\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n isIncrementedMangledName(nextName, prevName) {\n if (nextName === prevName) {\n return false;\n }\n const nextNameLength = nextName.length;\n const prevNameLength = prevName.length;\n if (nextNameLength !== prevNameLength) {\n return nextNameLength > prevNameLength;\n }\n const nameSequence = this.getNameSequence();\n for (let i = 0; i < nextNameLength; i++) {\n const nextNameCharacter = nextName[i];\n const prevNameCharacter = prevName[i];\n if (nextNameCharacter === prevNameCharacter) {\n continue;\n }\n const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter);\n const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter);\n return indexOfNextNameCharacter > indexOfPrevNameCharacter;\n }\n throw new Error('Something goes wrong during comparison of mangled names');\n }\n isValidIdentifierName(mangledName) {\n return super.isValidIdentifierName(mangledName)\n && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName);\n }\n getNameSequence() {\n return MangledIdentifierNamesGenerator_1.nameSequence;\n }\n updatePreviousMangledName(name) {\n if (!this.isIncrementedMangledName(name, this.previousMangledName)) {\n return;\n }\n this.previousMangledName = name;\n }\n generateNewMangledName(previousMangledName) {\n const generateNewMangledName = (name) => {\n const nameSequence = this.getNameSequence();\n const nameSequenceLength = nameSequence.length;\n const nameLength = name.length;\n const zeroSequence = (num) => {\n return '0'.repeat(num);\n };\n let index = nameLength - 1;\n do {\n const character = name[index];\n const indexInSequence = nameSequence.indexOf(character);\n const lastNameSequenceIndex = nameSequenceLength - 1;\n if (indexInSequence !== lastNameSequenceIndex) {\n const previousNamePart = name.slice(0, index);\n const nextCharacter = nameSequence[indexInSequence + 1];\n const zeroSequenceLength = nameLength - (index + 1);\n const zeroSequenceCharacters = zeroSequence(zeroSequenceLength);\n return previousNamePart + nextCharacter + zeroSequenceCharacters;\n }\n --index;\n } while (index >= 0);\n const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length];\n return `${firstLetterCharacter}${zeroSequence(nameLength)}`;\n };\n let newMangledName = generateNewMangledName(previousMangledName);\n if (!this.isValidIdentifierName(newMangledName)) {\n newMangledName = this.generateNewMangledName(newMangledName);\n }\n return newMangledName;\n }\n getLastMangledNameForScopes(lexicalScopeNodes) {\n var _a;\n for (const lexicalScope of lexicalScopeNodes) {\n const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap\n .get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!lastMangledName) {\n continue;\n }\n return lastMangledName;\n }\n return MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n};\nMangledIdentifierNamesGenerator.initMangledNameCharacter = '9';\nMangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap();\nMangledIdentifierNamesGenerator.nameSequence = [\n ...`${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`\n];\nMangledIdentifierNamesGenerator.reservedNamesSet = new Set([\n 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto',\n 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try',\n 'var', 'void', 'with'\n]);\nMangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], MangledIdentifierNamesGenerator);\nexports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledShuffledIdentifierNamesGenerator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledShuffledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst MangledIdentifierNamesGenerator_1 = require(\"./MangledIdentifierNamesGenerator\");\nlet MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator {\n constructor(arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n initialize() {\n this.initializeNameSequence([\n ...`${NumbersString_1.numbersString}`,\n ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`])\n ]);\n }\n initializeNameSequence(nameSequence) {\n if (!this.getNameSequence()) {\n MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence;\n }\n }\n getNameSequence() {\n return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence;\n }\n generateNewMangledName(previousMangledName) {\n return super.generateNewMangledName(previousMangledName);\n }\n};\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MangledShuffledIdentifierNamesGenerator.prototype, \"initialize\", null);\nMangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], MangledShuffledIdentifierNamesGenerator);\nexports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar Logger_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst chalk_1 = __importDefault(require(\"chalk\"));\nconst LoggingPrefix_1 = require(\"../enums/logger/LoggingPrefix\");\nlet Logger = Logger_1 = class Logger {\n constructor(options) {\n this.options = options;\n }\n static log(loggingLevelColor, loggingPrefix, loggingMessage, value) {\n const processedMessage = loggingLevelColor(`\\n${loggingPrefix} ${loggingMessage}`);\n console.log(processedMessage, value !== null && value !== void 0 ? value : '');\n }\n info(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n success(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n warn(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n};\nLogger.colorInfo = chalk_1.default.cyan;\nLogger.colorSuccess = chalk_1.default.green;\nLogger.colorWarn = chalk_1.default.yellow;\nLogger = Logger_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object])\n], Logger);\nexports.Logger = Logger;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractNodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet AbstractNodeTransformer = class AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractNodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], AbstractNodeTransformer);\nexports.AbstractNodeTransformer = AbstractNodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nNodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], NodeTransformerNamesGroupsBuilder);\nexports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst VisitorDirection_1 = require(\"../enums/node-transformers/VisitorDirection\");\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../node/NodeMetadata\");\nlet NodeTransformersRunner = class NodeTransformersRunner {\n constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {\n this.nodeTransformerFactory = nodeTransformerFactory;\n this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;\n }\n transform(astTree, nodeTransformerNames, nodeTransformationStage) {\n if (!nodeTransformerNames.length) {\n return astTree;\n }\n const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);\n const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);\n for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {\n const enterVisitors = [];\n const leaveVisitors = [];\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const nodeTransformer = normalizedNodeTransformers[nodeTransformerName];\n const visitor = nodeTransformer.getVisitor(nodeTransformationStage);\n if (!visitor) {\n continue;\n }\n if (visitor.enter) {\n enterVisitors.push({ enter: visitor.enter });\n }\n if (visitor.leave) {\n leaveVisitors.push({ leave: visitor.leave });\n }\n }\n if (!enterVisitors.length && !leaveVisitors.length) {\n continue;\n }\n estraverse.replace(astTree, {\n enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),\n leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)\n });\n }\n return astTree;\n }\n buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) {\n return nodeTransformerNames\n .reduce((acc, nodeTransformerName) => {\n const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName);\n if (!nodeTransformer.getVisitor(nodeTransformationStage)) {\n return acc;\n }\n return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer });\n }, {});\n }\n mergeVisitorsForDirection(visitors, direction) {\n const visitorsLength = visitors.length;\n if (!visitorsLength) {\n return (node, parentNode) => node;\n }\n return (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n for (let i = 0; i < visitorsLength; i++) {\n const visitorFunction = visitors[i][direction];\n if (!visitorFunction) {\n continue;\n }\n const visitorResult = visitorFunction(node, parentNode);\n if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {\n continue;\n }\n node = visitorResult;\n }\n return node;\n };\n }\n};\nNodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [Function, Object])\n], NodeTransformersRunner);\nexports.NodeTransformersRunner = NodeTransformersRunner;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BlockStatementControlFlowTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.arrayUtils = arrayUtils;\n }\n static isProhibitedStatementNode(node) {\n const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(node);\n const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)\n && (node.kind === 'const' || node.kind === 'let');\n const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)\n || isBreakOrContinueStatement\n || isVariableDeclarationWithLetOrConstKind\n || isClassDeclaration;\n }\n static canTransformBlockStatementNode(blockStatementNode) {\n let canTransform = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {\n canTransform = false;\n }\n }\n });\n if (blockStatementNode.body.length <= 4) {\n canTransform = false;\n }\n return canTransform;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(blockStatementNode, parentNode) {\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||\n !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const blockStatementBody = blockStatementNode.body;\n const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);\n const shuffledKeys = this.arrayUtils.shuffle(originalKeys);\n const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key));\n const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);\n const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nBlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], BlockStatementControlFlowTransformer);\nexports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FunctionControlFlowTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ControlFlowReplacer_1 = require(\"../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowData = new Map();\n this.visitedFunctionNodes = new Set();\n this.hostNodesWithControlFlowNode = new Set();\n this.controlFlowStorageFactory = controlFlowStorageFactory;\n this.controlFlowReplacerFactory = controlFlowReplacerFactory;\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(functionNode, parentNode) {\n this.visitedFunctionNodes.add(functionNode);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {\n return functionNode;\n }\n const hostNode = this.getHostNode(functionNode.body);\n const controlFlowStorage = this.getControlFlowStorage(hostNode);\n this.controlFlowData.set(hostNode, controlFlowStorage);\n this.transformFunctionBody(functionNode.body, controlFlowStorage);\n if (!controlFlowStorage.getLength()) {\n return functionNode;\n }\n const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n controlFlowStorageCustomNode.initialize(controlFlowStorage);\n NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());\n this.hostNodesWithControlFlowNode.add(hostNode);\n NodeUtils_1.NodeUtils.parentizeAst(functionNode);\n return functionNode;\n }\n getControlFlowStorage(hostNode) {\n const controlFlowStorage = this.controlFlowStorageFactory();\n if (this.controlFlowData.has(hostNode)) {\n if (this.hostNodesWithControlFlowNode.has(hostNode)) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {\n hostNode.consequent.shift();\n }\n else {\n hostNode.body.shift();\n }\n }\n const hostControlFlowStorage = this.controlFlowData.get(hostNode);\n controlFlowStorage.mergeWith(hostControlFlowStorage, true);\n }\n return controlFlowStorage;\n }\n getHostNode(functionNodeBody) {\n const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);\n if (blockScopesOfNode.length === 1) {\n return functionNodeBody;\n }\n else {\n blockScopesOfNode.pop();\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {\n blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {\n blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;\n }\n return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);\n }\n isVisitedFunctionNode(node) {\n return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);\n }\n transformFunctionBody(functionNodeBody, controlFlowStorage) {\n estraverse.replace(functionNodeBody, {\n enter: (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (this.isVisitedFunctionNode(node) || !parentNode) {\n return estraverse.VisitorOption.Skip;\n }\n if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {\n return node;\n }\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {\n return node;\n }\n const controlFlowReplacerName = FunctionControlFlowTransformer_1\n .controlFlowReplacersMap.get(node.type);\n if (controlFlowReplacerName === undefined) {\n return node;\n }\n return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode });\n }\n });\n }\n};\nFunctionControlFlowTransformer.controlFlowReplacersMap = new Map([\n [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],\n [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer],\n [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],\n [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]\n]);\nFunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;\nFunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;\nFunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Function, Function, Object, Object])\n], FunctionControlFlowTransformer);\nexports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractControlFlowReplacer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nlet AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n this.replacerDataByControlFlowStorageId = new Map();\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {\n let storageKeysById;\n if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {\n storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);\n }\n else {\n storageKeysById = new Map();\n }\n return storageKeysById;\n }\n insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {\n const controlFlowStorageId = controlFlowStorage.getStorageId();\n const storageKeysById = AbstractControlFlowReplacer_1\n .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);\n const storageKeysForCurrentId = storageKeysById.get(replacerId);\n if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&\n storageKeysForCurrentId &&\n storageKeysForCurrentId.length) {\n return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);\n }\n const generateStorageKey = (length) => {\n const key = this.randomGenerator.getRandomString(length);\n if (controlFlowStorage.getStorage().has(key)) {\n return generateStorageKey(length);\n }\n return key;\n };\n const storageKey = generateStorageKey(5);\n storageKeysById.set(replacerId, [storageKey]);\n this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);\n controlFlowStorage.set(storageKey, customNode);\n return storageKey;\n }\n};\nAbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], AbstractControlFlowReplacer);\nexports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BinaryExpressionControlFlowReplacer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nlet BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(binaryExpressionNode, parentNode, controlFlowStorage) {\n const operator = binaryExpressionNode.operator;\n const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n binaryExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);\n }\n};\nBinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nBinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], BinaryExpressionControlFlowReplacer);\nexports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallExpressionControlFlowReplacer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(callExpressionNode, parentNode, controlFlowStorage) {\n const callee = callExpressionNode.callee;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return callExpressionNode;\n }\n const replacerId = String(callExpressionNode.arguments.length);\n const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n const expressionArguments = callExpressionNode.arguments;\n callExpressionFunctionCustomNode.initialize(expressionArguments);\n const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nCallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nCallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], CallExpressionControlFlowReplacer);\nexports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nExpressionWithOperatorControlFlowReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], ExpressionWithOperatorControlFlowReplacer);\nexports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LogicalExpressionControlFlowReplacer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(logicalExpressionNode, parentNode, controlFlowStorage) {\n if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {\n return logicalExpressionNode;\n }\n const operator = logicalExpressionNode.operator;\n const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n logicalExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);\n }\n checkForProhibitedExpressions(leftExpression, rightExpression) {\n return [leftExpression, rightExpression].some((expressionNode) => {\n let nodeForCheck;\n if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {\n nodeForCheck = expressionNode;\n }\n else {\n nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);\n }\n return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);\n });\n }\n};\nLogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nLogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], LogicalExpressionControlFlowReplacer);\nexports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringLiteralControlFlowReplacer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../../node/NodeLiteralUtils\");\nlet StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(literalNode, parentNode, controlFlowStorage) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {\n return literalNode;\n }\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || literalNode.value.length < 3) {\n return literalNode;\n }\n const replacerId = String(literalNode.value);\n const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n literalFunctionCustomNode.initialize(literalNode.value);\n const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nStringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;\nStringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], StringLiteralControlFlowReplacer);\nexports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet BooleanLiteralTransformer = class BooleanLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'boolean') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const unaryExpressionNode = literalValue\n ? this.getTrueUnaryExpressionNode()\n : this.getFalseUnaryExpressionNode();\n NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode);\n return unaryExpressionNode;\n }\n getTrueUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode());\n }\n getFalseUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());\n }\n};\nBooleanLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], BooleanLiteralTransformer);\nexports.BooleanLiteralTransformer = BooleanLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportSpecifierTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExportSpecifierTransformer = class ExportSpecifierTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExportSpecifierNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(exportSpecifierNode, parentNode) {\n if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) {\n exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local);\n }\n return exportSpecifierNode;\n }\n};\nExportSpecifierTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ExportSpecifierTransformer);\nexports.ExportSpecifierTransformer = ExportSpecifierTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemberExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(memberExpressionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {\n if (memberExpressionNode.computed) {\n return memberExpressionNode;\n }\n memberExpressionNode.computed = true;\n memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);\n }\n return memberExpressionNode;\n }\n};\nMemberExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], MemberExpressionTransformer);\nexports.MemberExpressionTransformer = MemberExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MethodDefinitionTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MethodDefinitionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(methodDefinitionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) {\n return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) {\n return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n return methodDefinitionNode;\n }\n replaceIdentifierKey(methodDefinitionNode, keyNode) {\n if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name);\n }\n return methodDefinitionNode;\n }\n replaceLiteralKey(methodDefinitionNode, keyNode) {\n if (typeof keyNode.value === 'string'\n && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n }\n return methodDefinitionNode;\n }\n};\nMethodDefinitionTransformer.ignoredNames = ['constructor'];\nMethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], MethodDefinitionTransformer);\nexports.MethodDefinitionTransformer = MethodDefinitionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer\n ];\n this.numberLiteralCache = new Map();\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n let rawValue;\n if (this.numberLiteralCache.has(literalValue)) {\n rawValue = this.numberLiteralCache.get(literalValue);\n }\n else {\n if (NumberUtils_1.NumberUtils.isCeil(literalValue)) {\n rawValue = NumberUtils_1.NumberUtils.toHex(literalValue);\n }\n else {\n rawValue = String(literalValue);\n }\n this.numberLiteralCache.set(literalValue, rawValue);\n }\n return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue);\n }\n};\nNumberLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], NumberLiteralTransformer);\nexports.NumberLiteralTransformer = NumberLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberToNumericalExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) {\n super(randomGenerator, options);\n this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.numbersToExpressions) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number') {\n return literalNode;\n }\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) {\n return literalNode;\n }\n const numberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value);\n return this.convertNumericalExpressionDataToNode(numberNumericalExpressionData);\n }\n convertNumericalExpressionDataToNode(numberNumericalExpressionData, operator = '+') {\n var _a;\n const numberNumericalExpressionDataLength = numberNumericalExpressionData.length;\n const leftParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1)\n : [numberNumericalExpressionData[0]];\n const rightParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(-1)\n : [];\n if (rightParts.length) {\n return this.convertPartsToBinaryExpression(operator, leftParts, rightParts);\n }\n const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null;\n return Array.isArray(firstLeftPartOrNumber)\n ? this.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, '*')\n : this.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber);\n }\n convertPartsToBinaryExpression(operator, leftParts, rightParts) {\n const rightPartOrNumber = rightParts[0];\n if (Array.isArray(rightPartOrNumber)) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertNumericalExpressionDataToNode(rightPartOrNumber, '*'));\n }\n else {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertPartOrNumberToLiteralNode(rightPartOrNumber));\n }\n }\n convertPartOrNumberToLiteralNode(partOrNumber) {\n const number = Array.isArray(partOrNumber)\n ? partOrNumber[0]\n : partOrNumber;\n const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number);\n const literalNode = NodeFactory_1.NodeFactory.literalNode(Math.abs(number));\n return isPositiveNumber\n ? literalNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', literalNode);\n }\n};\nNumberToNumericalExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], NumberToNumericalExpressionTransformer);\nexports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObjectExpressionKeysTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObjectExpressionExtractor_1 = require(\"../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(objectExpressionExtractorFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;\n }\n static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) {\n return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement)\n || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode)\n || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement);\n }\n static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) {\n const identifierNamesSet = [];\n let isReferencedIdentifierName = false;\n let isCurrentNode = false;\n estraverse.traverse(objectExpressionHostNode, {\n enter: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = true;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return;\n }\n if (!isCurrentNode) {\n identifierNamesSet.push(node.name);\n return;\n }\n if (identifierNamesSet.includes(node.name)) {\n isReferencedIdentifierName = true;\n }\n },\n leave: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isReferencedIdentifierName;\n }\n static isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) {\n return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)\n && objectExpressionNodeParentNode.body === objectExpressionNode;\n }\n static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) {\n return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode)\n && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)\n && objectExpressionHostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode)\n && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee));\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.transformObjectKeys) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n if (!objectExpressionNode.properties.length) {\n return objectExpressionNode;\n }\n const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);\n if (ObjectExpressionKeysTransformer_1.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, hostStatement)) {\n return objectExpressionNode;\n }\n return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement);\n }\n applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) {\n const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames];\n const objectExpressionExtractor = newObjectExpressionExtractorNames.shift();\n if (!objectExpressionExtractor) {\n return objectExpressionNode;\n }\n const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor)\n .extract(objectExpressionNode, hostStatement);\n this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement);\n return nodeToReplace;\n }\n};\nObjectExpressionKeysTransformer.objectExpressionExtractorNames = [\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor\n];\nObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], ObjectExpressionKeysTransformer);\nexports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n objectExpressionNode.properties\n .forEach((property) => {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n return;\n }\n if (!property.key) {\n return;\n }\n if (property.computed) {\n this.transformComputedProperty(property);\n }\n else {\n this.transformBaseProperty(property);\n }\n });\n return objectExpressionNode;\n }\n transformComputedProperty(property) {\n if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value);\n }\n transformBaseProperty(property) {\n if (property.shorthand) {\n property.shorthand = false;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);\n }\n};\nObjectExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ObjectExpressionTransformer);\nexports.ObjectExpressionTransformer = ObjectExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectPatternPropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(propertyNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) {\n return propertyNode;\n }\n if (!this.options.renameGlobals) {\n const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode);\n const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope);\n if (shouldNotTransformGlobalPropertyNode) {\n return propertyNode;\n }\n }\n propertyNode.shorthand = false;\n propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value);\n NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode);\n return propertyNode;\n }\n};\nObjectPatternPropertiesTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ObjectPatternPropertiesTransformer);\nexports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SplitStringTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst stringz = __importStar(require(\"stringz\"));\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer\n ];\n }\n static chunkString(string, stringLength, chunkSize) {\n const chunksCount = Math.ceil(stringLength / chunkSize);\n const chunks = [];\n let nextChunkStartIndex = 0;\n for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {\n chunks[chunkIndex] = stringz.substr(string, nextChunkStartIndex, chunkSize);\n }\n return chunks;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (!this.options.splitStrings) {\n return;\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength);\n const secondPassChunksNode = estraverse.replace(firstPassChunksNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength);\n }\n }\n });\n return secondPassChunksNode;\n }\n transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const valueLength = stringz.length(literalNode.value);\n if (chunkLength >= valueLength) {\n return literalNode;\n }\n const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, chunkLength);\n const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks);\n NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode);\n NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode);\n return binaryExpressionNode;\n }\n transformStringChunksToBinaryExpressionNode(chunks) {\n const firstChunk = chunks.shift();\n const secondChunk = chunks.shift();\n if (!firstChunk || !secondChunk) {\n throw new Error('First and second chunks values should not be empty');\n }\n const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk));\n return chunks.reduce((binaryExpressionNode, chunk) => {\n const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk);\n return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode);\n }, initialBinaryExpressionNode);\n }\n};\nSplitStringTransformer.firstPassChunkLength = 1000;\nSplitStringTransformer = SplitStringTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], SplitStringTransformer);\nexports.SplitStringTransformer = SplitStringTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar TemplateLiteralTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n static isLiteralNodeWithStringValue(node) {\n return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(templateLiteralNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) {\n return templateLiteralNode;\n }\n return this.transformTemplateLiteralNode(templateLiteralNode, parentNode);\n }\n transformTemplateLiteralNode(templateLiteralNode, parentNode) {\n const templateLiteralExpressions = templateLiteralNode.expressions;\n let nodes = [];\n templateLiteralNode.quasis.forEach((templateElement) => {\n nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));\n const expression = templateLiteralExpressions.shift();\n if (!expression) {\n return;\n }\n nodes.push(expression);\n });\n nodes = nodes.filter((node) => {\n return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');\n });\n if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) &&\n !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {\n nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));\n }\n let transformedNode;\n if (nodes.length > 1) {\n let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());\n nodes.forEach((node) => {\n root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);\n });\n transformedNode = root;\n }\n else {\n transformedNode = nodes[0];\n }\n NodeUtils_1.NodeUtils.parentizeAst(transformedNode);\n NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n return transformedNode;\n }\n};\nTemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], TemplateLiteralTransformer);\nexports.TemplateLiteralTransformer = TemplateLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BasePropertiesExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePropertiesExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor {\n static getPropertyNodeKeyName(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode)\n && (typeof propertyKeyNode.value === 'string'\n || typeof propertyKeyNode.value === 'number')) {\n return propertyKeyNode.value.toString();\n }\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {\n return propertyKeyNode.name;\n }\n return null;\n }\n static isProhibitedPropertyNode(node) {\n return node.kind !== 'init';\n }\n static isProhibitedPattern(node) {\n return !node\n || NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n || NodeGuards_1.NodeGuards.isArrayPatternNode(node)\n || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node)\n || NodeGuards_1.NodeGuards.isRestElementNode(node);\n }\n static shouldCreateLiteralNode(property) {\n return !property.computed\n || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key));\n }\n extract(objectExpressionNode, hostStatement) {\n const hostNode = objectExpressionNode.parentNode;\n if (hostNode\n && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) {\n return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);\n }\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) {\n const properties = objectExpressionNode.properties;\n const [expressionStatements, removablePropertyIds] = this\n .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode);\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);\n NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements);\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) {\n const propertiesLength = properties.length;\n const expressionStatements = [];\n const removablePropertyIds = [];\n for (let i = propertiesLength - 1; i >= 0; i--) {\n const property = properties[i];\n if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) {\n break;\n }\n if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) {\n continue;\n }\n const propertyValue = property.value;\n if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) {\n continue;\n }\n const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property);\n if (!propertyKeyName) {\n continue;\n }\n const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property);\n const memberExpressionProperty = shouldCreateLiteralNode\n ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName)\n : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);\n const memberExpressionNode = NodeFactory_1.NodeFactory\n .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);\n const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {\n this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);\n }\n expressionStatements.unshift(expressionStatementNode);\n removablePropertyIds.unshift(i);\n }\n return [expressionStatements, removablePropertyIds];\n }\n filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {\n objectExpressionNode.properties = objectExpressionNode.properties\n .filter((property, index) => !removablePropertyIds.includes(index));\n }\n};\nBasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([\n inversify_1.injectable()\n], BasePropertiesExtractor);\nexports.BasePropertiesExtractor = BasePropertiesExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionToVariableDeclarationExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor {\n constructor(objectExpressionKeysTransformerCustomNodeFactory) {\n this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;\n }\n extract(objectExpressionNode, hostStatement) {\n return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement);\n }\n transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) {\n var _a;\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)\n ? hostNodeWithStatements\n : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null;\n if (!lexicalScopeNode) {\n throw new Error('Cannot find lexical scope node for the host statement node');\n }\n const properties = objectExpressionNode.properties;\n const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties);\n const statementsToInsert = [newObjectExpressionHostStatement];\n NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement);\n NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);\n const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);\n const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement);\n return {\n nodeToReplace: newObjectExpressionIdentifier,\n objectExpressionHostStatement: newObjectExpressionHostStatement,\n objectExpressionNode: newObjectExpressionNode\n };\n }\n getObjectExpressionHostNode(lexicalScopeNode, properties) {\n const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);\n const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0];\n if (!statementNode\n || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) {\n throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');\n }\n return statementNode;\n }\n getObjectExpressionIdentifierNode(objectExpressionHostNode) {\n const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');\n }\n return newObjectExpressionIdentifierNode;\n }\n getObjectExpressionNode(objectExpressionHostNode) {\n var _a;\n const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null;\n if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');\n }\n return newObjectExpressionNode;\n }\n};\nObjectExpressionToVariableDeclarationExtractor = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),\n __metadata(\"design:paramtypes\", [Function])\n], ObjectExpressionToVariableDeclarationExtractor);\nexports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DeadCodeInjectionTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst DeadCodeInjectionCustomNode_1 = require(\"../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {\n super(randomGenerator, options);\n this.deadCodeInjectionRootAstHostNodeSet = new Set();\n this.collectedBlockStatements = [];\n this.collectedBlockStatementsTotalLength = 0;\n this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;\n this.transformersRunner = transformersRunner;\n }\n static isProhibitedNodeInsideCollectedBlockStatement(targetNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)\n || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isSuperNode(targetNode)\n || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await);\n }\n static isScopeHoistingFunctionDeclaration(targetNode) {\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {\n return false;\n }\n const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(targetNode);\n if (indexInScope === 0) {\n return false;\n }\n const slicedBody = scopeBody.slice(0, indexInScope);\n const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);\n const functionDeclarationName = targetNode.id.name;\n let isScopeHoistedFunctionDeclaration = false;\n estraverse.traverse(hostBlockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {\n isScopeHoistedFunctionDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isScopeHoistedFunctionDeclaration;\n }\n static isValidCollectedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let nestedBlockStatementsCount = 0;\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n nestedBlockStatementsCount++;\n }\n if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount\n || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node)\n || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isValidBlockStatementNode;\n }\n static isValidWrappedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n if (!isValidBlockStatementNode) {\n return false;\n }\n const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils\n .getParentNodeWithStatements(blockStatementNode);\n return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n return node;\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.deadCodeInjectionRootAstHostNodeSet.size) {\n return null;\n }\n return {\n enter: (node, parentNode) => {\n if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode, parentNode) {\n estraverse.traverse(programNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return;\n }\n const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);\n if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {\n return;\n }\n const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);\n this.collectedBlockStatements.push(transformedBlockStatementNode);\n }\n });\n this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;\n }\n transformNode(blockStatementNode, parentNode) {\n const canBreakTraverse = !this.collectedBlockStatements.length\n || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;\n if (canBreakTraverse) {\n return estraverse.VisitorOption.Break;\n }\n if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold\n || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const minInteger = 0;\n const maxInteger = this.collectedBlockStatements.length - 1;\n const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);\n const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];\n const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;\n if (isDuplicateBlockStatementNodes) {\n return blockStatementNode;\n }\n return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);\n }\n restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {\n const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {\n throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');\n }\n return hostNodeFirstStatement.body;\n }\n isDeadCodeInjectionRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);\n }\n makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {\n const hostNode = NodeFactory_1.NodeFactory.programNode([\n NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(hostNode);\n NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);\n this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n return clonedBlockStatementNode;\n }\n replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {\n const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)\n ]);\n this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);\n const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);\n const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nDeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';\nDeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;\nDeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;\nDeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer\n];\nDeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object])\n], DeadCodeInjectionTransformer);\nexports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, escapeSequenceEncoder) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer\n ];\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence);\n const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue);\n NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);\n return newLiteralNode;\n }\n};\nEscapeSequenceTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], EscapeSequenceTransformer);\nexports.EscapeSequenceTransformer = EscapeSequenceTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CommentsTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommentsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Initializing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.filterCommentsOnFinalizingTraverse(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(rootNode) {\n rootNode = this.filterCommentsOnPrimaryTraverse(rootNode);\n if (!rootNode.comments || !rootNode.comments.length) {\n return rootNode;\n }\n const comments = rootNode.comments.reverse();\n if (comments.length === 0) {\n return rootNode;\n }\n if (!rootNode.body.length) {\n rootNode.leadingComments = comments;\n return rootNode;\n }\n let isFirstNode = true;\n estraverse.traverse(rootNode, {\n enter: (node) => {\n if (node === rootNode) {\n return;\n }\n const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]);\n if (commentIdx >= 0) {\n (isFirstNode ? rootNode : node).leadingComments =\n comments.splice(commentIdx, comments.length - commentIdx).reverse();\n }\n isFirstNode = false;\n }\n });\n if (comments.length > 0) {\n rootNode.trailingComments = comments.reverse();\n }\n return rootNode;\n }\n filterCommentsOnPrimaryTraverse(rootNode) {\n var _a;\n rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true));\n return rootNode;\n }\n filterCommentsOnFinalizingTraverse(rootNode) {\n estraverse.replace(rootNode, {\n enter: (node) => {\n var _a, _b;\n if (node.leadingComments) {\n node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false));\n }\n if (node.trailingComments) {\n node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false));\n }\n return node;\n }\n });\n return rootNode;\n }\n filterComment(comment, keepConditionalComment) {\n if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) {\n return true;\n }\n return CommentsTransformer_1.preservedWords\n .some((preservedWord) => comment.value.includes(preservedWord));\n }\n};\nCommentsTransformer.preservedWords = [\n '@license',\n '@preserve'\n];\nCommentsTransformer = CommentsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], CommentsTransformer);\nexports.CommentsTransformer = CommentsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelpersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.callsGraphData = [];\n this.callsGraphAnalyzer = callsGraphAnalyzer;\n this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;\n this.obfuscationEventEmitter = obfuscationEventEmitter;\n this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n this.appendCustomNodesBeforeObfuscation(node, parentNode);\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.appendCustomNodesAfterObfuscation(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(node, parentNode) {\n this.callsGraphData = this.callsGraphAnalyzer.analyze(node);\n this.prevailingKindOfVariablesAnalyzer.analyze(node);\n }\n transformNode(node, parentNode) {\n return node;\n }\n appendCustomNodesBeforeObfuscation(node, parentNode) {\n this.customCodeHelperGroupStorage\n .getStorage()\n .forEach((customCodeHelperGroup) => {\n customCodeHelperGroup.initialize();\n this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup));\n });\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData);\n }\n appendCustomNodesAfterObfuscation(node, parentNode) {\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData);\n }\n};\nCustomCodeHelpersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object, Object, Object])\n], CustomCodeHelpersTransformer);\nexports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EvalCallExpressionTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvalCallExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.evalRootAstHostNodeSet = new Set();\n }\n static extractEvalStringFromCallExpressionArgument(node) {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromLiteralNode(node);\n }\n if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromTemplateLiteralNode(node);\n }\n return null;\n }\n static extractEvalStringFromLiteralNode(node) {\n return typeof node.value === 'string' ? node.value : null;\n }\n static extractEvalStringFromTemplateLiteralNode(node) {\n const quasis = node.quasis;\n const allowedQuasisLength = 1;\n if (quasis.length !== allowedQuasisLength || node.expressions.length) {\n return null;\n }\n return quasis[0].value.cooked;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'eval') {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.evalRootAstHostNodeSet.size) {\n return null;\n }\n return {\n leave: (node, parentNode) => {\n if (parentNode && this.isEvalRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(callExpressionNode, parentNode) {\n const callExpressionFirstArgument = callExpressionNode.arguments[0];\n if (!callExpressionFirstArgument) {\n return callExpressionNode;\n }\n const evalString = EvalCallExpressionTransformer_1\n .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);\n if (!evalString) {\n return callExpressionNode;\n }\n let ast;\n try {\n ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);\n }\n catch (_a) {\n return callExpressionNode;\n }\n const evalRootAstHostNode = NodeFactory_1.NodeFactory\n .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));\n NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode);\n NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);\n this.evalRootAstHostNodeSet.add(evalRootAstHostNode);\n return evalRootAstHostNode;\n }\n restoreNode(evalRootAstHostNode, parentNode) {\n const targetAst = evalRootAstHostNode.body.body;\n const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);\n return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [\n NodeFactory_1.NodeFactory.literalNode(StringUtils_1.StringUtils.escapeJsString(obfuscatedCode))\n ]);\n }\n isEvalRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);\n }\n};\nEvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], EvalCallExpressionTransformer);\nexports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetadataTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false });\n }\n return node;\n }\n};\nMetadataTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], MetadataTransformer);\nexports.MetadataTransformer = MetadataTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObfuscatingGuardsTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObfuscatingGuard_1 = require(\"../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst ObfuscatingGuardResult_1 = require(\"../../enums/node/ObfuscatingGuardResult\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(obfuscatingGuardFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n const obfuscatingGuardResults = this.obfuscatingGuards\n .map((obfuscatingGuard) => obfuscatingGuard.check(node));\n this.setNodeMetadata(node, obfuscatingGuardResults);\n return node;\n }\n setNodeMetadata(node, obfuscatingGuardResults) {\n const isTransformNode = obfuscatingGuardResults\n .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform);\n let isForceTransformNode = false;\n let isIgnoredNode = false;\n if (!isTransformNode) {\n isForceTransformNode = obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform);\n isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore);\n }\n NodeMetadata_1.NodeMetadata.set(node, {\n forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node),\n ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node)\n });\n }\n};\nObfuscatingGuardsTransformer.obfuscatingGuardsList = [\n ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard\n];\nObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], ObfuscatingGuardsTransformer);\nexports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParentificationTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);\n }\n};\nParentificationTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ParentificationTransformer);\nexports.ParentificationTransformer = ParentificationTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariablePreserveTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer\n ];\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, this.preserveScopeVariableIdentifiers);\n return programNode;\n }\n preserveScopeVariableIdentifiers(data) {\n const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data;\n for (const identifier of variable.identifiers) {\n if (isGlobalDeclaration || isBubblingDeclaration) {\n this.preserveIdentifierNameForRootLexicalScope(identifier);\n }\n else {\n this.preserveIdentifierNameForLexicalScope(identifier, variableScope);\n }\n }\n }\n preserveIdentifierNameForRootLexicalScope(identifierNode) {\n this.identifierReplacer.preserveName(identifierNode);\n }\n preserveIdentifierNameForLexicalScope(identifierNode, variableScope) {\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!lexicalScopeNode) {\n return;\n }\n this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);\n }\n};\nVariablePreserveTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object])\n], VariablePreserveTransformer);\nexports.VariablePreserveTransformer = VariablePreserveTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar BlackListObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlackListObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard {\n constructor() {\n this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;\n }\n check(node) {\n for (let i = 0; i < this.blackListGuardsLength; i++) {\n if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nBlackListObfuscatingGuard.blackListGuards = [\n NodeGuards_1.NodeGuards.isUseStrictOperator\n];\nBlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([\n inversify_1.injectable(),\n __metadata(\"design:paramtypes\", [])\n], BlackListObfuscatingGuard);\nexports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionalCommentObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConditionalCommentObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard {\n constructor() {\n this.obfuscationAllowed = true;\n }\n static isConditionalComment(comment) {\n return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) ||\n ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);\n }\n check(node) {\n if (NodeGuards_1.NodeGuards.isNodeWithComments(node)) {\n const leadingComments = node.leadingComments;\n if (leadingComments) {\n this.obfuscationAllowed = this.checkComments(leadingComments);\n }\n }\n return this.obfuscationAllowed\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n checkComments(comments) {\n const commentsLength = comments.length;\n let obfuscationAllowed = this.obfuscationAllowed;\n for (let i = 0; i < commentsLength; i++) {\n const comment = comments[i];\n if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = true;\n continue;\n }\n if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = false;\n }\n }\n return obfuscationAllowed;\n }\n};\nConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');\nConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');\nConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([\n inversify_1.injectable()\n], ConditionalCommentObfuscatingGuard);\nexports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForceTransformStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.forceTransformStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isForceTransformString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isForceTransformString(value) {\n return this.options.forceTransformStrings\n .some((forceTransformString) => {\n return new RegExp(forceTransformString, 'g').exec(value) !== null;\n });\n }\n};\nForceTransformStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object])\n], ForceTransformStringObfuscatingGuard);\nexports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IgnoredRequireImportObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.ignoreRequireImports\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'require') {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nIgnoredRequireImportObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object])\n], IgnoredRequireImportObfuscatingGuard);\nexports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReservedStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.reservedStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isReservedString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isReservedString(value) {\n return this.options.reservedStrings\n .some((reservedString) => {\n return new RegExp(reservedString, 'g').exec(value) !== null;\n });\n }\n};\nReservedStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object])\n], ReservedStringObfuscatingGuard);\nexports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabeledStatementTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(labeledStatementNode, parentNode) {\n const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);\n if (!lexicalScopeNode) {\n return labeledStatementNode;\n }\n this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n return labeledStatementNode;\n }\n storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);\n }\n replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n estraverse.replace(labeledStatementNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {\n const newIdentifier = this.identifierReplacer\n .replace(node, lexicalScopeNode);\n node.name = newIdentifier.name;\n }\n }\n });\n }\n};\nLabeledStatementTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], LabeledStatementTransformer);\nexports.LabeledStatementTransformer = LabeledStatementTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map();\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, (data) => {\n const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data;\n if (!this.options.renameGlobals && isGlobalDeclaration) {\n const isImportBindingOrCatchClauseIdentifier = variable.defs\n .every((definition) => definition.type === 'ImportBinding'\n || definition.type === 'CatchClause');\n if (!isImportBindingOrCatchClauseIdentifier) {\n return;\n }\n }\n this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration);\n });\n return programNode;\n }\n transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) {\n var _a;\n const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null;\n if (!firstIdentifier) {\n return;\n }\n if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {\n return;\n }\n this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);\n this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) {\n if (isGlobalDeclaration) {\n this.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode);\n }\n else {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, variable) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n variable.identifiers.forEach((identifier) => {\n identifier.name = newIdentifier.name;\n });\n variable.references.forEach((reference) => {\n reference.identifier.name = identifierNode.name;\n });\n }\n isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) {\n const parentNode = identifierNode.parentNode;\n return !!parentNode\n && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode)\n && !this.isProhibitedPropertyIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)\n && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)\n && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)\n && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);\n }\n isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block)\n && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode;\n }\n isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode)\n && !!parentNode.parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);\n }\n isProhibitedImportSpecifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode)\n && parentNode.imported.name === parentNode.local.name;\n }\n isProhibitedPropertyIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isPropertyNode(parentNode)\n && !parentNode.computed\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node)\n && parentNode.shorthand\n && parentNode.key.name === node.name;\n }\n isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode)\n && parentNode.left === node\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key)\n && parentNode.left.name === parentNode.parentNode.key.name;\n }\n isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) {\n let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);\n if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {\n return false;\n }\n const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var');\n if (!hasVarDefinitions) {\n return false;\n }\n let isProhibitedVariableDeclaration = false;\n estraverse.traverse(lexicalScopeNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n && parentNode\n && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) {\n isLexicalScopeHasObjectPatternWithoutDeclaration = true;\n const properties = node.properties;\n for (const property of properties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n continue;\n }\n if (property.computed || !property.shorthand) {\n continue;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n continue;\n }\n if (identifierNode.name !== property.key.name) {\n continue;\n }\n isProhibitedVariableDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n }\n });\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false);\n return isProhibitedVariableDeclaration;\n }\n};\nScopeIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object])\n], ScopeIdentifiersTransformer);\nexports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeThroughIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => {\n const { reference, variableLexicalScopeNode } = data;\n this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);\n });\n return programNode;\n }\n transformScopeThroughIdentifiers(reference, lexicalScopeNode) {\n if (reference.resolved) {\n return;\n }\n const identifier = reference.identifier;\n this.storeIdentifierName(identifier, lexicalScopeNode);\n this.replaceIdentifierName(identifier, lexicalScopeNode, reference);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, reference) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n reference.identifier.name = newIdentifier.name;\n }\n};\nScopeThroughIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object])\n], ScopeThroughIdentifiersTransformer);\nexports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet IdentifierReplacer = class IdentifierReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.blockScopesMap = new Map();\n this.options = options;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n }\n storeGlobalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope();\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n storeLocalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n replace(identifierNode, lexicalScopeNode) {\n let identifierName = identifierNode.name;\n if (this.blockScopesMap.has(lexicalScopeNode)) {\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n if (namesMap.has(identifierName)) {\n identifierName = namesMap.get(identifierName);\n }\n }\n return NodeFactory_1.NodeFactory.identifierNode(identifierName);\n }\n preserveName(identifierNode) {\n this.identifierNamesGenerator.preserveName(identifierNode.name);\n }\n preserveNameForLexicalScope(identifierNode, lexicalScopeNode) {\n this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);\n }\n isReservedName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n};\nIdentifierReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object])\n], IdentifierReplacer);\nexports.IdentifierReplacer = IdentifierReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RenamePropertiesTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(renamePropertiesReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.renamePropertiesReplacer = renamePropertiesReplacer;\n }\n static isValidPropertyNode(propertyNode, propertyKeyNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {\n return false;\n }\n return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameProperties:\n return {\n enter: (node, parentNode) => {\n if (parentNode) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformPropertyNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformMemberExpressionNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformMethodDefinitionNode(node);\n }\n return node;\n }\n transformPropertyNode(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) {\n propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n propertyNode.shorthand = false;\n }\n return propertyNode;\n }\n transformMemberExpressionNode(memberExpressionNode) {\n const propertyKeyNode = memberExpressionNode.property;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {\n memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return memberExpressionNode;\n }\n transformMethodDefinitionNode(methodDefinitionNode) {\n const propertyKeyNode = methodDefinitionNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {\n methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return methodDefinitionNode;\n }\n};\nRenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], RenamePropertiesTransformer);\nexports.RenamePropertiesTransformer = RenamePropertiesTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst ReservedDomProperties_json_1 = __importDefault(require(\"./ReservedDomProperties.json\"));\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet RenamePropertiesReplacer = class RenamePropertiesReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.propertyNamesMap = new Map();\n this.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default);\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.options = options;\n }\n replace(node) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name));\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {\n return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value));\n }\n return node;\n }\n replacePropertyName(propertyName) {\n var _a;\n if (this.isReservedName(propertyName)) {\n return propertyName;\n }\n let renamedPropertyName = (_a = this.propertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null;\n if (renamedPropertyName !== null) {\n return renamedPropertyName;\n }\n renamedPropertyName = this.identifierNamesGenerator.generateNext();\n this.propertyNamesMap.set(propertyName, renamedPropertyName);\n return renamedPropertyName;\n }\n isReservedName(name) {\n return this.isReservedOptionName(name)\n || this.isReservedDomPropertyName(name);\n }\n isReservedOptionName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n isReservedDomPropertyName(name) {\n return this.reservedDomPropertiesList.has(name);\n }\n};\nRenamePropertiesReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object])\n], RenamePropertiesReplacer);\nexports.RenamePropertiesReplacer = RenamePropertiesReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getStatementSimplifyData(statementNode) {\n if (!statementNode) {\n return null;\n }\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) {\n return {\n leadingStatements: [statementNode],\n trailingStatement: null,\n hasReturnStatement: false,\n hasSingleExpression: false\n };\n }\n const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode);\n const leadingStatements = this.getLeadingStatements(statementNode, startIndex);\n if (!unwrappedExpressions.length) {\n return {\n leadingStatements,\n trailingStatement: null,\n hasReturnStatement,\n hasSingleExpression: false\n };\n }\n const hasSingleExpression = unwrappedExpressions.length === 1;\n const expression = hasSingleExpression\n ? unwrappedExpressions[0]\n : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions);\n const statement = hasReturnStatement\n ? NodeFactory_1.NodeFactory.returnStatementNode(expression)\n : NodeFactory_1.NodeFactory.expressionStatementNode(expression);\n return {\n leadingStatements,\n trailingStatement: {\n statement,\n expression\n },\n hasReturnStatement,\n hasSingleExpression\n };\n }\n collectIteratedStatementsSimplifyData(statementNode) {\n const statementNodeBodyLength = statementNode.body.length;\n const unwrappedExpressions = [];\n let hasReturnStatement = false;\n let startIndex = null;\n for (let i = statementNodeBodyLength - 1; i >= 0; i--) {\n const statementBodyStatementNode = statementNode.body[i];\n if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) {\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) {\n unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions);\n }\n else {\n unwrappedExpressions.unshift(statementBodyStatementNode.expression);\n }\n startIndex = i;\n continue;\n }\n if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode)\n && statementBodyStatementNode.argument) {\n unwrappedExpressions.unshift(statementBodyStatementNode.argument);\n hasReturnStatement = true;\n startIndex = i;\n continue;\n }\n break;\n }\n return {\n startIndex,\n unwrappedExpressions,\n hasReturnStatement\n };\n }\n getLeadingStatements(statementNode, startIndex) {\n if (startIndex === null) {\n return statementNode.body;\n }\n return startIndex === 0\n ? []\n : statementNode.body.slice(0, startIndex);\n }\n getPartialStatement(statementSimplifyData) {\n if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) {\n return statementSimplifyData.trailingStatement.statement;\n }\n return NodeFactory_1.NodeFactory.blockStatementNode([\n ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [],\n ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : []\n ]);\n }\n};\nAbstractStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], AbstractStatementSimplifyTransformer);\nexports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(statementNode, parentNode) {\n const simplifyData = this.getStatementSimplifyData(statementNode);\n if (!simplifyData) {\n return statementNode;\n }\n const partialStatementNode = this.getPartialStatement(simplifyData);\n const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode)\n ? partialStatementNode\n : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]);\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n};\nBlockStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], BlockStatementSimplifyTransformer);\nexports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionStatementsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(expressionStatementNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return expressionStatementNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) {\n return expressionStatementNode;\n }\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) {\n prevStatement.expression.expressions.push(expressionStatementNode.expression);\n NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression);\n }\n else {\n prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([\n prevStatement.expression,\n expressionStatementNode.expression\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression);\n NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement);\n }\n return estraverse.VisitorOption.Remove;\n }\n};\nExpressionStatementsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ExpressionStatementsMergeTransformer);\nexports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IfStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(ifStatementNode, parentNode) {\n const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent);\n if (!consequentSimplifyData) {\n return ifStatementNode;\n }\n let transformedNode;\n if (!ifStatementNode.alternate) {\n transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData);\n }\n else {\n const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate);\n if (!alternateSimplifyData) {\n return ifStatementNode;\n }\n transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData);\n }\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n getConsequentNode(ifStatementNode, consequentSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression));\n }\n getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || alternateSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement\n || !alternateSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n getPartialStatement(statementSimplifyData) {\n const partialStatement = super.getPartialStatement(statementSimplifyData);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) {\n return partialStatement;\n }\n return partialStatement.body.length === 1\n && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0])\n ? partialStatement.body[0]\n : partialStatement;\n }\n isProhibitedSingleStatementForIfStatementBranch(statement) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement)\n || NodeGuards_1.NodeGuards.isIfStatementNode(statement)\n || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var');\n }\n};\nIfStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], IfStatementSimplifyTransformer);\nexports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariableDeclarationsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(variableDeclarationNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return variableDeclarationNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) {\n return variableDeclarationNode;\n }\n if (variableDeclarationNode.kind !== prevStatement.kind) {\n return variableDeclarationNode;\n }\n prevStatement.declarations.push(...variableDeclarationNode.declarations);\n return estraverse.VisitorOption.Remove;\n }\n};\nVariableDeclarationsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], VariableDeclarationsMergeTransformer);\nexports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.stringArrayWrappersCount) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeEnter(node);\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeLeave();\n return this.transformNode(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(lexicalScopeBodyNode) {\n var _a, _b;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) {\n return lexicalScopeBodyNode;\n }\n const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData;\n const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding);\n for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) {\n if (!stringArrayScopeCallsWrapperNamesData) {\n continue;\n }\n const { names } = stringArrayScopeCallsWrapperNamesData;\n const namesLength = names.length;\n for (let i = namesLength - 1; i >= 0; i--) {\n const stringArrayScopeCallsWrapperName = names[i];\n const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex);\n NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode);\n }\n }\n return lexicalScopeBodyNode;\n }\n getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n return {\n name: this.stringArrayStorage.getStorageCallsWrapperName(encoding),\n index: resultShiftedIndex,\n parameterIndexesData: null\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n var _a, _b, _c, _d, _e, _f;\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n if (!this.options.stringArrayWrappersChainedCalls) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n if (!parentLexicalScopeBodyNode) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null;\n const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null;\n if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) {\n return rootStringArrayCallsWrapperData;\n }\n const upperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(parentLexicalScopeNames);\n const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null;\n return {\n name: upperStringArrayCallsWrapperName,\n index: scopeShiftedIndex,\n parameterIndexesData\n };\n }\n getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n switch (this.options.stringArrayWrappersType) {\n case StringArrayWrappersType_1.StringArrayWrappersType.Function:\n return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n case StringArrayWrappersType_1.StringArrayWrappersType.Variable:\n default:\n return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n }\n }\n getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) {\n const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n return stringArrayScopeCallsWrapperVariableNode.getNode();\n }\n getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n return stringArrayScopeCallsWrapperFunctionNode.getNode();\n }\n onLexicalScopeNodeEnter(lexicalScopeBodyNode) {\n this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode);\n }\n onLexicalScopeNodeLeave() {\n this.visitedLexicalScopeNodesStackStorage.pop();\n }\n};\nStringArrayScopeCallsWrapperTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object, Object, Object, Function])\n], StringArrayScopeCallsWrapperTransformer);\nexports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayTransformer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.literalNodesCacheStorage = literalNodesCacheStorage;\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node);\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode) {\n this.stringArrayStorageAnalyzer.analyze(programNode);\n if (this.options.shuffleStringArray) {\n this.stringArrayStorage.shuffleStorage();\n }\n if (this.options.rotateStringArray) {\n this.stringArrayStorage.rotateStorage();\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)\n || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode);\n const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData);\n const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData);\n if (useCachedValue) {\n return this.literalNodesCacheStorage.get(cacheKey);\n }\n const resultNode = stringArrayStorageItemData\n ? this.getStringArrayCallNode(stringArrayStorageItemData)\n : literalNode;\n this.literalNodesCacheStorage.set(cacheKey, resultNode);\n NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode);\n return resultNode;\n }\n getStringArrayCallNode(stringArrayStorageItemData) {\n const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData);\n const { decodeKey } = stringArrayStorageItemData;\n const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey);\n const statementNode = stringArrayCallCustomNode.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n getStringArrayCallsWrapperData(stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData)\n : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData);\n }\n getRootStringArrayCallsWrapperData(stringArrayStorageItemData) {\n const { encoding, index } = stringArrayStorageItemData;\n const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding);\n return {\n name: rootStringArrayCallsWrapperName,\n parameterIndexesData: null,\n index\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) {\n var _a, _b, _c, _d;\n const { encoding, index } = stringArrayStorageItemData;\n const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null;\n if (!currentLexicalScopeBodyNode) {\n throw new Error('Cannot find current lexical scope body node');\n }\n const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData);\n const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode);\n const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : [];\n const randomUpperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(stringArrayScopeCallsWrapperNames);\n const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData\n ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index\n : index;\n return {\n name: randomUpperStringArrayCallsWrapperName,\n index: resultIndex,\n parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData\n };\n }\n getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) {\n var _a, _b, _c;\n const { encoding } = stringArrayStorageItemData;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {};\n const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : [];\n const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount;\n if (isFilledScopeCallsWrapperNamesList) {\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateNext();\n stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = {\n encoding,\n names: [\n ...stringArrayScopeCallsWrapperNames,\n nextScopeCallsWrapperName\n ]\n };\n this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding);\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) {\n var _a, _b;\n const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n if (storedLexicalScopeData) {\n return storedLexicalScopeData;\n }\n const parentLexicalScopeData = parentLexicalScopeBodyNode\n ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null : null;\n const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.getStringArrayCallsWrapperParameterIndexesData()\n : null;\n const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue)\n : 0;\n const resultShiftedIndex = parentLexicalScopeData\n ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex\n : scopeShiftedIndex;\n const lexicalScopeData = {\n callsWrappersParameterIndexesData,\n parentLexicalScopeBodyNode,\n resultShiftedIndex,\n scopeShiftedIndex\n };\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData);\n return lexicalScopeData;\n }\n getStringArrayCallsWrapperParameterIndexesData() {\n const minIndexValue = 0;\n const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1;\n const valueIndexParameterIndex = this.randomGenerator\n .getRandomInteger(minIndexValue, maxIndexValue);\n const decodeKeyParameterIndex = this.randomGenerator\n .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]);\n return {\n valueIndexParameterIndex,\n decodeKeyParameterIndex\n };\n }\n};\nStringArrayTransformer.minShiftedIndexValue = -1000;\nStringArrayTransformer.maxShiftedIndexValue = 1000;\nStringArrayTransformer = StringArrayTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),\n __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [Object, Object, Object, Object, Object, Object, Object, Object, Function, Function])\n], StringArrayTransformer);\nexports.StringArrayTransformer = StringArrayTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeAppender = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeAppender {\n static append(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ...statements\n ]);\n }\n static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) {\n const targetBlockScope = callsGraphData.length\n ? NodeAppender.getOptimalBlockScope(callsGraphData, index)\n : nodeWithStatements;\n NodeAppender.prepend(targetBlockScope, bodyStatements);\n }\n static getOptimalBlockScope(callsGraphData, index, deep = Infinity) {\n const firstCall = callsGraphData[index];\n if (deep <= 0) {\n throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');\n }\n if (deep > 1 && firstCall.callsGraph.length) {\n return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);\n }\n else {\n return firstCall.callee;\n }\n }\n static insertBefore(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);\n }\n static insertAfter(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);\n }\n static insertAtIndex(nodeWithStatements, statements, index) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)\n ]);\n }\n static prepend(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ]);\n }\n static getScopeStatements(nodeWithStatements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n return nodeWithStatements.consequent;\n }\n return nodeWithStatements.body;\n }\n static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {\n statements.forEach((statement) => {\n statement.parentNode = nodeWithStatements;\n });\n return statements;\n }\n static setScopeStatements(nodeWithStatements, statements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n nodeWithStatements.consequent = statements;\n return;\n }\n nodeWithStatements.body = statements;\n }\n}\nexports.NodeAppender = NodeAppender;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFactory = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeFactory {\n static programNode(body = []) {\n return {\n type: NodeType_1.NodeType.Program,\n body,\n sourceType: 'script',\n metadata: { ignoredNode: false }\n };\n }\n static arrayExpressionNode(elements = []) {\n return {\n type: NodeType_1.NodeType.ArrayExpression,\n elements,\n metadata: { ignoredNode: false }\n };\n }\n static arrowFunctionExpressionNode(params, expression, body) {\n return {\n type: NodeType_1.NodeType.ArrowFunctionExpression,\n params,\n expression,\n body\n };\n }\n static assignmentExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.AssignmentExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static binaryExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.BinaryExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static blockStatementNode(body = []) {\n return {\n type: NodeType_1.NodeType.BlockStatement,\n body,\n metadata: { ignoredNode: false }\n };\n }\n static breakStatement(label) {\n return {\n type: NodeType_1.NodeType.BreakStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static callExpressionNode(callee, args = [], optional = false) {\n return {\n type: NodeType_1.NodeType.CallExpression,\n callee,\n optional,\n arguments: args,\n metadata: { ignoredNode: false }\n };\n }\n static conditionalExpressionNode(test, consequent, alternate) {\n return {\n type: NodeType_1.NodeType.ConditionalExpression,\n test,\n consequent,\n alternate,\n metadata: { ignoredNode: false }\n };\n }\n static continueStatement(label) {\n return {\n type: NodeType_1.NodeType.ContinueStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static directiveNode(expression, directive) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n directive,\n metadata: { ignoredNode: false }\n };\n }\n static exportAllDeclarationNode(source) {\n return {\n type: NodeType_1.NodeType.ExportAllDeclaration,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static exportNamedDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ExportNamedDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static expressionStatementNode(expression) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n metadata: { ignoredNode: false }\n };\n }\n static functionDeclarationNode(functionName, params, body) {\n return {\n type: NodeType_1.NodeType.FunctionDeclaration,\n id: NodeFactory.identifierNode(functionName),\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static functionExpressionNode(params, body) {\n return {\n type: NodeType_1.NodeType.FunctionExpression,\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static ifStatementNode(test, consequent, alternate) {\n return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test,\n consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } });\n }\n static identifierNode(name) {\n return {\n type: NodeType_1.NodeType.Identifier,\n name,\n metadata: { ignoredNode: false }\n };\n }\n static importDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ImportDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static literalNode(value, raw) {\n raw = raw !== undefined ? raw : `'${value}'`;\n return {\n type: NodeType_1.NodeType.Literal,\n value,\n raw,\n 'x-verbatim-property': {\n content: raw,\n precedence: escodegen.Precedence.Primary\n },\n metadata: { ignoredNode: false }\n };\n }\n static logicalExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.LogicalExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static memberExpressionNode(object, property, computed = false, optional = false) {\n return {\n type: NodeType_1.NodeType.MemberExpression,\n computed,\n object,\n optional,\n property,\n metadata: { ignoredNode: false }\n };\n }\n static objectExpressionNode(properties) {\n return {\n type: NodeType_1.NodeType.ObjectExpression,\n properties,\n metadata: { ignoredNode: false }\n };\n }\n static propertyNode(key, value, computed = false) {\n return {\n type: NodeType_1.NodeType.Property,\n key,\n value,\n kind: 'init',\n method: false,\n shorthand: false,\n computed,\n metadata: { ignoredNode: false }\n };\n }\n static returnStatementNode(argument) {\n return {\n type: NodeType_1.NodeType.ReturnStatement,\n argument,\n metadata: { ignoredNode: false }\n };\n }\n static sequenceExpressionNode(expressions) {\n return {\n type: NodeType_1.NodeType.SequenceExpression,\n expressions,\n metadata: { ignoredNode: false }\n };\n }\n static switchStatementNode(discriminant, cases) {\n return {\n type: NodeType_1.NodeType.SwitchStatement,\n discriminant,\n cases,\n metadata: { ignoredNode: false }\n };\n }\n static switchCaseNode(test, consequent) {\n return {\n type: NodeType_1.NodeType.SwitchCase,\n test,\n consequent,\n metadata: { ignoredNode: false }\n };\n }\n static unaryExpressionNode(operator, argument, prefix = true) {\n return {\n type: NodeType_1.NodeType.UnaryExpression,\n operator,\n argument,\n prefix,\n metadata: { ignoredNode: false }\n };\n }\n static updateExpressionNode(operator, argumentExpr) {\n return {\n type: NodeType_1.NodeType.UpdateExpression,\n operator,\n argument: argumentExpr,\n prefix: false,\n metadata: { ignoredNode: false }\n };\n }\n static templateElement(value, tail) {\n return {\n type: NodeType_1.NodeType.TemplateElement,\n value,\n tail,\n metadata: { ignoredNode: false }\n };\n }\n static templateLiteral(expressions, quasis) {\n return {\n type: NodeType_1.NodeType.TemplateLiteral,\n expressions,\n quasis,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclarationNode(declarations = [], kind = 'var') {\n return {\n type: NodeType_1.NodeType.VariableDeclaration,\n declarations,\n kind,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclaratorNode(id, init) {\n return {\n type: NodeType_1.NodeType.VariableDeclarator,\n id,\n init,\n metadata: { ignoredNode: false }\n };\n }\n static whileStatementNode(test, body) {\n return {\n type: NodeType_1.NodeType.WhileStatement,\n test,\n body,\n metadata: { ignoredNode: false }\n };\n }\n}\nexports.NodeFactory = NodeFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeGuards = void 0;\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeGuards {\n static isArrayPatternNode(node) {\n return node.type === NodeType_1.NodeType.ArrayPattern;\n }\n static isArrowFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ArrowFunctionExpression;\n }\n static isAssignmentExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentExpression;\n }\n static isAssignmentPatternNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentPattern;\n }\n static isAwaitExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AwaitExpression;\n }\n static isBigIntLiteralNode(node) {\n return NodeGuards.isLiteralNode(node) && !!node.bigint;\n }\n static isBlockStatementNode(node) {\n return node.type === NodeType_1.NodeType.BlockStatement;\n }\n static isBreakStatementNode(node) {\n return node.type === NodeType_1.NodeType.BreakStatement;\n }\n static isCallExpressionNode(node) {\n return node.type === NodeType_1.NodeType.CallExpression;\n }\n static isClassDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null;\n }\n static isContinueStatementNode(node) {\n return node.type === NodeType_1.NodeType.ContinueStatement;\n }\n static isDirectiveNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && 'directive' in node;\n }\n static isExportAllDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportAllDeclaration;\n }\n static isExportNamedDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportNamedDeclaration;\n }\n static isExportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ExportSpecifier;\n }\n static isExpressionStatementNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && !('directive' in node);\n }\n static isForOfStatementNode(node) {\n return node.type === NodeType_1.NodeType.ForOfStatement;\n }\n static isFunctionNode(node) {\n return NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards.isArrowFunctionExpressionNode(node);\n }\n static isFunctionDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null;\n }\n static isFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.FunctionExpression;\n }\n static isIdentifierNode(node) {\n return node.type === NodeType_1.NodeType.Identifier;\n }\n static isIfStatementNode(node) {\n return node.type === NodeType_1.NodeType.IfStatement;\n }\n static isImportDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ImportDeclaration;\n }\n static isImportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ImportSpecifier;\n }\n static isLabelIdentifierNode(node, parentNode) {\n const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;\n return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;\n }\n static isLabeledStatementNode(node) {\n return node.type === NodeType_1.NodeType.LabeledStatement;\n }\n static isLiteralNode(node) {\n return node.type === NodeType_1.NodeType.Literal;\n }\n static isMemberExpressionNode(node) {\n return node.type === NodeType_1.NodeType.MemberExpression;\n }\n static isMethodDefinitionNode(node) {\n return node.type === NodeType_1.NodeType.MethodDefinition;\n }\n static isNode(object) {\n return object && !object.type !== undefined;\n }\n static isNodeWithLexicalScope(node) {\n return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);\n }\n static isNodeWithBlockLexicalScope(node) {\n return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);\n }\n static isNodeWithLexicalScopeStatements(node, parentNode) {\n return NodeGuards.isProgramNode(node)\n || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));\n }\n static isNodeWithStatements(node) {\n return NodeGuards.isProgramNode(node)\n || NodeGuards.isBlockStatementNode(node)\n || NodeGuards.isSwitchCaseNode(node);\n }\n static isNodeWithComments(node) {\n return Boolean(node.leadingComments) || Boolean(node.trailingComments);\n }\n static isObjectPatternNode(node) {\n return node.type === NodeType_1.NodeType.ObjectPattern;\n }\n static isObjectExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ObjectExpression;\n }\n static isProgramNode(node) {\n return node.type === NodeType_1.NodeType.Program;\n }\n static isPropertyNode(node) {\n return node.type === NodeType_1.NodeType.Property;\n }\n static isRestElementNode(node) {\n return node.type === NodeType_1.NodeType.RestElement;\n }\n static isReturnStatementNode(node) {\n return node.type === NodeType_1.NodeType.ReturnStatement;\n }\n static isSequenceExpressionNode(node) {\n return node.type === NodeType_1.NodeType.SequenceExpression;\n }\n static isSpreadElementNode(node) {\n return node.type === NodeType_1.NodeType.SpreadElement;\n }\n static isSuperNode(node) {\n return node.type === NodeType_1.NodeType.Super;\n }\n static isSwitchCaseNode(node) {\n return node.type === NodeType_1.NodeType.SwitchCase;\n }\n static isTaggedTemplateExpressionNode(node) {\n return node.type === NodeType_1.NodeType.TaggedTemplateExpression;\n }\n static isTemplateLiteralNode(node) {\n return node.type === NodeType_1.NodeType.TemplateLiteral;\n }\n static isUnaryExpressionNode(node) {\n return node.type === NodeType_1.NodeType.UnaryExpression;\n }\n static isUseStrictOperator(node) {\n return NodeGuards.isDirectiveNode(node)\n && node.directive === 'use strict';\n }\n static isVariableDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclaration;\n }\n static isVariableDeclaratorNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclarator;\n }\n static isWhileStatementNode(node) {\n return node.type === NodeType_1.NodeType.WhileStatement;\n }\n static isYieldExpressionNode(node) {\n return node.type === NodeType_1.NodeType.YieldExpression;\n }\n}\nexports.NodeGuards = NodeGuards;\nNodeGuards.nodesWithLexicalStatements = [\n NodeType_1.NodeType.ArrowFunctionExpression,\n NodeType_1.NodeType.FunctionDeclaration,\n NodeType_1.NodeType.FunctionExpression,\n NodeType_1.NodeType.MethodDefinition,\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLexicalScopeUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLexicalScopeUtils {\n static getLexicalScope(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];\n }\n static getLexicalScopes(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);\n }\n static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) {\n if (nodesWithLexicalScope.length >= maxSize) {\n return nodesWithLexicalScope;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {\n nodesWithLexicalScope.push(node);\n }\n if (node !== parentNode) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);\n }\n return nodesWithLexicalScope;\n }\n}\nexports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLiteralUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLiteralUtils {\n static isStringLiteralNode(literalNode) {\n return typeof literalNode.value === 'string';\n }\n static isProhibitedLiteralNode(literalNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {\n return true;\n }\n return false;\n }\n}\nexports.NodeLiteralUtils = NodeLiteralUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeMetadata = void 0;\nclass NodeMetadata {\n static set(node, metadata) {\n var _a;\n node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata);\n }\n static get(node, metadataKey) {\n return node.metadata !== undefined\n ? node.metadata[metadataKey]\n : undefined;\n }\n static isForceTransformNode(node) {\n return NodeMetadata.get(node, 'forceTransformNode') === true;\n }\n static isIgnoredNode(node) {\n return NodeMetadata.get(node, 'ignoredNode') === true;\n }\n static isReplacedLiteral(literalNode) {\n return NodeMetadata.get(literalNode, 'replacedLiteral') === true;\n }\n}\nexports.NodeMetadata = NodeMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeStatementUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeStatementUtils {\n static getParentNodeWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];\n }\n static getParentNodesWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);\n }\n static getNextSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);\n }\n static getPreviousSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);\n }\n static getRootStatementOfNode(node) {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n throw new Error('Unable to find root statement for `Program` node');\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getRootStatementOfNode(parentNode);\n }\n return node;\n }\n static getScopeOfNode(node) {\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getScopeOfNode(parentNode);\n }\n return parentNode;\n }\n static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) {\n if (nodesWithStatements.length >= maxSize) {\n return nodesWithStatements;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isProgramNode(node) ||\n (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) {\n nodesWithStatements.push(node);\n }\n if (node !== parentNode) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);\n }\n return nodesWithStatements;\n }\n static getSiblingStatementByOffset(statement, offset) {\n const scopeNode = NodeStatementUtils.getScopeOfNode(statement);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(statement);\n return scopeBody[indexInScope + offset] || null;\n }\n}\nexports.NodeStatementUtils = NodeStatementUtils;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeUtils = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"../ASTParserFacade\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nconst NodeMetadata_1 = require(\"./NodeMetadata\");\nclass NodeUtils {\n static addXVerbatimPropertyTo(literalNode) {\n literalNode['x-verbatim-property'] = {\n content: literalNode.raw,\n precedence: escodegen.Precedence.Primary\n };\n return literalNode;\n }\n static clone(astTree) {\n return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));\n }\n static convertCodeToStructure(code) {\n const structure = ASTParserFacade_1.ASTParserFacade.parse(code, {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n sourceType: 'script'\n });\n estraverse.replace(structure, {\n enter: (node, parentNode) => {\n NodeUtils.parentizeNode(node, parentNode);\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeUtils.addXVerbatimPropertyTo(node);\n }\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n return node;\n }\n });\n return structure.body;\n }\n static convertStructureToCode(structure) {\n return structure.reduce((code, node) => {\n return code + escodegen.generate(node, {\n sourceMapWithCode: true\n }).code;\n }, '');\n }\n static getUnaryExpressionArgumentNode(unaryExpressionNode) {\n if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {\n return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);\n }\n return unaryExpressionNode.argument;\n }\n static parentizeAst(astTree) {\n var _a;\n const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null;\n estraverse.replace(astTree, {\n enter: NodeUtils.parentizeNode\n });\n if (parentNode) {\n astTree.parentNode = parentNode;\n }\n return astTree;\n }\n static parentizeNode(node, parentNode) {\n node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node;\n return node;\n }\n static cloneRecursive(node) {\n if (node === null) {\n return node;\n }\n const copy = {};\n const nodeKeys = Object.keys(node);\n nodeKeys\n .forEach((property) => {\n var _a;\n if (property === 'parentNode') {\n return;\n }\n const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null;\n let clonedValue;\n if (value === null || value instanceof RegExp) {\n clonedValue = value;\n }\n else if (value instanceof Array) {\n clonedValue = value.map(NodeUtils.cloneRecursive);\n }\n else if (typeof value === 'object') {\n clonedValue = NodeUtils.cloneRecursive(value);\n }\n else {\n clonedValue = value;\n }\n copy[property] = clonedValue;\n });\n return copy;\n }\n}\nexports.NodeUtils = NodeUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ScopeIdentifiersTraverser_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTraverser = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nlet ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser {\n constructor(scopeAnalyzer) {\n this.scopeAnalyzer = scopeAnalyzer;\n }\n traverseScopeIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeThroughIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const variable of currentScope.variables) {\n if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) {\n continue;\n }\n const isBubblingDeclaration = variable\n .identifiers\n .some((identifier) => identifier.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode)\n && identifier.parentNode.shorthand);\n callback({\n isGlobalDeclaration,\n isBubblingDeclaration,\n rootScope,\n variable,\n variableScope,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const reference of currentScope.through) {\n callback({\n reference,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeThroughIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n};\nScopeIdentifiersTraverser.argumentsVariableName = 'arguments';\nScopeIdentifiersTraverser.globalScopeNames = [\n 'global',\n 'module'\n];\nScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)),\n __metadata(\"design:paramtypes\", [Object])\n], ScopeIdentifiersTraverser);\nexports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar Options_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Options = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst class_validator_1 = require(\"class-validator\");\nconst IdentifierNamesGenerator_1 = require(\"../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst Default_1 = require(\"./presets/Default\");\nconst LowObfuscation_1 = require(\"./presets/LowObfuscation\");\nconst MediumObfuscation_1 = require(\"./presets/MediumObfuscation\");\nconst HighObfuscation_1 = require(\"./presets/HighObfuscation\");\nconst ValidationErrorsFormatter_1 = require(\"./ValidationErrorsFormatter\");\nconst IsAllowedForObfuscationTargets_1 = require(\"./validators/IsAllowedForObfuscationTargets\");\nlet Options = Options_1 = class Options {\n constructor(inputOptions, optionsNormalizer) {\n var _a;\n const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default);\n Object.assign(this, optionsPreset, inputOptions);\n const errors = class_validator_1.validateSync(this, Options_1.validatorOptions);\n if (errors.length) {\n throw new ReferenceError(`Validation failed. errors:\\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`);\n }\n Object.assign(this, optionsNormalizer.normalize(this));\n }\n static getOptionsByPreset(optionsPreset) {\n var _a;\n const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null;\n if (!options) {\n throw new Error(`Options for preset name \\`${optionsPreset}\\` are not found`);\n }\n return options;\n }\n};\nOptions.optionPresetsMap = new Map([\n [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET],\n [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET]\n]);\nOptions.validatorOptions = {\n validationError: {\n target: false\n }\n};\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"compact\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"controlFlowFlattening\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"controlFlowFlatteningThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"deadCodeInjection\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"deadCodeInjectionThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtection\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtectionInterval\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"disableConsoleOutput\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([\n ObfuscationTarget_1.ObfuscationTarget.Browser,\n ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval,\n ]),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"domainLock\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"forceTransformStrings\", void 0);\n__decorate([\n class_validator_1.IsIn([\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator\n ]),\n __metadata(\"design:type\", Object)\n], Options.prototype, \"identifierNamesGenerator\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"identifiersPrefix\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),\n class_validator_1.ArrayNotEmpty(),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"identifiersDictionary\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"ignoreRequireImports\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"inputFileName\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"log\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"numbersToExpressions\", void 0);\n__decorate([\n class_validator_1.IsIn([\n OptionsPreset_1.OptionsPreset.Default,\n OptionsPreset_1.OptionsPreset.LowObfuscation,\n OptionsPreset_1.OptionsPreset.MediumObfuscation,\n OptionsPreset_1.OptionsPreset.HighObfuscation\n ]),\n __metadata(\"design:type\", String)\n], Options.prototype, \"optionsPreset\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameGlobals\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameProperties\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedNames\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedStrings\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"rotateStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"selfDefending\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"shuffleStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"simplify\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"sourceMap\", void 0);\n__decorate([\n class_validator_1.IsString(),\n class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)),\n class_validator_1.IsUrl({\n require_protocol: true,\n require_tld: false,\n require_valid_protocol: true\n }),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapBaseUrl\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapFileName\", void 0);\n__decorate([\n class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]),\n __metadata(\"design:type\", Object)\n], Options.prototype, \"sourceMapMode\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"splitStrings\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)),\n class_validator_1.Min(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"splitStringsChunkLength\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArray\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayEncoding\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayNotEmpty(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayIndexesType\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayIndexShift\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayWrappersChainedCalls\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersCount\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(2),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersParametersMaxCount\", void 0);\n__decorate([\n class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]),\n __metadata(\"design:type\", String)\n], Options.prototype, \"stringArrayWrappersType\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayThreshold\", void 0);\n__decorate([\n class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]),\n __metadata(\"design:type\", Object)\n], Options.prototype, \"target\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"transformObjectKeys\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"unicodeEscapeSequence\", void 0);\nOptions = Options_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], Options);\nexports.Options = Options;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar OptionsNormalizer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsNormalizer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ControlFlowFlatteningThresholdRule_1 = require(\"./normalizer-rules/ControlFlowFlatteningThresholdRule\");\nconst DeadCodeInjectionRule_1 = require(\"./normalizer-rules/DeadCodeInjectionRule\");\nconst DeadCodeInjectionThresholdRule_1 = require(\"./normalizer-rules/DeadCodeInjectionThresholdRule\");\nconst DomainLockRule_1 = require(\"./normalizer-rules/DomainLockRule\");\nconst InputFileNameRule_1 = require(\"./normalizer-rules/InputFileNameRule\");\nconst SeedRule_1 = require(\"./normalizer-rules/SeedRule\");\nconst SelfDefendingRule_1 = require(\"./normalizer-rules/SelfDefendingRule\");\nconst SourceMapBaseUrlRule_1 = require(\"./normalizer-rules/SourceMapBaseUrlRule\");\nconst SourceMapFileNameRule_1 = require(\"./normalizer-rules/SourceMapFileNameRule\");\nconst SplitStringsChunkLengthRule_1 = require(\"./normalizer-rules/SplitStringsChunkLengthRule\");\nconst StringArrayRule_1 = require(\"./normalizer-rules/StringArrayRule\");\nconst StringArrayEncodingRule_1 = require(\"./normalizer-rules/StringArrayEncodingRule\");\nconst StringArrayWappersChainedCalls_1 = require(\"./normalizer-rules/StringArrayWappersChainedCalls\");\nlet OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer {\n normalize(options) {\n let normalizedOptions = Object.assign({}, options);\n for (const normalizerRule of OptionsNormalizer_1.normalizerRules) {\n normalizedOptions = normalizerRule(normalizedOptions);\n }\n return normalizedOptions;\n }\n};\nOptionsNormalizer.normalizerRules = [\n ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule,\n DeadCodeInjectionRule_1.DeadCodeInjectionRule,\n DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule,\n DomainLockRule_1.DomainLockRule,\n InputFileNameRule_1.InputFileNameRule,\n SeedRule_1.SeedRule,\n SelfDefendingRule_1.SelfDefendingRule,\n SourceMapBaseUrlRule_1.SourceMapBaseUrlRule,\n SourceMapFileNameRule_1.SourceMapFileNameRule,\n SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule,\n StringArrayRule_1.StringArrayRule,\n StringArrayEncodingRule_1.StringArrayEncodingRule,\n StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule,\n];\nOptionsNormalizer = OptionsNormalizer_1 = __decorate([\n inversify_1.injectable()\n], OptionsNormalizer);\nexports.OptionsNormalizer = OptionsNormalizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationErrorsFormatter = void 0;\nclass ValidationErrorsFormatter {\n static format(errors) {\n return errors\n .reduce((errorMessages, error) => [\n ...errorMessages,\n ValidationErrorsFormatter.formatWithNestedConstraints(error)\n ], [])\n .join('\\n');\n }\n static formatWithNestedConstraints(error) {\n const constraints = error.constraints;\n if (!constraints) {\n return `\\`${error.property}\\` error\\n`;\n }\n const rootError = `\\`${error.property}\\` errors:\\n`;\n const nestedErrors = Object\n .keys(constraints)\n .map((constraint) => ` - ${constraints[constraint]}\\n`)\n .join();\n return `${rootError}${nestedErrors}`;\n }\n}\nexports.ValidationErrorsFormatter = ValidationErrorsFormatter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowFlatteningThresholdRule = void 0;\nconst ControlFlowFlatteningThresholdRule = (options) => {\n if (options.controlFlowFlatteningThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 });\n }\n return options;\n};\nexports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionRule = void 0;\nconst Default_1 = require(\"../presets/Default\");\nconst DeadCodeInjectionRule = (options) => {\n if (options.deadCodeInjection) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: true, stringArray: true });\n if (!options.stringArrayThreshold) {\n options = Object.assign(Object.assign({}, options), { stringArray: true, stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold });\n }\n }\n return options;\n};\nexports.DeadCodeInjectionRule = DeadCodeInjectionRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionThresholdRule = void 0;\nconst DeadCodeInjectionThresholdRule = (options) => {\n if (options.deadCodeInjectionThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 });\n }\n return options;\n};\nexports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockRule = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nconst DomainLockRule = (options) => {\n if (options.domainLock.length) {\n const normalizedDomains = [];\n for (const domain of options.domainLock) {\n normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));\n }\n options = Object.assign(Object.assign({}, options), { domainLock: normalizedDomains });\n }\n return options;\n};\nexports.DomainLockRule = DomainLockRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst InputFileNameRule = (options) => {\n let { inputFileName } = options;\n if (inputFileName) {\n inputFileName = inputFileName\n .replace(/^\\/+/, '')\n .split(StringSeparator_1.StringSeparator.Dot)\n .slice(0, -1)\n .join(StringSeparator_1.StringSeparator.Dot) || inputFileName;\n options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` });\n }\n return options;\n};\nexports.InputFileNameRule = InputFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeedRule = void 0;\nconst SeedRule = (options) => {\n if (options.seed) {\n return Object.assign(Object.assign({}, options), { seed: options.seed });\n }\n const getRandomInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n };\n return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) });\n};\nexports.SeedRule = SeedRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingRule = void 0;\nconst SelfDefendingRule = (options) => {\n if (options.selfDefending) {\n options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true });\n }\n return options;\n};\nexports.SelfDefendingRule = SelfDefendingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapBaseUrlRule = void 0;\nconst SourceMapBaseUrlRule = (options) => {\n const { sourceMapBaseUrl } = options;\n if (!options.sourceMapFileName) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' });\n return options;\n }\n if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${sourceMapBaseUrl}/` });\n }\n return options;\n};\nexports.SourceMapBaseUrlRule = SourceMapBaseUrlRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst SourceMapFileNameRule = (options) => {\n let { sourceMapFileName } = options;\n if (sourceMapFileName) {\n sourceMapFileName = sourceMapFileName\n .replace(/^\\/+/, '')\n .replace(/(?:\\.js)?(?:\\.map)?$/, '');\n let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot);\n const sourceMapFileNamePartsCount = sourceMapFileNameParts.length;\n const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];\n if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {\n sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);\n }\n sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot);\n options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${sourceMapFileName}.js.map` });\n }\n return options;\n};\nexports.SourceMapFileNameRule = SourceMapFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringsChunkLengthRule = void 0;\nconst SplitStringsChunkLengthRule = (options) => {\n if (options.splitStringsChunkLength === 0) {\n options = Object.assign(Object.assign({}, options), { splitStrings: false, splitStringsChunkLength: 0 });\n }\n else {\n options = Object.assign(Object.assign({}, options), { splitStringsChunkLength: Math.floor(options.splitStringsChunkLength) });\n }\n return options;\n};\nexports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncodingRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayEncodingRule = (options) => {\n if (!options.stringArrayEncoding.length) {\n options = Object.assign(Object.assign({}, options), { stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ] });\n }\n return options;\n};\nexports.StringArrayEncodingRule = StringArrayEncodingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayRule = (options) => {\n if (!options.stringArray) {\n options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ], stringArrayIndexShift: false, stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0, stringArrayThreshold: 0 });\n }\n return options;\n};\nexports.StringArrayRule = StringArrayRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersChainedCallsRule = void 0;\nconst StringArrayWrappersChainedCallsRule = (options) => {\n if (options.stringArrayWrappersCount === 0) {\n options = Object.assign(Object.assign({}, options), { stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0 });\n }\n return options;\n};\nexports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nexports.DEFAULT_PRESET = Object.freeze({\n compact: true,\n config: '',\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0.75,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0.4,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n optionsPreset: OptionsPreset_1.OptionsPreset.Default,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: true,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: true,\n simplify: true,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 10,\n stringArray: true,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: true,\n stringArrayWrappersChainedCalls: true,\n stringArrayWrappersCount: 1,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0.75,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HIGH_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MediumObfuscation_1 = require(\"./MediumObfuscation\");\nexports.HIGH_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET), { controlFlowFlatteningThreshold: 1, deadCodeInjectionThreshold: 1, debugProtection: true, debugProtectionInterval: true, optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation, splitStringsChunkLength: 5, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Rc4\n ], stringArrayWrappersCount: 5, stringArrayWrappersParametersMaxCount: 5, stringArrayThreshold: 1 }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LOW_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst Default_1 = require(\"./Default\");\nexports.LOW_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), { disableConsoleOutput: true, optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation, rotateStringArray: true, selfDefending: true, shuffleStringArray: true, simplify: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MEDIUM_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst LowObfuscation_1 = require(\"./LowObfuscation\");\nexports.MEDIUM_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, LowObfuscation_1.LOW_OBFUSCATION_PRESET), { controlFlowFlattening: true, deadCodeInjection: true, numbersToExpressions: true, optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation, splitStrings: true, splitStringsChunkLength: 10, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Base64\n ], stringArrayWrappersCount: 2, stringArrayWrappersParametersMaxCount: 4, stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function, transformObjectKeys: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_ADDITIONAL_NODES_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nexports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({\n compact: true,\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: false,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: false,\n simplify: false,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 0,\n stringArray: false,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: false,\n stringArrayWrappersChainedCalls: false,\n stringArrayWrappersCount: 0,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IsAllowedForObfuscationTargets = void 0;\nconst class_validator_1 = require(\"class-validator\");\nconst fast_deep_equal_1 = __importDefault(require(\"fast-deep-equal\"));\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst Default_1 = require(\"../presets/Default\");\nfunction IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) {\n return (optionsObject, propertyName) => {\n class_validator_1.registerDecorator({\n propertyName,\n constraints: [obfuscationTargets],\n name: 'IsAllowedForObfuscationTargets',\n options: validationOptions,\n target: optionsObject.constructor,\n validator: {\n validate(value, validationArguments) {\n const options = validationArguments.object;\n const defaultValue = Default_1.DEFAULT_PRESET[propertyName];\n const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);\n return isDefaultValue || obfuscationTargets.includes(options.target);\n },\n defaultMessage(validationArguments) {\n const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `);\n return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;\n }\n }\n });\n };\n}\nexports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatedCode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nlet ObfuscatedCode = class ObfuscatedCode {\n constructor(cryptUtils, options) {\n this.cryptUtils = cryptUtils;\n this.options = options;\n }\n initialize(obfuscatedCode, sourceMap) {\n this.obfuscatedCode = obfuscatedCode;\n this.sourceMap = sourceMap;\n }\n getObfuscatedCode() {\n return this.correctObfuscatedCode();\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.obfuscatedCode;\n }\n correctObfuscatedCode() {\n if (!this.sourceMap) {\n return this.obfuscatedCode;\n }\n const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;\n let sourceMappingUrl = '//# sourceMappingURL=';\n switch (this.options.sourceMapMode) {\n case SourceMapMode_1.SourceMapMode.Inline:\n sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;\n break;\n case SourceMapMode_1.SourceMapMode.Separate:\n default:\n if (!sourceMapUrl) {\n return this.obfuscatedCode;\n }\n sourceMappingUrl += sourceMapUrl;\n }\n return `${this.obfuscatedCode}\\n${sourceMappingUrl}`;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"obfuscatedCode\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"sourceMap\", void 0);\nObfuscatedCode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ObfuscatedCode);\nexports.ObfuscatedCode = ObfuscatedCode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceCode = void 0;\nclass SourceCode {\n constructor(sourceCode, sourceMap) {\n this.sourceCode = sourceCode;\n this.sourceMap = sourceMap;\n }\n getSourceCode() {\n return this.sourceCode;\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.sourceCode;\n }\n}\nexports.SourceCode = SourceCode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet ArrayStorage = class ArrayStorage {\n constructor(randomGenerator, options) {\n this.storageLength = 0;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = [];\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n delete(key) {\n var _a;\n const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined;\n if (deletedElement) {\n this.storageLength--;\n }\n return deletedElement;\n }\n get(key) {\n return this.storage[key];\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in array storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n const key = this.storage.indexOf(value);\n return key >= 0 ? key : null;\n }\n getLength() {\n return this.storageLength;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n mergeWith(storage, mergeId = false) {\n this.storage = [...this.storage, ...storage.getStorage()];\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n if (key === this.storageLength) {\n this.storage.push(value);\n }\n else {\n this.storage.splice(key, 0, value);\n }\n this.storageLength++;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], ArrayStorage.prototype, \"storage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ArrayStorage.prototype, \"storageId\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ArrayStorage.prototype, \"initialize\", null);\nArrayStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ArrayStorage);\nexports.ArrayStorage = ArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet MapStorage = class MapStorage {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = new Map();\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n get(key) {\n return this.storage.get(key);\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in map storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n for (const [key, storageValue] of this.storage) {\n if (value === storageValue) {\n return key;\n }\n }\n return null;\n }\n getLength() {\n return this.storage.size;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n has(key) {\n return this.storage.has(key);\n }\n mergeWith(storage, mergeId = false) {\n this.storage = new Map([...this.storage, ...storage.getStorage()]);\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n this.storage.set(key, value);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], MapStorage.prototype, \"storageId\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Map)\n], MapStorage.prototype, \"storage\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MapStorage.prototype, \"initialize\", null);\nMapStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], MapStorage);\nexports.MapStorage = MapStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CustomCodeHelperGroupStorage_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroupStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst CustomCodeHelperGroup_1 = require(\"../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage {\n constructor(customCodeHelperGroupFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;\n }\n initialize() {\n super.initialize();\n CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => {\n const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);\n this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);\n });\n }\n};\nCustomCodeHelperGroupStorage.customCodeHelperGroupsList = [\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray\n];\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], CustomCodeHelperGroupStorage.prototype, \"initialize\", null);\nCustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Function, Object, Object])\n], CustomCodeHelperGroupStorage);\nexports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nControlFlowStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], ControlFlowStorage);\nexports.ControlFlowStorage = ControlFlowStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LiteralNodesCacheStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n buildKey(literalValue, stringArrayStorageItemData) {\n return `${literalValue}-${Boolean(stringArrayStorageItemData)}`;\n }\n shouldUseCachedValue(key, stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4\n && this.storage.has(key);\n }\n};\nLiteralNodesCacheStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], LiteralNodesCacheStorage);\nexports.LiteralNodesCacheStorage = LiteralNodesCacheStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperLexicalScopeDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], StringArrayScopeCallsWrapperLexicalScopeDataStorage);\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperNamesDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperNamesDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], StringArrayScopeCallsWrapperNamesDataStorage);\nexports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorage_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage {\n constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtilsSwappedAlphabet) {\n super(randomGenerator, options);\n this.rc4EncodedValuesSourcesCache = new Map();\n this.indexShiftAmount = 0;\n this.rotationAmount = 0;\n this.stringArrayStorageCallsWrapperNamesMap = new Map();\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.arrayUtils = arrayUtils;\n this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet;\n this.rc4Keys = this.randomGenerator.getRandomGenerator()\n .n(() => this.randomGenerator.getRandomGenerator().string({\n length: StringArrayStorage_1.rc4KeyLength\n }), StringArrayStorage_1.rc4KeysCount);\n }\n initialize() {\n super.initialize();\n this.indexShiftAmount = this.options.stringArrayIndexShift\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount)\n : 0;\n this.rotationAmount = this.options.rotateStringArray\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount)\n : 0;\n }\n get(value) {\n return this.getOrSetIfDoesNotExist(value);\n }\n getIndexShiftAmount() {\n return this.indexShiftAmount;\n }\n getRotationAmount() {\n return this.rotationAmount;\n }\n getStorageName() {\n return this.getStorageId();\n }\n getStorageId() {\n if (!this.stringArrayStorageName) {\n this.stringArrayStorageName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n }\n return this.stringArrayStorageName;\n }\n getStorageCallsWrapperName(stringArrayEncoding) {\n var _a;\n const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap\n .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null;\n if (storageCallsWrapperName) {\n return storageCallsWrapperName;\n }\n const newStorageCallsWrapperName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName);\n return newStorageCallsWrapperName;\n }\n rotateStorage() {\n if (!this.getLength()) {\n return;\n }\n this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount));\n }\n shuffleStorage() {\n this.storage = new Map(this.arrayUtils\n .shuffle(Array.from(this.storage.entries()))\n .map(([value, stringArrayStorageItemData], index) => {\n stringArrayStorageItemData.index = index;\n return [value, stringArrayStorageItemData];\n })\n .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index));\n }\n getOrSetIfDoesNotExist(value) {\n const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value);\n const storedStringArrayStorageItemData = this.storage.get(encodedValue);\n if (storedStringArrayStorageItemData) {\n return storedStringArrayStorageItemData;\n }\n const stringArrayStorageItemData = {\n encodedValue,\n encoding,\n decodeKey,\n value,\n index: this.getLength()\n };\n this.storage.set(encodedValue, stringArrayStorageItemData);\n return stringArrayStorageItemData;\n }\n getEncodedValue(value) {\n var _a;\n const encoding = this.options.stringArrayEncoding.length\n ? this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayEncoding)\n : null;\n if (!encoding) {\n throw new Error('`stringArrayEncoding` option array is empty');\n }\n switch (encoding) {\n case StringArrayEncoding_1.StringArrayEncoding.Rc4: {\n const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(value, decodeKey));\n const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : [];\n let encodedValueSourcesLength = encodedValueSources.length;\n const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value);\n if (shouldAddValueToSourcesCache) {\n encodedValueSources.push(value);\n encodedValueSourcesLength++;\n }\n this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);\n if (encodedValueSourcesLength > 1) {\n return this.getEncodedValue(value);\n }\n return { encodedValue, encoding, decodeKey };\n }\n case StringArrayEncoding_1.StringArrayEncoding.Base64: {\n const decodeKey = null;\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(value);\n return { encodedValue, encoding, decodeKey };\n }\n default: {\n const decodeKey = null;\n const encodedValue = value;\n return { encodedValue, encoding, decodeKey };\n }\n }\n }\n};\nStringArrayStorage.minimumRotationAmount = 100;\nStringArrayStorage.maximumRotationAmount = 500;\nStringArrayStorage.minimumIndexShiftAmount = 100;\nStringArrayStorage.maximumIndexShiftAmount = 500;\nStringArrayStorage.rc4KeyLength = 4;\nStringArrayStorage.rc4KeysCount = 50;\nStringArrayStorage.stringArrayNameLength = 4;\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], StringArrayStorage.prototype, \"initialize\", null);\nStringArrayStorage = StringArrayStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),\n __metadata(\"design:paramtypes\", [Function, Object, Object, Object, Object])\n], StringArrayStorage);\nexports.StringArrayStorage = StringArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitedLexicalScopeNodesStackStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst ArrayStorage_1 = require(\"../ArrayStorage\");\nlet VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n getLastElement() {\n return this.arrayUtils.getLastElement(this.getStorage());\n }\n getPenultimateElement() {\n var _a;\n const storageLength = this.getLength();\n return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined;\n }\n push(nodeWithLexicalScopeStatements) {\n const storageLength = this.getLength();\n this.set(storageLength, nodeWithLexicalScopeStatements);\n }\n pop() {\n const storageLength = this.getLength();\n return this.delete(storageLength - 1);\n }\n};\nVisitedLexicalScopeNodesStackStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [Object, Object, Object])\n], VisitedLexicalScopeNodesStackStorage);\nexports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder {\n constructor(levelledTopologicalSorter) {\n this.levelledTopologicalSorter = levelledTopologicalSorter;\n }\n build(normalizedTransformers) {\n const transformerNames = Object.keys(normalizedTransformers);\n const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers);\n for (const [precedent, consequent] of relationEdges) {\n this.levelledTopologicalSorter.add(precedent, consequent);\n }\n return this.levelledTopologicalSorter.sortByGroups();\n }\n buildTransformersRelationEdges(transformerNames, normalizedTransformers) {\n const relationEdges = [];\n for (const transformerName of transformerNames) {\n const transformer = normalizedTransformers[transformerName];\n const runAfterRelations = transformer.runAfter;\n if (!runAfterRelations || !runAfterRelations.length) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n for (const runAfterRelation of runAfterRelations) {\n const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined;\n if (isUnknownRelation) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n relationEdges.push([runAfterRelation, transformerName]);\n }\n }\n return relationEdges;\n }\n};\nAbstractTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)),\n __metadata(\"design:paramtypes\", [Object])\n], AbstractTransformerNamesGroupsBuilder);\nexports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nlet ArrayUtils = class ArrayUtils {\n constructor(randomGenerator) {\n this.randomGenerator = randomGenerator;\n }\n createWithRange(length) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(i);\n }\n return range;\n }\n fillWithRange(length, valueFunction) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(valueFunction(i));\n }\n return range;\n }\n findMostOccurringElement(array) {\n var _a;\n const arrayLength = array.length;\n if (!arrayLength) {\n return null;\n }\n const elementsMap = {};\n let mostOccurringElement = array[0];\n let mostOccurringElementCount = 1;\n for (const element of array) {\n const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0;\n const updatedElementCount = currentElementCount + 1;\n if (updatedElementCount > mostOccurringElementCount) {\n mostOccurringElement = element;\n mostOccurringElementCount = updatedElementCount;\n }\n elementsMap[element] = updatedElementCount;\n }\n return mostOccurringElement;\n }\n getLastElement(array) {\n var _a;\n const arrayLength = array.length;\n return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined;\n }\n rotate(array, times) {\n if (!array.length) {\n throw new ReferenceError('Cannot rotate empty array.');\n }\n if (times <= 0) {\n return array;\n }\n const newArray = array;\n let temp;\n while (times--) {\n temp = newArray.pop();\n if (temp) {\n newArray.unshift(temp);\n }\n }\n return newArray;\n }\n shuffle(array) {\n const shuffledArray = [...array];\n for (let i = shuffledArray.length; i; i--) {\n const j = Math.floor(this.randomGenerator.getMathRandom() * i);\n [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];\n }\n return shuffledArray;\n }\n};\nArrayUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [Object])\n], ArrayUtils);\nexports.ArrayUtils = ArrayUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst Base64Alphabet_1 = require(\"../constants/Base64Alphabet\");\nconst RandomGenerator_1 = require(\"./RandomGenerator\");\nconst Utils_1 = require(\"./Utils\");\nlet CryptUtils = class CryptUtils {\n constructor(randomGenerator) {\n this.base64Alphabet = Base64Alphabet_1.base64alphabet;\n this.randomGenerator = randomGenerator;\n }\n btoa(string) {\n const chars = this.base64Alphabet;\n let output = '';\n string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16));\n });\n for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {\n charCode = string.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new Error('\\'btoa\\' failed: The string to be encoded contains characters outside of the Latin1 range.');\n }\n block = block << 8 | charCode;\n }\n return output;\n }\n hideString(str, length) {\n const escapeRegExp = (s) => s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const randomMerge = (s1, s2) => {\n let i1 = -1;\n let i2 = -1;\n let result = '';\n while (i1 < s1.length || i2 < s2.length) {\n if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {\n result += s2.charAt(++i2);\n }\n else {\n result += s1.charAt(++i1);\n }\n }\n return result;\n };\n const randomString = this.randomGenerator.getRandomGenerator().string({\n length: length,\n pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool\n });\n let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), '');\n const randomStringDiffArray = randomStringDiff.split('');\n this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);\n randomStringDiff = randomStringDiffArray.join('');\n return [randomMerge(str, randomStringDiff), randomStringDiff];\n }\n rc4(string, key) {\n const s = [];\n let j = 0;\n let x;\n let result = '';\n for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n i = 0;\n j = 0;\n for (let y = 0; y < string.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n return result;\n }\n};\nCryptUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [Object])\n], CryptUtils);\nexports.CryptUtils = CryptUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtilsSwappedAlphabet = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst Base64AlphabetSwapped_1 = require(\"../constants/Base64AlphabetSwapped\");\nconst CryptUtils_1 = require(\"./CryptUtils\");\nlet CryptUtilsSwappedAlphabet = class CryptUtilsSwappedAlphabet extends CryptUtils_1.CryptUtils {\n constructor(randomGenerator) {\n super(randomGenerator);\n this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped;\n }\n};\nCryptUtilsSwappedAlphabet = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [Object])\n], CryptUtilsSwappedAlphabet);\nexports.CryptUtilsSwappedAlphabet = CryptUtilsSwappedAlphabet;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EscapeSequenceEncoder_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceEncoder = void 0;\nconst inversify_1 = require(\"inversify\");\nlet EscapeSequenceEncoder = EscapeSequenceEncoder_1 = class EscapeSequenceEncoder {\n constructor() {\n this.stringsCache = new Map();\n }\n encode(string, encodeAllSymbols) {\n const cacheKey = `${string}-${String(encodeAllSymbols)}`;\n if (this.stringsCache.has(cacheKey)) {\n return this.stringsCache.get(cacheKey);\n }\n const radix = 16;\n const replaceRegExp = new RegExp('[\\\\s\\\\S]', 'g');\n let prefix;\n let template;\n const result = string.replace(replaceRegExp, (character) => {\n const shouldEncodeCharacter = encodeAllSymbols\n || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character);\n if (!shouldEncodeCharacter) {\n return character;\n }\n if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(character)) {\n prefix = '\\\\x';\n template = '00';\n }\n else {\n prefix = '\\\\u';\n template = '0000';\n }\n return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;\n });\n this.stringsCache.set(cacheKey, result);\n this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);\n return result;\n }\n};\nEscapeSequenceEncoder.ASCIICharactersRegExp = /[\\x00-\\x7F]/;\nEscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\\x00-\\x1F\\x7F-\\x9F'\"\\\\\\s]/;\nEscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([\n inversify_1.injectable()\n], EscapeSequenceEncoder);\nexports.EscapeSequenceEncoder = EscapeSequenceEncoder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelledTopologicalSorter = void 0;\nconst inversify_1 = require(\"inversify\");\nlet LevelledTopologicalSorter = class LevelledTopologicalSorter {\n constructor() {\n this.graph = new Map();\n }\n add(precedent, consequent = null) {\n if (consequent !== null) {\n return this.link(precedent, consequent);\n }\n return this.register(precedent);\n }\n sort() {\n const consequents = Array.from(this.graph.keys());\n const results = [];\n const marks = {};\n for (const consequent of consequents) {\n if (marks[consequent] !== undefined) {\n continue;\n }\n this.visit(results, marks, consequent);\n }\n return results;\n }\n sortByGroups() {\n this.sort();\n const resultItemsGroups = [];\n while (this.hasNodes()) {\n const rootNodes = this.findRootNodes();\n resultItemsGroups.push(rootNodes);\n for (const rootNode of rootNodes) {\n this.delete(rootNode);\n }\n }\n return resultItemsGroups;\n }\n delete(consequent) {\n const precedents = this.getPrecedents(consequent);\n if (precedents.length) {\n throw new Error(`Unable to remove non-root node: ${consequent}`);\n }\n this.graph.delete(consequent);\n const precedentsGroups = Array.from(this.graph.values());\n for (const precedentsGroup of precedentsGroups) {\n const precedentsCount = precedentsGroup.length - 1;\n for (let index = precedentsCount; index >= 0; index = index - 1) {\n if (precedentsGroup[index] !== consequent) {\n continue;\n }\n precedentsGroup.splice(index, 1);\n }\n }\n }\n findRootNodes() {\n const consequents = Array.from(this.graph.keys());\n const rootNodes = [];\n for (const consequent of consequents) {\n if (!this.hasPrecedents(consequent)) {\n rootNodes.push(consequent);\n }\n }\n return rootNodes;\n }\n getPrecedents(consequent) {\n const precedents = this.graph.get(consequent);\n if (!precedents) {\n throw new Error(`Unknown node: ${consequent}`);\n }\n return precedents;\n }\n hasNodes() {\n return this.graph.size > 0;\n }\n hasPrecedents(consequent) {\n return this.getPrecedents(consequent).length > 0;\n }\n link(precedent, consequent) {\n this.register(precedent);\n this.register(consequent);\n const target = this.graph.get(consequent);\n if (target && !target.includes(precedent)) {\n target.push(precedent);\n }\n return this;\n }\n register(name) {\n if (!this.graph.has(name)) {\n this.graph.set(name, []);\n }\n return this;\n }\n visit(results, marks, name) {\n const mark = marks[name];\n if (mark === 'visiting') {\n throw new Error(`Detected cycle involving node: ${name}`);\n }\n if (mark) {\n return;\n }\n marks[name] = 'visiting';\n const precedents = this.getPrecedents(name);\n for (const precedent of precedents) {\n this.visit(results, marks, precedent);\n }\n marks[name] = 'ok';\n results.push(name);\n return;\n }\n};\nLevelledTopologicalSorter = __decorate([\n inversify_1.injectable()\n], LevelledTopologicalSorter);\nexports.LevelledTopologicalSorter = LevelledTopologicalSorter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberUtils = void 0;\nconst Utils_1 = require(\"./Utils\");\nclass NumberUtils {\n static toHex(number) {\n const radix = 16;\n const basePart = typeof number === 'number'\n ? number.toString(radix)\n : `${number.toString(radix)}n`;\n return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`;\n }\n static isCeil(number) {\n return typeof number === 'number'\n ? number % 1 === 0\n : true;\n }\n static isPositive(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (number > 0) {\n return true;\n }\n if (number < 0) {\n return false;\n }\n if (1 / number === Number.POSITIVE_INFINITY) {\n return true;\n }\n return false;\n }\n static isUnsafeNumber(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER;\n }\n static getFactors(number) {\n if (number === 0) {\n throw new Error('Invalid number. Allowed only non-zero number');\n }\n number = Math.abs(number);\n if (number === 1) {\n return [-number, number];\n }\n const factors = [];\n const root = Math.sqrt(number);\n const isEven = number % 2 === 0;\n const incrementValue = isEven ? 1 : 2;\n for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) {\n if (number % currentFactor !== 0) {\n continue;\n }\n factors.push(...[-currentFactor, currentFactor]);\n const compliment = number / currentFactor;\n if (compliment !== currentFactor) {\n factors.push(...[-compliment, compliment]);\n }\n }\n return factors.sort((a, b) => a - b);\n }\n}\nexports.NumberUtils = NumberUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar RandomGenerator_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RandomGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst md5_1 = __importDefault(require(\"md5\"));\nconst chance_1 = require(\"chance\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst AlphabetString_1 = require(\"../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../constants/AlphabetStringUppercase\");\nlet RandomGenerator = RandomGenerator_1 = class RandomGenerator {\n constructor(sourceCode, options) {\n this.sourceCode = sourceCode;\n this.options = options;\n }\n initialize() {\n this.randomGenerator = new chance_1.Chance(this.getRawSeed());\n }\n getMathRandom() {\n return this.getRandomInteger(0, 99999) / 100000;\n }\n getRandomGenerator() {\n return this.randomGenerator;\n }\n getRandomInteger(min, max) {\n return this.getRandomGenerator().integer({\n min: min,\n max: max\n });\n }\n getRandomIntegerExcluding(min, max, valuesToExclude) {\n const valuesToPickArray = [];\n for (let value = min; value <= max; value++) {\n if (valuesToExclude.includes(value)) {\n continue;\n }\n valuesToPickArray.push(value);\n }\n return this.randomGenerator.pickone(valuesToPickArray);\n }\n getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) {\n return this.getRandomGenerator().string({ length, pool });\n }\n getInputSeed() {\n return this.options.seed.toString();\n }\n getRawSeed() {\n const inputSeed = this.getInputSeed();\n const inputSeedParts = `${inputSeed}`.split('|');\n if (inputSeedParts.length > 1) {\n return inputSeed;\n }\n const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode());\n return `${inputSeed}|${sourceCodeMD5Hash}`;\n }\n};\nRandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`;\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], RandomGenerator.prototype, \"randomGenerator\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], RandomGenerator.prototype, \"initialize\", null);\nRandomGenerator = RandomGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [Object, Object])\n], RandomGenerator);\nexports.RandomGenerator = RandomGenerator;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringUtils = void 0;\nconst js_string_escape_1 = __importDefault(require(\"js-string-escape\"));\nclass StringUtils {\n static escapeJsString(string) {\n return js_string_escape_1.default(string);\n }\n}\nexports.StringUtils = StringUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utils = void 0;\nclass Utils {\n static buildVersionMessage(version, buildTimestamp) {\n if (!version || !buildTimestamp) {\n return 'unknown';\n }\n const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString();\n return `${version}_${buildDate}`;\n }\n static extractDomainFrom(url) {\n let domain;\n if (url.includes('://') || url.indexOf('//') === 0) {\n domain = url.split('/')[2];\n }\n else {\n domain = url.split('/')[0];\n }\n domain = domain.split(':')[0];\n return domain;\n }\n static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) {\n const baseIdentifiersPrefix = !!identifiersPrefix\n ? identifiersPrefix\n : Utils.baseMultipleSourcesIdentifiersPrefix;\n return `${baseIdentifiersPrefix}${sourceCodeIndex}`;\n }\n static makeEnum(enumLikeObject) {\n return Object.freeze(Object.assign({}, enumLikeObject));\n }\n}\nexports.Utils = Utils;\nUtils.baseMultipleSourcesIdentifiersPrefix = 'a';\nUtils.hexadecimalPrefix = '0x';\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nisSharedArrayBufferToString.working = (\n typeof SharedArrayBuffer !== 'undefined' &&\n isSharedArrayBufferToString(new SharedArrayBuffer())\n);\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBuffer === 'undefined') {\n return false;\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBuffer;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\n\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\n\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\n\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\n\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\n\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\n\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\n\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\n\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\n\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\n\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\n\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\n\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\n\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\n\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\n\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\n\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\n\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\n\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\n\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\n\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\n\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\n\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\n\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\n\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\n\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\n\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\n\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\n\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\n\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\n\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\n\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\n\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\n\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\n\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\n\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\n\nvar _isIBAN = _interopRequireDefault(require(\"./lib/isIBAN\"));\n\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\n\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\n\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\n\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\n\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\n\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\n\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\n\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\n\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\n\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\n\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\n\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\n\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\n\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\n\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\n\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\n\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\n\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\n\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\n\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\n\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\n\nvar _isISO = _interopRequireDefault(require(\"./lib/isISO8601\"));\n\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\n\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\n\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\n\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\n\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase64\"));\n\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\n\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\n\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\n\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\n\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\n\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\n\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\n\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\n\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\n\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\n\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\n\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\n\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\n\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = '13.0.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO8601: _isISO.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isBase32: _isBase.default,\n isBase64: _isBase2.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default\n};\nvar _default = validator;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n 'fa-IR': /^['آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی']+$/i\n};\nexports.alpha = alpha;\nvar alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n 'fa-IR': /^['0-9آابپتثجچهخدذرزژسشصضطظعغفقکگلمنوهی۱۲۳۴۵۶۷۸۹۰']+$/i\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-FR', 'it-IT', 'ku-IQ', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i2 = 0; _i2 < dotDecimal.length; _i2++) {\n decimal[dotDecimal[_i2]] = decimal['en-US'];\n}\n\nfor (var _i3 = 0; _i3 < commaDecimal.length; _i3++) {\n decimal[commaDecimal[_i3]] = ',';\n}\n\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction contains(str, elem) {\n (0, _assertString.default)(str);\n return str.indexOf((0, _toString.default)(elem)) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#x27;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\\//g, '&#x2F;').replace(/\\\\/g, '&#x5C;').replace(/`/g, '&#96;');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAfter(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original > comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlpha(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlphanumeric(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isBICReg = /^[A-z]{4}[A-z]{2}\\w{2}(\\w{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\n\nfunction isBase32(str) {\n (0, _assertString.default)(str);\n var len = str.length;\n\n if (len > 0 && len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\n\nfunction isBase64(str) {\n (0, _assertString.default)(str);\n var len = str.length;\n\n if (!len || len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBoolean(str) {\n (0, _assertString.default)(str);\n return ['true', 'false', '1', '0'].indexOf(str) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// supports Bech32 addresses\nvar btc = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return btc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\\\\\".concat(options.symbol.replace(/\\./g, '\\\\.'), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n } // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\n\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\n\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.substr(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.substr(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n\n for (var i = 0; i < attributes.length; i++) {\n if (i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') {// ok\n } else if (!validAttribute.test(attributes[i])) {\n return false;\n }\n }\n\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13\n * and Regular Expression for valid EANs (EAN-8, EAN-13),\n * with exact numberic matching of 8 or 13 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar validEanRegex = /^(\\d{8}|\\d{13})$/;\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\n}\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\n\n\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)<(.+)>$/i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\nfunction validateDisplayName(display_name) {\n var trim_quotes = display_name.match(/^\"(.+)\"$/i);\n var display_name_without_quotes = trim_quotes ? trim_quotes[1] : display_name; // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (!trim_quotes) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name;\n\n var _display_email = _slicedToArray(display_email, 3);\n\n display_name = _display_email[1];\n str = _display_email[2];\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n })) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i2 = 0; _i2 < user_parts.length; _i2++) {\n if (!pattern.test(user_parts[_i2])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\n\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n\n for (var i = 0; i < parts.length; i++) {\n if (parts[i].length > 63) {\n return false;\n }\n }\n\n if (options.require_tld) {\n var tld = parts.pop();\n\n if (!parts.length || !/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20]/.test(tld)) {\n return false;\n }\n }\n\n for (var part, _i = 0; _i < parts.length; _i++) {\n part = parts[_i];\n\n if (options.allow_underscores) {\n part = part.replace(/_/g, '');\n }\n\n if (!/^[a-z\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n if (part[0] === '-' || part[part.length - 1] === '-') {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n\n if (str === '' || str === '.' || str === '-' || str === '+') {\n return false;\n }\n\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hslcomma = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s*)(\\s*,\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(,\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\nvar hslspace = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s)(\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(\\/\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n return hslcomma.test(str) || hslspace.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\n\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\nvar ipv6Block = /^[0-9A-F]{1,4}$/i;\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var addressAndZone = [str]; // ipv6 addresses could have scoped architecture\n // according to https://tools.ietf.org/html/rfc4007#section-11\n\n if (str.includes('%')) {\n addressAndZone = str.split('%');\n\n if (addressAndZone.length !== 2) {\n // it must be just two parts\n return false;\n }\n\n if (!addressAndZone[0].includes(':')) {\n // the first part must be the address\n return false;\n }\n\n if (addressAndZone[1] === '') {\n // the second part must not be empty\n return false;\n }\n }\n\n var blocks = addressAndZone[0].split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) {// it has been checked before that the last\n // block is a valid IPv4 address\n } else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n\n return blocks.length === expectedNumberOfBlocks;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar subnetMaybe = /^\\d{1,2}$/;\n\nfunction isIPRange(str) {\n (0, _assertString.default)(str);\n var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet\n\n if (parts.length !== 2) {\n return false;\n }\n\n if (!subnetMaybe.test(parts[1])) {\n return false;\n } // Disallow preceding 0 i.e. 01, 02, ...\n\n\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n\n return (0, _isIP.default)(parts[0], 4) && parts[1] <= 32 && parts[1] >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar isbn13Maybe = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isISBN(str, 10) || isISBN(str, 13);\n }\n\n var sanitized = str.replace(/[\\s-]+/g, '');\n var checksum = 0;\n var i;\n\n if (version === '10') {\n if (!isbn10Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 9; i++) {\n checksum += (i + 1) * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitized.charAt(9);\n }\n\n if (checksum % 11 === 0) {\n return !!sanitized;\n }\n } else if (version === '13') {\n if (!isbn13Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 12; i++) {\n checksum += factor[i % 2] * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return !!sanitized;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n\n if (!isin.test(str)) {\n return false;\n }\n\n var checksumStr = str.replace(/[A-Z]/g, function (character) {\n return parseInt(character, 36);\n });\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble = true;\n\n for (var i = checksumStr.length - 2; i >= 0; i--) {\n digit = checksumStr.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return parseInt(str.substr(str.length - 1), 10) === (10000 - sum) % 10;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'];\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha2CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = ['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE'];\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha3CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\n\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\n\nfunction isISO8601(str, options) {\n (0, _assertString.default)(str);\n var check = iso8601.test(str);\n if (!options) return check;\n if (check && options.strict) return isValidDate(str);\n return check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n\n return sum % 10 === 0;\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction isJSON(str) {\n (0, _assertString.default)(str);\n\n try {\n var obj = JSON.parse(str);\n return !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar jwt = /^([A-Za-z0-9\\-_~+\\/]+[=]{0,2})\\.([A-Za-z0-9\\-_~+\\/]+[=]{0,2})(?:\\.([A-Za-z0-9\\-_~+\\/]+[=]{0,2}))?$/;\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n return jwt.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\n\nfunction _default(str) {\n (0, _assertString.default)(str);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-z]{2,4}([_-]([A-z]{4}|[\\d]{3}))?([_-]([A-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressNoColons = /^([0-9a-fA-F]){12}$/;\nvar macAddressWithHyphen = /^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithSpaces = /^([0-9a-fA-F][0-9a-fA-F]\\s){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithDots = /^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_colons) {\n return macAddressNoColons.test(str);\n }\n\n return macAddress.test(str) || macAddressWithHyphen.test(str) || macAddressWithSpaces.test(str) || macAddressWithDots.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar md5 = /^[a-f0-9]{32}$/;\n\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar magnetURI = /^magnet:\\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n return magnetURI.test(url.trim());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+]{1,100}$/i; // eslint-disable-line max-len\n// Handle \"charset\" in \"text/*\"\n\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n// Handle \"boundary\" in \"multipart/*\"\n\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)[569]\\d{7}$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^(\\+49)?0?1(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'el-GR': /^(\\+?30|0)?(69\\d{8})$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28)\\d{7}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PK': /^((\\+92)|(0092))-{0,1}\\d{3}-{0,1}\\d{7}$|^\\d{11}$|^\\d{4}-\\d{7}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[89]\\d{7}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?(6\\d{1}|7[1234])\\d{7}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4(0|1|2|4|5|6)?|50)\\s?(\\d\\s?){4,8}\\d$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36)(20|30|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'ms-MY': /^(\\+?6?01){1}(([0145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4?\\d{8}$/,\n 'nl-NL': /^(\\+?31|0)6?\\d{8}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /(?=^(\\+?5{2}\\-?|0)[1-9]{2}\\-?\\d{4}\\-?\\d{4}$)(^(\\+?5{2}\\-?|0)[1-9]{2}\\-?[6-9]{1}\\d{3}\\-?\\d{4}$)|(^(\\+?5{2}\\-?|0)[1-9]{2}\\-?9[6-9]{1}\\d{3}\\-?\\d{4}$)/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'ro-RO': /^(\\+?4?0)\\s?7\\d{2}(\\/|\\s|\\.|\\-)?\\d{3}(\\s|\\.|\\-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'vi-VN': /^(\\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?1([358][0-9]|4[579]|6[67]|7[01235678]|9[189])[0-9]{8}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/\n};\n/* eslint-enable max-len */\n// aliases\n\nphones['en-CA'] = phones['en-US'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numeric = /^[+-]?([0-9]*[.])?[0-9]+$/;\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return numeric.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^[GE]\\d{8}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n MT: /^\\d{7}$/,\n // MALTA\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n PO: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVANIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/ // UNITED STATES\n\n};\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\n\nfunction isPassportNumber(str, countryCode) {\n /** Remove All Whitespaces, Convert to UPPERCASE */\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: fiveDigit,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: fiveDigit,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n NL: /^\\d{4}\\s?[a-z]{2}$/i,\n NO: fourDigit,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = Object.keys(patterns);\nexports.locales = locales;\n\nfunction _default(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))', '?(?:\\\\+([0-9a-zA-Z-]+(?:\\\\.[0-9a-zA-Z-]+)*))?$']);\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar charsetRegex = /^[^-_](?!.*?[-_]{2,})([a-z0-9\\\\-]{1,}).*[^-_]$/;\n\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || url.length >= 2083 || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {\n return false;\n }\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uuid = {\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nfunction isUUID(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n (0, _assertString.default)(str);\n var pattern = uuid[version];\n return pattern && pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n}; // List of domains used by iCloud\n\nvar icloud_domains = ['icloud.com', 'me.com']; // List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\n\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com']; // List of domains used by Yahoo Mail\n// This list is likely incomplete\n\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com']; // List of domains used by yandex.ru\n\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru']; // replace single dots, but not multiple consecutive dots\n\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n\n return '';\n}\n\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain]; // The domain is always lowercased, as it's case-insensitive per RFC 1035\n\n parts[1] = parts[1].toLowerCase();\n\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preffered\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n\n return parts.join('@');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n\n var pattern = chars ? new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g') : /\\s+$/g;\n return str.replace(pattern, '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\n\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&amp;/g, '&').replace(/&quot;/g, '\"').replace(/&#x27;/g, \"'\").replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&#x2F;/g, '/').replace(/&#x5C;/g, '\\\\').replace(/&#96;/g, '`');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType;\n\n if (input === null) {\n invalidType = 'null';\n } else {\n invalidType = _typeof(input);\n\n if (invalidType === 'object' && input.constructor && input.constructor.hasOwnProperty('name')) {\n invalidType = input.constructor.name;\n } else {\n invalidType = \"a \".concat(invalidType);\n }\n }\n\n throw new TypeError(\"Expected string but received \".concat(invalidType, \".\"));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts) {\n var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","'use strict';\n\nvar forEach = require('foreach');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('es-abstract/helpers/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasSymbols = require('has-symbols')();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\n\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof global[typedArray] === 'function') {\n\t\t\tvar arr = new global[typedArray]();\n\t\t\tif (!(Symbol.toStringTag in arr)) {\n\t\t\t\tthrow new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n\t\t\t}\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined;\n\nvar $TypeError = TypeError;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%ArrayPrototype%': Array.prototype,\n\t'%ArrayProto_entries%': Array.prototype.entries,\n\t'%ArrayProto_forEach%': Array.prototype.forEach,\n\t'%ArrayProto_keys%': Array.prototype.keys,\n\t'%ArrayProto_values%': Array.prototype.values,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': asyncFunction,\n\t'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%Boolean%': Boolean,\n\t'%BooleanPrototype%': Boolean.prototype,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'%Date%': Date,\n\t'%DatePrototype%': Date.prototype,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%ErrorPrototype%': Error.prototype,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%EvalErrorPrototype%': EvalError.prototype,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'%Function%': Function,\n\t'%FunctionPrototype%': Function.prototype,\n\t'%Generator%': generator ? getProto(generator()) : undefined,\n\t'%GeneratorFunction%': generatorFunction,\n\t'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%NumberPrototype%': Number.prototype,\n\t'%Object%': Object,\n\t'%ObjectPrototype%': Object.prototype,\n\t'%ObjProto_toString%': Object.prototype.toString,\n\t'%ObjProto_valueOf%': Object.prototype.valueOf,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%RangeErrorPrototype%': RangeError.prototype,\n\t'%ReferenceError%': ReferenceError,\n\t'%ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%RegExpPrototype%': RegExp.prototype,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%StringPrototype%': String.prototype,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'%SyntaxError%': SyntaxError,\n\t'%SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'%TypeError%': $TypeError,\n\t'%TypeErrorPrototype%': $TypeError.prototype,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'%URIError%': URIError,\n\t'%URIErrorPrototype%': URIError.prototype,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = require('function-bind');\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tif (!(name in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\n\treturn INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\n\tvar value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\tfor (var i = 1; i < parts.length; i += 1) {\n\t\tif (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, parts[i]);\n\t\t\t\tif (!allowMissing && !(parts[i] in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tvalue = desc && 'get' in desc && !('originalValue' in desc.get) ? desc.get : value[parts[i]];\n\t\t\t} else {\n\t\t\t\tvalue = value[parts[i]];\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind() {\n\treturn $reflectApply(bind, $call, arguments);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar callBind = require('./callBind');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(8492);\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};"],"sourceRoot":""} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.cli.js b/src/node_modules/javascript-obfuscator/dist/index.cli.js
new file mode 100644
index 0000000..19c60f2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.cli.js
@@ -0,0 +1,3 @@
+/*! For license information please see index.cli.js.LICENSE.txt */
+require("source-map-support").install(),module.exports=(()=>{var e={7568:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=r(8206);e.exports=o.JavaScriptObfuscatorCLI},425:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ASTParserFacade=void 0;const s=i(r(6054)),c=a(r(2242));class l{static parse(e,t){const r=l.sourceTypes.length;for(let o=0;o<r;o++)try{return l.parseType(e,t,l.sourceTypes[o])}catch(t){if(o<r-1)continue;throw new Error(l.processParsingError(e,t.message,t.loc))}throw new Error("Acorn parsing error")}static parseType(e,t,r){const o=[],n=Object.assign(Object.assign({},t),{onComment:o,sourceType:r}),i=s.parse(e,n);return o.length&&(i.comments=o),i}static processParsingError(e,t,r){if(!r||!r.line||!r.column)throw new Error(t);const o=e.split(/\r?\n/)[r.line-1];if(!o)throw new Error(t);const n=Math.max(0,r.column-l.nearestSymbolsCount),i=Math.min(o.length,r.column+l.nearestSymbolsCount),a=l.colorError(">"),s=`...${o.slice(n,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=l,l.colorError=c.default.red,l.nearestSymbolsCount=15,l.sourceTypes=["script","module"]},7086:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&d(t,e,r);return u(t,e),t},m=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},g=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0;const S=r(2991),y=r(5350),h=f(r(9385)),N=r(2596),_=r(7673),b=r(5082),O=r(4482),I=r(1403),E=r(698),v=r(7082),C=r(5670),T=r(6221),R=r(4212),A=r(8932),j=r(4941),M=r(425),F=r(4134),P=r(4741);let D=o=class{constructor(e,t,r,o,n,i){this.codeTransformersRunner=e,this.nodeTransformersRunner=t,this.randomGenerator=r,this.obfuscatedCodeFactory=o,this.logger=n,this.options=i}obfuscate(e){"string"!=typeof e&&(e="");const t=Date.now();this.logger.info(T.LoggingMessage.Version,P.Utils.buildVersionMessage("2.9.4",1606121270168)),this.logger.info(T.LoggingMessage.ObfuscationStarted),this.logger.info(T.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,C.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),o=this.transformAstTree(r),n=this.generateCode(e,o);n.code=this.runCodeTransformationStage(n.code,C.CodeTransformationStage.FinalizingTransformers);const i=(Date.now()-t)/1e3;return this.logger.success(T.LoggingMessage.ObfuscationCompleted,i),this.getObfuscatedCode(n)}parseCode(e){return M.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Initializing),!F.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameIdentifiers),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.StringArray),this.options.simplify&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Simplifying)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Finalizing)):(this.logger.warn(T.LoggingMessage.EmptySourceCode),e)}generateCode(e,t){const r=Object.assign({},o.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);const n=h.generate(t,Object.assign(Object.assign({},r),{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}getObfuscatedCode(e){return this.obfuscatedCodeFactory(e.code,e.map)}runCodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.CodeTransformationStage,t),this.codeTransformersRunner.transform(e,o.codeTransformersList,t)}runNodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.NodeTransformationStage,t),this.nodeTransformersRunner.transform(e,o.nodeTransformersList,t)}};D.parseOptions={ecmaVersion:j.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},D.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},D.codeTransformersList=[v.CodeTransformer.HashbangOperatorTransformer],D.nodeTransformersList=[R.NodeTransformer.BooleanLiteralTransformer,R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.BlockStatementSimplifyTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EscapeSequenceTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.ExportSpecifierTransformer,R.NodeTransformer.ExpressionStatementsMergeTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.NumberLiteralTransformer,R.NodeTransformer.NumberToNumericalExpressionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ObjectPatternPropertiesTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.StringArrayScopeCallsWrapperTransformer,R.NodeTransformer.StringArrayTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],D=o=p([S.injectable(),g(0,S.inject(y.ServiceIdentifiers.ICodeTransformersRunner)),g(1,S.inject(y.ServiceIdentifiers.INodeTransformersRunner)),g(2,S.inject(y.ServiceIdentifiers.IRandomGenerator)),g(3,S.inject(y.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,S.inject(y.ServiceIdentifiers.ILogger)),g(5,S.inject(y.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==_.ICodeTransformersRunner&&_.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==E.INodeTransformersRunner&&E.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==I.IRandomGenerator&&I.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.TObfuscatedCodeFactory&&N.TObfuscatedCodeFactory)?s:Object,"function"==typeof(c=void 0!==b.ILogger&&b.ILogger)?c:Object,"function"==typeof(l=void 0!==O.IOptions&&O.IOptions)?l:Object])],D),t.JavaScriptObfuscator=D},8206:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscatorCLI=void 0,r(9906);const o=r(4161);t.JavaScriptObfuscatorCLI=class{static obfuscate(e){const t=new o.JavaScriptObfuscatorCLI(e);t.initialize(),t.run()}}},2895:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(9906);const o=r(5350),n=r(1636),i=r(8516),a=r(4741);class s{static obfuscate(e,t={}){const r=new n.InversifyContainerFacade;r.load(e,"",t);const i=r.get(o.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),i}static obfuscateMultiple(e,t={}){if("object"!=typeof e)throw new Error("Source codes object should be a plain object");return Object.keys(e).reduce(((r,o,n)=>{const i=a.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],l=Object.assign(Object.assign({},t),{identifiersPrefix:i});return Object.assign(Object.assign({},r),{[o]:s.obfuscate(c,l)})}),{})}static getOptionsByPreset(e){return i.Options.getOptionsByPreset(e)}}t.JavaScriptObfuscator=s,s.version=null!=="2.9.4"?"2.9.4":"unknown"},3900:function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsGraphAnalyzer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(8904),g=r(8657),S=r(4134),y=r(8134);let h=o=class{constructor(e){this.calleeDataExtractorFactory=e}static getLimitIndex(e){const t=e-1,r=o.limitThresholdActivationLength-1;let n=t;return t>r&&(n=Math.round(r+t*o.limitThreshold),n>t&&(n=t)),n}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=o.getLimitIndex(e.length),r=[],n=e.length;for(let o=0;o<n&&!(o>t);o++){const t=e[o];f.traverse(t,{enter:o=>{if(S.NodeGuards.isCallExpressionNode(o))return t.parentNode!==y.NodeStatementUtils.getParentNodeWithStatements(o)?f.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,o)}})}return r}analyzeCallExpressionNode(e,t,r){o.calleeDataExtractorsList.forEach((o=>{const n=this.calleeDataExtractorFactory(o).extract(t,r.callee);n&&e.push(Object.assign(Object.assign({},n),{callsGraph:this.analyzeRecursive(n.callee.body)}))}))}};h.calleeDataExtractorsList=[g.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,g.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,g.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],h.limitThresholdActivationLength=25,h.limitThreshold=.002,h=o=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__ICalleeDataExtractor)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],h),t.CallsGraphAnalyzer=h},3159:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;const n=r(2991);let i=class{};i=o([n.injectable()],i),t.AbstractCalleeDataExtractor=i},5341:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionDeclarationCalleeDataExtractor=void 0;const s=r(2991),c=a(r(4523)),l=r(3159),d=r(4134),u=r(8134);let p=class extends l.AbstractCalleeDataExtractor{extract(e,t){if(!d.NodeGuards.isIdentifierNode(t))return null;const r=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name);return r?{callee:r,name:t.name}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:e=>{if(d.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionDeclarationCalleeDataExtractor=p},1853:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionExpressionCalleeDataExtractor=void 0;const s=r(2991),c=a(r(4523)),l=r(3159),d=r(4134),u=r(8134);let p=class extends l.AbstractCalleeDataExtractor{extract(e,t){let r=null,o=null;return d.NodeGuards.isIdentifierNode(t)?(r=t.name,o=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):d.NodeGuards.isFunctionExpressionNode(t)&&(r=null,o=t.body),o?{callee:o,name:r}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:(e,o)=>{if(d.NodeGuards.isFunctionExpressionNode(e)&&o&&d.NodeGuards.isVariableDeclaratorNode(o)&&d.NodeGuards.isIdentifierNode(o.id)&&o.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};p=i([s.injectable()],p),t.FunctionExpressionCalleeDataExtractor=p},5773:function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionCalleeDataExtractor=void 0;const c=r(2991),l=s(r(4523)),d=r(3159),u=r(4134),p=r(8134);let f=o=class extends d.AbstractCalleeDataExtractor{static isValidTargetPropertyNode(e,t){if(!e.key)return!1;const r=u.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,o=u.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||o}extract(e,t){if(!u.NodeGuards.isMemberExpressionNode(t))return null;const r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;const o=r[r.length-1],n=this.getCalleeBlockStatement(p.NodeStatementUtils.getParentNodeWithStatements(e[0]),r);return n?{callee:n,name:o}:null}createObjectMembersCallsChain(e,t){if(u.NodeGuards.isIdentifierNode(t.property)&&!t.computed)e.unshift(t.property.name);else{if(!u.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return u.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(u.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}getCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;let o=null;return l.traverse(e,{enter:e=>{if(u.NodeGuards.isVariableDeclaratorNode(e)&&u.NodeGuards.isIdentifierNode(e.id)&&e.init&&u.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return o=this.findCalleeBlockStatement(e.init.properties,t),l.VisitorOption.Break}}),o}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const n of e)if(u.NodeGuards.isPropertyNode(n)&&o.isValidTargetPropertyNode(n,r)){if(u.NodeGuards.isObjectExpressionNode(n.value))return this.findCalleeBlockStatement(n.value.properties,t);if(u.NodeGuards.isFunctionExpressionNode(n.value))return n.value.body}return null}};f=o=a([c.injectable()],f),t.ObjectExpressionCalleeDataExtractor=f},472:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNumericalExpressionAnalyzer=void 0;const c=r(2991),l=r(1403),d=r(5350),u=r(6543);let p=o=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e){if(isNaN(e))throw new Error("Given value is NaN");return u.NumberUtils.isUnsafeNumber(e)?[e]:this.generateAdditionParts(e).map((e=>this.mixWithMultiplyParts(e)))}generateAdditionParts(e){const t=[],r=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),n=Math.min(-1e4,-r),i=Math.max(1e4,r);let a=0;for(let r=0;r<o.additionalParts;r++)if(r<o.additionalParts-1){let e=this.randomGenerator.getRandomInteger(n,i);u.NumberUtils.isUnsafeNumber(a+e)&&(e=-e),t.push(e),a+=e}else{const r=e-a;u.NumberUtils.isUnsafeNumber(r)?(t.push(0-a),t.push(e)):t.push(r)}return t}mixWithMultiplyParts(e){var t;if(!(this.randomGenerator.getMathRandom()>.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=u.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const o=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[o,e/o]}};p.additionalParts=3,p=o=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),a("design:paramtypes",["function"==typeof(n=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?n:Object])],p),t.NumberNumericalExpressionAnalyzer=p},3e3:function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrevailingKindOfVariablesAnalyzer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(5768),g=r(4134);let S=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];f.traverse(e,{enter:e=>{g.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:o.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};S.defaultKindOfVariables="var",S=o=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IArrayUtils)),l("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],S),t.PrevailingKindOfVariablesAnalyzer=S},9458:function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeAnalyzer=void 0;const c=r(2991),l=s(r(8)),d=s(r(4523)),u=r(4941),p=r(4134);let f=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){d.replace(e,{enter:(e,t)=>{var r,n,i,a;return e.range||(e.range=[null!==(n=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(a=null===(i=null==t?void 0:t.range)||void 0===i?void 0:i[1])&&void 0!==a?a:o.emptyRangeValue]),e}})}static isRootNode(e){return p.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=o.sourceTypes.length;o.attachMissingRanges(e);for(let r=0;r<t;r++)try{return void(this.scopeManager=l.analyze(e,Object.assign(Object.assign({},o.eslintScopeOptions),{sourceType:o.sourceTypes[r]})))}catch(e){if(r<t-1)continue;throw new Error(e)}throw new Error("Scope analyzing error")}acquireScope(e){if(!this.scopeManager)throw new Error("Scope manager is not defined");const t=this.scopeManager.acquire(e,o.isRootNode(e));if(!t)throw new Error("Cannot acquire scope for node");return this.sanitizeScopes(t),t}sanitizeScopes(e){e.childScopes.forEach((e=>{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find((e=>t.defs.some((e=>"ClassName"===e.type))&&e.name===t.name));null==r||r.references.push(...e.variables[0].references)}}));for(const t of e.childScopes)this.sanitizeScopes(t)}};f.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},f.sourceTypes=["script","module"],f.emptyRangeValue=0,f=o=a([c.injectable()],f),t.ScopeAnalyzer=f},1190:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorageAnalyzer=void 0;const f=r(2991),m=r(5350),g=d(r(4523)),S=r(4482),y=r(1403),h=r(5683),N=r(4134),_=r(8241),b=r(739);let O=o=class{constructor(e,t,r){this.stringArrayStorageData=new Map,this.stringArrayStorage=e,this.randomGenerator=t,this.options=r}analyze(e){this.options.stringArray&&g.traverse(e,{enter:(e,t)=>{if(t)return b.NodeMetadata.isIgnoredNode(e)?g.VisitorOption.Skip:void(N.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}analyzeLiteralNode(e,t){_.NodeLiteralUtils.isStringLiteralNode(e)&&(_.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return!!b.NodeMetadata.isForceTransformNode(e)||e.value.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};O.minimumLengthForStringArray=3,O=o=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],O),t.StringArrayStorageAnalyzer=O},4161:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscatorCLI=void 0;const p=d(r(647)),f=d(r(5622)),m=r(5568),g=r(5233),S=r(3177),y=r(4469),h=r(7370),N=r(6532),_=r(6086),b=r(1137),O=r(9614),I=r(7170),E=r(2490),v=r(7495),C=r(9577),T=r(2895),R=r(7149),A=r(4791),j=r(1901),M=r(4741),F=r(6212);class P{constructor(e){this.rawArguments=e,this.arguments=e.slice(2)}static buildOptions(e){const t=P.filterOptions(e),r=e.config,o=r?f.resolve(r,"."):"",n=o?C.CLIUtils.getUserConfig(o):{};return Object.assign(Object.assign(Object.assign({},I.DEFAULT_PRESET),n),t)}static filterOptions(e){const t={};return Object.keys(e).forEach((r=>{void 0!==e[r]&&(t[r]=e[r])})),t}initialize(){this.inputPath=f.normalize(this.arguments[0]||""),this.commands=new p.Command,this.configureCommands(),this.configureHelp(),this.inputCLIOptions=P.buildOptions(this.commands.opts()),this.sourceCodeReader=new j.SourceCodeReader(this.inputPath,this.inputCLIOptions),this.obfuscatedCodeWriter=new A.ObfuscatedCodeWriter(this.inputPath,this.inputCLIOptions)}run(){if(!this.arguments.length||this.arguments.includes("--help"))return void this.commands.outputHelp();const e=this.sourceCodeReader.readSourceCode();this.processSourceCodeData(e)}configureCommands(){this.commands.usage("<inputPath> [options]").version(M.Utils.buildVersionMessage("2.9.4",1606121270168),"-v, --version").option("-o, --output <path>","Output path for obfuscated code").option("--compact <boolean>","Disable one line output code compacting",v.BooleanSanitizer).option("--config <boolean>","Name of js / json config file").option("--control-flow-flattening <boolean>","Enables control flow flattening",v.BooleanSanitizer).option("--control-flow-flattening-threshold <number>","The probability that the control flow flattening transformation will be applied to the node",parseFloat).option("--dead-code-injection <boolean>","Enables dead code injection",v.BooleanSanitizer).option("--dead-code-injection-threshold <number>","The probability that the dead code injection transformation will be applied to the node",parseFloat).option("--debug-protection <boolean>","Disable browser Debug panel (can cause DevTools enabled browser freeze)",v.BooleanSanitizer).option("--debug-protection-interval <boolean>","Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)",v.BooleanSanitizer).option("--disable-console-output <boolean>","Allow console.log, console.info, console.error and console.warn messages output into browser console",v.BooleanSanitizer).option("--domain-lock <list> (comma separated, without whitespaces)","Allows to run the obfuscated source code only on specific domains and/or sub-domains (comma separated)",E.ArraySanitizer).option("--exclude <list> (comma separated, without whitespaces)","A filename or glob which indicates files to exclude from obfuscation",E.ArraySanitizer).option("--force-transform-strings <list> (comma separated, without whitespaces)","Enables force transformation of string literals, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--identifier-names-generator <string>",`Sets identifier names generator. Values: ${C.CLIUtils.stringifyOptionAvailableValues(S.IdentifierNamesGenerator)}. Default: `+S.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator).option("--identifiers-prefix <string>","Sets prefix for all global identifiers").option("--identifiers-dictionary <list> (comma separated, without whitespaces)","Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option",E.ArraySanitizer).option("--ignore-require-imports <boolean>","Prevents obfuscation of `require` imports",v.BooleanSanitizer).option("--log <boolean>","Enables logging of the information to the console",v.BooleanSanitizer).option("--numbers-to-expressions <boolean>","Enables numbers conversion to expressions",v.BooleanSanitizer).option("--options-preset <string>",`Allows to set options preset. Values: ${C.CLIUtils.stringifyOptionAvailableValues(N.OptionsPreset)}. Default: `+N.OptionsPreset.Default).option("--reserved-names <list> (comma separated, without whitespaces)","Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--reserved-strings <list> (comma separated, without whitespaces)","Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)",E.ArraySanitizer).option("--rename-globals <boolean>","Allows to enable obfuscation of global variable and function names with declaration",v.BooleanSanitizer).option("--rename-properties <boolean>","UNSAFE: Enables renaming of property names. This probably WILL break your code",v.BooleanSanitizer).option("--rotate-string-array <boolean>","Enable rotation of string array values during obfuscation",v.BooleanSanitizer).option("--seed <string|number>","Sets seed for random generator. This is useful for creating repeatable results.",parseFloat).option("--self-defending <boolean>","Disables self-defending for obfuscated code",v.BooleanSanitizer).option("--shuffle-string-array <boolean>","Randomly shuffles string array items",v.BooleanSanitizer).option("--simplify <boolean>","Enables additional code obfuscation through simplification",v.BooleanSanitizer).option("--source-map <boolean>","Enables source map generation",v.BooleanSanitizer).option("--source-map-base-url <string>","Sets base url to the source map import url when `--source-map-mode=separate`").option("--source-map-file-name <string>","Sets file name for output source map when `--source-map-mode=separate`").option("--source-map-mode <string>",`Specify source map output mode. Values: ${C.CLIUtils.stringifyOptionAvailableValues(_.SourceMapMode)}. Default: `+_.SourceMapMode.Separate).option("--split-strings <boolean>","Splits literal strings into chunks with length of `splitStringsChunkLength` option value",v.BooleanSanitizer).option("--split-strings-chunk-length <number>","Sets chunk length of `splitStrings` option",parseFloat).option("--string-array <boolean>","Disables gathering of all literal strings into an array and replacing every literal string with an array call",v.BooleanSanitizer).option("--string-array-encoding <list> (comma separated, without whitespaces)",`Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). Values: ${C.CLIUtils.stringifyOptionAvailableValues(b.StringArrayEncoding)}. Default: `+b.StringArrayEncoding.None,E.ArraySanitizer).option("--string-array-indexes-type <list> (comma separated, without whitespaces)",`Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). Values: ${C.CLIUtils.stringifyOptionAvailableValues(F.StringArrayIndexesType)}. Default: `+F.StringArrayIndexesType.HexadecimalNumber,E.ArraySanitizer).option("--string-array-index-shift <boolean>","Enables additional index shift for all string array calls",v.BooleanSanitizer).option("--string-array-wrappers-count <number>","Sets the count of wrappers for the string array inside each root or function scope",parseInt).option("--string-array-wrappers-chained-calls <boolean>","Enables the chained calls between string array wrappers",v.BooleanSanitizer).option("--string-array-wrappers-parameters-max-count <number>","Allows to control the maximum number of string array wrappers parameters",parseInt).option("--string-array-wrappers-type <string>",`Allows to select a type of the wrappers that are appending by the \`--string-array-wrappers-count\` option. Values: ${C.CLIUtils.stringifyOptionAvailableValues(O.StringArrayWrappersType)}. Default: `+O.StringArrayWrappersType.Variable).option("--string-array-threshold <number>","The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)",parseFloat).option("--target <string>",`Allows to set target environment for obfuscated code. Values: ${C.CLIUtils.stringifyOptionAvailableValues(h.ObfuscationTarget)}. Default: `+h.ObfuscationTarget.Browser).option("--transform-object-keys <boolean>","Enables transformation of object keys",v.BooleanSanitizer).option("--unicode-escape-sequence <boolean>","Allows to enable/disable string conversion to unicode escape sequence",v.BooleanSanitizer).parse(this.rawArguments)}configureHelp(){this.commands.on("--help",(()=>{console.log(" Examples:\n"),console.log(" %> javascript-obfuscator input_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_directory_name --compact true --self-defending false"),console.log("")}))}processSourceCodeData(e){e.forEach((({filePath:e,content:t},r)=>{const o=this.obfuscatedCodeWriter.getOutputCodePath(e);try{R.Logger.log(R.Logger.colorInfo,y.LoggingPrefix.CLI,`Obfuscating file: ${e}...`),this.processSourceCode(t,e,o,r)}catch(t){throw R.Logger.log(R.Logger.colorInfo,y.LoggingPrefix.CLI,`Error in file: ${e}...`),t}}))}processSourceCode(e,t,r,o){const n=Object.assign(Object.assign(Object.assign({},this.inputCLIOptions),{inputFileName:f.basename(t)}),null!==o&&{identifiersPrefix:M.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix,o)});n.sourceMap?this.processSourceCodeWithSourceMap(e,r,n):this.processSourceCodeWithoutSourceMap(e,r,n)}processSourceCodeWithoutSourceMap(e,t,r){const o=T.JavaScriptObfuscator.obfuscate(e,r).getObfuscatedCode();this.obfuscatedCodeWriter.writeFile(t,o)}processSourceCodeWithSourceMap(e,t,r){var o;const n=this.obfuscatedCodeWriter.getOutputSourceMapPath(t,null!==(o=r.sourceMapFileName)&&void 0!==o?o:"");r=Object.assign(Object.assign({},r),{sourceMapFileName:f.basename(n)});const i=T.JavaScriptObfuscator.obfuscate(e,r);this.obfuscatedCodeWriter.writeFile(t,i.getObfuscatedCode()),r.sourceMapMode===_.SourceMapMode.Separate&&i.getSourceMap()&&this.obfuscatedCodeWriter.writeFile(n,i.getSourceMap())}}P.availableInputExtensions=[".js"],P.encoding="utf8",P.obfuscatedFilePrefix="-obfuscated",l([g.initializable(),u("design:type","function"==typeof(o=void 0!==p&&p.CommanderStatic)?o:Object)],P.prototype,"commands",void 0),l([g.initializable(),u("design:type","function"==typeof(n=void 0!==m.TInputCLIOptions&&m.TInputCLIOptions)?n:Object)],P.prototype,"inputCLIOptions",void 0),l([g.initializable(),u("design:type",String)],P.prototype,"inputPath",void 0),l([g.initializable(),u("design:type","function"==typeof(i=void 0!==j.SourceCodeReader&&j.SourceCodeReader)?i:Object)],P.prototype,"sourceCodeReader",void 0),l([g.initializable(),u("design:type","function"==typeof(a=void 0!==A.ObfuscatedCodeWriter&&A.ObfuscatedCodeWriter)?a:Object)],P.prototype,"obfuscatedCodeWriter",void 0),t.JavaScriptObfuscatorCLI=P},2490:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArraySanitizer=void 0,t.ArraySanitizer=e=>{if(e.endsWith(","))throw new SyntaxError("Multiple <list> values should be wrapped inside quotes: --option-name 'value1','value2'");return e.split(",").map((e=>e.trim()))}},7495:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanSanitizer=void 0,t.BooleanSanitizer=e=>"true"===e||"1"===e},9577:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.CLIUtils=void 0;const a=i(r(5622)),s=r(9965);class c{static getUserConfig(e){let t;const o=a.extname(e);if(!c.allowedConfigFileExtensions.includes(o))throw new ReferenceError("Given config path must be a valid `.js` or `.json` file path");try{t=r(5285)(e)}catch(r){try{t=require(e)}catch(t){throw new ReferenceError("Cannot open config file with path: "+e)}}return t}static stringifyOptionAvailableValues(e){return Object.values(e).join(s.StringSeparator.Comma+" ")}}t.CLIUtils=c,c.allowedConfigFileExtensions=[".js",".json"]},4791:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCodeWriter=void 0;const a=i(r(5747)),s=i(r(3841)),c=i(r(5622)),l=r(9965),d=r(4161);t.ObfuscatedCodeWriter=class{constructor(e,t){this.inputPath=c.normalize(e),this.options=t}getOutputCodePath(e){const t=c.normalize(e),r=this.options.output?c.normalize(this.options.output):null;if(!r)return t.split(l.StringSeparator.Dot).map(((e,t)=>0===t?`${e}${d.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}`:e)).join(l.StringSeparator.Dot);const o=a.lstatSync(this.inputPath),n=c.extname(r),i=o.isDirectory(),s=!d.JavaScriptObfuscatorCLI.availableInputExtensions.includes(n);if(i){if(s){const e=c.parse(t),o=c.join(e.dir.replace(this.inputPath,""),e.base);return c.join(r,o)}throw new Error("Output path for directory obfuscation should be a directory path")}return s?c.join(r,c.basename(e)):r}getOutputSourceMapPath(e,t=""){if(!e)throw new Error("Output code path is empty");let r=c.normalize(e),o=c.parse(r);if(!o.ext&&!t)throw new Error("Source map file name should be set when output code path is a directory path");if(t){const e=r.lastIndexOf(c.sep),n=o.ext&&e>0?r.slice(0,e):r,i=t.replace(/^[a-zA-Z]:\\*/,"");r=c.join(n,i)}return/\.js\.map$/.test(r)?/\.js$/.test(r)&&(r+=".map"):(o=c.parse(r),r=c.join(o.dir,o.name)+".js.map"),r}writeFile(e,t){s.sync(c.dirname(e)),a.writeFileSync(e,t,{encoding:d.JavaScriptObfuscatorCLI.encoding})}}},1901:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCodeReader=void 0;const s=i(r(5747)),c=i(r(5622)),l=a(r(768)),d=r(4161);class u{constructor(e,t){this.inputPath=e,this.options=t}static isExcludedPath(e,t=[]){if(!t.length)return!1;const r=c.basename(e),o=!!l.default([e],t).length;return t.some((t=>e.includes(t)||r.includes(t)))||o}static isDirectoryPath(e){try{return s.statSync(e).isDirectory()}catch(e){return!1}}static isFilePath(e){try{return s.statSync(e).isFile()}catch(e){return!1}}static isValidDirectory(e,t=[]){return!u.isExcludedPath(e,t)}static isValidFile(e,t=[]){return d.JavaScriptObfuscatorCLI.availableInputExtensions.includes(c.extname(e))&&!e.includes(d.JavaScriptObfuscatorCLI.obfuscatedFilePrefix)&&!u.isExcludedPath(e,t)}static readFile(e){return{filePath:c.normalize(e),content:s.readFileSync(e,d.JavaScriptObfuscatorCLI.encoding)}}readSourceCode(){if(u.isFilePath(this.inputPath)&&u.isValidFile(this.inputPath,this.options.exclude))return[u.readFile(this.inputPath)];if(u.isDirectoryPath(this.inputPath)&&u.isValidDirectory(this.inputPath,this.options.exclude))return this.readDirectoryRecursive(this.inputPath);const e=d.JavaScriptObfuscatorCLI.availableInputExtensions.map((e=>`\`${e}\``)).join(", ");throw new ReferenceError(`Given input path must be a valid ${e} file or directory path`)}readDirectoryRecursive(e,t=[]){return s.readdirSync(e,d.JavaScriptObfuscatorCLI.encoding).forEach((r=>{const o=c.join(e,r);if(u.isDirectoryPath(o)&&u.isValidDirectory(o,this.options.exclude))t.push(...this.readDirectoryRecursive(o));else if(u.isFilePath(o)&&u.isValidFile(o,this.options.exclude)){const e=u.readFile(o);t.push(e)}})),t}}t.SourceCodeReader=u},8541:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.AbstractCodeTransformer=p},4132:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const n=r(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},8282:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const c=r(2991),l=r(5350),d=r(5127),u=r(9658);let p=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedCodeTransformers(t,r),n=this.codeTransformerNamesGroupsBuilder.build(o);for(const t of n)for(const n of t)e=o[n].transformCode(e,r);return e}buildNormalizedCodeTransformers(e,t){return e.reduce(((e,t)=>{const r=this.codeTransformerFactory(t);return Object.assign(Object.assign({},e),{[t]:r})}),{})}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__ICodeTransformer)),s(1,c.inject(l.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TCodeTransformerFactory&&d.TCodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==u.ITransformerNamesGroupsBuilder&&u.ITransformerNamesGroupsBuilder)?n:Object])],p),t.CodeTransformersRunner=p},71:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(5670),f=r(8541);let m=class extends f.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case p.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case p.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,(e=>(e&&(this.hashbangOperatorLine=e),""))).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.HashbangOperatorTransformer=m},6366:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},2691:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(6366);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},6934:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabet=`${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=`},4497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabetSwapped=`${n.alphabetString}${o.alphabetStringUppercase}${i.numbersString}+/=`},4941:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=12},2023:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},1636:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(2991),n=r(5350),i=r(5821),a=r(7867),s=r(9654),c=r(5602),l=r(3693),d=r(7626),u=r(8974),p=r(645),f=r(4080),m=r(4028),g=r(5424),S=r(1719),y=r(4682),h=r(1469),N=r(7817),_=r(725),b=r(1426),O=r(1466),I=r(9542),E=r(1937),v=r(8282),C=r(7086),T=r(7149),R=r(6827),A=r(9196),j=r(8072),M=r(8589);t.InversifyContainerFacade=class{constructor(){this.container=new o.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return o=>{if(r.has(o))return r.get(o);const n=t.container.getNamed(e,o);return r.set(o,n),n}}}static getConstructorFactory(e,...t){return r=>{const o=new Map,n=[];return i=>{if(t.forEach(((e,t)=>{n[t]||(n[t]=r.container.get(e))})),o.has(i))return new(o.get(i))(...n);const a=r.container.getNamed(e,i);return o.set(i,a),new a(...n)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(n.ServiceIdentifiers.ISourceCode).toDynamicValue((()=>new M.SourceCode(e,t))).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue((()=>r)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(T.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(C.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(v.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(R.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(j.ObfuscatedCode),this.container.bind(n.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory((e=>(t,r)=>{const o=e.container.get(n.ServiceIdentifiers.IObfuscatedCode);return o.initialize(t,r),o})),this.container.bind(n.ServiceIdentifiers.IObfuscationEventEmitter).to(A.ObfuscationEventEmitter).inSingletonScope(),this.container.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(l.customCodeHelpersModule),this.container.load(d.customNodesModule),this.container.load(u.deadCodeInjectionTransformersModule),this.container.load(p.finalizingTransformersModule),this.container.load(f.generatorsModule),this.container.load(m.initializingTransformersModule),this.container.load(g.nodeModule),this.container.load(S.nodeTransformersModule),this.container.load(y.optionsModule),this.container.load(h.preparingTransformersModule),this.container.load(N.renameIdentifiersTransformersModule),this.container.load(_.renamePropertiesTransformersModule),this.container.load(b.simplifyingTransformersModule),this.container.load(O.storagesModule),this.container.load(I.stringArrayTransformersModule),this.container.load(E.utilsModule)}unload(){this.container.unbindAll()}}},5350:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,(r=t.ServiceIdentifiers||(t.ServiceIdentifiers={})).Factory__ICalleeDataExtractor="Factory<ICalleeDataExtractor>",r.Factory__ICodeTransformer="Factory<ICodeTransformer[]>",r.Factory__IControlFlowCustomNode="Factory<IControlFlowCustomNode>",r.Factory__IControlFlowReplacer="Factory<IControlFlowReplacer>",r.Factory__ICustomCodeHelper="Factory<ICustomCodeHelper>",r.Factory__ICustomCodeHelperGroup="Factory<ICustomCodeHelperGroup>",r.Factory__IDeadCodeInjectionCustomNode="Factory<IDeadCodeInjectionCustomNode>",r.Factory__IIdentifierNamesGenerator="Factory<IIdentifierNamesGenerator>",r.Factory__INodeGuard="Factory<INodeGuard>",r.Factory__INodeTransformer="Factory<INodeTransformer[]>",r.Factory__IObfuscatedCode="Factory<IObfuscatedCode>",r.Factory__IObjectExpressionKeysTransformerCustomNode="Factory<IObjectExpressionKeysTransformerCustomNode>",r.Factory__IObjectExpressionExtractor="Factory<IObjectExpressionExtractor>",r.Factory__IStringArrayCustomNode="Factory<IStringArrayCustomNode>",r.Factory__IStringArrayIndexNode="Factory<IStringArrayIndexNode>",r.Factory__TControlFlowStorage="Factory<TControlFlowStorage>",r.IArrayUtils="IArrayUtils",r.ICalleeDataExtractor="ICalleeDataExtractor",r.ICallsGraphAnalyzer="ICallsGraphAnalyzer",r.ICodeTransformer="ICodeTransformer",r.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",r.ICodeTransformersRunner="ICodeTransformersRunner",r.ICryptUtils="ICryptUtils",r.ICryptUtilsSwappedAlphabet="ICryptUtilsSwappedAlphabet",r.ICustomCodeHelper="ICustomCodeHelper",r.ICustomCodeHelperGroup="ICustomCodeHelperGroup",r.IControlFlowReplacer="IControlFlowReplacer",r.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",r.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",r.IEscapeSequenceEncoder="IEscapeSequenceEncoder",r.IIdentifierNamesGenerator="IIdentifierNamesGenerator",r.IIdentifierReplacer="IIdentifierReplacer",r.IJavaScriptObfuscator="IJavaScriptObfuscator",r.ILevelledTopologicalSorter="ILevelledTopologicalSorter",r.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",r.ILogger="ILogger",r.INodeGuard="INodeGuard",r.INodeTransformer="INodeTransformer",r.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",r.INodeTransformersRunner="INodeTransformersRunner",r.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",r.IObfuscationEventEmitter="IObfuscationEventEmitter",r.IObfuscatedCode="IObfuscatedCode",r.IOptions="IOptions",r.IOptionsNormalizer="IOptionsNormalizer",r.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",r.IObjectExpressionExtractor="IObjectExpressionExtractor",r.IRandomGenerator="IRandomGenerator",r.IRenamePropertiesReplacer="IRenamePropertiesReplacer",r.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",r.ISourceCode="ISourceCode",r.IScopeAnalyzer="IScopeAnalyzer",r.IStringArrayIndexNode="IStringArrayIndexNode",r.IStringArrayScopeCallsWrapperLexicalScopeDataStorage="IStringArrayScopeCallsWrapperLexicalScopeDataStorage",r.IStringArrayScopeCallsWrapperNamesDataStorage="IStringArrayScopeCallsWrapperNamesDataStorage",r.IStringArrayStorage="IStringArrayStorage",r.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",r.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",r.Newable__ICustomNode="Newable<ICustomNode>",r.Newable__TControlFlowStorage="Newable<TControlFlowStorage>",r.TCustomNodeGroupStorage="TCustomNodeGroupStorage",r.TInputOptions="TInputOptions"},5821:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(8657),s=r(3900),c=r(5341),l=r(1853),d=r(472),u=r(5773),p=r(3e3),f=r(9458),m=r(1190);t.analyzersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(d.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(p.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(f.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(m.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(l.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(u.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))}))},7867:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7082),s=r(4132),c=r(71);t.codeTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICodeTransformer)),e(i.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(i.ServiceIdentifiers.ICodeTransformer).to(c.HashbangOperatorTransformer).whenTargetNamed(a.CodeTransformer.HashbangOperatorTransformer)}))},3693:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7295),s=r(1806),c=r(4860),l=r(1723),d=r(9673),u=r(4582),p=r(5769),f=r(5655),m=r(259),g=r(299),S=r(2628),y=r(5600),h=r(9915),N=r(5227),_=r(4400),b=r(7675),O=r(7689),I=r(9681),E=r(8352),v=r(5007),C=r(256);t.customCodeHelpersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(f.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionInterval),e(i.ServiceIdentifiers.ICustomCodeHelper).to(h.DebugProtectionFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(N.DomainLockCodeHelper).whenTargetNamed(a.CustomCodeHelper.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelper).to(_.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(O.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(I.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperBase64),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperRc4),e(i.ServiceIdentifiers.ICustomCodeHelper).to(v.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(C.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(p.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(i.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelper)),e(i.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelperGroup)),e(i.ServiceIdentifiers.ICustomCodeHelperFormatter).to(m.CustomCodeHelperFormatter).inSingletonScope(),e(i.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(g.CustomCodeHelperObfuscator).inSingletonScope()}))},7626:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(1280),s=r(2620),c=r(9809),l=r(294),d=r(1597),u=r(5540),p=r(9193),f=r(8105),m=r(1984),g=r(9372),S=r(8807),y=r(2088),h=r(8866),N=r(9826),_=r(398),b=r(6379),O=r(8064),I=r(573),E=r(9867),v=r(6512),C=r(7388);t.customNodesModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(d.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(u.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.CallExpressionControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.CallExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.ControlFlowStorageNode).whenTargetNamed(a.ControlFlowCustomNode.ControlFlowStorageNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(C.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.StringArrayCallNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(I.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(E.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(l.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(O.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(b.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(O.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),e(i.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.Factory__IStringArrayIndexNode,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IStringArrayStorage,i.ServiceIdentifiers.IArrayUtils,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IStringArrayIndexNode))}))},4080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(2991),n=r(5350),i=r(3177),a=r(8370),s=r(5932),c=r(3119),l=r(2677);t.generatorsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(a.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(c.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(l.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),e(n.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let o;switch(r.identifierNamesGenerator){case i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())}))},9654:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4015),s=r(4212),c=r(3358),l=r(5912),d=r(5760),u=r(9749),p=r(6522),f=r(270);t.controlFlowTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(d.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(f.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))}))},5602:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(2991),n=r(1636),i=r(5350),a=r(4212),s=r(9946),c=r(8539),l=r(2337),d=r(9912),u=r(9139),p=r(6037),f=r(9467),m=r(3393),g=r(122),S=r(7834),y=r(626),h=r(6312),N=r(5869),_=r(810);t.convertingTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.BooleanLiteralTransformer).whenTargetNamed(a.NodeTransformer.BooleanLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(d.ExportSpecifierTransformer).whenTargetNamed(a.NodeTransformer.ExportSpecifierTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.NumberLiteralTransformer).whenTargetNamed(a.NodeTransformer.NumberLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.NumberToNumericalExpressionTransformer).whenTargetNamed(a.NodeTransformer.NumberToNumericalExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(y.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.ObjectPatternPropertiesTransformer).whenTargetNamed(a.NodeTransformer.ObjectPatternPropertiesTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(_.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(S.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))}))},8974:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(8043);t.deadCodeInjectionTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.DeadCodeInjectionTransformer).whenTargetNamed(i.NodeTransformer.DeadCodeInjectionTransformer)}))},645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4837);t.finalizingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.EscapeSequenceTransformer).whenTargetNamed(i.NodeTransformer.EscapeSequenceTransformer)}))},4028:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(5289);t.initializingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)}))},1719:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(5419);t.nodeTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__INodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeTransformer)),e(i.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(a.NodeTransformerNamesGroupsBuilder).inSingletonScope()}))},1469:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4212),s=r(4361),c=r(5878),l=r(6955),d=r(4996),u=r(3449),p=r(4935),f=r(147),m=r(8049),g=r(1581),S=r(774),y=r(7985),h=r(2616);t.preparingTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(S.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(l.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(p.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(f.IgnoredRequireImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(y.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))}))},7817:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(6181),s=r(8869),c=r(5806),l=r(7247);t.renameIdentifiersTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.LabeledStatementTransformer).whenTargetNamed(i.NodeTransformer.LabeledStatementTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.ScopeIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeIdentifiersTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(l.ScopeThroughIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeThroughIdentifiersTransformer),e(n.ServiceIdentifiers.IIdentifierReplacer).to(a.IdentifierReplacer).inSingletonScope()}))},725:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(7889),s=r(2143);t.renamePropertiesTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)}))},1426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(2838),s=r(1226),c=r(8821),l=r(3115);t.simplifyingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.BlockStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.BlockStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(i.NodeTransformer.ExpressionStatementsMergeTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(l.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)}))},9542:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4123),s=r(4940);t.stringArrayTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(i.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.StringArrayTransformer).whenTargetNamed(i.NodeTransformer.StringArrayTransformer)}))},5424:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(2991),n=r(5350),i=r(2551);t.nodeModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()}))},4682:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(2991),n=r(5350),i=r(8516),a=r(6248);t.optionsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()}))},1466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(2991),n=r(5350),i=r(646),a=r(1951),s=r(3464),c=r(1453),l=r(995),d=r(1860),u=r(1891);t.storagesModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.ILiteralNodesCacheStorage).to(s.LiteralNodesCacheStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(d.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage).to(c.StringArrayScopeCallsWrapperLexicalScopeDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage).to(l.StringArrayScopeCallsWrapperNamesDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(u.VisitedLexicalScopeNodesStackStorage).inSingletonScope(),e(n.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(i.ControlFlowStorage),e(n.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory((e=>()=>{const t=new(e.container.get(n.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(n.ServiceIdentifiers.IRandomGenerator),e.container.get(n.ServiceIdentifiers.IOptions));return t.initialize(),t}))}))},1937:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(2991),n=r(5350),i=r(3087),a=r(5579),s=r(6913),c=r(1622),l=r(7248),d=r(3697);t.utilsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(n.ServiceIdentifiers.IRandomGenerator).to(d.RandomGenerator).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtilsSwappedAlphabet).to(s.CryptUtilsSwappedAlphabet).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(c.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(l.LevelledTopologicalSorter)}))},8920:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),h=r(1403),N=r(8837),_=r(699);let b=o=class{constructor(e,t,r,o,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=o,this.options=n}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){return this.randomGenerator.getRandomGenerator().pickone(o.globalVariableTemplateFunctions)}getCodeHelperTemplate(){return""}};b.globalVariableTemplateFunctions=[N.GlobalVariableTemplate1(),_.GlobalVariableTemplate2()],b=o=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],b),t.AbstractCustomCodeHelper=b},9834:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const l=r(2991),d=r(5350),u=r(9416),p=r(4482),f=r(1403);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getAppendEvent(){return this.appendEvent}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},259:function(e,t,r){"use strict";var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperFormatter=void 0;const u=r(2991),p=r(5350),f=s(r(4523)),m=d(r(8655)),g=r(3499),S=r(4134);let y=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)f.replace(t,{enter:e=>{if(S.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};y=a([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],y),t.CustomCodeHelperFormatter=y},299:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(3685),f=r(2895);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return f.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},p.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.CustomCodeHelperObfuscator=m},4400:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6871),S=r(6949),y=r(4482),h=r(1403),N=r(1093),_=r(5233),b=r(5423),O=r(8920),I=r(2361);let E=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.appendEvent===N.ObfuscationEvent.AfterObfuscation?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};l([_.initializable(),d("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),l([_.initializable(),d("design:type","function"==typeof(o=void 0!==N.ObfuscationEvent&&N.ObfuscationEvent)?o:Object)],E.prototype,"appendEvent",void 0),E=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperFormatter&&S.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],E),t.CallsControllerFunctionCodeHelper=E},484:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=void 0,t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},8837:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=void 0,t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},699:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=void 0,t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},5423:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=void 0,t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},5655:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(1848),_=r(484),b=r(5233),O=r(8920),I=r(2361);let E=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(N.ConsoleOutputDisableTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([b.initializable(),l("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),c([b.initializable(),l("design:type",String)],E.prototype,"consoleOutputDisableFunctionName",void 0),E=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],E),t.ConsoleOutputDisableCodeHelper=E},4860:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(1093),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.disableConsoleOutput)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.ConsoleOutputDisable,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.ConsoleOutputCodeHelperGroup=I},1848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=void 0,t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},2628:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(5233),N=r(8125),_=r(8920),b=r(2361);let O=class extends _.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(N.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};c([h.initializable(),l("design:type",String)],O.prototype,"callsControllerFunctionName",void 0),c([h.initializable(),l("design:type",String)],O.prototype,"debugProtectionFunctionName",void 0),O=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.DebugProtectionFunctionCallCodeHelper=O},9915:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(5233),_=r(2415),b=r(176),O=r(6927),I=r(8920),E=r(2361);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?_.DebuggerTemplate():b.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(O.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),l("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.DebugProtectionFunctionCodeHelper=v},5600:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(5233),N=r(5987),_=r(8920),b=r(2361);let O=class extends _.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(N.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([h.initializable(),l("design:type",String)],O.prototype,"debugProtectionFunctionName",void 0),O=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.DebugProtectionFunctionIntervalCodeHelper=O},1723:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(1093),_=r(9834),b=r(7678),O=r(4134),I=r(1534);let E=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.debugProtection)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=I.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunctionCall,(e=>{e.initialize(s,c),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunction,(t=>{t.initialize(s),b.NodeAppender.append(e,t.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.DebugProtectionFunctionInterval,(t=>{const r=O.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,o=this.randomGenerator.getRandomInteger(0,r);t.initialize(s),b.NodeAppender.insertAtIndex(e,t.getNode(),o)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(h.CustomCodeHelper.DebugProtectionFunctionInterval),o=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(h.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,o)}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],E.prototype,"customCodeHelpers",void 0),E=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.DebugProtectionCodeHelperGroup=E},8125:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=void 0,t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},5987:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},6927:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=void 0,t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},2415:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=void 0,t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},176:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=void 0,t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},5227:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(5591),h=r(4482),N=r(1403),_=r(7370),b=r(5233),O=r(3762),I=r(484),E=r(8920),v=r(2361);let C=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.cryptUtils=i}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return v.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),o=this.options.target!==_.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():I.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(O.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:o})}};l([b.initializable(),d("design:type",String)],C.prototype,"callsControllerFunctionName",void 0),l([b.initializable(),d("design:type",String)],C.prototype,"domainLockFunctionName",void 0),C=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.ICryptUtils)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==y.ICryptUtils&&y.ICryptUtils)?c:Object])],C),t.DomainLockCodeHelper=C},9673:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(1093),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.domainLock.length)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.DomainLock,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.DomainLockCustomCodeHelperGroup=I},3762:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=void 0,t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp("[{diff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},7675:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingUnicodeCodeHelper=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),h=r(7370),N=r(5233),_=r(6739),b=r(3957),O=r(8920),I=r(2361),E=r(484);let v=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==h.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate(),t=this.options.target!==h.ObfuscationTarget.BrowserNoEval?_.SelfDefendingTemplate():b.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([N.initializable(),l("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),l("design:type",String)],v.prototype,"selfDefendingFunctionName",void 0),v=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),d(3,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(4,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.SelfDefendingUnicodeCodeHelper=v},4582:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const u=r(2991),p=r(5350),f=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),h=r(7295),N=r(1093),_=r(9834),b=r(7678),O=r(1534);let I=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=N.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.selfDefending)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(h.CustomCodeHelper.SelfDefendingUnicode,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(h.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(h.CustomCodeHelper.SelfDefendingUnicode),t=this.customCodeHelperFactory(h.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(h.CustomCodeHelper.SelfDefendingUnicode,e),this.customCodeHelpers.set(h.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],I.prototype,"customCodeHelpers",void 0),I=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__ICustomCodeHelper)),d(1,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperFactory&&f.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],I),t.SelfDefendingCodeHelperGroup=I},3957:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingNoEvalTemplate=void 0,t.SelfDefendingNoEvalTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},6739:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},9681:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperBase64CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2267),s=r(7689);let c=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(a.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};c=o([n.injectable()],c),t.StringArrayCallsWrapperBase64CodeHelper=c},7689:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),h=r(4482),N=r(1403),_=r(5233),b=r(5534),O=r(7927),I=r(8920),E=r(2361);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t,r){this.stringArrayName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(O.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}):""}};l([_.initializable(),d("design:type",Number)],v.prototype,"indexShiftAmount",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayName",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayCallsWrapperName",void 0),v=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],v),t.StringArrayCallsWrapperCodeHelper=v},8352:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperRc4CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2099),s=r(9913),c=r(7689);let l=class extends c.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.customCodeHelperFormatter.formatTemplate(a.Rc4Template(),{atobFunctionName:e}),o=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(s.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:r,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};l=o([n.injectable()],l),t.StringArrayCallsWrapperRc4CodeHelper=l},5007:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),h=r(1403),N=r(5683),_=r(5233),b=r(5819),O=r(8920),I=r(2361),E=r(2161);let v=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayName=t}getNodeStructure(e){return I.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(b.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map((e=>`'${E.StringUtils.escapeJsString(e.encodedValue)}'`)).toString()}};l([_.initializable(),d("design:type","function"==typeof(o=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?o:Object)],v.prototype,"stringArrayStorage",void 0),l([_.initializable(),d("design:type",String)],v.prototype,"stringArrayName",void 0),v=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],v),t.StringArrayCodeHelper=v},256:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),h=r(4482),N=r(1403),_=r(5233),b=r(3099),O=r(4016),I=r(8920),E=r(2361),v=r(6543);let C=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayRotationAmount=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext(),t=this.identifierNamesGenerator.generateNext(),r=[`^${this.stringArrayName}$`];let o="";return o=this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):`${t}(++${e})`,this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(O.StringArrayRotateFunctionTemplate(),{code:o,timesName:e,whileFunctionName:t,stringArrayName:this.stringArrayName,stringArrayRotationAmount:v.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};l([_.initializable(),d("design:type",String)],C.prototype,"stringArrayName",void 0),l([_.initializable(),d("design:type",Number)],C.prototype,"stringArrayRotationAmount",void 0),C=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,p.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(4,p.inject(f.ServiceIdentifiers.IOptions)),u(5,p.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object,"function"==typeof(c=void 0!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],C),t.StringArrayRotateFunctionCodeHelper=C},5769:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const f=r(2991),m=r(5350),g=r(8820),S=r(9416),y=r(4482),h=r(1403),N=r(5683),_=r(5233),b=r(7295),O=r(1093),I=r(1137),E=r(9834),v=r(7678);let C=o=class extends E.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.appendEvent=O.ObfuscationEvent.AfterObfuscation,this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendNodes(e,t){if(!this.stringArrayStorage.getLength())return;this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArray,(t=>{v.NodeAppender.prepend(e,t.getNode())}));const r=this.options.stringArrayEncoding.length;for(let t=0;t<r;t++){const r=this.options.stringArrayEncoding[t],o=this.getStringArrayCallsWrapperCodeHelperName(r);this.appendCustomNodeIfExist(o,(r=>{v.NodeAppender.insertAtIndex(e,r.getNode(),t+1)}))}this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArrayRotateFunction,(t=>{v.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(b.CustomCodeHelper.StringArray),t=this.stringArrayStorage.getStorageName();e.initialize(this.stringArrayStorage,t),this.customCodeHelpers.set(b.CustomCodeHelper.StringArray,e);for(const e of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(e),o=this.customCodeHelperFactory(r),n=this.stringArrayStorage.getStorageCallsWrapperName(e);o.initialize(t,n,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,o)}const r=this.customCodeHelperFactory(b.CustomCodeHelper.StringArrayRotateFunction);r.initialize(t,this.stringArrayStorage.getRotationAmount()),this.options.rotateStringArray&&this.customCodeHelpers.set(b.CustomCodeHelper.StringArrayRotateFunction,r)}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=o.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:b.CustomCodeHelper.StringArrayCallsWrapper}};C.stringArrayCallsWrapperCodeHelperMap=new Map([[I.StringArrayEncoding.None,b.CustomCodeHelper.StringArrayCallsWrapper],[I.StringArrayEncoding.Base64,b.CustomCodeHelper.StringArrayCallsWrapperBase64],[I.StringArrayEncoding.Rc4,b.CustomCodeHelper.StringArrayCallsWrapperRc4]]),d([_.initializable(),u("design:type","function"==typeof(n="undefined"!=typeof Map&&Map)?n:Object)],C.prototype,"customCodeHelpers",void 0),C=o=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__ICustomCodeHelper)),p(1,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(2,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(3,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(4,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(i=void 0!==g.TCustomCodeHelperFactory&&g.TCustomCodeHelperFactory)?i:Object,"function"==typeof(a=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?s:Object,"function"==typeof(c=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==y.IOptions&&y.IOptions)?l:Object])],C),t.StringArrayCodeHelperGroup=C},893:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(4497);t.AtobTemplate=function(){return`\n var {atobFunctionName} = function (input) {\n const chars = '${o.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `}},2099:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=void 0,t.Rc4Template=function(){return"\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},5534:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),l=e.getRandomString(6),d=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${o} = [1, 0, 0];\n this.${n} = function(){return 'newState';};\n this.${i} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${a} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${i} + this.${a});\n const expression = regExp.test(this.${n}.toString())\n ? --this.${o}[1]\n : --this.${o}[0];\n \n return this.${c}(expression);\n };\n \n StatesClass.prototype.${c} = function (${d}) {\n if (!Boolean(~${d})) {\n return ${d};\n }\n \n return this.${l}(this.${r});\n };\n\n StatesClass.prototype.${l} = function (${r}) {\n for (let i = 0, len = this.${o}.length; i < len; i++) {\n this.${o}.push(Math.round(Math.random()));\n len = this.${o}.length;\n }\n \n return ${r}(this.${o}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},2267:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=void 0,t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${r} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},7927:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},9913:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=void 0,t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = rc4;\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${n} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${n} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},3099:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e){return`\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + "=" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += "; " + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += "=" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n "(?:^|; )" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + "=([^;]*)"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `}},4016:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=void 0,t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n "}},5819:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArrayStorageItems}];\n "}},3088:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403);let S=class{constructor(e,t,r,o){this.cachedNode=null,this.identifierNamesGenerator=e(o),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=o}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};S=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],S),t.AbstractCustomNode=S},1597:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.binaryExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return h.NodeUtils.parentizeAst(e),[e]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.BinaryExpressionFunctionNode=N},5540:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(9965),m=r(6949),g=r(4482),S=r(1403),y=r(5233),h=r(3088),N=r(9376),_=r(4134),b=r(2361);let O=class extends h.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=N.NodeFactory.blockStatementNode([N.NodeFactory.variableDeclarationNode([N.NodeFactory.variableDeclaratorNode(N.NodeFactory.identifierNode(e),N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(f.StringSeparator.VerticalLine)),N.NodeFactory.identifierNode("split")),[N.NodeFactory.literalNode(f.StringSeparator.VerticalLine)]))],"const"),N.NodeFactory.variableDeclarationNode([N.NodeFactory.variableDeclaratorNode(N.NodeFactory.identifierNode(t),N.NodeFactory.literalNode(0))],"let"),N.NodeFactory.whileStatementNode(N.NodeFactory.literalNode(!0),N.NodeFactory.blockStatementNode([N.NodeFactory.switchStatementNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(e),N.NodeFactory.updateExpressionNode("++",N.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map(((e,t)=>{const r=this.blockStatementBody[e],o=[r];return _.NodeGuards.isReturnStatementNode(r)||o.push(N.NodeFactory.continueStatement()),N.NodeFactory.switchCaseNode(N.NodeFactory.literalNode(String(t)),o)}))),N.NodeFactory.breakStatement()]))]);return b.NodeUtils.parentizeAst(r),[r]}};s([y.initializable(),c("design:type",Array)],O.prototype,"blockStatementBody",void 0),s([y.initializable(),c("design:type",Array)],O.prototype,"originalKeysIndexesInShuffledArray",void 0),s([y.initializable(),c("design:type",Array)],O.prototype,"shuffledKeys",void 0),O=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],O),t.BlockStatementControlFlowFlatteningNode=O},1984:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.expressionArguments=e}getNodeStructure(){const e=h.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length;for(let e=0;e<r;e++)t.push(h.NodeFactory.identifierNode("param"+(e+1)));const o=h.NodeFactory.expressionStatementNode(h.NodeFactory.functionExpressionNode([e,...t],h.NodeFactory.blockStatementNode([h.NodeFactory.returnStatementNode(h.NodeFactory.callExpressionNode(e,t))])));return N.NodeUtils.parentizeAst(o),[o]}};s([S.initializable(),c("design:type",Array)],_.prototype,"expressionArguments",void 0),_=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.CallExpressionFunctionNode=_},2088:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.logicalExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return h.NodeUtils.parentizeAst(e),[e]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.LogicalExpressionFunctionNode=N},7388:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376);let N=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.literalValue=e}getNodeStructure(){return[h.NodeFactory.expressionStatementNode(h.NodeFactory.literalNode(this.literalValue))]}};s([S.initializable(),c("design:type",String)],N.prototype,"literalValue",void 0),N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.StringLiteralNode=N},8105:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const u=r(2991),p=r(5350),f=r(9416),m=r(6949),g=r(4482),S=r(1403),y=r(5233),h=r(3088),N=r(9376),_=r(2361);let b=class extends h.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=o}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return _.NodeUtils.parentizeAst(e),[e]}};c([y.initializable(),l("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],b.prototype,"callee",void 0),c([y.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageKey",void 0),c([y.initializable(),l("design:type",String)],b.prototype,"controlFlowStorageName",void 0),c([y.initializable(),l("design:type",Array)],b.prototype,"expressionArguments",void 0),b=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],b),t.CallExpressionControlFlowStorageCallNode=b},9372:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const u=r(2991),p=r(5350),f=r(138),m=r(9416),g=r(6949),S=r(4482),y=r(1403),h=r(5233),N=r(3088),_=r(9376),b=r(4134),O=r(2361);let I=class extends N.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=Array.from(this.controlFlowStorage.getStorage()).map((([e,t])=>{const r=t.getNode()[0];if(!b.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return _.NodeFactory.propertyNode(_.NodeFactory.identifierNode(e),r.expression)}));let t=_.NodeFactory.variableDeclarationNode([_.NodeFactory.variableDeclaratorNode(_.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),_.NodeFactory.objectExpressionNode(e))],"const");return t=O.NodeUtils.parentizeAst(t),[t]}};c([h.initializable(),l("design:type","function"==typeof(o=void 0!==f.TControlFlowStorage&&f.TControlFlowStorage)?o:Object)],I.prototype,"controlFlowStorage",void 0),I=c([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,u.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(3,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],I),t.ControlFlowStorageNode=I},8807:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=o}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return N.NodeUtils.parentizeAst(e),[e]}};s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.ExpressionWithOperatorControlFlowStorageCallNode=_},6512:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),h=r(9376),N=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)));return N.NodeUtils.parentizeAst(e),[e]}};s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.StringLiteralControlFlowStorageCallNode=_},9193:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(2361);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",o=this.randomGenerator.getRandomString(5),n=t?o:this.randomGenerator.getRandomString(5),[i,a]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=y.NodeFactory.blockStatementNode([y.NodeFactory.ifStatementNode(y.NodeFactory.binaryExpressionNode(r,y.NodeFactory.literalNode(o),y.NodeFactory.literalNode(n)),i,a)]);return h.NodeUtils.parentizeAst(s),[s]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.BlockStatementDeadCodeInjectionNode=N},8866:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const d=r(2991),u=r(5350),p=r(9416),f=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),h=r(4134);let N=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=h.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(e),y.NodeFactory.objectExpressionNode(this.properties))],"const")]}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,d.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(3,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.ICustomCodeHelperFormatter&&f.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],N),t.ObjectExpressionVariableDeclarationHostNode=N},7306:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayCallNode=void 0;const m=r(2991),g=r(5350),S=r(9416),y=r(7219),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(6212),I=r(8064),E=r(3088),v=r(9376),C=r(739),T=r(2361),R=r(5768);let A=o=class extends E.AbstractCustomNode{constructor(e,t,r,o,n,i,a){super(e,r,i,a),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=o,this.arrayUtils=n}getStringArrayIndexNode(e){var t;const r=e>=0,n=Math.abs(e),i=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),a=null!==(t=o.stringArrayIndexNodesMap.get(i))&&void 0!==t?t:null;if(!a)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(a).getNode(n);C.NodeMetadata.set(s,{replacedLiteral:!0});const c=r?s:v.NodeFactory.unaryExpressionNode("-",s);return T.NodeUtils.parentizeAst(c),c}getRc4KeyLiteralNode(e){const t=v.NodeFactory.literalNode(e);return C.NodeMetadata.set(t,{replacedLiteral:!0}),t}};A.stringArrayRootCallsWrapperParametersCount=2,A.stringArrayIndexNodesMap=new Map([[O.StringArrayIndexesType.HexadecimalNumber,I.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[O.StringArrayIndexesType.HexadecimalNumericString,I.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),A=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,m.inject(g.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,m.inject(g.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,m.inject(g.ServiceIdentifiers.IStringArrayStorage)),f(4,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(5,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(6,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==y.TStringArrayIndexNodeFactory&&y.TStringArrayIndexNodeFactory)?i:Object,"function"==typeof(a=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?a:Object,"function"==typeof(s=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?s:Object,"function"==typeof(c=void 0!==R.IArrayUtils&&R.IArrayUtils)?c:Object,"function"==typeof(l=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?l:Object,"function"==typeof(d=void 0!==N.IOptions&&N.IOptions)?d:Object])],A),t.AbstractStringArrayCallNode=A},9826:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayCallsWrapperName=e,this.stringArrayCallsWrapperParameterIndexesData=t,this.index=r,this.indexShiftAmount=o,this.decodeKey=n}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.index,o=this.getStringArrayIndexNode(r),n=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,i=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeStringArrayIndexNode(r)));i.splice(null!==(t=null===(e=this.stringArrayCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,o),this.stringArrayCallsWrapperParameterIndexesData?i.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,1,null!=n?n:this.getFakeStringArrayIndexNode(r)):n?i.splice(1,1,n):i.splice(1,1);const a=E.NodeFactory.expressionStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName),i));return v.NodeUtils.parentizeAst(a),[a]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,o=e+t;return this.randomGenerator.getRandomInteger(r,o)}};d([O.initializable(),u("design:type",Object)],C.prototype,"decodeKey",void 0),d([O.initializable(),u("design:type",Number)],C.prototype,"index",void 0),d([O.initializable(),u("design:type",Number)],C.prototype,"indexShiftAmount",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"stringArrayCallsWrapperParameterIndexesData",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayCallNode=C},573:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperFunctionNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayScopeCallsWrapperName=e,this.stringArrayScopeCallsWrapperParameterIndexesData=t,this.upperStringArrayCallsWrapperName=r,this.upperStringArrayCallsWrapperParameterIndexesData=o,this.shiftedIndex=n}getNodeStructure(){var e,t,r,o,n,i,a,s;const c=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),l=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),d=this.getUpperStringArrayCallNode(c,this.getStringArrayIndexNode(this.shiftedIndex)),u=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeParameterNode()));u.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,c),u.splice(null!==(o=null===(r=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==o?o:1,1,l);const p=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:I.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(e=>this.getUpperStringArrayCallNode(u[e],this.getFakeUpperStringArrayIndexNode())));p.splice(null!==(i=null===(n=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===n?void 0:n.valueIndexParameterIndex)&&void 0!==i?i:0,1,d),p.splice(null!==(s=null===(a=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===a?void 0:a.decodeKeyParameterIndex)&&void 0!==s?s:1,1,l);const f=E.NodeFactory.functionExpressionNode(u,E.NodeFactory.blockStatementNode([E.NodeFactory.returnStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),p))])),m=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),f)],"const");v.NodeUtils.parentizeAst(m);for(const e of u)e.name=this.identifierNamesGenerator.generateForLexicalScope(f);return[m]}getUpperStringArrayCallNode(e,t){return E.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};d([O.initializable(),u("design:type",Number)],C.prototype,"shiftedIndex",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"upperStringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"upperStringArrayCallsWrapperParameterIndexesData",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),d([O.initializable(),u("design:type",Object)],C.prototype,"stringArrayScopeCallsWrapperParameterIndexesData",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayScopeCallsWrapperFunctionNode=C},9867:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperVariableNode=void 0;const f=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),h=r(6949),N=r(4482),_=r(1403),b=r(5683),O=r(5233),I=r(7306),E=r(9376),v=r(2361);let C=class extends I.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t){this.stringArrayScopeCallsWrapperName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(){const e=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))],"const");return v.NodeUtils.parentizeAst(e),[e]}};d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),d([O.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),C=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,f.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IArrayUtils)),p(5,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(6,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.ICustomCodeHelperFormatter&&h.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(l=void 0!==N.IOptions&&N.IOptions)?l:Object])],C),t.StringArrayScopeCallsWrapperVariableNode=C},6897:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.AbstractStringArrayIndexNode=p},398:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumberIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(e,t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumberIndexNode=g},6379:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumericStringIndexNode=void 0;const c=r(2991),l=r(4482),d=r(1403),u=r(5350),p=r(6897),f=r(9376),m=r(6543);let g=class extends p.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return f.NodeFactory.literalNode(t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumericStringIndexNode=g},5233:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const r={configurable:!0,enumerable:!0},o="_initialized",n="_initializablePropertiesSet",i="_wrappedMethodsSet";function a(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(s,c)=>{const l=s[e];if(!l||"function"!=typeof l)throw new Error(`\`${e}\` method with initialization logic not found. \`@${t}\` decorator requires \`${e}\` method`);return a(o,!1,s),a(n,new Set,s),a(i,new Set,s),function(e,t){const a=Object.getOwnPropertyNames(e),s=new Set([t,"constructor"]);a.forEach((a=>{var c;const l=Reflect.getMetadata(n,e),d=Reflect.getMetadata(i,e);if(s.has(a)||l.has(a)||d.has(a))return;if("function"!=typeof e[a])return;const u=null!==(c=Object.getOwnPropertyDescriptor(e,a))&&void 0!==c?c:r,p=u.value;Object.defineProperty(e,a,Object.assign(Object.assign({},u),{value(){if(!Reflect.getMetadata(o,this))throw new Error(`Class should be initialized with \`${t}()\` method`);return p.apply(this,arguments)}})),d.add(a)}))}(s,e),function(e,t,n){var i;const a=null!==(i=Object.getOwnPropertyDescriptor(e,t))&&void 0!==i?i:r,s=a.value;Object.defineProperty(e,t,Object.assign(Object.assign({},a),{value:function(){Reflect.defineMetadata(o,!0,this);const e=s.apply(this,arguments);return this[n],e}}))}(s,e,c),function(e,t){var o;Reflect.getMetadata(n,e).add(t);const i="_"+t.toString(),a=null!==(o=Object.getOwnPropertyDescriptor(e,i))&&void 0!==o?o:r;return Object.defineProperty(e,t,Object.assign(Object.assign({},a),{get:function(){if(void 0===this[i])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[i]},set:function(e){this[i]=e}})),a}(s,c)}}},7370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(4741);t.ObfuscationTarget=o.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},9965:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,(r=t.StringSeparator||(t.StringSeparator={})).Comma=",",r.Dot=".",r.VerticalLine="|"},8657:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,(r=t.CalleeDataExtractor||(t.CalleeDataExtractor={})).FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",r.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",r.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"},5670:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,(r=t.CodeTransformationStage||(t.CodeTransformationStage={})).PreparingTransformers="PreparingTransformers",r.FinalizingTransformers="FinalizingTransformers"},7082:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,(t.CodeTransformer||(t.CodeTransformer={})).HashbangOperatorTransformer="HashbangOperatorTransformer"},7295:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,(r=t.CustomCodeHelper||(t.CustomCodeHelper={})).CallsControllerFunction="CallsControllerFunction",r.ConsoleOutputDisable="ConsoleOutputDisable",r.DebugProtectionFunctionCall="DebugProtectionFunctionCall",r.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",r.DebugProtectionFunction="DebugProtectionFunction",r.DomainLock="DomainLock",r.SelfDefendingUnicode="SelfDefendingUnicode",r.StringArray="StringArray",r.StringArrayCallsWrapper="StringArrayCallsWrapper",r.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",r.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",r.StringArrayRotateFunction="StringArrayRotateFunction"},1806:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,(r=t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={})).ConsoleOutput="ConsoleOutput",r.DebugProtection="DebugProtection",r.DomainLock="DomainLock",r.SelfDefending="SelfDefending",r.StringArray="StringArray"},1280:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,(r=t.ControlFlowCustomNode||(t.ControlFlowCustomNode={})).BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",r.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",r.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",r.CallExpressionFunctionNode="CallExpressionFunctionNode",r.ControlFlowStorageNode="ControlFlowStorageNode",r.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",r.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",r.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",r.StringLiteralNode="StringLiteralNode"},2620:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={})).BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"},9809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={})).ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"},294:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,(r=t.StringArrayCustomNode||(t.StringArrayCustomNode={})).StringArrayCallNode="StringArrayCallNode",r.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",r.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"},8064:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,(r=t.StringArrayIndexNode||(t.StringArrayIndexNode={})).StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",r.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"},1093:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEvent=void 0,(r=t.ObfuscationEvent||(t.ObfuscationEvent={})).AfterObfuscation="afterObfuscation",r.BeforeObfuscation="beforeObfuscation"},3177:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(4741);t.IdentifierNamesGenerator=o.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},6221:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,(r=t.LoggingMessage||(t.LoggingMessage={})).EmptySourceCode="Empty source code. Obfuscation canceled...",r.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",r.ObfuscationStarted="Obfuscation started...",r.RandomGeneratorSeed="Random generator seed: %s...",r.CodeTransformationStage="Code transformation stage: %s...",r.NodeTransformationStage="AST transformation stage: %s...",r.Version="Version: %s"},4469:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,(r=t.LoggingPrefix||(t.LoggingPrefix={})).Base="[javascript-obfuscator]",r.CLI="[javascript-obfuscator-cli]"},8932:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,(r=t.NodeTransformationStage||(t.NodeTransformationStage={})).ControlFlowFlattening="ControlFlowFlattening",r.Converting="Converting",r.DeadCodeInjection="DeadCodeInjection",r.Finalizing="Finalizing",r.Initializing="Initializing",r.Preparing="Preparing",r.RenameIdentifiers="RenameIdentifiers",r.RenameProperties="RenameProperties",r.Simplifying="Simplifying",r.StringArray="StringArray"},4212:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,(r=t.NodeTransformer||(t.NodeTransformer={})).BooleanLiteralTransformer="BooleanLiteralTransformer",r.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",r.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",r.CommentsTransformer="CommentsTransformer",r.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",r.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",r.EscapeSequenceTransformer="EscapeSequenceTransformer",r.EvalCallExpressionTransformer="EvalCallExpressionTransformer",r.ExportSpecifierTransformer="ExportSpecifierTransformer",r.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",r.FunctionControlFlowTransformer="FunctionControlFlowTransformer",r.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",r.LabeledStatementTransformer="LabeledStatementTransformer",r.MemberExpressionTransformer="MemberExpressionTransformer",r.MetadataTransformer="MetadataTransformer",r.MethodDefinitionTransformer="MethodDefinitionTransformer",r.NumberLiteralTransformer="NumberLiteralTransformer",r.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",r.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",r.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",r.ObjectExpressionTransformer="ObjectExpressionTransformer",r.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",r.ParentificationTransformer="ParentificationTransformer",r.RenamePropertiesTransformer="RenamePropertiesTransformer",r.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",r.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",r.SplitStringTransformer="SplitStringTransformer",r.StringArrayTransformer="StringArrayTransformer",r.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",r.TemplateLiteralTransformer="TemplateLiteralTransformer",r.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",r.VariablePreserveTransformer="VariablePreserveTransformer"},9487:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,(r=t.VisitorDirection||(t.VisitorDirection={})).Enter="enter",r.Leave="leave"},4015:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,(r=t.ControlFlowReplacer||(t.ControlFlowReplacer={})).BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",r.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",r.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",r.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"},9946:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,(r=t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={})).BasePropertiesExtractor="BasePropertiesExtractor",r.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"},4361:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,(r=t.ObfuscatingGuard||(t.ObfuscatingGuard={})).BlackListObfuscatingGuard="BlackListObfuscatingGuard",r.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",r.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",r.IgnoredRequireImportObfuscatingGuard="IgnoredRequireImportObfuscatingGuard",r.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"},1137:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(4741);t.StringArrayEncoding=o.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},6212:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const o=r(4741);t.StringArrayIndexesType=o.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},9614:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const o=r(4741);t.StringArrayWrappersType=o.Utils.makeEnum({Variable:"variable",Function:"function"})},9945:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,(r=t.NodeType||(t.NodeType={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassDeclaration="ClassDeclaration",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForStatement="ForStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MethodDefinition="MethodDefinition",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.YieldExpression="YieldExpression"},8608:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,(r=t.ObfuscatingGuardResult||(t.ObfuscatingGuardResult={})).ForceTransform="ForceTransform",r.Ignore="Ignore",r.Transform="Transform"},6532:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const o=r(4741);t.OptionsPreset=o.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},6086:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(4741);t.SourceMapMode=o.Utils.makeEnum({Inline:"inline",Separate:"separate"})},9196:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEventEmitter=void 0;const i=r(2991),a=n(r(9553));i.decorate(i.injectable(),a.default);let s=class extends a.default{};s=o([i.injectable()],s),t.ObfuscationEventEmitter=s},2207:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4134);let f=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return p.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const o=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;o.add(e),this.lexicalScopesPreservedNamesMap.set(t,o)}isValidIdentifierName(e){return this.notReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const o of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(o))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}notReservedName(e){return!this.options.reservedNames.length||!this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractIdentifierNamesGenerator=f},8370:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const d=r(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2207),S=r(1534);let y=o=class extends g.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const o of e)r||o!==o.toUpperCase()?r||o!==o.toLowerCase()?t+=o:(t+=o.toUpperCase(),r=!0):t+=o.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){const e=`${this.options.identifiersPrefix?""+this.options.identifiersPrefix:""}${this.generateNewDictionaryName()}`;return this.isValidIdentifierName(e)?(this.preserveName(e),e):this.generateForGlobalScope()}generateForLexicalScope(e){const t=[e,...S.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName();return this.isValidIdentifierNameInLexicalScopes(r,t)?(this.preserveNameForLexicalScope(r,e),r):this.generateForLexicalScope(e)}generateNewDictionaryName(){if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const e=this.identifiersIterator.next();if(!e.done){const t=e.value;return this.isValidIdentifierName(t)?e.value:this.generateNewDictionaryName()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),this.generateNewDictionaryName()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map((e=>e.toLowerCase()));return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=o.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};y=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(1,d.inject(u.ServiceIdentifiers.IOptions)),l(2,d.inject(u.ServiceIdentifiers.IArrayUtils)),c("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==p.IArrayUtils&&p.IArrayUtils)?a:Object])],y),t.DictionaryIdentifierNamesGenerator=y},5932:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(2207),m=r(6543),g=r(4741);let S=o=class extends f.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){const t=this.randomGenerator.getRandomInteger(1e4,99999999),r=m.NumberUtils.toHex(t),n=g.Utils.hexadecimalPrefix.length,i=(null!=e?e:o.baseIdentifierNameLength)+n,a="_"+r.slice(0,i);return this.isValidIdentifierName(a)?(this.preserveName(a),a):this.generateNext(e)}generateForGlobalScope(e){const t=this.generateNext(e);return`${this.options.identifiersPrefix}${t}`.replace("__","_")}generateForLexicalScope(e,t){return this.generateNext(t)}};S.baseIdentifierNameLength=6,S=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.HexadecimalIdentifierNamesGenerator=S},3119:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(2023),m=r(6366),g=r(2691),S=r(2207),y=r(1534);let h=o=class extends S.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.updatePreviousMangledName(t),this.preserveName(t),t}generateForGlobalScope(e){const t=this.options.identifiersPrefix?""+this.options.identifiersPrefix:"",r=this.generateNewMangledName(this.previousMangledName),o=`${t}${r}`;return this.updatePreviousMangledName(r),this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...y.NodeLexicalScopeUtils.getLexicalScopes(e)];let n=this.getLastMangledNameForScopes(r);do{n=this.generateNewMangledName(n)}while(!this.isValidIdentifierNameInLexicalScopes(n,r));return o.lastMangledNameInScopeMap.set(e,n),this.updatePreviousMangledName(n),this.preserveNameForLexicalScope(n,e),n}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,o=t.length;if(r!==o)return r>o;const n=this.getNameSequence();for(let o=0;o<r;o++){const r=e[o],i=t[o];if(r!==i)return n.indexOf(r)>n.indexOf(i)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}getNameSequence(){return o.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.previousMangledName)&&(this.previousMangledName=e)}generateNewMangledName(e){let t=(e=>{const t=this.getNameSequence(),r=t.length,o=e.length,n=e=>"0".repeat(e);let i=o-1;do{const a=e[i],s=t.indexOf(a);if(s!==r-1)return e.slice(0,i)+t[s+1]+n(o-(i+1));--i}while(i>=0);return`${t[f.numbersString.length]}${n(o)}`})(e);return this.isValidIdentifierName(t)||(t=this.generateNewMangledName(t)),t}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=o.lastMangledNameInScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return o.initMangledNameCharacter}};h.initMangledNameCharacter="9",h.lastMangledNameInScopeMap=new WeakMap,h.nameSequence=[...`${f.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`],h.reservedNamesSet=new Set(["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"]),h=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.MangledIdentifierNamesGenerator=h},2677:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledShuffledIdentifierNamesGenerator=void 0;const d=r(2991),u=r(5350),p=r(5768),f=r(4482),m=r(1403),g=r(2023),S=r(6366),y=r(2691),h=r(3119);let N=o=class extends h.MangledIdentifierNamesGenerator{constructor(e,t,r){super(t,r),this.arrayUtils=e}initialize(){this.initializeNameSequence([...""+g.numbersString,...this.arrayUtils.shuffle([...`${S.alphabetString}${y.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(o.shuffledNameSequence=e)}getNameSequence(){return o.shuffledNameSequence}generateNewMangledName(e){return super.generateNewMangledName(e)}};s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],N.prototype,"initialize",null),N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IArrayUtils)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IArrayUtils&&p.IArrayUtils)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.MangledShuffledIdentifierNamesGenerator=N},5562:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5435:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1588:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},927:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7673:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6949:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6871:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5603:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5082:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},698:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5167:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5524:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5822:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4482:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},68:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5164:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2086:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},870:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8688:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3186:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5768:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5591:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9825:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2747:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2569:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1403:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9658:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7149:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const l=r(2991),d=r(5350),u=c(r(2242)),p=r(4482),f=r(4469);let m=o=class{constructor(e){this.options=e}static log(e,t,r,o){const n=e(`\n${t} ${r}`);console.log(n,null!=o?o:"")}info(e,t){this.options.log&&o.log(o.colorInfo,f.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,f.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,f.LoggingPrefix.Base,e,t)}};m.colorInfo=u.default.cyan,m.colorSuccess=u.default.green,m.colorWarn=u.default.yellow,m=o=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],m),t.Logger=m},9173:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403);let p=class{constructor(e,t){this.randomGenerator=e,this.options=t}};p=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],p),t.AbstractNodeTransformer=p},5419:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const n=r(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},6827:function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformersRunner=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(3312),g=r(9658),S=r(9487),y=r(4134),h=r(739);let N=class{constructor(e,t){this.nodeTransformerFactory=e,this.nodeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedNodeTransformers(t,r),n=this.nodeTransformerNamesGroupsBuilder.build(o);for(const t of n){const n=[],i=[];for(const e of t){const t=o[e].getVisitor(r);t&&(t.enter&&n.push({enter:t.enter}),t.leave&&i.push({leave:t.leave}))}(n.length||i.length)&&f.replace(e,{enter:this.mergeVisitorsForDirection(n,S.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,S.VisitorDirection.Leave)})}return e}buildNormalizedNodeTransformers(e,t){return e.reduce(((e,r)=>{const o=this.nodeTransformerFactory(r);return o.getVisitor(t)?Object.assign(Object.assign({},e),{[r]:o}):e}),{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(o,n)=>{if(h.NodeMetadata.isIgnoredNode(o))return f.VisitorOption.Skip;for(let i=0;i<r;i++){const r=e[i][t];if(!r)continue;const a=r(o,n);a&&y.NodeGuards.isNode(a)&&(o=a)}return o}:(e,t)=>e}};N=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.Factory__INodeTransformer)),d(1,u.inject(p.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TNodeTransformerFactory&&m.TNodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==g.ITransformerNamesGroupsBuilder&&g.ITransformerNamesGroupsBuilder)?n:Object])],N),t.NodeTransformersRunner=N},5912:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(8749),h=r(5768),N=r(4482),_=r(1403),b=r(1280),O=r(8932),I=r(9173),E=r(4134),v=r(2361);let C=o=class extends I.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=E.NodeGuards.isBreakStatementNode(e)||E.NodeGuards.isContinueStatementNode(e),r=E.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=E.NodeGuards.isClassDeclarationNode(e);return E.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return S.traverse(e,{enter:e=>{if(E.NodeGuards.isWhileStatementNode(e))return S.VisitorOption.Skip;o.isProhibitedStatementNode(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}getVisitor(e){switch(e){case O.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&E.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!o.canTransformBlockStatementNode(e))return e;const r=e.body,n=this.arrayUtils.createWithRange(r.length),i=this.arrayUtils.shuffle(n),a=n.map((e=>i.indexOf(e))),s=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const c=s.getNode()[0];return v.NodeUtils.parentizeNode(c,t),c}};C=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),f(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowCustomNodeFactory&&y.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==h.IArrayUtils&&h.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object])],C),t.BlockStatementControlFlowTransformer=C},9749:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowTransformer=void 0;const g=r(2991),S=r(5350),y=p(r(4523)),h=r(8749),N=r(9628),_=r(2147),b=r(4482),O=r(1403),I=r(1280),E=r(4015),v=r(9945),C=r(8932),T=r(9173),R=r(7678),A=r(4134),j=r(739),M=r(8134),F=r(2361);let P=o=class extends T.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.controlFlowData=new Map,this.visitedFunctionNodes=new Set,this.hostNodesWithControlFlowNode=new Set,this.controlFlowStorageFactory=e,this.controlFlowReplacerFactory=t,this.controlFlowCustomNodeFactory=r}getVisitor(e){switch(e){case C.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!A.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),o=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,o),this.transformFunctionBody(e.body,o),!o.getLength())return e;const n=this.controlFlowCustomNodeFactory(I.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),F.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(A.NodeGuards.isSwitchCaseNode(e)?e.consequent.shift():e.body.shift());const r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}getHostNode(e){const t=M.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>o.hostNodeSearchMinDepth&&t.splice(0,o.hostNodeSearchMinDepth),t.length>o.hostNodeSearchMaxDepth&&(t.length=o.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}isVisitedFunctionNode(e){return(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){y.replace(e,{enter:(e,r)=>{if(j.NodeMetadata.isIgnoredNode(e))return y.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return y.VisitorOption.Skip;if(!o.controlFlowReplacersMap.has(e.type))return e;if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold)return e;const n=o.controlFlowReplacersMap.get(e.type);return void 0===n?e:Object.assign(Object.assign({},this.controlFlowReplacerFactory(n).replace(e,r,t)),{parentNode:r})}})}};P.controlFlowReplacersMap=new Map([[v.NodeType.BinaryExpression,E.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[v.NodeType.CallExpression,E.ControlFlowReplacer.CallExpressionControlFlowReplacer],[v.NodeType.LogicalExpression,E.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[v.NodeType.Literal,E.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),P.hostNodeSearchMinDepth=0,P.hostNodeSearchMaxDepth=2,P=o=u([g.injectable(),m(0,g.inject(S.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(S.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(S.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(S.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(S.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==_.TControlFlowStorageFactory&&_.TControlFlowStorageFactory)?n:Object,"function"==typeof(i=void 0!==N.TControlFlowReplacerFactory&&N.TControlFlowReplacerFactory)?i:Object,"function"==typeof(a=void 0!==h.TControlFlowCustomNodeFactory&&h.TControlFlowCustomNodeFactory)?a:Object,"function"==typeof(s=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==b.IOptions&&b.IOptions)?c:Object])],P),t.FunctionControlFlowTransformer=P},9732:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const d=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403);let g=o=class{constructor(e,t,r){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.randomGenerator=t,this.options=r}static getStorageKeysByIdForCurrentStorage(e,t){let r;return r=e.has(t)?e.get(t):new Map,r}insertCustomNodeToControlFlowStorage(e,t,r,n){const i=t.getStorageId(),a=o.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,i),s=a.get(r);if(this.randomGenerator.getMathRandom()<n&&s&&s.length)return this.randomGenerator.getRandomGenerator().pickone(s);const c=e=>{const r=this.randomGenerator.getRandomString(e);return t.getStorage().has(r)?c(e):r},l=c(5);return a.set(r,[l]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(l,e),l}};g=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},3358:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const d=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146);let y=o=class extends S.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.BinaryExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}};y.usingExistingIdentifierChance=.5,y=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.BinaryExpressionControlFlowReplacer=y},5760:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const d=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134);let h=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!y.NodeGuards.isIdentifierNode(n))return e;const i=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;a.initialize(s);const c=this.insertCustomNodeToControlFlowStorage(a,r,i,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),c,n,s)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!y.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};h.usingExistingIdentifierChance=.5,h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.CallExpressionControlFlowReplacer=h},8146:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const l=r(2991),d=r(5350),u=r(8749),p=r(4482),f=r(1403),m=r(1280),g=r(9732),S=r(4134);let y=class extends g.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};y=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TControlFlowCustomNodeFactory&&u.TControlFlowCustomNodeFactory)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],y),t.ExpressionWithOperatorControlFlowReplacer=y},6522:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionControlFlowReplacer=void 0;const d=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(8146),y=r(4134),h=r(2361);let N=o=class extends S.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.LogicalExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}checkForProhibitedExpressions(e,t){return[e,t].some((e=>{let t;return t=y.NodeGuards.isUnaryExpressionNode(e)?h.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(y.NodeGuards.isLiteralNode(t)||y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isObjectExpressionNode(t)||y.NodeGuards.isExpressionStatementNode(t))}))}};N.usingExistingIdentifierChance=.5,N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.LogicalExpressionControlFlowReplacer=N},270:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const d=r(2991),u=r(5350),p=r(8749),f=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134),h=r(8241);let N=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(y.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!h.NodeLiteralUtils.isStringLiteralNode(e)||e.value.length<3)return e;const n=String(e.value),i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralNode);i.initialize(e.value);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!y.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}};N.usingExistingIdentifierChance=1,N=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TControlFlowCustomNodeFactory&&p.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],N),t.StringLiteralControlFlowReplacer=N},2337:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361),S=r(9376);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return g.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",S.NodeFactory.arrayExpressionNode())}};y=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],y),t.BooleanLiteralTransformer=y},9912:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSpecifierTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(2361);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=g.NodeUtils.clone(e.local)),e}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.ExportSpecifierTransformer=S},9139:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(g.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.MemberExpressionTransformer=S},6037:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MethodDefinitionTransformer=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134);let y=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):S.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return o.ignoredNames.includes(t.name)||e.computed||(e.computed=!0,e.key=g.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||o.ignoredNames.includes(t.value)||e.computed||(e.computed=!0),e}};y.ignoredNames=["constructor"],y=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],y),t.MethodDefinitionTransformer=y},9467:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(6543);let h=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let o;return this.numberLiteralCache.has(r)?o=this.numberLiteralCache.get(r):(o=y.NumberUtils.isCeil(r)?y.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,o)),g.NodeFactory.literalNode(r,o)}};h=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],h),t.NumberLiteralTransformer=h},3393:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberToNumericalExpressionTransformer=void 0;const l=r(2991),d=r(5350),u=r(5435),p=r(4482),f=r(1403),m=r(8932),g=r(9173),S=r(4134),y=r(9376),h=r(6543);let N=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){if(!this.options.numbersToExpressions)return null;switch(e){case m.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value)return e;if(S.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=this.numberNumericalExpressionAnalyzer.analyze(e.value);return this.convertNumericalExpressionDataToNode(r)}convertNumericalExpressionDataToNode(e,t="+"){var r;const o=e.length,n=o>1?e.slice(0,o-1):[e[0]],i=o>1?e.slice(-1):[];if(i.length)return this.convertPartsToBinaryExpression(t,n,i);const a=null!==(r=n[0])&&void 0!==r?r:null;return Array.isArray(a)?this.convertNumericalExpressionDataToNode(a,"*"):this.convertPartOrNumberToLiteralNode(a)}convertPartsToBinaryExpression(e,t,r){const o=r[0];return Array.isArray(o)?y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertNumericalExpressionDataToNode(o,"*")):y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertPartOrNumberToLiteralNode(o))}convertPartOrNumberToLiteralNode(e){const t=Array.isArray(e)?e[0]:e,r=h.NumberUtils.isPositive(t),o=y.NodeFactory.literalNode(Math.abs(t));return r?o:y.NodeFactory.unaryExpressionNode("-",o)}};N=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),c(1,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(2,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.INumberNumericalExpressionAnalyzer&&u.INumberNumericalExpressionAnalyzer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object])],N),t.NumberToNumericalExpressionTransformer=N},122:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformer=void 0;const f=r(2991),m=r(5350),g=d(r(4523)),S=r(2937),y=r(4482),h=r(1403),N=r(8932),_=r(9946),b=r(9173),O=r(4134),I=r(8134);let E=o=class extends b.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedObjectExpressionNode(e,t,r){return o.isReferencedIdentifierName(e,r)||o.isProhibitedArrowFunctionExpression(e,t)||o.isProhibitedSequenceExpression(e,r)}static isReferencedIdentifierName(e,t){const r=[];let o=!1,n=!1;return g.traverse(t,{enter:t=>{t===e&&(n=!0),O.NodeGuards.isIdentifierNode(t)&&(n?r.includes(t.name)&&(o=!0):r.push(t.name))},leave:t=>{if(t===e)return n=!1,g.VisitorOption.Break}}),o}static isProhibitedArrowFunctionExpression(e,t){return O.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}static isProhibitedSequenceExpression(e,t){return O.NodeGuards.isExpressionStatementNode(t)&&O.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some((e=>O.NodeGuards.isCallExpressionNode(e)&&O.NodeGuards.isSuperNode(e.callee)))}getVisitor(e){if(!this.options.transformObjectKeys)return null;switch(e){case N.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&O.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!e.properties.length)return e;const r=I.NodeStatementUtils.getRootStatementOfNode(e);return o.isProhibitedObjectExpressionNode(e,t,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(o.objectExpressionExtractorNames,e,r)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const o=[...e],n=o.shift();if(!n)return t;const{nodeToReplace:i,objectExpressionHostStatement:a,objectExpressionNode:s}=this.objectExpressionExtractorFactory(n).extract(t,r);return this.applyObjectExpressionKeysExtractorsRecursive(o,s,a),i}};E.objectExpressionExtractorNames=[_.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,_.ObjectExpressionExtractor.BasePropertiesExtractor],E=o=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==S.TObjectExpressionExtractorFactory&&S.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==y.IOptions&&y.IOptions)?a:Object])],E),t.ObjectExpressionKeysTransformer=E},626:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(9376),g=r(4134);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.properties.forEach((e=>{g.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))})),e}transformComputedProperty(e){g.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=m.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),g.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name))}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.ObjectExpressionTransformer=S},6312:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectPatternPropertiesTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(4134),g=r(1534),S=r(2361);let y=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!m.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=g.NodeLexicalScopeUtils.getLexicalScope(e);if(t&&m.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=S.NodeUtils.clone(e.value),S.NodeUtils.parentizeNode(e.value,e),e}};y=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],y),t.ObjectPatternPropertiesTransformer=y},5869:function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringTransformer=void 0;const p=r(2991),f=r(5350),m=l(r(4523)),g=l(r(6094)),S=r(4482),y=r(1403),h=r(4212),N=r(8932),_=r(9173),b=r(9376),O=r(4134),I=r(8241),E=r(2361);let v=o=class extends _.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[h.NodeTransformer.ObjectExpressionKeysTransformer,h.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t,r){const o=Math.ceil(t/r),n=[];let i=0;for(let t=0;t<o;++t,i+=r)n[t]=g.substr(e,i,r);return n}getVisitor(e){switch(e){case N.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(this.options.splitStrings)return t&&O.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(I.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,t,o.firstPassChunkLength);return m.replace(r,{enter:(e,t)=>{if(t&&O.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,t,this.options.splitStringsChunkLength)}})}transformLiteralNodeByChunkLength(e,t,r){if(!I.NodeLiteralUtils.isStringLiteralNode(e))return e;const n=g.length(e.value);if(r>=n)return e;const i=o.chunkString(e.value,n,r),a=this.transformStringChunksToBinaryExpressionNode(i);return E.NodeUtils.parentizeAst(a),E.NodeUtils.parentizeNode(a,t),a}transformStringChunksToBinaryExpressionNode(e){const t=e.shift(),r=e.shift();if(!t||!r)throw new Error("First and second chunks values should not be empty");const o=b.NodeFactory.binaryExpressionNode("+",b.NodeFactory.literalNode(t),b.NodeFactory.literalNode(r));return e.reduce(((e,t)=>{const r=b.NodeFactory.literalNode(t);return b.NodeFactory.binaryExpressionNode("+",e,r)}),o)}};v.firstPassChunkLength=1e3,v=o=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],v),t.SplitStringTransformer=v},810:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(2361);let h=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&S.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(e,t){const r=e.expressions;let n,i=[];if(e.quasis.forEach((e=>{i.push(g.NodeFactory.literalNode(e.value.cooked));const t=r.shift();t&&i.push(t)})),i=i.filter((e=>!(S.NodeGuards.isLiteralNode(e)&&""===e.value))),o.isLiteralNodeWithStringValue(i[0])||o.isLiteralNodeWithStringValue(i[1])||i.unshift(g.NodeFactory.literalNode("")),i.length>1){let e=g.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());i.forEach((t=>{e=g.NodeFactory.binaryExpressionNode("+",e,t)})),n=e}else n=i[0];return y.NodeUtils.parentizeAst(n),y.NodeUtils.parentizeNode(n,t),n}};h=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],h),t.TemplateLiteralTransformer=h},8539:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const i=r(2991),a=r(7678),s=r(9376),c=r(4134),l=r(8134),d=r(2361);let u=o=class{static getPropertyNodeKeyName(e){const t=e.key;return!c.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?c.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&c.NodeGuards.isLiteralNode(e.key)}extract(e,t){const r=e.parentNode;return r&&c.NodeGuards.isVariableDeclaratorNode(r)&&c.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const o=e.properties,[n,i]=this.extractPropertiesToExpressionStatements(o,t,r),s=l.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,n,t),d.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const n=[],i=[];for(let a=e.length-1;a>=0;a--){const l=e[a];if(c.NodeGuards.isSpreadElementNode(l))break;if(o.isProhibitedPropertyNode(l))continue;const d=l.value;if(o.isProhibitedPattern(d))continue;const u=o.getPropertyNodeKeyName(l);if(!u)continue;const p=o.shouldCreateLiteralNode(l)?s.NodeFactory.literalNode(u):s.NodeFactory.identifierNode(u),f=s.NodeFactory.memberExpressionNode(r,p,!0),m=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",f,d));c.NodeGuards.isObjectExpressionNode(l.value)&&this.transformObjectExpressionNode(l.value,t,f),n.unshift(m),i.unshift(a)}return[n,i]}filterExtractedObjectExpressionProperties(e,t){e.properties=e.properties.filter(((e,r)=>!t.includes(r)))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},7834:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const s=r(2991),c=r(5350),l=r(1878),d=r(9809),u=r(7678),p=r(4134),f=r(8134),m=r(2361),g=r(1534);let S=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=f.NodeStatementUtils.getScopeOfNode(t),n=p.NodeGuards.isNodeWithLexicalScope(o)?o:null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null;if(!n)throw new Error("Cannot find lexical scope node for the host statement node");const i=e.properties,a=this.getObjectExpressionHostNode(n,i),s=[a];return u.NodeAppender.insertBefore(o,s,t),m.NodeUtils.parentizeAst(a),m.NodeUtils.parentizeNode(a,o),{nodeToReplace:this.getObjectExpressionIdentifierNode(a),objectExpressionHostStatement:a,objectExpressionNode:this.getObjectExpressionNode(a)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(d.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!p.NodeGuards.isVariableDeclarationNode(o))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return o}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!p.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!p.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};S=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",["function"==typeof(o=void 0!==l.TObjectExpressionKeysTransformerCustomNodeFactory&&l.TObjectExpressionKeysTransformerCustomNodeFactory)?o:Object])],S),t.ObjectExpressionToVariableDeclarationExtractor=S},8043:function(e,t,r){"use strict";var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return l(t,e),t},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(7183),h=r(4482),N=r(1403),_=r(698),b=r(2620),O=r(4212),I=r(9945),E=r(8932),v=r(9173),C=r(9376),T=r(4134),R=r(8134),A=r(2361);let j=o=class extends v.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.deadCodeInjectionRootAstHostNodeSet=new Set,this.collectedBlockStatements=[],this.collectedBlockStatementsTotalLength=0,this.deadCodeInjectionCustomNodeFactory=e,this.transformersRunner=t}static isProhibitedNodeInsideCollectedBlockStatement(e){return T.NodeGuards.isFunctionDeclarationNode(e)||T.NodeGuards.isBreakStatementNode(e)||T.NodeGuards.isContinueStatementNode(e)||T.NodeGuards.isAwaitExpressionNode(e)||T.NodeGuards.isYieldExpressionNode(e)||T.NodeGuards.isSuperNode(e)||T.NodeGuards.isForOfStatementNode(e)&&e.await}static isScopeHoistingFunctionDeclaration(e){if(!T.NodeGuards.isFunctionDeclarationNode(e))return!1;const t=R.NodeStatementUtils.getScopeOfNode(e),r=T.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,o=r.indexOf(e);if(0===o)return!1;const n=r.slice(0,o),i=C.NodeFactory.blockStatementNode(n),a=e.id.name;let s=!1;return S.traverse(i,{enter:e=>{if(T.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,S.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return S.traverse(e,{enter:e=>{if(T.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,S.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;return S.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,S.VisitorOption.Break}}),!!t&&R.NodeStatementUtils.getParentNodeWithStatements(e).type!==I.NodeType.Program}getVisitor(e){switch(e){case E.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&T.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&T.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case E.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}prepareNode(e,t){S.traverse(e,{enter:e=>{if(!T.NodeGuards.isBlockStatementNode(e))return;const t=A.NodeUtils.clone(e);if(!o.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLength<o.minCollectedBlockStatementsCount)return S.VisitorOption.Break;if(this.randomGenerator.getMathRandom()>this.options.deadCodeInjectionThreshold||!o.isValidWrappedBlockStatementNode(e))return e;const r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),i=this.collectedBlockStatements.splice(n,1)[0];return i===e?e:this.replaceBlockStatementNode(e,i,t)}restoreNode(e,t){const r=e.body[0];if(!T.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){return T.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}makeClonedBlockStatementNodeUnique(e){const t=C.NodeFactory.programNode([C.NodeFactory.expressionStatementNode(C.NodeFactory.functionExpressionNode([],e))]);return A.NodeUtils.parentizeAst(t),A.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,E.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const n=C.NodeFactory.blockStatementNode([C.NodeFactory.functionDeclarationNode(o.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const i=this.deadCodeInjectionCustomNodeFactory(b.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,n);const a=i.getNode()[0];return A.NodeUtils.parentizeNode(a,r),a}};j.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",j.maxNestedBlockStatementsCount=4,j.minCollectedBlockStatementsCount=5,j.transformersToRenameBlockScopeIdentifiers=[O.NodeTransformer.LabeledStatementTransformer,O.NodeTransformer.ScopeIdentifiersTransformer,O.NodeTransformer.ScopeThroughIdentifiersTransformer],j=o=d([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),f(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),f(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),f(3,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==y.TDeadNodeInjectionCustomNodeFactory&&y.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==_.INodeTransformersRunner&&_.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object])],j),t.DeadCodeInjectionTransformer=j},4837:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceTransformer=void 0;const l=r(2991),d=r(5350),u=r(2747),p=r(4482),f=r(1403),m=r(8932),g=r(4212),S=r(9173),y=r(4134),h=r(8241),N=r(9376),_=r(2361);let b=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[g.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){switch(e){case m.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(y.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),o=N.NodeFactory.literalNode(r);return _.NodeUtils.parentizeNode(o,t),o}};b=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),c(2,l.inject(d.ServiceIdentifiers.IEscapeSequenceEncoder)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IEscapeSequenceEncoder&&u.IEscapeSequenceEncoder)?i:Object])],b),t.EscapeSequenceTransformer=b},5289:function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTransformer=void 0;const p=r(2991),f=r(5350),m=l(r(4523)),g=r(4482),S=r(1403),y=r(8932),h=r(9173),N=r(6955),_=r(4134);let b=o=class extends h.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case y.NodeTransformationStage.Initializing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case y.NodeTransformationStage.Finalizing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){if(!(e=this.filterCommentsOnPrimaryTraverse(e)).comments||!e.comments.length)return e;const t=e.comments.reverse();if(0===t.length)return e;if(!e.body.length)return e.leadingComments=t,e;let r=!0;return m.traverse(e,{enter:o=>{if(o===e)return;const n=t.findIndex((e=>e.range&&o.range&&e.range[0]<o.range[0]));n>=0&&((r?e:o).leadingComments=t.splice(n,t.length-n).reverse()),r=!1}}),t.length>0&&(e.trailingComments=t.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!0))),e}filterCommentsOnFinalizingTraverse(e){return m.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!1)))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter((e=>this.filterComment(e,!1)))),e}}),e}filterComment(e,t){return!(!t||!N.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||o.preservedWords.some((t=>e.value.includes(t)))}};b.preservedWords=["@license","@preserve"],b=o=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(1,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],b),t.CommentsTransformer=b},4996:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const p=r(2991),f=r(5350),m=r(6622),g=r(5603),S=r(4482),y=r(1403),h=r(5562),N=r(3499),_=r(4212),b=r(1093),O=r(8932),I=r(9173),E=r(4134);let v=class extends I.AbstractNodeTransformer{constructor(e,t,r,o,n,i){super(n,i),this.runAfter=[_.NodeTransformer.ParentificationTransformer,_.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.obfuscationEventEmitter=r,this.customCodeHelperGroupStorage=o}getVisitor(e){switch(e){case O.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(E.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesBeforeObfuscation(e,t),this.transformNode(e,t)}};case O.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{E.NodeGuards.isProgramNode(e)&&this.appendCustomNodesAfterObfuscation(e,t)}};default:return null}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesBeforeObfuscation(e,t){this.customCodeHelperGroupStorage.getStorage().forEach((e=>{e.initialize(),this.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendNodes.bind(e))})),this.obfuscationEventEmitter.emit(b.ObfuscationEvent.BeforeObfuscation,e,this.callsGraphData)}appendCustomNodesAfterObfuscation(e,t){this.obfuscationEventEmitter.emit(b.ObfuscationEvent.AfterObfuscation,e,this.callsGraphData)}};v=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.ICallsGraphAnalyzer)),u(1,p.inject(f.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),u(2,p.inject(f.ServiceIdentifiers.IObfuscationEventEmitter)),u(3,p.inject(f.ServiceIdentifiers.TCustomNodeGroupStorage)),u(4,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(5,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==h.ICallsGraphAnalyzer&&h.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==N.IPrevailingKindOfVariablesAnalyzer&&N.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==g.IObfuscationEventEmitter&&g.IObfuscationEventEmitter)?i:Object,"function"==typeof(a=void 0!==m.TCustomCodeHelperGroupStorage&&m.TCustomCodeHelperGroupStorage)?a:Object,"function"==typeof(s=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],v),t.CustomCodeHelpersTransformer=v},3449:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(4212),m=r(8932),g=r(9173),S=r(9376),y=r(4134),h=r(2361),N=r(2161);let _=o=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.EscapeSequenceTransformer,f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return y.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):y.NodeGuards.isTemplateLiteralNode(e)?o.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){const t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}getVisitor(e){switch(e){case m.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case m.NodeTransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:(e,t)=>{if(t&&this.isEvalRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}transformNode(e,t){const r=e.arguments[0];if(!r)return e;const n=o.extractEvalStringFromCallExpressionArgument(r);if(!n)return e;let i;try{i=h.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=S.NodeFactory.functionExpressionNode([],S.NodeFactory.blockStatementNode(i));return h.NodeUtils.parentizeAst(a),h.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=h.NodeUtils.convertStructureToCode(r);return S.NodeFactory.callExpressionNode(S.NodeFactory.identifierNode("eval"),[S.NodeFactory.literalNode(N.StringUtils.escapeJsString(o))])}isEvalRootAstHostNode(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};_=o=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.EvalCallExpressionTransformer=_},8049:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(9173),g=r(4134),S=r(739);let y=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}};y=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],y),t.MetadataTransformer=y},1581:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const d=r(2991),u=r(5350),p=r(805),f=r(4482),m=r(1403),g=r(4212),S=r(8932),y=r(4361),h=r(8608),N=r(9173),_=r(4134),b=r(739);let O=o=class extends N.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=o.obfuscatingGuardsList.map(e)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){const r=this.obfuscatingGuards.map((t=>t.check(e)));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,o=!1;t.every((e=>e===h.ObfuscatingGuardResult.Transform))||(r=t.some((e=>e===h.ObfuscatingGuardResult.ForceTransform)),o=!r&&t.some((e=>e===h.ObfuscatingGuardResult.Ignore))),b.NodeMetadata.set(e,{forceTransformNode:r&&!_.NodeGuards.isProgramNode(e),ignoredNode:o&&!_.NodeGuards.isProgramNode(e)})}};O.obfuscatingGuardsList=[y.ObfuscatingGuard.BlackListObfuscatingGuard,y.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,y.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,y.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,y.ObfuscatingGuard.ReservedStringObfuscatingGuard],O=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__INodeGuard)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TObfuscatingGuardFactory&&p.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],O),t.ObfuscatingGuardsTransformer=O},774:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(9173),m=r(2361);let g=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return m.NodeUtils.parentizeNode(e,t)}};g=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.ParentificationTransformer=g},2616:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const d=r(2991),u=r(5167),p=r(4482),f=r(1403),m=r(5822),g=r(4212),S=r(5350),y=r(8932),h=r(9173),N=r(4134);let _=class extends h.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case y.NodeTransformationStage.Preparing:case y.NodeTransformationStage.Converting:case y.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&N.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:o,variableScope:n}=e;for(const e of o.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,n)}preserveIdentifierNameForRootLexicalScope(e){this.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=N.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};_=s([d.injectable(),l(0,d.inject(S.ServiceIdentifiers.IIdentifierReplacer)),l(1,d.inject(S.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(S.ServiceIdentifiers.IOptions)),l(3,d.inject(S.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.IIdentifierReplacer&&u.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],_),t.VariablePreserveTransformer=_},5878:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const a=r(2991),s=r(8608),c=r(4134);let l=o=class{constructor(){this.blackListGuardsLength=o.blackListGuards.length}check(e){for(let t=0;t<this.blackListGuardsLength;t++)if(o.blackListGuards[t](e))return s.ObfuscatingGuardResult.Ignore;return s.ObfuscatingGuardResult.Transform}};l.blackListGuards=[c.NodeGuards.isUseStrictOperator],l=o=n([a.injectable(),i("design:paramtypes",[])],l),t.BlackListObfuscatingGuard=l},6955:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(2991),a=r(8608),s=r(4134);let c=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?a.ObfuscatingGuardResult.Transform:a.ObfuscatingGuardResult.Ignore}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let n=0;n<t;n++){const t=e[n];o.obfuscationEnableCommentRegExp.test(t.value)?r=!0:o.obfuscationDisableCommentRegExp.test(t.value)&&(r=!1)}return r}};c.obfuscationEnableCommentRegExp=new RegExp("javascript-obfuscator *: *enable"),c.obfuscationDisableCommentRegExp=new RegExp("javascript-obfuscator *: *disable"),c=o=n([i.injectable()],c),t.ConditionalCommentObfuscatingGuard=c},4935:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ForceTransformStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?l.ObfuscatingGuardResult.ForceTransform:l.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ForceTransformStringObfuscatingGuard=p},147:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IgnoredRequireImportObfuscatingGuard=void 0;const s=r(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.ignoreRequireImports&&u.NodeGuards.isCallExpressionNode(e)&&u.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name?l.ObfuscatingGuardResult.Ignore:l.ObfuscatingGuardResult.Transform}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.IgnoredRequireImportObfuscatingGuard=p},7985:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),l=r(8608),d=r(5350),u=r(4134);let p=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?l.ObfuscatingGuardResult.Ignore:l.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=n([s.injectable(),a(0,s.inject(d.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],p),t.ReservedStringObfuscatingGuard=p},8869:function(e,t,r){"use strict";var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LabeledStatementTransformer=void 0;const p=r(2991),f=r(5350),m=l(r(4523)),g=r(5167),S=r(4482),y=r(1403),h=r(8932),N=r(9173),_=r(4134),b=r(1534);let O=class extends N.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierReplacer=e}getVisitor(e){switch(e){case h.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&_.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=b.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&_.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};O=c([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.IIdentifierReplacer)),u(1,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(2,p.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IIdentifierReplacer&&g.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],O),t.LabeledStatementTransformer=O},5806:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTransformer=void 0;const f=r(2991),m=r(5350),g=d(r(4523)),S=r(5167),y=r(4482),h=r(1403),N=r(5822),_=r(8932),b=r(9173),O=r(4134),I=r(739);let E=class extends b.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case _.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&O.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,(e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;(this.options.renameGlobals||!t||r.defs.every((e=>"ImportBinding"===e.type||"CatchClause"===e.type)))&&this.transformScopeVariableIdentifiers(r,o,t)})),e}transformScopeVariableIdentifiers(e,t,r){var o;const n=null!==(o=e.identifiers[0])&&void 0!==o?o:null;n&&this.isReplaceableIdentifierNode(n,t,e)&&(this.storeIdentifierName(n,t,r),this.replaceIdentifierName(n,t,e))}storeIdentifierName(e,t,r){r?this.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifiers.forEach((e=>{e.name=o.name})),r.references.forEach((t=>{t.identifier.name=e.name}))}isReplaceableIdentifierNode(e,t,r){const o=e.parentNode;return!(!o||I.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyIdentifierNode(e,o)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(e,o)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,o)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,o)||this.isProhibitedImportSpecifierNode(e,o)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||O.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return O.NodeGuards.isClassDeclarationNode(e.scope.block)&&O.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return O.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return O.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return O.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&O.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&O.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return O.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return O.NodeGuards.isPropertyNode(t)&&!t.computed&&O.NodeGuards.isIdentifierNode(t.key)&&O.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return O.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&O.NodeGuards.isPropertyNode(t.parentNode)&&O.NodeGuards.isIdentifierNode(t.left)&&O.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let o=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===o)return!1;if(!e.defs.some((e=>"var"===e.kind)))return!1;let n=!1;return g.traverse(r,{enter:(e,r)=>{if(O.NodeGuards.isObjectPatternNode(e)&&r&&O.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(O.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&O.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};E=l([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IIdentifierReplacer)),p(1,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(m.ServiceIdentifiers.IOptions)),p(3,f.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==S.IIdentifierReplacer&&S.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==y.IOptions&&y.IOptions)?i:Object,"function"==typeof(a=void 0!==N.IScopeIdentifiersTraverser&&N.IScopeIdentifiersTraverser)?a:Object])],E),t.ScopeIdentifiersTransformer=E},7247:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeThroughIdentifiersTransformer=void 0;const d=r(2991),u=r(5350),p=r(5167),f=r(4482),m=r(1403),g=r(5822),S=r(8932),y=r(9173),h=r(4134);let N=class extends y.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case S.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&h.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,(e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)})),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifier.name=o.name}};N=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IIdentifierReplacer)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),l(3,d.inject(u.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==p.IIdentifierReplacer&&p.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==g.IScopeIdentifiersTraverser&&g.IScopeIdentifiersTraverser)?a:Object])],N),t.ScopeThroughIdentifiersTransformer=N},6181:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierReplacer=void 0;const c=r(2991),l=r(5350),d=r(9416),u=r(4482),p=r(9376);let f=class{constructor(e,t){this.blockScopesMap=new Map,this.options=t,this.identifierNamesGenerator=e(t)}storeGlobalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForGlobalScope();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}storeLocalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForLexicalScope(t);this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}replace(e,t){let r=e.name;if(this.blockScopesMap.has(t)){const e=this.blockScopesMap.get(t);e.has(r)&&(r=e.get(r))}return p.NodeFactory.identifierNode(r)}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.TIdentifierNamesGeneratorFactory&&d.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==u.IOptions&&u.IOptions)?n:Object])],f),t.IdentifierReplacer=f},2143:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const d=r(2991),u=r(5350),p=r(5524),f=r(4482),m=r(1403),g=r(8932),S=r(9173),y=r(4134);let h=o=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!y.NodeGuards.isIdentifierNode(t)||!e.computed)&&(y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isLiteralNode(t))}getVisitor(e){switch(e){case g.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return y.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):y.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):y.NodeGuards.isMethodDefinitionNode(e)?this.transformMethodDefinitionNode(e):e}transformPropertyNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t),e.shorthand=!1),e}transformMemberExpressionNode(e){const t=e.property;return o.isValidPropertyNode(e,t)&&(e.property=this.renamePropertiesReplacer.replace(t)),e}transformMethodDefinitionNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t)),e}};h=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.IRenamePropertiesReplacer&&p.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],h),t.RenamePropertiesTransformer=h},7889:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const l=r(2991),d=r(5350),u=r(9416),p=r(4482),f=c(r(6856)),m=r(4134),g=r(9376);let S=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(f.default),this.identifierNamesGenerator=e(t),this.options=t}replace(e){return m.NodeGuards.isIdentifierNode(e)?g.NodeFactory.identifierNode(this.replacePropertyName(e.name)):m.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?g.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t;if(this.isReservedName(e))return e;let r=null!==(t=this.propertyNamesMap.get(e))&&void 0!==t?t:null;return null!==r||(r=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,r)),r}isReservedName(e){return this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}isReservedDomPropertyName(e){return this.reservedDomPropertiesList.has(e)}};S=i([l.injectable(),s(0,l.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,l.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],S),t.RenamePropertiesReplacer=S},254:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStatementSimplifyTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(9173),m=r(4134),g=r(9376);let S=class extends f.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.ExpressionStatementsMergeTransformer,p.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!m.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:o}=this.collectIteratedStatementsSimplifyData(e),n=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:n,trailingStatement:null,hasReturnStatement:o,hasSingleExpression:!1};const i=1===r.length,a=i?r[0]:g.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:n,trailingStatement:{statement:o?g.NodeFactory.returnStatementNode(a):g.NodeFactory.expressionStatementNode(a),expression:a},hasReturnStatement:o,hasSingleExpression:i}}collectIteratedStatementsSimplifyData(e){const t=[];let r=!1,o=null;for(let n=e.body.length-1;n>=0;n--){const i=e.body[n];if(m.NodeGuards.isExpressionStatementNode(i))m.NodeGuards.isSequenceExpressionNode(i.expression)?t.unshift(...i.expression.expressions):t.unshift(i.expression),o=n;else{if(!m.NodeGuards.isReturnStatementNode(i)||!i.argument)break;t.unshift(i.argument),r=!0,o=n}}return{startIndex:o,unwrappedExpressions:t,hasReturnStatement:r}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:g.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};S=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],S),t.AbstractStatementSimplifyTransformer=S},2838:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementSimplifyTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(4212),f=r(8932),m=r(254),g=r(4134),S=r(9376),y=r(2361);let h=class extends m.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){switch(e){case f.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&g.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const o=this.getPartialStatement(r),n=g.NodeGuards.isBlockStatementNode(o)?o:S.NodeFactory.blockStatementNode([o]);return y.NodeUtils.parentizeNode(n,t)}};h=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],h),t.BlockStatementSimplifyTransformer=h},1226:function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionStatementsMergeTransformer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),h=r(9376),N=r(4134),_=r(8134),b=r(2361);let O=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&N.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeGuards.isNodeWithStatements(t))return e;const r=_.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&N.NodeGuards.isExpressionStatementNode(r)?(N.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),b.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=h.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),b.NodeUtils.parentizeAst(r.expression),b.NodeUtils.parentizeNode(r.expression,r)),f.VisitorOption.Remove):e}};O=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],O),t.ExpressionStatementsMergeTransformer=O},8821:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(8932),f=r(254),m=r(4134),g=r(9376),S=r(2361);let y=class extends f.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let o;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;o=this.getConsequentAndAlternateNode(e,r,t)}else o=this.getConsequentNode(e,r);return S.NodeUtils.parentizeNode(o,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return m.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return m.NodeGuards.isFunctionDeclarationNode(e)||m.NodeGuards.isIfStatementNode(e)||m.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};y=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],y),t.IfStatementSimplifyTransformer=y},3115:function(e,t,r){"use strict";var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariableDeclarationsMergeTransformer=void 0;const u=r(2991),p=r(5350),f=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),h=r(4134),N=r(8134);let _=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&h.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeGuards.isNodeWithStatements(t))return e;const r=N.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&h.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),f.VisitorOption.Remove):e}};_=s([u.injectable(),d(0,u.inject(p.ServiceIdentifiers.IRandomGenerator)),d(1,u.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],_),t.VariableDeclarationsMergeTransformer=_},4123:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperTransformer=void 0;const f=r(2991),m=r(5350),g=r(7070),S=r(4482),y=r(1403),h=r(870),N=r(8688),_=r(5683),b=r(3186),O=r(8932),I=r(294),E=r(9614),v=r(9173),C=r(7678),T=r(4134);let R=class extends v.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a){super(e,t),this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=o,this.stringArrayScopeCallsWrapperNamesDataStorage=n,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){if(!this.options.stringArrayWrappersCount)return null;switch(e){case O.NodeTransformationStage.StringArray:return{enter:(e,t)=>{t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}};default:return null}}transformNode(e){var t,r;const o=null!==(t=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==t?t:null,n=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(!o||!n)return e;const{callsWrappersParameterIndexesData:i}=n,a=Object.values(o);for(const t of a){if(!t)continue;const{names:r}=t;for(let o=r.length-1;o>=0;o--){const a=r[o],{name:s,index:c,parameterIndexesData:l}=this.getUpperStringArrayCallsWrapperData(t,n),d=this.getStringArrayScopeCallsWrapperNode(a,i,s,l,c);C.NodeAppender.prepend(e,d)}}return e}getRootStringArrayCallsWrapperData(e,t){const{encoding:r}=e,{resultShiftedIndex:o}=t;return{name:this.stringArrayStorage.getStorageCallsWrapperName(r),index:o,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e,t){var r,o,n,i,a,s;const{encoding:c}=e,{scopeShiftedIndex:l}=t,d=this.getRootStringArrayCallsWrapperData(e,t);if(!this.options.stringArrayWrappersChainedCalls)return d;const u=null!==(r=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==r?r:null;if(!u)return d;const p=null!==(o=this.stringArrayScopeCallsWrapperNamesDataStorage.get(u))&&void 0!==o?o:null,f=null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(u))&&void 0!==n?n:null,m=null!==(a=null===(i=null==p?void 0:p[c])||void 0===i?void 0:i.names)&&void 0!==a?a:null;return(null==m?void 0:m.length)?{name:this.randomGenerator.getRandomGenerator().pickone(m),index:l,parameterIndexesData:null!==(s=null==f?void 0:f.callsWrappersParameterIndexesData)&&void 0!==s?s:null}:d}getStringArrayScopeCallsWrapperNode(e,t,r,o,n){switch(this.options.stringArrayWrappersType){case E.StringArrayWrappersType.Function:return this.getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n);case E.StringArrayWrappersType.Variable:default:return this.getStringArrayScopeCallsWrapperVariableNode(e,r)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(I.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n){const i=this.stringArrayTransformerCustomNodeFactory(I.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return i.initialize(e,t,r,o,n),i.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};R=d([f.injectable(),p(0,f.inject(m.ServiceIdentifiers.IRandomGenerator)),p(1,f.inject(m.ServiceIdentifiers.IOptions)),p(2,f.inject(m.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),p(3,f.inject(m.ServiceIdentifiers.IStringArrayStorage)),p(4,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),p(5,f.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),p(6,f.inject(m.ServiceIdentifiers.Factory__IStringArrayCustomNode)),u("design:paramtypes",["function"==typeof(o=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==S.IOptions&&S.IOptions)?n:Object,"function"==typeof(i=void 0!==b.IVisitedLexicalScopeNodesStackStorage&&b.IVisitedLexicalScopeNodesStackStorage)?i:Object,"function"==typeof(a=void 0!==_.IStringArrayStorage&&_.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==N.IStringArrayScopeCallsWrapperNamesDataStorage&&N.IStringArrayScopeCallsWrapperNamesDataStorage)?s:Object,"function"==typeof(c=void 0!==h.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&h.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?c:Object,"function"==typeof(l=void 0!==g.TStringArrayCustomNodeFactory&&g.TStringArrayCustomNodeFactory)?l:Object])],R),t.StringArrayScopeCallsWrapperTransformer=R},4940:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,u,p,f,m=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},g=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},S=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTransformer=void 0;const y=r(2991),h=r(5350),N=r(9416),_=r(7070),b=r(2086),O=r(4482),I=r(1403),E=r(870),v=r(8688),C=r(5683),T=r(927),R=r(3186),A=r(8932),j=r(294),M=r(9614),F=r(9173),P=r(4134),D=r(8241),G=r(739),x=r(2361);let L=o=class extends F.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a,s,c,l){super(e,t),this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=o,this.stringArrayStorage=n,this.stringArrayScopeCallsWrapperNamesDataStorage=i,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=a,this.stringArrayStorageAnalyzer=s,this.identifierNamesGenerator=c(t),this.stringArrayTransformerCustomNodeFactory=l}getVisitor(e){switch(e){case A.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(P.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&P.NodeGuards.isLiteralNode(e)&&!G.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};default:return null}}prepareNode(e){this.stringArrayStorageAnalyzer.analyze(e),this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!D.NodeLiteralUtils.isStringLiteralNode(e)||D.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,o=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),n=this.literalNodesCacheStorage.buildKey(r,o);if(this.literalNodesCacheStorage.shouldUseCachedValue(n,o))return this.literalNodesCacheStorage.get(n);const i=o?this.getStringArrayCallNode(o):e;return this.literalNodesCacheStorage.set(n,i),x.NodeUtils.parentizeNode(i,t),i}getStringArrayCallNode(e){const{name:t,index:r,parameterIndexesData:o}=this.getStringArrayCallsWrapperData(e),{decodeKey:n}=e,i=this.stringArrayTransformerCustomNodeFactory(j.StringArrayCustomNode.StringArrayCallNode);i.initialize(t,o,r,this.stringArrayStorage.getIndexShiftAmount(),n);const a=i.getNode()[0];if(!P.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayCallsWrapperData(e):this.getRootStringArrayCallsWrapperData(e)}getRootStringArrayCallsWrapperData(e){const{encoding:t,index:r}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),parameterIndexesData:null,index:r}}getUpperStringArrayCallsWrapperData(e){var t,r,o,n;const{encoding:i,index:a}=e,s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null,c=null!==(r=this.visitedLexicalScopeNodesStackStorage.getPenultimateElement())&&void 0!==r?r:null;if(!s)throw new Error("Cannot find current lexical scope body node");const l=this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(s,e),d=this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(s,c),u=null!==(n=null===(o=l[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];return{name:this.randomGenerator.getRandomGenerator().pickone(u),index:d?d.resultShiftedIndex+a:a,parameterIndexesData:d.callsWrappersParameterIndexesData}}getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(e,t){var r,o,n;const{encoding:i}=t,a=null!==(r=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==r?r:{},s=null!==(n=null===(o=a[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];if(s.length===this.options.stringArrayWrappersCount)return a;const c=P.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext();return a[i]={encoding:i,names:[...s,c]},this.stringArrayScopeCallsWrapperNamesDataStorage.set(e,a),a}getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(e,t){var r,n;const i=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(i)return i;const a=t&&null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(t))&&void 0!==n?n:null,s=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.getStringArrayCallsWrapperParameterIndexesData():null,c=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(o.minShiftedIndexValue,o.maxShiftedIndexValue):0,l={callsWrappersParameterIndexesData:s,parentLexicalScopeBodyNode:t,resultShiftedIndex:a?a.resultShiftedIndex+c:c,scopeShiftedIndex:c};return this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(e,l),l}getStringArrayCallsWrapperParameterIndexesData(){const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};L.minShiftedIndexValue=-1e3,L.maxShiftedIndexValue=1e3,L=o=m([y.injectable(),S(0,y.inject(h.ServiceIdentifiers.IRandomGenerator)),S(1,y.inject(h.ServiceIdentifiers.IOptions)),S(2,y.inject(h.ServiceIdentifiers.ILiteralNodesCacheStorage)),S(3,y.inject(h.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),S(4,y.inject(h.ServiceIdentifiers.IStringArrayStorage)),S(5,y.inject(h.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),S(6,y.inject(h.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),S(7,y.inject(h.ServiceIdentifiers.IStringArrayStorageAnalyzer)),S(8,y.inject(h.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),S(9,y.inject(h.ServiceIdentifiers.Factory__IStringArrayCustomNode)),g("design:paramtypes",["function"==typeof(n=void 0!==I.IRandomGenerator&&I.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==O.IOptions&&O.IOptions)?i:Object,"function"==typeof(a=void 0!==b.ILiteralNodesCacheStorage&&b.ILiteralNodesCacheStorage)?a:Object,"function"==typeof(s=void 0!==R.IVisitedLexicalScopeNodesStackStorage&&R.IVisitedLexicalScopeNodesStackStorage)?s:Object,"function"==typeof(c=void 0!==C.IStringArrayStorage&&C.IStringArrayStorage)?c:Object,"function"==typeof(l=void 0!==v.IStringArrayScopeCallsWrapperNamesDataStorage&&v.IStringArrayScopeCallsWrapperNamesDataStorage)?l:Object,"function"==typeof(d=void 0!==E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?d:Object,"function"==typeof(u=void 0!==T.IStringArrayStorageAnalyzer&&T.IStringArrayStorageAnalyzer)?u:Object,"function"==typeof(p=void 0!==N.TIdentifierNamesGeneratorFactory&&N.TIdentifierNamesGeneratorFactory)?p:Object,"function"==typeof(f=void 0!==_.TStringArrayCustomNodeFactory&&_.TStringArrayCustomNodeFactory)?f:Object])],L),t.StringArrayTransformer=L},7678:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4134);class n{static append(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e),...t])}static appendToOptimalBlockScope(e,t,r,o=0){const i=e.length?n.getOptimalBlockScope(e,o):t;n.prepend(i,r)}static getOptimalBlockScope(e,t,r=1/0){const o=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&o.callsGraph.length?n.getOptimalBlockScope(o.callsGraph,0,--r):o.callee}static insertBefore(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o)}static insertAfter(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o+1)}static insertAtIndex(e,t,r){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e).slice(0,r),...t,...n.getScopeStatements(e).slice(r)])}static prepend(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...t,...n.getScopeStatements(e)])}static getScopeStatements(e){return o.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach((t=>{t.parentNode=e})),t}static setScopeStatements(e,t){o.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=n},9376:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFactory=void 0;const a=i(r(9385)),s=r(9945);class c{static programNode(e=[]){return{type:s.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}static arrayExpressionNode(e=[]){return{type:s.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}static arrowFunctionExpressionNode(e,t,r){return{type:s.NodeType.ArrowFunctionExpression,params:e,expression:t,body:r}}static assignmentExpressionNode(e,t,r){return{type:s.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static binaryExpressionNode(e,t,r){return{type:s.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static blockStatementNode(e=[]){return{type:s.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}static breakStatement(e){return{type:s.NodeType.BreakStatement,label:e,metadata:{ignoredNode:!1}}}static callExpressionNode(e,t=[],r=!1){return{type:s.NodeType.CallExpression,callee:e,optional:r,arguments:t,metadata:{ignoredNode:!1}}}static conditionalExpressionNode(e,t,r){return{type:s.NodeType.ConditionalExpression,test:e,consequent:t,alternate:r,metadata:{ignoredNode:!1}}}static continueStatement(e){return{type:s.NodeType.ContinueStatement,label:e,metadata:{ignoredNode:!1}}}static directiveNode(e,t){return{type:s.NodeType.ExpressionStatement,expression:e,directive:t,metadata:{ignoredNode:!1}}}static exportAllDeclarationNode(e){return{type:s.NodeType.ExportAllDeclaration,source:e,metadata:{ignoredNode:!1}}}static exportNamedDeclarationNode(e,t){return{type:s.NodeType.ExportNamedDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static expressionStatementNode(e){return{type:s.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}static functionDeclarationNode(e,t,r){return{type:s.NodeType.FunctionDeclaration,id:c.identifierNode(e),params:t,body:r,generator:!1,metadata:{ignoredNode:!1}}}static functionExpressionNode(e,t){return{type:s.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}static ifStatementNode(e,t,r){return Object.assign(Object.assign({type:s.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r}),{metadata:{ignoredNode:!1}})}static identifierNode(e){return{type:s.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}static importDeclarationNode(e,t){return{type:s.NodeType.ImportDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static literalNode(e,t){return t=void 0!==t?t:`'${e}'`,{type:s.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:a.Precedence.Primary},metadata:{ignoredNode:!1}}}static logicalExpressionNode(e,t,r){return{type:s.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static memberExpressionNode(e,t,r=!1,o=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,optional:o,property:t,metadata:{ignoredNode:!1}}}static objectExpressionNode(e){return{type:s.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}static propertyNode(e,t,r=!1){return{type:s.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}static returnStatementNode(e){return{type:s.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}static sequenceExpressionNode(e){return{type:s.NodeType.SequenceExpression,expressions:e,metadata:{ignoredNode:!1}}}static switchStatementNode(e,t){return{type:s.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}static switchCaseNode(e,t){return{type:s.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}static unaryExpressionNode(e,t,r=!0){return{type:s.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}static updateExpressionNode(e,t){return{type:s.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}static templateElement(e,t){return{type:s.NodeType.TemplateElement,value:e,tail:t,metadata:{ignoredNode:!1}}}static templateLiteral(e,t){return{type:s.NodeType.TemplateLiteral,expressions:e,quasis:t,metadata:{ignoredNode:!1}}}static variableDeclarationNode(e=[],t="var"){return{type:s.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}static variableDeclaratorNode(e,t){return{type:s.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}static whileStatementNode(e,t){return{type:s.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}t.NodeFactory=c},4134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(9945);class n{static isArrayPatternNode(e){return e.type===o.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===o.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===o.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===o.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===o.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return n.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===o.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===o.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===o.NodeType.CallExpression}static isClassDeclarationNode(e){return e.type===o.NodeType.ClassDeclaration&&null!==e.id}static isContinueStatementNode(e){return e.type===o.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===o.NodeType.ExpressionStatement&&"directive"in e}static isExportAllDeclarationNode(e){return e.type===o.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===o.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isForOfStatementNode(e){return e.type===o.NodeType.ForOfStatement}static isFunctionNode(e){return n.isFunctionDeclarationNode(e)||n.isFunctionExpressionNode(e)||n.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===o.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===o.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===o.NodeType.Identifier}static isIfStatementNode(e){return e.type===o.NodeType.IfStatement}static isImportDeclarationNode(e){return e.type===o.NodeType.ImportDeclaration}static isImportSpecifierNode(e){return e.type===o.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=n.isLabeledStatementNode(t)&&t.label===e,o=n.isContinueStatementNode(t)&&t.label===e,i=n.isBreakStatementNode(t)&&t.label===e;return r||o||i}static isLabeledStatementNode(e){return e.type===o.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===o.NodeType.Literal}static isMemberExpressionNode(e){return e.type===o.NodeType.MemberExpression}static isMethodDefinitionNode(e){return e.type===o.NodeType.MethodDefinition}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return n.isProgramNode(e)||n.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return n.isNodeWithLexicalScope(e)||n.isBlockStatementNode(e)}static isNodeWithLexicalScopeStatements(e,t){return n.isProgramNode(e)||n.isBlockStatementNode(e)&&n.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return n.isProgramNode(e)||n.isBlockStatementNode(e)||n.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===o.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===o.NodeType.ObjectExpression}static isProgramNode(e){return e.type===o.NodeType.Program}static isPropertyNode(e){return e.type===o.NodeType.Property}static isRestElementNode(e){return e.type===o.NodeType.RestElement}static isReturnStatementNode(e){return e.type===o.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===o.NodeType.SequenceExpression}static isSpreadElementNode(e){return e.type===o.NodeType.SpreadElement}static isSuperNode(e){return e.type===o.NodeType.Super}static isSwitchCaseNode(e){return e.type===o.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===o.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===o.NodeType.TemplateLiteral}static isUnaryExpressionNode(e){return e.type===o.NodeType.UnaryExpression}static isUseStrictOperator(e){return n.isDirectiveNode(e)&&"use strict"===e.directive}static isVariableDeclarationNode(e){return e.type===o.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===o.NodeType.VariableDeclarator}static isWhileStatementNode(e){return e.type===o.NodeType.WhileStatement}static isYieldExpressionNode(e){return e.type===o.NodeType.YieldExpression}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},1534:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4134);class n{static getLexicalScope(e){return n.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return n.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==a?n.getLexicalScopesRecursive(a,t,r,++i):r}}t.NodeLexicalScopeUtils=n},8241:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4134);t.NodeLiteralUtils=class{static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)||!(!o.NodeGuards.isExportAllDeclarationNode(t)&&!o.NodeGuards.isExportNamedDeclarationNode(t))}}},739:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===r.get(e,"replacedLiteral")}}t.NodeMetadata=r},8134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4134);class n{static getParentNodeWithStatements(e){return n.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return n.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return n.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return n.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(o.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?e:n.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?t:n.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(o.NodeGuards.isProgramNode(e)||o.NodeGuards.isNodeWithLexicalScopeStatements(e,a)&&i>0)&&r.push(e),e!==a?n.getParentNodesWithStatementsRecursive(a,t,r,++i):r}static getSiblingStatementByOffset(e,t){const r=n.getScopeOfNode(e),i=o.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,a=i.indexOf(e);return i[a+t]||null}}t.NodeStatementUtils=n},2361:function(e,t,r){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeUtils=void 0;const a=i(r(9385)),s=i(r(4523)),c=r(4941),l=r(425),d=r(4134),u=r(739);class p{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return p.parentizeAst(p.cloneRecursive(e))}static convertCodeToStructure(e){const t=l.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(p.parentizeNode(e,t),d.NodeGuards.isLiteralNode(e)&&p.addXVerbatimPropertyTo(e),u.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce(((e,t)=>e+a.generate(t,{sourceMapWithCode:!0}).code),"")}static getUnaryExpressionArgumentNode(e){return d.NodeGuards.isUnaryExpressionNode(e.argument)?p.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return s.replace(e,{enter:p.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;const t={};return Object.keys(e).forEach((r=>{var o;if("parentNode"===r)return;const n=null!==(o=e[r])&&void 0!==o?o:null;let i;i=null===n||n instanceof RegExp?n:n instanceof Array?n.map(p.cloneRecursive):"object"==typeof n?p.cloneRecursive(n):n,t[r]=i})),t}}t.NodeUtils=p},2551:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const c=r(2991),l=r(5350),d=r(1588),u=r(4134);let p=o=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(o,o,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(o,o,r)}traverseScopeIdentifiersRecursive(e,t,r){const n=t.variableScope,i=u.NodeGuards.isNodeWithBlockLexicalScope(n.block)?n.block:null,a=o.globalScopeNames.includes(n.type);if(i){for(const s of t.variables)s.name!==o.argumentsVariableName&&r({isGlobalDeclaration:a,isBubblingDeclaration:s.identifiers.some((e=>e.parentNode&&u.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand)),rootScope:e,variable:s,variableScope:n,variableLexicalScopeNode:i});for(const o of t.childScopes)this.traverseScopeIdentifiersRecursive(e,o,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const o=t.variableScope,n=u.NodeGuards.isNodeWithBlockLexicalScope(o.block)?o.block:null;if(n){for(const e of t.through)r({reference:e,variableLexicalScopeNode:n});for(const o of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,o,r)}}};p.argumentsVariableName="arguments",p.globalScopeNames=["global","module"],p=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IScopeAnalyzer&&d.IScopeAnalyzer)?n:Object])],p),t.ScopeIdentifiersTraverser=p},8516:function(e,t,r){"use strict";var o,n,i,a,s,c,l,d,u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const m=r(2991),g=r(5350),S=r(516),y=r(2185),h=r(4364),N=r(3546),_=r(9651),b=r(68),O=r(3177),I=r(7370),E=r(6532),v=r(6086),C=r(6212),T=r(1137),R=r(9614),A=r(7170),j=r(8887),M=r(2662),F=r(7576),P=r(312),D=r(5558);let G=o=class{constructor(e,t){var r;const n=o.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:E.OptionsPreset.Default);Object.assign(this,n,e);const i=S.validateSync(this,o.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n"+P.ValidationErrorsFormatter.format(i));Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=o.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};G.optionPresetsMap=new Map([[E.OptionsPreset.Default,A.DEFAULT_PRESET],[E.OptionsPreset.LowObfuscation,j.LOW_OBFUSCATION_PRESET],[E.OptionsPreset.MediumObfuscation,M.MEDIUM_OBFUSCATION_PRESET],[E.OptionsPreset.HighObfuscation,F.HIGH_OBFUSCATION_PRESET]]),G.validatorOptions={validationError:{target:!1}},u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"compact",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"controlFlowFlattening",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"controlFlowFlatteningThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"deadCodeInjection",void 0),u([S.IsNumber(),p("design:type",Number)],G.prototype,"deadCodeInjectionThreshold",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtection",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"debugProtectionInterval",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"disableConsoleOutput",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),D.IsAllowedForObfuscationTargets([I.ObfuscationTarget.Browser,I.ObfuscationTarget.BrowserNoEval]),p("design:type",Array)],G.prototype,"domainLock",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"forceTransformStrings",void 0),u([S.IsIn([O.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,O.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,O.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,O.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),p("design:type","function"==typeof(n=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?n:Object)],G.prototype,"identifierNamesGenerator",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"identifiersPrefix",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),S.ValidateIf((e=>e.identifierNamesGenerator===O.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator)),S.ArrayNotEmpty(),p("design:type",Array)],G.prototype,"identifiersDictionary",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"ignoreRequireImports",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"inputFileName",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"log",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"numbersToExpressions",void 0),u([S.IsIn([E.OptionsPreset.Default,E.OptionsPreset.LowObfuscation,E.OptionsPreset.MediumObfuscation,E.OptionsPreset.HighObfuscation]),p("design:type","function"==typeof(i=void 0!==h.TOptionsPreset&&h.TOptionsPreset)?i:Object)],G.prototype,"optionsPreset",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameGlobals",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"renameProperties",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedNames",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),p("design:type",Array)],G.prototype,"reservedStrings",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"rotateStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"selfDefending",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"shuffleStringArray",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"simplify",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"sourceMap",void 0),u([S.IsString(),S.ValidateIf((e=>Boolean(e.sourceMapBaseUrl))),S.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),p("design:type",String)],G.prototype,"sourceMapBaseUrl",void 0),u([S.IsString(),p("design:type",String)],G.prototype,"sourceMapFileName",void 0),u([S.IsIn([v.SourceMapMode.Inline,v.SourceMapMode.Separate]),p("design:type","function"==typeof(a=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?a:Object)],G.prototype,"sourceMapMode",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"splitStrings",void 0),u([S.IsNumber(),S.ValidateIf((e=>Boolean(e.splitStrings))),S.Min(1),p("design:type",Number)],G.prototype,"splitStringsChunkLength",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArray",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsIn([T.StringArrayEncoding.None,T.StringArrayEncoding.Base64,T.StringArrayEncoding.Rc4],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayEncoding",void 0),u([S.IsArray(),S.ArrayNotEmpty(),S.ArrayUnique(),S.IsIn([C.StringArrayIndexesType.HexadecimalNumber,C.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),p("design:type",Array)],G.prototype,"stringArrayIndexesType",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayIndexShift",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"stringArrayWrappersChainedCalls",void 0),u([S.IsNumber(),S.Min(0),p("design:type",Number)],G.prototype,"stringArrayWrappersCount",void 0),u([S.IsNumber(),S.Min(2),p("design:type",Number)],G.prototype,"stringArrayWrappersParametersMaxCount",void 0),u([S.IsIn([R.StringArrayWrappersType.Variable,R.StringArrayWrappersType.Function]),p("design:type","function"==typeof(s=void 0!==N.TStringArrayWrappersType&&N.TStringArrayWrappersType)?s:Object)],G.prototype,"stringArrayWrappersType",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),p("design:type",Number)],G.prototype,"stringArrayThreshold",void 0),u([S.IsIn([I.ObfuscationTarget.Browser,I.ObfuscationTarget.BrowserNoEval,I.ObfuscationTarget.Node]),p("design:type","function"==typeof(c=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?c:Object)],G.prototype,"target",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"transformObjectKeys",void 0),u([S.IsBoolean(),p("design:type",Boolean)],G.prototype,"unicodeEscapeSequence",void 0),G=o=u([m.injectable(),f(0,m.inject(g.ServiceIdentifiers.TInputOptions)),f(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),p("design:paramtypes",["function"==typeof(l=void 0!==y.TInputOptions&&y.TInputOptions)?l:Object,"function"==typeof(d=void 0!==b.IOptionsNormalizer&&b.IOptionsNormalizer)?d:Object])],G),t.Options=G},6248:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const i=r(2991),a=r(2938),s=r(3978),c=r(7226),l=r(4984),d=r(9062),u=r(1832),p=r(6896),f=r(3616),m=r(4073),g=r(2554),S=r(410),y=r(1589),h=r(3784);let N=o=class{normalize(e){let t=Object.assign({},e);for(const e of o.normalizerRules)t=e(t);return t}};N.normalizerRules=[a.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,c.DeadCodeInjectionThresholdRule,l.DomainLockRule,d.InputFileNameRule,u.SeedRule,p.SelfDefendingRule,f.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,S.StringArrayRule,y.StringArrayEncodingRule,h.StringArrayWrappersChainedCallsRule],N=o=n([i.injectable()],N),t.OptionsNormalizer=N},312:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce(((e,t)=>[...e,r.formatWithNestedConstraints(t)]),[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;return t?`\`${e.property}\` errors:\n${Object.keys(t).map((e=>` - ${t[e]}\n`)).join()}`:`\`${e.property}\` error\n`}}t.ValidationErrorsFormatter=r},2938:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0,t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e=Object.assign(Object.assign({},e),{controlFlowFlattening:!1,controlFlowFlatteningThreshold:0})),e)},3978:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(7170);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e=Object.assign(Object.assign({},e),{deadCodeInjection:!0,stringArray:!0})).stringArrayThreshold||(e=Object.assign(Object.assign({},e),{stringArray:!0,stringArrayThreshold:o.DEFAULT_PRESET.stringArrayThreshold}))),e)},7226:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0,t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e=Object.assign(Object.assign({},e),{deadCodeInjection:!1,deadCodeInjectionThreshold:0})),e)},4984:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(4741);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(o.Utils.extractDomainFrom(r));e=Object.assign(Object.assign({},e),{domainLock:t})}return e}},9062:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(9965);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(o.StringSeparator.Dot).slice(0,-1).join(o.StringSeparator.Dot)||t,e=Object.assign(Object.assign({},e),{inputFileName:t+".js"})),e}},1832:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>e.seed?Object.assign(Object.assign({},e),{seed:e.seed}):Object.assign(Object.assign({},e),{seed:(0,999999999,Math.floor(1e9*Math.random()+0))})},6896:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0,t.SelfDefendingRule=e=>(e.selfDefending&&(e=Object.assign(Object.assign({},e),{compact:!0,selfDefending:!0})),e)},3616:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0,t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:t+"/"})),e):e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:""})}},4073:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(9965);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(o.StringSeparator.Dot);const n=r.length,i=r[n-1];n>1&&i.length<=3&&(r=r.slice(0,-1)),t=r.join(o.StringSeparator.Dot),e=Object.assign(Object.assign({},e),{sourceMapFileName:t+".js.map"})}return e}},2554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},1589:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(1137);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e=Object.assign(Object.assign({},e),{stringArrayEncoding:[o.StringArrayEncoding.None]})),e)},410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const o=r(1137);t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:[o.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0})),e)},3784:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0,t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e=Object.assign(Object.assign({},e),{stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0})),e)},7170:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6532),a=r(6086),s=r(6212),c=r(1137),l=r(9614);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:i.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:[c.StringArrayEncoding.None],stringArrayIndexesType:[s.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:l.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},7576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(2662);t.HIGH_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},i.MEDIUM_OBFUSCATION_PRESET),{controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:!0,optionsPreset:o.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayEncoding:[n.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1}))},8887:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(7170);t.LOW_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},n.DEFAULT_PRESET),{disableConsoleOutput:!0,optionsPreset:o.OptionsPreset.LowObfuscation,rotateStringArray:!0,selfDefending:!0,shuffleStringArray:!0,simplify:!0}))},2662:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(9614),a=r(8887);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},a.LOW_OBFUSCATION_PRESET),{controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:o.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayEncoding:[n.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:i.StringArrayWrappersType.Function,transformObjectKeys:!0}))},3685:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6086),a=r(1137),s=r(9614),c=r(6212);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:[a.StringArrayEncoding.None],stringArrayIndexesType:[c.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:s.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},5558:function(e,t,r){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=void 0;const n=r(516),i=o(r(3142)),a=r(9965),s=r(7170);t.IsAllowedForObfuscationTargets=function(e,t){return(r,o)=>{n.registerDecorator({propertyName:o,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const n=r.object,a=s.DEFAULT_PRESET[o];return i.default(t,a)||e.includes(n.target)},defaultMessage:t=>"This option allowed only for obfuscation targets: "+e.join(a.StringSeparator.Comma+" ")}})}}},8072:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCode=void 0;const c=r(2991),l=r(5350),d=r(5591),u=r(5233),p=r(6086),f=r(4482);let m=class{constructor(e,t){this.cryptUtils=e,this.options=t}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getObfuscatedCode(){return this.correctObfuscatedCode()}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case p.SourceMapMode.Inline:t+="data:application/json;base64,"+this.cryptUtils.btoa(this.sourceMap);break;case p.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};i([u.initializable(),a("design:type",String)],m.prototype,"obfuscatedCode",void 0),i([u.initializable(),a("design:type",String)],m.prototype,"sourceMap",void 0),m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.ICryptUtils)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==d.ICryptUtils&&d.ICryptUtils)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],m),t.ObfuscatedCode=m},8589:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0,t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},3901:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(5233);let f=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};i([p.initializable(),a("design:type",Array)],f.prototype,"storage",void 0),i([p.initializable(),a("design:type",String)],f.prototype,"storageId",void 0),i([c.postConstruct(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],f.prototype,"initialize",null),f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.ArrayStorage=f},2015:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const l=r(2991),d=r(5350),u=r(4482),p=r(1403),f=r(5233);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};a([f.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([f.initializable(),s("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],m.prototype,"storage",void 0),a([l.postConstruct(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],m.prototype,"initialize",null),m=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},1951:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const d=r(2991),u=r(5350),p=r(964),f=r(4482),m=r(1403),g=r(1806),S=r(2015);let y=o=class extends S.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),o.customCodeHelperGroupsList.forEach((e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)}))}};y.customCodeHelperGroupsList=[g.CustomCodeHelperGroup.ConsoleOutput,g.CustomCodeHelperGroup.DebugProtection,g.CustomCodeHelperGroup.DomainLock,g.CustomCodeHelperGroup.SelfDefending,g.CustomCodeHelperGroup.StringArray],s([d.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([d.injectable(),l(0,d.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),l(1,d.inject(u.ServiceIdentifiers.IRandomGenerator)),l(2,d.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperGroupFactory&&p.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==f.IOptions&&f.IOptions)?a:Object])],y),t.CustomCodeHelperGroupStorage=y},646:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.ControlFlowStorage=f},3464:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralNodesCacheStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(1137),f=r(2015);let m=class extends f.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==p.StringArrayEncoding.Rc4&&this.storage.has(e)}};m=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],m),t.LiteralNodesCacheStorage=m},1453:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=f},995:function(e,t,r){"use strict";var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperNamesDataStorage=void 0;const c=r(2991),l=r(5350),d=r(4482),u=r(1403),p=r(2015);let f=class extends p.MapStorage{constructor(e,t){super(e,t)}};f=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.StringArrayScopeCallsWrapperNamesDataStorage=f},1860:function(e,t,r){"use strict";var o,n,i,a,s,c,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const p=r(2991),f=r(5350),m=r(9416),g=r(5768),S=r(9825),y=r(4482),h=r(1403),N=r(1137),_=r(2015);let b=o=class extends _.MapStorage{constructor(e,t,r,n,i){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtilsSwappedAlphabet=i,this.rc4Keys=this.randomGenerator.getRandomGenerator().n((()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength})),o.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(o.minimumIndexShiftAmount,o.maximumIndexShiftAmount):0,this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const n=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,n),n}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map((([e,t],r)=>(t.index=r,[e,t]))).sort((([,e],[,t])=>e.index-t.index)))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:o}=this.getEncodedValue(e),n=this.storage.get(t);if(n)return n;const i={encodedValue:t,encoding:r,decodeKey:o,value:e,index:this.getLength()};return this.storage.set(t,i),i}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case N.StringArrayEncoding.Rc4:{const o=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),n=this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(e,o)),i=null!==(t=this.rc4EncodedValuesSourcesCache.get(n))&&void 0!==t?t:[];let a=i.length;return(!a||!i.includes(e))&&(i.push(e),a++),this.rc4EncodedValuesSourcesCache.set(n,i),a>1?this.getEncodedValue(e):{encodedValue:n,encoding:r,decodeKey:o}}case N.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtilsSwappedAlphabet.btoa(e),encoding:r,decodeKey:t}}default:return{encodedValue:e,encoding:r,decodeKey:null}}}};b.minimumRotationAmount=100,b.maximumRotationAmount=500,b.minimumIndexShiftAmount=100,b.maximumIndexShiftAmount=500,b.rc4KeyLength=4,b.rc4KeysCount=50,b.stringArrayNameLength=4,l([p.postConstruct(),d("design:type",Function),d("design:paramtypes",[]),d("design:returntype",void 0)],b.prototype,"initialize",null),b=o=l([p.injectable(),u(0,p.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,p.inject(f.ServiceIdentifiers.IArrayUtils)),u(2,p.inject(f.ServiceIdentifiers.IRandomGenerator)),u(3,p.inject(f.ServiceIdentifiers.IOptions)),u(4,p.inject(f.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.IArrayUtils&&g.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==y.IOptions&&y.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtilsSwappedAlphabet&&S.ICryptUtilsSwappedAlphabet)?c:Object])],b),t.StringArrayStorage=b},1891:function(e,t,r){"use strict";var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VisitedLexicalScopeNodesStackStorage=void 0;const l=r(2991),d=r(5350),u=r(5768),p=r(4482),f=r(1403),m=r(3901);let g=class extends m.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){var e;const t=this.getLength();return null!==(e=this.get(t-2))&&void 0!==e?e:void 0}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};g=a([l.injectable(),c(0,l.inject(d.ServiceIdentifiers.IRandomGenerator)),c(1,l.inject(d.ServiceIdentifiers.IOptions)),c(2,l.inject(d.ServiceIdentifiers.IArrayUtils)),s("design:paramtypes",["function"==typeof(o=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IArrayUtils&&u.IArrayUtils)?i:Object])],g),t.VisitedLexicalScopeNodesStackStorage=g},8904:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5127:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8820:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},964:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8749:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7183:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1878:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7070:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7219:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9628:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2147:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3312:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},805:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},5568:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2185:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4364:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3546:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},138:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6622:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},9651:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7207:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const s=r(2991),c=r(5350),l=r(2569);let d=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const o of e){const e=t[o].runAfter;if(e&&e.length)for(const n of e)void 0===t[n]?r.push([o,null]):r.push([n,o]);else r.push([o,null])}return r}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",["function"==typeof(o=void 0!==l.ILevelledTopologicalSorter&&l.ILevelledTopologicalSorter)?o:Object])],d),t.AbstractTransformerNamesGroupsBuilder=d},3087:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const s=r(2991),c=r(5350),l=r(1403);let d=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;r<e;r++)t.push(r);return t}fillWithRange(e,t){const r=[];for(let o=0;o<e;o++)r.push(t(o));return r}findMostOccurringElement(e){var t;if(!e.length)return null;const r={};let o=e[0],n=1;for(const i of e){const e=(null!==(t=r[i])&&void 0!==t?t:0)+1;e>n&&(o=i,n=e),r[i]=e}return o}getLastElement(e){var t;return null!==(t=e[e.length-1])&&void 0!==t?t:void 0}rotate(e,t){if(!e.length)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const r=e;let o;for(;t--;)o=r.pop(),o&&r.unshift(o);return r}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};d=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],d),t.ArrayUtils=d},5579:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const s=r(2991),c=r(5350),l=r(1403),d=r(6934),u=r(3697),p=r(4741);let f=class{constructor(e){this.base64Alphabet=d.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(`${p.Utils.hexadecimalPrefix}${t}`,16))));for(let o,n,i=0,a=t;e.charAt(0|i)||(a="=",i%1);r+=a.charAt(63&o>>8-i%1*8)){if(n=e.charCodeAt(i+=3/4),n>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:u.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${o=e,o.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var o;const n=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(n),r=n.join(""),[((e,t)=>{let r=-1,o=-1,n="";for(;r<e.length||o<t.length;)this.randomGenerator.getMathRandom()<.5&&o<t.length?n+=t.charAt(++o):n+=e.charAt(++r);return n})(e,r),r]}rc4(e,t){const r=[];let o,n=0,i="";for(var a=0;a<256;a++)r[a]=a;for(a=0;a<256;a++)n=(n+r[a]+t.charCodeAt(a%t.length))%256,o=r[a],r[a]=r[n],r[n]=o;a=0,n=0;for(let t=0;t<e.length;t++)n=(n+r[a=(a+1)%256])%256,o=r[a],r[a]=r[n],r[n]=o,i+=String.fromCharCode(e.charCodeAt(t)^r[(r[a]+r[n])%256]);return i}};f=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],f),t.CryptUtils=f},6913:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtilsSwappedAlphabet=void 0;const s=r(2991),c=r(5350),l=r(1403),d=r(4497),u=r(5579);let p=class extends u.CryptUtils{constructor(e){super(e),this.base64Alphabet=d.base64alphabetSwapped}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object])],p),t.CryptUtilsSwappedAlphabet=p},1622:function(e,t,r){"use strict";var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;const i=r(2991);let a=o=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);const n=new RegExp("[\\s\\S]","g");let i,a;const s=e.replace(n,(e=>t||o.forceEscapeCharactersRegExp.test(e)?(o.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e));return this.stringsCache.set(r,s),this.stringsCache.set(`${s}-${String(t)}`,s),s}};a.ASCIICharactersRegExp=/[\x00-\x7F]/,a.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,a=o=n([i.injectable()],a),t.EscapeSequenceEncoder=a},7248:function(e,t,r){"use strict";var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;const n=r(2991);let i=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const o of e)void 0===r[o]&&this.visit(t,r,o);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error("Unable to remove non-root node: "+e);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t)for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error("Unknown node: "+e);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const o=t[r];if("visiting"===o)throw new Error("Detected cycle involving node: "+r);if(o)return;t[r]="visiting";const n=this.getPrecedents(r);for(const r of n)this.visit(e,t,r);t[r]="ok",e.push(r)}};i=o([n.injectable()],i),t.LevelledTopologicalSorter=i},6543:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(4741);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):e.toString(16)+"n";return`${o.Utils.hexadecimalPrefix}${t}`}static isCeil(e){return"number"!=typeof e||e%1==0}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return e<Number.MIN_SAFE_INTEGER||e>Number.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),o=e%2==0?1:2;for(let n=1;n<=r;n+=o){if(e%n!=0)continue;t.push(-n,n);const r=e/n;r!==n&&t.push(-r,r)}return t.sort(((e,t)=>e-t))}}},3697:function(e,t,r){"use strict";var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},d=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const u=r(2991),p=r(5350),f=d(r(204)),m=r(3434),g=r(4482),S=r(5164),y=r(5233),h=r(6366),N=r(2691);let _=o=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new m.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomIntegerExcluding(e,t,r){const o=[];for(let n=e;n<=t;n++)r.includes(n)||o.push(n);return this.randomGenerator.pickone(o)}getRandomString(e,t=o.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();return(""+e).split("|").length>1?e:`${e}|${f.default(this.sourceCode.getSourceCode())}`}};_.randomGeneratorPool=`${h.alphabetString}${N.alphabetStringUppercase}`,s([y.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],_.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],_.prototype,"initialize",null),_=o=s([u.injectable(),l(0,u.inject(p.ServiceIdentifiers.ISourceCode)),l(1,u.inject(p.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==S.ISourceCode&&S.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],_),t.RandomGenerator=_},2161:function(e,t,r){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtils=void 0;const n=o(r(5667));t.StringUtils=class{static escapeJsString(e){return n.default(e)}}},4741:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){return e&&t?`${e}_${new Date(parseInt(t,10)).toISOString()}`:"unknown"}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze(Object.assign({},e))}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},5285:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=5285,e.exports=t},6856:e=>{"use strict";e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALT_MASK","ALWAYS","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AddSearchProvider","AnalyserNode","AnimationEvent","AnonXMLHttpRequest","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioStreamTrack","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BarProp","BaseHref","BatteryManager","BeforeLoadEvent","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Boolean","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSUnknownRule","CSSValue","CSSValueList","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","CloseEvent","Collator","CommandEvent","Comment","CompositionEvent","Console","Controllers","ConvolverNode","Counter","Crypto","CryptoKey","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DST_ALPHA","DST_COLOR","DYNAMIC_DRAW","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DelayNode","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Document","DocumentFragment","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","Element","ElementQuery","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","Feed","FeedEntry","File","FileError","FileList","FileReader","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FormData","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadButton","GamepadEvent","GestureEvent","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","Image","ImageBitmap","ImageData","Infinity","InputEvent","InputMethodContext","InstallTrigger","Int16Array","Int32Array","Int8Array","Intent","InternalError","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","KeyboardEvent","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LocalMediaStream","Location","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_VALUE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MediaController","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBSOLETE","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","Option","OscillatorNode","OverflowEvent","PACK_ALIGNMENT","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","Path2D","Performance","PerformanceEntry","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Plugin","PluginArray","PopStateEvent","PopupBlockedEvent","ProcessingInstruction","ProgressEvent","Promise","PropertyNodeList","Proxy","PushManager","PushSubscription","Q","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED_BITS","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RGB","RGB565","RGB5_A1","RGBA","RGBA4","RGBColor","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCDataChannelEvent","RTCIceCandidate","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","RTCStatsReport","RadioNodeList","Range","RangeError","RangeException","RecordErrorEvent","Rect","ReferenceError","RegExp","Request","Response","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","START_TO_END","START_TO_START","STATIC_DRAW","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedWorker","SimpleGestureEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","StopIteration","Storage","StorageEvent","String","StyleSheet","StyleSheetList","SubtleCrypto","Symbol","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Text","TextDecoder","TextEncoder","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","TypeError","UIEvent","UNCACHED","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNSCHEDULED_STATE","UNSENT","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VTTCue","VTTRegion","ValidityState","VideoStreamTrack","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WaveShaperNode","WeakMap","WeakSet","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArray","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WheelEvent","Window","Worker","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","add","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addWakeLockListener","addedNodes","additionalName","additiveSymbols","addons","adoptNode","adr","advance","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allowFullscreen","allowedDirections","alpha","alt","altGraphKey","altHtml","altKey","altLeft","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","angle","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","apply","applyElement","arc","arcTo","archive","areas","arguments","arrayBuffer","asin","asinh","assert","assign","async","atEnd","atan","atan2","atanh","atob","attachEvent","attachShader","attachShadow","attachments","attack","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributes","audioTracks","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","axes","axis","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","balance","baseFrequencyX","baseFrequencyY","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","beginElement","beginElementAt","beginPath","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","binaryType","bind","bindAttribLocation","bindBuffer","bindFramebuffer","bindRenderbuffer","bindTexture","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blob","blockDirection","blue","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderColorDark","borderColorLight","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","c","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canPlayType","cancel","cancelAnimationFrame","cancelBubble","cancelScheduledValues","cancelable","candidate","canvas","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","characterData","characterDataOldValue","characterSet","charging","chargingTime","charset","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","classList","className","classid","clear","clearAttributes","clearColor","clearData","clearDepth","clearImmediate","clearInterval","clearMarks","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-interpolation","color-interpolation-filters","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commitPreferences","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","compatMode","compatible","compile","compileShader","complete","componentFromPoint","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexSubImage2D","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectStart","connected","connection","connectionSpeed","console","consolidate","constrictionActive","constructor","contactID","contains","containsNode","content","contentDocument","contentEditable","contentOverflow","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuous","control","controller","controls","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","cos","cosh","count","counter-increment","counter-reset","counterIncrement","counterReset","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTMLDocument","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPopup","createProcessingInstruction","createProgram","createRadialGradient","createRange","createRangeCollection","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createScriptProcessor","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTreeWalker","createWaveShaper","creationTime","crossOrigin","crypto","csi","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentNode","currentPage","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customError","cx","cy","d","data","dataFld","dataFormatAs","dataPageSize","dataSrc","dataTransfer","database","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPrevented","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","delayTime","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteRenderbuffer","deleteRow","deleteRule","deleteShader","deleteTFoot","deleteTHead","deleteTexture","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","depthFunc","depthMask","depthRange","deriveBits","deriveKey","description","deselectAll","designMode","destination","destinationURL","detach","detachEvent","detachShader","detail","detune","devicePixelRatio","deviceXDPI","deviceYDPI","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disableVertexAttribArray","disabled","dischargingTime","disconnect","dispatchEvent","display","distanceModel","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","download","dragDrop","draggable","drawArrays","drawArraysInstancedANGLE","drawCustomFocusRing","drawElements","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dump","duplicate","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effectAllowed","elapsedTime","elementFromPoint","elements","elevation","ellipse","email","embeds","empty","empty-cells","emptyCells","enable","enableBackground","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeURI","encodeURIComponent","encoding","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endTime","ended","endsWith","entities","entries","entryType","enumerate","enumerateEditable","error","errorCode","escape","eval","evaluate","event","eventPhase","every","exception","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPointerLock","exp","expand","expandEntityReferences","expando","expansion","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","f","face","factoryReset","fallback","familyName","farthestViewportElement","fastSeek","fatal","fetch","fetchStart","fftSize","fgColor","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","fill","fill-opacity","fill-rule","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","fireEvent","firstChild","firstElementChild","firstPage","fixed","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","fontcolor","fonts","fontsize","for","forEach","forceRedraw","form","formAction","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","fr","frame","frameBorder","frameElement","frameSpacing","framebufferRenderbuffer","framebufferTexture2D","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","frontFace","fround","fullScreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","genderIdentity","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getAdjacentText","getAll","getAllResponseHeaders","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","getAudioTracks","getBBox","getBattery","getBlob","getBookmark","getBoundingClientRect","getBufferParameter","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getChannelData","getCharNumAtPosition","getClientRect","getClientRects","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getConfiguration","getContext","getContextAttributes","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDestinationInsertionPoints","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getFeature","getFile","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHours","getImageData","getInt16","getInt32","getInt8","getIntersectionList","getItem","getItems","getKey","getLineDash","getLocalStreams","getMarks","getMatchedCSSRules","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNotifier","getNumberOfChars","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getPathSegAtLength","getPointAtLength","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyValue","getPrototypeOf","getRGBColorValue","getRandomValues","getRangeAt","getReceivers","getRectValue","getRegistration","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRotationOfChar","getSVGDocument","getScreenCTM","getSeconds","getSelection","getSenders","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getStats","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedExtensions","getTexParameter","getTime","getTimezoneOffset","getTotalLength","getTrackById","getTracks","getTransformToElement","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformLocation","getUserMedia","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getWakeLockState","getYear","givenName","global","globalAlpha","globalCompositeOperation","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","gradientTransform","gradientUnits","grammars","green","group","groupCollapsed","groupEnd","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasComposition","hasExtension","hasFeature","hasFocus","hasLayout","hasOwnProperty","hash","head","headers","heading","height","hidden","hide","hideFocus","high","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostname","href","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","hwTimestamp","hypot","iccId","iceConnectionState","iceGatheringState","icon","id","identifier","identity","ignoreBOM","ignoreCase","image-orientation","image-rendering","imageOrientation","imageRendering","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData","insertItemBefore","insertNode","insertRow","insertRule","instanceRoot","intercept","interimResults","internalSubset","intersectsNode","interval","invalidIteratorState","inverse","invertSelf","is","is2D","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isFinite","isFramebuffer","isFrozen","isGenerator","isId","isInjected","isInteger","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isRenderbuffer","isSafeInteger","isSameNode","isSealed","isShader","isSupported","isTextEdit","isTexture","isTrusted","isTypeSupported","isView","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","iterateNext","iterator","javaEnabled","jobTitle","join","json","justify-content","justifyContent","k1","k2","k3","k4","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keySystem","keyText","keyUsage","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftMargin","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearRampToValueAtTime","lineno","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTimes","loaded","localDescription","localName","localStorage","locale","localeCompare","location","locationbar","lock","lockedFile","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","manifest","map","mapping","margin","margin-bottom","margin-left","margin-right","margin-top","marginBottom","marginHeight","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-type","maskContentUnits","maskType","maskUnits","match","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-height","max-width","maxAlternatives","maxChannelCount","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxLength","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","metaKey","method","mimeType","mimeTypes","min","min-height","min-width","minDecibels","minHeight","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationStart","navigator","near","nearestViewportElement","negative","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextNode","nextPage","nextSibling","nickname","noHref","noResize","noShade","noValidate","noWrap","nodeName","nodeType","nodeValue","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","observe","of","offscreenBuffering","offset","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onactivate","onactive","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onblocked","onblur","onbounce","onboundary","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","oncompassneedscalibration","oncomplete","oncontextmenu","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceproximity","ondischargingtimechange","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onfullscreenchange","onfullscreenerror","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","oniceconnectionstatechange","oninactive","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onlayoutcomplete","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerup","onpopstate","onprogress","onpropertychange","onratechange","onreadystatechange","onremovestream","onremovetrack","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onseeked","onseeking","onselect","onselectionchange","onselectstart","onshow","onsignalingstatechange","onsoundend","onsoundstart","onspeechend","onspeechstart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","ontextinput","ontimeout","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onunload","onupdateready","onupgradeneeded","onuserproximity","onversionchange","onvoiceschanged","onvolumechange","onwaiting","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opener","opera","operationType","operator","opr","optimum","options","order","orderX","orderY","ordered","org","orient","orientAngle","orientType","orientation","origin","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","overflow","overflow-x","overflow-y","overflowX","overflowY","overrideMimeType","oversample","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","pad","padding","padding-bottom","padding-left","padding-right","padding-top","paddingBottom","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","palette","panningModel","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseFloat","parseFromString","parseInt","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","paused","pending","performance","permission","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phoneticFamilyName","phoneticGivenName","photo","ping","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","placeholder","platform","play","playbackRate","playbackState","playbackTime","played","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","position","positionAlign","postError","postMessage","poster","pow","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","previousElementSibling","previousNode","previousPage","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","privateKey","probablySupportsContext","process","processIceMessage","product","productSub","profile","profileEnd","profiles","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","pseudoClass","pseudoElement","publicId","publicKey","published","push","pushNotification","pushState","put","putImageData","quadraticCurveTo","qualifier","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","quote","quotes","r","r1","r2","race","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readOnly","readPixels","readReportRequested","readyState","reason","reboot","receiver","receivers","recordNumber","recordset","rect","red","redirectCount","redirectEnd","redirectStart","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referrer","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProtocolHandler","reject","rel","relList","relatedNode","relatedTarget","release","releaseCapture","releaseEvents","releasePointerCapture","releaseShaderCompiler","reliable","reload","remainingSpace","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removedNodes","renderbufferStorage","renderedBuffer","renderingMode","repeat","replace","replaceAdjacentText","replaceChild","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceTrack","replaceWholeText","reportValidity","requestAnimationFrame","requestAutocomplete","requestData","requestFullscreen","requestMediaKeySystemAccess","requestPermission","requestPointerLock","requestStart","requestingWindow","required","requiredExtensions","requiredFeatures","reset","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseStart","responseText","responseType","responseURL","responseXML","restore","result","resultType","resume","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightMargin","rolloffFactor","root","rootElement","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationRate","round","rowIndex","rowSpan","rows","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","safari","sampleCoverage","sampleRate","sandbox","save","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scripts","scroll","scroll-behavior","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMaxX","scrollMaxY","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbars","scrolling","sdp","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekable","seeking","select","selectAllChildren","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentTimestamp","separator","serializeToString","serviceWorker","sessionId","sessionStorage","set","setActive","setAlpha","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBingCurrentSearchDefault","setCapture","setColor","setCompositeOperation","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFullYear","setHours","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setLineCap","setLineDash","setLineJoin","setLineWidth","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setPeriodicWave","setPointerCapture","setPosition","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-rendering","shapeRendering","sheet","shift","shiftKey","shiftLeft","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signalingState","sin","singleNodeValue","sinh","size","sizeToContent","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","source","sourceBuffer","sourceBuffers","sourceIndex","spacing","span","speakAs","speaking","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","standalone","standby","start","startContainer","startIce","startOffset","startRendering","startTime","startsWith","state","status","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopOpacity","stopPropagation","storageArea","storageName","storageStatus","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","strike","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supports","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takeRecords","tan","tanh","target","targetElement","targetTouches","targetX","targetY","tel","terminate","test","texImage2D","texParameterf","texParameteri","texSubImage2D","text","text-align","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationStyle","textDecorationUnderline","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlinePosition","then","threadId","threshold","tiltX","tiltY","time","timeEnd","timeStamp","timeout","timestamp","timestampOffset","timing","title","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMethod","toPrecision","toSdp","toSource","toStaticHTML","toString","toStringTag","toTimeString","toUTCString","toUpperCase","toggle","toggleLongPressEnabled","tooLong","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touchAction","touches","trace","track","transaction","transactions","transform","transform-origin","transform-style","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","trim","trimLeft","trimRight","trueSpeed","trunc","truncate","type","typeDetail","typeMismatch","typeMustMatch","types","ubound","undefined","unescape","uneval","unicode-bidi","unicodeBidi","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","unique","uniqueID","uniqueNumber","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","update","updateCommands","updateIce","updateInterval","updateSettings","updated","updating","upload","upper","upperBound","upperOpen","uri","url","urn","urns","usages","useCurrentView","useMap","useProgram","usedSpace","userAgent","userLanguage","username","v8BreakIterator","vAlign","vLink","valid","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisorANGLE","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vibrate","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","visibility","visibilityState","visible","vlinkColor","voice","volume","vrml","vspace","w","wand","warn","wasClean","watch","watchPosition","webdriver","webkitAddKey","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitKeys","webkitLineDashOffset","webkitLockOrientation","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextSizeAdjust","webkitTransform","webkitTransformOrigin","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","wrap","wrapKey","write","writeln","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')},9385:e=>{"use strict";e.exports=require("@javascript-obfuscator/escodegen")},6054:e=>{"use strict";e.exports=require("acorn")},2242:e=>{"use strict";e.exports=require("chalk")},3434:e=>{"use strict";e.exports=require("chance")},516:e=>{"use strict";e.exports=require("class-validator")},647:e=>{"use strict";e.exports=require("commander")},8:e=>{"use strict";e.exports=require("eslint-scope")},4523:e=>{"use strict";e.exports=require("estraverse")},9553:e=>{"use strict";e.exports=require("eventemitter3")},3142:e=>{"use strict";e.exports=require("fast-deep-equal")},5747:e=>{"use strict";e.exports=require("fs")},2991:e=>{"use strict";e.exports=require("inversify")},5667:e=>{"use strict";e.exports=require("js-string-escape")},204:e=>{"use strict";e.exports=require("md5")},3841:e=>{"use strict";e.exports=require("mkdirp")},768:e=>{"use strict";e.exports=require("multimatch")},5622:e=>{"use strict";e.exports=require("path")},9906:e=>{"use strict";e.exports=require("reflect-metadata")},8655:e=>{"use strict";e.exports=require("string-template")},6094:e=>{"use strict";e.exports=require("stringz")}},t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,r),n.exports}return r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r(7568)})();
+//# sourceMappingURL=index.cli.js.map \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.cli.js.LICENSE.txt b/src/node_modules/javascript-obfuscator/dist/index.cli.js.LICENSE.txt
new file mode 100644
index 0000000..9f0e4a2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.cli.js.LICENSE.txt
@@ -0,0 +1,23 @@
+/*!
+Copyright (C) 2016-2020 Timofey Kachalov <sanex3339@yandex.ru>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
diff --git a/src/node_modules/javascript-obfuscator/dist/index.cli.js.map b/src/node_modules/javascript-obfuscator/dist/index.cli.js.map
new file mode 100644
index 0000000..60ae9e9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.cli.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://javascript-obfuscator/./index.cli.ts","webpack://javascript-obfuscator/./src/ASTParserFacade.ts","webpack://javascript-obfuscator/./src/JavaScriptObfuscator.ts","webpack://javascript-obfuscator/./src/JavaScriptObfuscatorCLIFacade.ts","webpack://javascript-obfuscator/./src/JavaScriptObfuscatorFacade.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/scope-analyzer/ScopeAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts","webpack://javascript-obfuscator/./src/cli/JavaScriptObfuscatorCLI.ts","webpack://javascript-obfuscator/./src/cli/sanitizers/ArraySanitizer.ts","webpack://javascript-obfuscator/./src/cli/sanitizers/BooleanSanitizer.ts","webpack://javascript-obfuscator/./src/cli/utils/CLIUtils.ts","webpack://javascript-obfuscator/./src/cli/utils/ObfuscatedCodeWriter.ts","webpack://javascript-obfuscator/./src/cli/utils/SourceCodeReader.ts","webpack://javascript-obfuscator/./src/code-transformers/AbstractCodeTransformer.ts","webpack://javascript-obfuscator/./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/code-transformers/CodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts","webpack://javascript-obfuscator/./src/constants/AlphabetString.ts","webpack://javascript-obfuscator/./src/constants/AlphabetStringUppercase.ts","webpack://javascript-obfuscator/./src/constants/Base64Alphabet.ts","webpack://javascript-obfuscator/./src/constants/Base64AlphabetSwapped.ts","webpack://javascript-obfuscator/./src/constants/EcmaVersion.ts","webpack://javascript-obfuscator/./src/constants/NumbersString.ts","webpack://javascript-obfuscator/./src/container/InversifyContainerFacade.ts","webpack://javascript-obfuscator/./src/container/ServiceIdentifiers.ts","webpack://javascript-obfuscator/./src/container/modules/analyzers/AnalyzersModule.ts","webpack://javascript-obfuscator/./src/container/modules/code-transformers/CodeTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts","webpack://javascript-obfuscator/./src/container/modules/custom-nodes/CustomNodesModule.ts","webpack://javascript-obfuscator/./src/container/modules/generators/GeneratorsModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/ControlFlowTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/ConvertingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/FinalizingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/InitializingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/NodeTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/PreparingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/SimplifyingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/StringArrayTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node/NodeModule.ts","webpack://javascript-obfuscator/./src/container/modules/options/OptionsModule.ts","webpack://javascript-obfuscator/./src/container/modules/storages/StoragesModule.ts","webpack://javascript-obfuscator/./src/container/modules/utils/UtilsModule.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/AbstractCustomCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/CustomCodeHelperFormatter.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/CustomCodeHelperObfuscator.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts","webpack://javascript-obfuscator/./src/custom-nodes/AbstractCustomNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts","webpack://javascript-obfuscator/./src/decorators/Initializable.ts","webpack://javascript-obfuscator/./src/enums/ObfuscationTarget.ts","webpack://javascript-obfuscator/./src/enums/StringSeparator.ts","webpack://javascript-obfuscator/./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/enums/code-transformers/CodeTransformationStage.ts","webpack://javascript-obfuscator/./src/enums/code-transformers/CodeTransformer.ts","webpack://javascript-obfuscator/./src/enums/custom-code-helpers/CustomCodeHelper.ts","webpack://javascript-obfuscator/./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/ControlFlowCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/StringArrayCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts","webpack://javascript-obfuscator/./src/enums/event-emitters/ObfuscationEvent.ts","webpack://javascript-obfuscator/./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/enums/logger/LoggingMessage.ts","webpack://javascript-obfuscator/./src/enums/logger/LoggingPrefix.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/NodeTransformationStage.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/NodeTransformer.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/VisitorDirection.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts","webpack://javascript-obfuscator/./src/enums/node/NodeType.ts","webpack://javascript-obfuscator/./src/enums/node/ObfuscatingGuardResult.ts","webpack://javascript-obfuscator/./src/enums/options/presets/OptionsPreset.ts","webpack://javascript-obfuscator/./src/enums/source-map/SourceMapMode.ts","webpack://javascript-obfuscator/./src/event-emitters/ObfuscationEventEmitter.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/code-transformers/ICodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts","webpack://javascript-obfuscator/./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts","webpack://javascript-obfuscator/./src/interfaces/event-emitters/IObfuscationEventEmitter.ts","webpack://javascript-obfuscator/./src/interfaces/logger/ILogger.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/INodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts","webpack://javascript-obfuscator/./src/interfaces/node/IScopeIdentifiersTraverser.ts","webpack://javascript-obfuscator/./src/interfaces/options/IOptions.ts","webpack://javascript-obfuscator/./src/interfaces/options/IOptionsNormalizer.ts","webpack://javascript-obfuscator/./src/interfaces/source-code/ISourceCode.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IArrayUtils.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ICryptUtils.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IEscapeSequenceEncoder.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ILevelledTopologicalSorter.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IRandomGenerator.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/logger/Logger.ts","webpack://javascript-obfuscator/./src/node-transformers/AbstractNodeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/node-transformers/NodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/SplitStringTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts","webpack://javascript-obfuscator/./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/initializing-transformers/CommentsTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/MetadataTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/ParentificationTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/string-array-transformers/StringArrayTransformer.ts","webpack://javascript-obfuscator/./src/node/NodeAppender.ts","webpack://javascript-obfuscator/./src/node/NodeFactory.ts","webpack://javascript-obfuscator/./src/node/NodeGuards.ts","webpack://javascript-obfuscator/./src/node/NodeLexicalScopeUtils.ts","webpack://javascript-obfuscator/./src/node/NodeLiteralUtils.ts","webpack://javascript-obfuscator/./src/node/NodeMetadata.ts","webpack://javascript-obfuscator/./src/node/NodeStatementUtils.ts","webpack://javascript-obfuscator/./src/node/NodeUtils.ts","webpack://javascript-obfuscator/./src/node/ScopeIdentifiersTraverser.ts","webpack://javascript-obfuscator/./src/options/Options.ts","webpack://javascript-obfuscator/./src/options/OptionsNormalizer.ts","webpack://javascript-obfuscator/./src/options/ValidationErrorsFormatter.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DeadCodeInjectionRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DomainLockRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/InputFileNameRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SeedRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SelfDefendingRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SourceMapBaseUrlRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SourceMapFileNameRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayEncodingRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts","webpack://javascript-obfuscator/./src/options/presets/Default.ts","webpack://javascript-obfuscator/./src/options/presets/HighObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/LowObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/MediumObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/NoCustomNodes.ts","webpack://javascript-obfuscator/./src/options/validators/IsAllowedForObfuscationTargets.ts","webpack://javascript-obfuscator/./src/source-code/ObfuscatedCode.ts","webpack://javascript-obfuscator/./src/source-code/SourceCode.ts","webpack://javascript-obfuscator/./src/storages/ArrayStorage.ts","webpack://javascript-obfuscator/./src/storages/MapStorage.ts","webpack://javascript-obfuscator/./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts","webpack://javascript-obfuscator/./src/storages/custom-nodes/ControlFlowStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts","webpack://javascript-obfuscator/./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts","webpack://javascript-obfuscator/./src/types/container/code-transformers/TCodeTransformerFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TControlFlowReplacerFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TControlFlowStorageFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TNodeTransformerFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TObfuscatingGuardFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts","webpack://javascript-obfuscator/./src/types/container/source-code/TObfuscatedCodeFactory.ts","webpack://javascript-obfuscator/./src/types/options/TInputCLIOptions.ts","webpack://javascript-obfuscator/./src/types/options/TInputOptions.ts","webpack://javascript-obfuscator/./src/types/options/TOptionsPreset.ts","webpack://javascript-obfuscator/./src/types/options/TStringArrayWrappersType.ts","webpack://javascript-obfuscator/./src/types/storages/TControlFlowStorage.ts","webpack://javascript-obfuscator/./src/types/storages/TCustomCodeHelperGroupStorage.ts","webpack://javascript-obfuscator/./src/types/utils/TTypeFromEnum.ts","webpack://javascript-obfuscator/./src/utils/AbstractTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/utils/ArrayUtils.ts","webpack://javascript-obfuscator/./src/utils/CryptUtils.ts","webpack://javascript-obfuscator/./src/utils/CryptUtilsSwappedAlphabet.ts","webpack://javascript-obfuscator/./src/utils/EscapeSequenceEncoder.ts","webpack://javascript-obfuscator/./src/utils/LevelledTopologicalSorter.ts","webpack://javascript-obfuscator/./src/utils/NumberUtils.ts","webpack://javascript-obfuscator/./src/utils/RandomGenerator.ts","webpack://javascript-obfuscator/./src/utils/StringUtils.ts","webpack://javascript-obfuscator/./src/utils/Utils.ts","webpack://javascript-obfuscator/./src/cli/utils|sync","webpack://javascript-obfuscator/external \"@javascript-obfuscator/escodegen\"","webpack://javascript-obfuscator/external \"acorn\"","webpack://javascript-obfuscator/external \"chalk\"","webpack://javascript-obfuscator/external \"chance\"","webpack://javascript-obfuscator/external \"class-validator\"","webpack://javascript-obfuscator/external \"commander\"","webpack://javascript-obfuscator/external \"eslint-scope\"","webpack://javascript-obfuscator/external \"estraverse\"","webpack://javascript-obfuscator/external \"eventemitter3\"","webpack://javascript-obfuscator/external \"fast-deep-equal\"","webpack://javascript-obfuscator/external \"fs\"","webpack://javascript-obfuscator/external \"inversify\"","webpack://javascript-obfuscator/external \"js-string-escape\"","webpack://javascript-obfuscator/external \"md5\"","webpack://javascript-obfuscator/external \"mkdirp\"","webpack://javascript-obfuscator/external \"multimatch\"","webpack://javascript-obfuscator/external \"path\"","webpack://javascript-obfuscator/external \"reflect-metadata\"","webpack://javascript-obfuscator/external \"string-template\"","webpack://javascript-obfuscator/external \"stringz\"","webpack://javascript-obfuscator/webpack/bootstrap","webpack://javascript-obfuscator/webpack/startup","webpack://javascript-obfuscator/webpack/runtime/hasOwnProperty shorthand"],"names":["Object","defineProperty","exports","value","JavaScriptObfuscatorCLIFacade_1","module","JavaScriptObfuscatorCLI","__createBinding","this","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","prototype","hasOwnProperty","call","__importDefault","ASTParserFacade","acorn","chalk_1","sourceCode","config","sourceTypeLength","sourceTypes","length","i","parseType","error","Error","processParsingError","message","loc","inputConfig","sourceType","comments","assign","onComment","program","parse","errorMessage","position","line","column","errorLine","split","startErrorIndex","Math","max","nearestSymbolsCount","endErrorIndex","min","formattedPointer","colorError","formattedCodeSlice","slice","replace","default","red","JavaScriptObfuscator_1","_a","_b","_c","_d","_e","_f","__decorate","decorators","target","key","desc","d","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","__metadata","metadata","__param","paramIndex","decorator","JavaScriptObfuscator","inversify_1","ServiceIdentifiers_1","escodegen","TObfuscatedCodeFactory_1","ICodeTransformersRunner_1","ILogger_1","IOptions_1","IRandomGenerator_1","INodeTransformersRunner_1","CodeTransformer_1","CodeTransformationStage_1","LoggingMessage_1","NodeTransformer_1","NodeTransformationStage_1","EcmaVersion_1","ASTParserFacade_1","NodeGuards_1","Utils_1","codeTransformersRunner","nodeTransformersRunner","randomGenerator","obfuscatedCodeFactory","logger","options","timeStart","Date","now","info","LoggingMessage","Version","Utils","buildVersionMessage","ObfuscationStarted","RandomGeneratorSeed","getInputSeed","runCodeTransformationStage","CodeTransformationStage","PreparingTransformers","astTree","parseCode","obfuscatedAstTree","transformAstTree","generatorOutput","generateCode","code","FinalizingTransformers","obfuscationTime","success","ObfuscationCompleted","getObfuscatedCode","parseOptions","runNodeTransformationStage","NodeTransformationStage","Initializing","NodeGuards","isProgramNode","body","leadingComments","trailingComments","Preparing","deadCodeInjection","DeadCodeInjection","controlFlowFlattening","ControlFlowFlattening","renameProperties","RenameProperties","Converting","RenameIdentifiers","StringArray","simplify","Simplifying","Finalizing","warn","EmptySourceCode","escodegenParams","sourceMap","inputFileName","sourceContent","generate","format","compact","map","toString","codeTransformationStage","transform","codeTransformersList","nodeTransformationStage","nodeTransformersList","ecmaVersion","allowHashBang","allowImportExportEverywhere","allowReturnOutsideFunction","locations","ranges","comment","verbatim","sourceMapWithCode","CodeTransformer","HashbangOperatorTransformer","NodeTransformer","BooleanLiteralTransformer","BlockStatementControlFlowTransformer","BlockStatementSimplifyTransformer","CommentsTransformer","CustomCodeHelpersTransformer","DeadCodeInjectionTransformer","EscapeSequenceTransformer","EvalCallExpressionTransformer","ExportSpecifierTransformer","ExpressionStatementsMergeTransformer","FunctionControlFlowTransformer","IfStatementSimplifyTransformer","LabeledStatementTransformer","RenamePropertiesTransformer","MemberExpressionTransformer","MetadataTransformer","MethodDefinitionTransformer","NumberLiteralTransformer","NumberToNumericalExpressionTransformer","ObfuscatingGuardsTransformer","ObjectExpressionKeysTransformer","ObjectExpressionTransformer","ObjectPatternPropertiesTransformer","ParentificationTransformer","ScopeIdentifiersTransformer","SplitStringTransformer","StringArrayScopeCallsWrapperTransformer","StringArrayTransformer","TemplateLiteralTransformer","VariableDeclarationsMergeTransformer","VariablePreserveTransformer","injectable","inject","ServiceIdentifiers","ICodeTransformersRunner","INodeTransformersRunner","IRandomGenerator","Factory__IObfuscatedCode","ILogger","IOptions","TObfuscatedCodeFactory","JavaScriptObfuscatorCLI_1","argv","javaScriptObfuscatorCLI","initialize","run","InversifyContainerFacade_1","Options_1","JavaScriptObfuscatorFacade","inputOptions","inversifyContainerFacade","InversifyContainerFacade","load","obfuscatedCode","IJavaScriptObfuscator","obfuscate","unload","sourceCodesObject","keys","reduce","acc","sourceCodeIdentifier","index","identifiersPrefix","getIdentifiersPrefixForMultipleSources","sourceCodeOptions","optionsPreset","Options","getOptionsByPreset","version","CallsGraphAnalyzer_1","CallsGraphAnalyzer","estraverse","TCalleeDataExtractorFactory_1","CalleeDataExtractor_1","NodeStatementUtils_1","calleeDataExtractorFactory","blockScopeBodyLength","lastIndex","limitThresholdActivationIndex","limitThresholdActivationLength","limitIndex","round","limitThreshold","analyzeRecursive","blockScopeBody","getLimitIndex","callsGraphData","blockScopeBodyNode","traverse","enter","node","isCallExpressionNode","parentNode","NodeStatementUtils","getParentNodeWithStatements","VisitorOption","Skip","analyzeCallExpressionNode","callExpressionNode","calleeDataExtractorsList","forEach","calleeDataExtractorName","calleeData","extract","callee","push","callsGraph","CalleeDataExtractor","FunctionDeclarationCalleeDataExtractor","FunctionExpressionCalleeDataExtractor","ObjectExpressionCalleeDataExtractor","Factory__ICalleeDataExtractor","TCalleeDataExtractorFactory","AbstractCalleeDataExtractor","AbstractCalleeDataExtractor_1","isIdentifierNode","calleeBlockStatement","getCalleeBlockStatement","name","targetNode","isFunctionDeclarationNode","id","Break","calleeName","isFunctionExpressionNode","isVariableDeclaratorNode","ObjectExpressionCalleeDataExtractor_1","propertyNode","nextItemInCallsChain","isTargetPropertyNodeWithIdentifierKey","isTargetPropertyNodeWithLiteralKey","isLiteralNode","Boolean","isMemberExpressionNode","objectMembersCallsChain","createObjectMembersCallsChain","functionExpressionName","currentChain","memberExpression","property","computed","unshift","object","objectName","shift","init","isObjectExpressionNode","findCalleeBlockStatement","properties","objectExpressionProperties","isPropertyNode","isValidTargetPropertyNode","NumberNumericalExpressionAnalyzer_1","NumberNumericalExpressionAnalyzer","NumberUtils_1","numberFactorsMap","Map","number","isNaN","NumberUtils","isUnsafeNumber","generateAdditionParts","addition","mixWithMultiplyParts","additionParts","upperNumberLimit","abs","Number","MAX_SAFE_INTEGER","from","to","temporarySum","additionalParts","getRandomInteger","combination","getMathRandom","factors","getFactors","set","factor","PrevailingKindOfVariablesAnalyzer_1","PrevailingKindOfVariablesAnalyzer","IArrayUtils_1","arrayUtils","prevailingKindOfVariables","defaultKindOfVariables","variableKinds","isVariableDeclarationNode","kind","findMostOccurringElement","IArrayUtils","ScopeAnalyzer_1","ScopeAnalyzer","eslintScope","scopeManager","range","emptyRangeValue","attachMissingRanges","analyze","eslintScopeOptions","scope","acquire","isRootNode","sanitizeScopes","childScopes","childScope","type","upper","variables","classNameVariable","upperVariable","find","variable","defs","some","definition","references","optimistic","StringArrayStorageAnalyzer_1","StringArrayStorageAnalyzer","IStringArrayStorage_1","NodeLiteralUtils_1","NodeMetadata_1","stringArrayStorage","stringArrayStorageData","stringArray","NodeMetadata","isIgnoredNode","analyzeLiteralNode","literalNode","NodeLiteralUtils","isStringLiteralNode","isProhibitedLiteralNode","shouldAddValueToStringArray","getOrThrow","isForceTransformNode","minimumLengthForStringArray","stringArrayThreshold","IStringArrayStorage","commander","path","TInputCLIOptions_1","Initializable_1","IdentifierNamesGenerator_1","LoggingPrefix_1","ObfuscationTarget_1","OptionsPreset_1","SourceMapMode_1","StringArrayEncoding_1","StringArrayWrappersType_1","Default_1","ArraySanitizer_1","BooleanSanitizer_1","CLIUtils_1","JavaScriptObfuscatorFacade_1","Logger_1","ObfuscatedCodeWriter_1","SourceCodeReader_1","StringArrayIndexesType_1","rawArguments","inputCLIOptions","filterOptions","configFilePath","configFileLocation","resolve","configFileOptions","CLIUtils","getUserConfig","DEFAULT_PRESET","filteredOptions","option","inputPath","normalize","commands","Command","configureCommands","configureHelp","buildOptions","opts","sourceCodeReader","SourceCodeReader","obfuscatedCodeWriter","ObfuscatedCodeWriter","includes","outputHelp","sourceCodeData","readSourceCode","processSourceCodeData","usage","BooleanSanitizer","parseFloat","ArraySanitizer","stringifyOptionAvailableValues","IdentifierNamesGenerator","HexadecimalIdentifierNamesGenerator","OptionsPreset","Default","SourceMapMode","Separate","StringArrayEncoding","None","StringArrayIndexesType","HexadecimalNumber","parseInt","StringArrayWrappersType","Variable","ObfuscationTarget","Browser","on","console","log","filePath","content","outputCodePath","getOutputCodePath","Logger","colorInfo","LoggingPrefix","CLI","processSourceCode","inputCodePath","sourceCodeIndex","basename","processSourceCodeWithSourceMap","processSourceCodeWithoutSourceMap","writeFile","outputSourceMapPath","getOutputSourceMapPath","sourceMapFileName","sourceMapMode","getSourceMap","availableInputExtensions","encoding","obfuscatedFilePrefix","initializable","CommanderStatic","TInputCLIOptions","String","endsWith","SyntaxError","string","trim","StringSeparator_1","configPath","configFileExtension","extname","allowedConfigFileExtensions","ReferenceError","optionEnum","values","join","StringSeparator","Comma","fs","mkdirp","normalizedFilePath","normalizedRawOutputPath","output","Dot","rawInputPathStats","lstatSync","outputPathExtName","isDirectoryRawInputPath","isDirectory","isDirectoryRawOutputPath","parsedNormalizedFilePath","baseOutputPath","dir","base","normalizedOutputCodePath","parsedOutputCodePath","ext","indexOfLastSeparator","lastIndexOf","sep","sourceMapPath","normalizedSourceMapFilePath","test","outputPath","data","sync","dirname","writeFileSync","multimatch_1","excludePatterns","fileName","isExcludedFilePathByGlobPattern","excludePattern","statSync","isFile","directoryPath","isExcludedPath","readFileSync","isFilePath","isValidFile","exclude","readFile","isDirectoryPath","isValidDirectory","readDirectoryRecursive","availableFilePaths","extension","filesData","readdirSync","fileData","AbstractCodeTransformer","CodeTransformerNamesGroupsBuilder","AbstractTransformerNamesGroupsBuilder_1","AbstractTransformerNamesGroupsBuilder","CodeTransformersRunner","TCodeTransformerFactory_1","ITransformerNamesGroupsBuilder_1","codeTransformerFactory","codeTransformerNamesGroupsBuilder","codeTransformerNames","normalizedCodeTransformers","buildNormalizedCodeTransformers","codeTransformerNamesGroups","build","nodeTransformerNamesGroup","nodeTransformerName","transformCode","codeTransformerName","codeTransformer","Factory__ICodeTransformer","ICodeTransformerNamesGroupsBuilder","TCodeTransformerFactory","ITransformerNamesGroupsBuilder","AbstractCodeTransformer_1","super","hashbangOperatorLine","removeAndSaveHashbangOperatorLine","appendSavedHashbangOperatorLine","substring","alphabetString","alphabetStringUppercase","AlphabetString_1","toUpperCase","base64alphabet","AlphabetStringUppercase_1","NumbersString_1","numbersString","base64alphabetSwapped","AnalyzersModule_1","CodeTransformersModule_1","ControlFlowTransformersModule_1","ConvertingTransformersModule_1","CustomCodeHelpersModule_1","CustomNodesModule_1","DeadCodeInjectionTransformersModule_1","FinalizingTransformersModule_1","GeneratorsModule_1","InitializingTransformersModule_1","NodeModule_1","NodeTransformersModule_1","OptionsModule_1","PreparingTransformersModule_1","RenameIdentifiersTransformersModule_1","RenamePropertiesTransformersModule_1","SimplifyingTransformersModule_1","StoragesModule_1","StringArrayTransformersModule_1","UtilsModule_1","CodeTransformersRunner_1","NodeTransformersRunner_1","ObfuscationEventEmitter_1","ObfuscatedCode_1","SourceCode_1","container","Container","serviceIdentifier","context","bindingName","getNamed","cache","has","dependencies","cachedDependencies","dependency","constructor","named","bind","ISourceCode","toDynamicValue","SourceCode","inSingletonScope","TInputOptions","NodeTransformersRunner","IObfuscatedCode","ObfuscatedCode","toFactory","obfuscatedCodeAsString","sourceMapAsString","IObfuscationEventEmitter","ObfuscationEventEmitter","analyzersModule","codeTransformersModule","controlFlowTransformersModule","convertingTransformersModule","customCodeHelpersModule","customNodesModule","deadCodeInjectionTransformersModule","finalizingTransformersModule","generatorsModule","initializingTransformersModule","nodeModule","nodeTransformersModule","optionsModule","preparingTransformersModule","renameIdentifiersTransformersModule","renamePropertiesTransformersModule","simplifyingTransformersModule","storagesModule","stringArrayTransformersModule","utilsModule","unbindAll","FunctionDeclarationCalleeDataExtractor_1","FunctionExpressionCalleeDataExtractor_1","ContainerModule","ICallsGraphAnalyzer","INumberNumericalExpressionAnalyzer","IPrevailingKindOfVariablesAnalyzer","IScopeAnalyzer","IStringArrayStorageAnalyzer","ICalleeDataExtractor","whenTargetNamed","getCacheFactory","CodeTransformerNamesGroupsBuilder_1","HashbangOperatorTransformer_1","ICodeTransformer","CustomCodeHelper_1","CustomCodeHelperGroup_1","ConsoleOutputCodeHelperGroup_1","DebugProtectionCodeHelperGroup_1","DomainLockCustomCodeHelperGroup_1","SelfDefendingCodeHelperGroup_1","StringArrayCodeHelperGroup_1","ConsoleOutputDisableCodeHelper_1","CustomCodeHelperFormatter_1","CustomCodeHelperObfuscator_1","DebugProtectionFunctionCallCodeHelper_1","DebugProtectionFunctionIntervalCodeHelper_1","DebugProtectionFunctionCodeHelper_1","DomainLockCodeHelper_1","CallsControllerFunctionCodeHelper_1","SelfDefendingUnicodeCodeHelper_1","StringArrayCallsWrapperCodeHelper_1","StringArrayCallsWrapperBase64CodeHelper_1","StringArrayCallsWrapperRc4CodeHelper_1","StringArrayCodeHelper_1","StringArrayRotateFunctionCodeHelper_1","ICustomCodeHelper","ConsoleOutputDisableCodeHelper","CustomCodeHelper","ConsoleOutputDisable","DebugProtectionFunctionCallCodeHelper","DebugProtectionFunctionCall","DebugProtectionFunctionIntervalCodeHelper","DebugProtectionFunctionInterval","DebugProtectionFunctionCodeHelper","DebugProtectionFunction","DomainLockCodeHelper","DomainLock","CallsControllerFunctionCodeHelper","CallsControllerFunction","SelfDefendingUnicodeCodeHelper","SelfDefendingUnicode","StringArrayCallsWrapperCodeHelper","StringArrayCallsWrapper","StringArrayCallsWrapperBase64CodeHelper","StringArrayCallsWrapperBase64","StringArrayCallsWrapperRc4CodeHelper","StringArrayCallsWrapperRc4","StringArrayCodeHelper","StringArrayRotateFunctionCodeHelper","StringArrayRotateFunction","ICustomCodeHelperGroup","ConsoleOutputCodeHelperGroup","CustomCodeHelperGroup","ConsoleOutput","DebugProtectionCodeHelperGroup","DebugProtection","DomainLockCustomCodeHelperGroup","SelfDefendingCodeHelperGroup","SelfDefending","StringArrayCodeHelperGroup","Factory__ICustomCodeHelper","getFactory","Factory__ICustomCodeHelperGroup","ICustomCodeHelperFormatter","CustomCodeHelperFormatter","ICustomCodeHelperObfuscator","CustomCodeHelperObfuscator","ControlFlowCustomNode_1","DeadCodeInjectionCustomNode_1","ObjectExpressionKeysTransformerCustomNode_1","StringArrayCustomNode_1","BinaryExpressionFunctionNode_1","BlockStatementControlFlowFlatteningNode_1","BlockStatementDeadCodeInjectionNode_1","CallExpressionControlFlowStorageCallNode_1","CallExpressionFunctionNode_1","ControlFlowStorageNode_1","ExpressionWithOperatorControlFlowStorageCallNode_1","LogicalExpressionFunctionNode_1","ObjectExpressionVariableDeclarationHostNode_1","StringArrayCallNode_1","StringArrayHexadecimalNumberIndexNode_1","StringArrayHexadecimalNumericStringIndexNode_1","StringArrayIndexNode_1","StringArrayScopeCallsWrapperFunctionNode_1","StringArrayScopeCallsWrapperVariableNode_1","StringLiteralControlFlowStorageCallNode_1","StringLiteralNode_1","Newable__ICustomNode","toConstructor","BinaryExpressionFunctionNode","ControlFlowCustomNode","BlockStatementControlFlowFlatteningNode","CallExpressionControlFlowStorageCallNode","CallExpressionFunctionNode","ControlFlowStorageNode","ExpressionWithOperatorControlFlowStorageCallNode","LogicalExpressionFunctionNode","StringLiteralNode","StringLiteralControlFlowStorageCallNode","BlockStatementDeadCodeInjectionNode","DeadCodeInjectionCustomNode","ObjectExpressionVariableDeclarationHostNode","ObjectExpressionKeysTransformerCustomNode","StringArrayCallNode","StringArrayCustomNode","StringArrayScopeCallsWrapperFunctionNode","StringArrayScopeCallsWrapperVariableNode","IStringArrayIndexNode","StringArrayHexadecimalNumberIndexNode","StringArrayIndexNode","StringArrayHexadecimalNumericStringIndexNode","Factory__IControlFlowCustomNode","getConstructorFactory","Factory__IIdentifierNamesGenerator","Factory__IDeadCodeInjectionCustomNode","Factory__IObjectExpressionKeysTransformerCustomNode","Factory__IStringArrayCustomNode","Factory__IStringArrayIndexNode","DictionaryIdentifierNamesGenerator_1","HexadecimalIdentifierNamesGenerator_1","MangledIdentifierNamesGenerator_1","MangledShuffledIdentifierNamesGenerator_1","IIdentifierNamesGenerator","DictionaryIdentifierNamesGenerator","MangledIdentifierNamesGenerator","MangledShuffledIdentifierNamesGenerator","cachedIdentifierNamesGenerator","identifierNamesGenerator","identifierNameGeneratorFactory","ControlFlowReplacer_1","BinaryExpressionControlFlowReplacer_1","BlockStatementControlFlowTransformer_1","CallExpressionControlFlowReplacer_1","FunctionControlFlowTransformer_1","LogicalExpressionControlFlowReplacer_1","StringLiteralControlFlowReplacer_1","INodeTransformer","IControlFlowReplacer","BinaryExpressionControlFlowReplacer","ControlFlowReplacer","CallExpressionControlFlowReplacer","LogicalExpressionControlFlowReplacer","StringLiteralControlFlowReplacer","Factory__IControlFlowReplacer","ObjectExpressionExtractor_1","BasePropertiesExtractor_1","BooleanLiteralTransformer_1","ExportSpecifierTransformer_1","MemberExpressionTransformer_1","MethodDefinitionTransformer_1","NumberLiteralTransformer_1","NumberToNumericalExpressionTransformer_1","ObjectExpressionKeysTransformer_1","ObjectExpressionToVariableDeclarationExtractor_1","ObjectExpressionTransformer_1","ObjectPatternPropertiesTransformer_1","SplitStringTransformer_1","TemplateLiteralTransformer_1","IObjectExpressionExtractor","ObjectExpressionToVariableDeclarationExtractor","ObjectExpressionExtractor","BasePropertiesExtractor","Factory__IObjectExpressionExtractor","DeadCodeInjectionTransformer_1","EscapeSequenceTransformer_1","CommentsTransformer_1","NodeTransformerNamesGroupsBuilder_1","Factory__INodeTransformer","INodeTransformerNamesGroupsBuilder","NodeTransformerNamesGroupsBuilder","ObfuscatingGuard_1","BlackListObfuscatingGuard_1","ConditionalCommentObfuscatingGuard_1","CustomCodeHelpersTransformer_1","EvalCallExpressionTransformer_1","ForceTransformStringObfuscatingGuard_1","IgnoredRequireImportObfuscatingGuard_1","MetadataTransformer_1","ObfuscatingGuardsTransformer_1","ParentificationTransformer_1","ReservedStringObfuscatingGuard_1","VariablePreserveTransformer_1","INodeGuard","BlackListObfuscatingGuard","ObfuscatingGuard","ConditionalCommentObfuscatingGuard","ForceTransformStringObfuscatingGuard","IgnoredRequireImportObfuscatingGuard","ReservedStringObfuscatingGuard","Factory__INodeGuard","IdentifierReplacer_1","LabeledStatementTransformer_1","ScopeIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer","IIdentifierReplacer","IdentifierReplacer","RenamePropertiesReplacer_1","RenamePropertiesTransformer_1","IRenamePropertiesReplacer","RenamePropertiesReplacer","BlockStatementSimplifyTransformer_1","ExpressionStatementsMergeTransformer_1","IfStatementSimplifyTransformer_1","VariableDeclarationsMergeTransformer_1","StringArrayScopeCallsWrapperTransformer_1","StringArrayTransformer_1","ScopeIdentifiersTraverser_1","IScopeIdentifiersTraverser","ScopeIdentifiersTraverser","OptionsNormalizer_1","IOptionsNormalizer","OptionsNormalizer","ControlFlowStorage_1","CustomCodeHelperGroupStorage_1","LiteralNodesCacheStorage_1","StringArrayScopeCallsWrapperLexicalScopeDataStorage_1","StringArrayScopeCallsWrapperNamesDataStorage_1","StringArrayStorage_1","VisitedLexicalScopeNodesStackStorage_1","TCustomNodeGroupStorage","CustomCodeHelperGroupStorage","ILiteralNodesCacheStorage","LiteralNodesCacheStorage","StringArrayStorage","IStringArrayScopeCallsWrapperLexicalScopeDataStorage","StringArrayScopeCallsWrapperLexicalScopeDataStorage","IStringArrayScopeCallsWrapperNamesDataStorage","StringArrayScopeCallsWrapperNamesDataStorage","IVisitedLexicalScopeNodesStackStorage","VisitedLexicalScopeNodesStackStorage","Newable__TControlFlowStorage","ControlFlowStorage","Factory__TControlFlowStorage","storage","ArrayUtils_1","CryptUtils_1","CryptUtilsSwappedAlphabet_1","EscapeSequenceEncoder_1","LevelledTopologicalSorter_1","RandomGenerator_1","ArrayUtils","RandomGenerator","ICryptUtils","CryptUtils","ICryptUtilsSwappedAlphabet","CryptUtilsSwappedAlphabet","IEscapeSequenceEncoder","EscapeSequenceEncoder","ILevelledTopologicalSorter","LevelledTopologicalSorter","AbstractCustomCodeHelper_1","AbstractCustomCodeHelper","TIdentifierNamesGeneratorFactory_1","ICustomCodeHelperFormatter_1","ICustomCodeHelperObfuscator_1","GlobalVariableTemplate1_1","GlobalVariableTemplate2_1","identifierNamesGeneratorFactory","customCodeHelperFormatter","customCodeHelperObfuscator","cachedNode","codeHelperTemplate","getCodeHelperTemplate","formatStructure","getNodeStructure","getRandomGenerator","pickone","globalVariableTemplateFunctions","GlobalVariableTemplate1","GlobalVariableTemplate2","TIdentifierNamesGeneratorFactory","AbstractCustomCodeHelperGroup","appendEvent","customCodeHelpers","customCodeHelperName","callback","customCodeHelper","callsGraphLength","string_template_1","IPrevailingKindOfVariablesAnalyzer_1","prevailingKindOfVariablesAnalyzer","getPrevailingKind","template","mapping","statements","statement","NoCustomNodes_1","additionalOptions","NO_ADDITIONAL_NODES_PRESET","identifiersDictionary","numbersToExpressions","seed","getRawSeed","ObfuscationEvent_1","SingleCallControllerTemplate_1","NodeUtils_1","callsControllerFunctionName","NodeUtils","convertCodeToStructure","ObfuscationEvent","AfterObfuscation","obfuscateTemplate","formatTemplate","SingleCallControllerTemplate","callControllerFunctionName","GlobalVariableNoEvalTemplate","ConsoleOutputDisableTemplate_1","GlobalVariableNoEvalTemplate_1","consoleOutputDisableFunctionName","globalVariableTemplate","BrowserNoEval","getGlobalVariableTemplate","ConsoleOutputDisableTemplate","consoleLogDisableFunctionName","TCustomCodeHelperFactory_1","AbstractCustomCodeHelperGroup_1","NodeAppender_1","NodeLexicalScopeUtils_1","customCodeHelperFactory","BeforeObfuscation","nodeWithStatements","disableConsoleOutput","randomCallsGraphIndex","getRandomCallsGraphIndex","consoleOutputDisableHostNode","NodeAppender","getOptimalBlockScope","callsControllerHostNode","consoleOutputDisableLexicalScopeNode","NodeLexicalScopeUtils","getLexicalScope","generateNext","appendCustomNodeIfExist","prepend","getNode","consoleOutputDisableExpressionCodeHelper","callsControllerFunctionCodeHelper","TCustomCodeHelperFactory","DebugProtectionFunctionCallTemplate_1","debugProtectionFunctionName","DebugProtectionFunctionCallTemplate","DebuggerTemplate_1","DebuggerTemplateNoEval_1","DebugProtectionFunctionTemplate_1","debuggerTemplate","DebuggerTemplate","DebuggerTemplateNoEval","DebugProtectionFunctionTemplate","DebugProtectionFunctionIntervalTemplate_1","DebugProtectionFunctionIntervalTemplate","debugProtection","debugProtectionFunctionCallHostNode","debugProtectionFunctionCallScopeNode","append","programBodyLength","isSwitchCaseNode","consequent","randomIndex","insertAtIndex","debugProtectionFunctionCodeHelper","debugProtectionFunctionCallCodeHelper","debugProtectionFunctionIntervalCodeHelper","debugProtectionInterval","ICryptUtils_1","DomainLockTemplate_1","cryptUtils","domainLockFunctionName","domainsString","domainLock","hiddenDomainsString","diff","hideString","DomainLockTemplate","domains","domainLockFunctionHostNode","domainLockFunctionLexicalScopeNode","domainLockCodeHelper","SelfDefendingTemplate_1","SelfDefendingNoEvalTemplate_1","selfDefendingFunctionName","selfDefendingTemplate","SelfDefendingTemplate","SelfDefendingNoEvalTemplate","selfDefending","selfDefendingFunctionHostNode","selfDefendingFunctionLexicalScopeNode","selfDefendingUnicodeCodeHelper","AtobTemplate_1","StringArrayBase64DecodeTemplate_1","atobFunctionName","getRandomString","atobPolyfill","AtobTemplate","selfDefendingCode","getSelfDefendingTemplate","StringArrayBase64DecodeTemplate","stringArrayCallsWrapperName","IEscapeSequenceEncoder_1","StringArrayCallsWrapperTemplate_1","escapeSequenceEncoder","stringArrayName","indexShiftAmount","decodeCodeHelperTemplate","getDecodeStringArrayTemplate","preservedNames","StringArrayCallsWrapperTemplate","reservedNames","Rc4Template_1","StringArrayRC4DecodeTemplate_1","rc4Polyfill","Rc4Template","StringArrayRC4DecodeTemplate","StringArrayTemplate_1","StringUtils_1","StringArrayTemplate","stringArrayStorageItems","getEncodedStringArrayStorageItems","Array","getStorage","stringArrayStorageItemData","StringUtils","escapeJsString","encodedValue","StringArrayRotateFunctionTemplate_1","stringArrayRotationAmount","timesName","whileFunctionName","StringArrayRotateFunctionTemplate","toHex","getLength","stringArrayEncodingsLength","stringArrayEncoding","stringArrayCallsWrapperCodeHelperName","getStringArrayCallsWrapperCodeHelperName","stringArrayCodeHelper","getStorageName","stringArrayCallsWrapperCodeHelper","getStorageCallsWrapperName","getIndexShiftAmount","stringArrayRotateFunctionCodeHelper","getRotationAmount","rotateStringArray","stringArrayCallsWrapperCodeHelperMap","Base64","Rc4","Base64AlphabetSwapped_1","rc4BytesIdentifier","statesIdentifier","newStateIdentifier","firstStateIdentifier","secondStateIdentifier","checkStateIdentifier","runStateIdentifier","getStateIdentifier","stateResultIdentifier","encode","initializedIdentifier","base64DecodeFunctionIdentifier","dataIdentifier","rc4Identifier","onceIdentifier","AbstractCustomNode","AbstractCustomNode_1","NodeFactory_1","operator","structure","NodeFactory","expressionStatementNode","functionExpressionNode","identifierNode","blockStatementNode","returnStatementNode","binaryExpressionNode","parentizeAst","blockStatementBody","shuffledKeys","originalKeysIndexesInShuffledArray","controllerIdentifierName","indexIdentifierName","variableDeclarationNode","variableDeclaratorNode","memberExpressionNode","VerticalLine","whileStatementNode","switchStatementNode","updateExpressionNode","isReturnStatementNode","continueStatement","switchCaseNode","breakStatement","expressionArguments","calleeIdentifier","params","argumentsLength","logicalExpressionNode","literalValue","controlFlowStorageName","controlFlowStorageKey","ESTree","Expression","TControlFlowStorage_1","controlFlowStorage","propertyNodes","isExpressionStatementNode","expression","getStorageId","objectExpressionNode","TControlFlowStorage","leftValue","rightValue","deadCodeInjectionRootAstHostNode","random1","random2","leftString","rightString","alternate","ifStatementNode","lexicalScopeNode","variableDeclarationName","generateForGlobalScope","generateForLexicalScope","AbstractStringArrayCallNode_1","_g","AbstractStringArrayCallNode","TStringArrayIndexNodeFactory_1","stringArrayIndexNodeFactory","isPositive","normalizedIndex","stringArrayCallsIndexType","stringArrayIndexesType","stringArrayIndexNodeName","stringArrayIndexNodesMap","stringArrayCallIndexNode","replacedLiteral","hexadecimalNode","unaryExpressionNode","decodeKey","rc4KeyLiteralNode","stringArrayRootCallsWrapperParametersCount","HexadecimalNumericString","TStringArrayIndexNodeFactory","_h","stringArrayCallsWrapperParameterIndexesData","resultIndex","indexNode","getStringArrayIndexNode","getRc4KeyLiteralNode","callExpressionArgs","fillWithRange","stringArrayWrappersParametersMaxCount","getFakeStringArrayIndexNode","splice","valueIndexParameterIndex","decodeKeyParameterIndex","actualIndex","getFakeStringArrayIndex","fakeIndexOffset","minimumIndex","maximumIndex","_j","stringArrayScopeCallsWrapperName","stringArrayScopeCallsWrapperParameterIndexesData","upperStringArrayCallsWrapperName","upperStringArrayCallsWrapperParameterIndexesData","shiftedIndex","stringArrayCallIdentifierNode","decodeKeyIdentifierNode","stringArrayCallNode","getUpperStringArrayCallNode","parameters","getFakeParameterNode","getFakeUpperStringArrayIndexNode","parameter","indexParameterIdentifierNode","indexShiftNode","AbstractStringArrayIndexNode","AbstractStringArrayIndexNode_1","hexadecimalIndex","defaultDescriptor","configurable","initializedTargetMetadataKey","initializablePropertiesSetMetadataKey","wrappedMethodsSetMetadataKey","initializeTargetMetadata","metadataKey","metadataValue","hasMetadata","defineMetadata","initializeMethodName","decoratorName","propertyKey","initializeMethod","Set","ownPropertyNames","getOwnPropertyNames","prohibitedPropertyNames","propertyName","initializablePropertiesSet","getMetadata","wrappedMethodsSet","methodDescriptor","originalMethod","apply","add","wrapTargetMethodsInInitializedCheck","wrapInitializeMethodInInitializeCheck","initializablePropertyMetadataKey","propertyDescriptor","newVal","wrapInitializableProperty","makeEnum","Node","VisitorDirection","Function","NodeType","ObfuscatingGuardResult","LowObfuscation","MediumObfuscation","HighObfuscation","Inline","eventemitter3_1","AbstractIdentifierNamesGenerator","preservedNamesSet","lexicalScopesPreservedNamesMap","nameLength","preservedNamesForLexicalScopeSet","notReservedName","lexicalScopeNodes","isValidIdentifierName","lexicalScope","reservedName","RegExp","exec","AbstractIdentifierNamesGenerator_1","identifierNamesSet","getInitialIdentifierNames","identifiersIterator","identifierName","newIdentifierName","isSuccess","character","toLowerCase","generateNewDictionaryName","preserveName","identifierNameWithPrefix","lexicalScopes","getLexicalScopes","isValidIdentifierNameInLexicalScopes","preserveNameForLexicalScope","size","iteratorResult","next","done","getIncrementedIdentifierNames","identifierNames","formattedIdentifierNames","filter","shuffle","incrementIdentifierName","randomInteger","hexadecimalNumber","prefixLength","hexadecimalPrefix","baseNameLength","baseIdentifierNameLength","previousMangledName","initMangledNameCharacter","generateNewMangledName","updatePreviousMangledName","prefix","getLastMangledNameForScopes","lastMangledNameInScopeMap","nextName","prevName","nextNameLength","prevNameLength","nameSequence","getNameSequence","nextNameCharacter","prevNameCharacter","indexOf","mangledName","reservedNamesSet","isIncrementedMangledName","newMangledName","nameSequenceLength","zeroSequence","num","repeat","indexInSequence","lastMangledName","WeakMap","initializeNameSequence","shuffledNameSequence","postConstruct","loggingLevelColor","loggingPrefix","loggingMessage","processedMessage","Base","colorSuccess","colorWarn","cyan","green","yellow","AbstractNodeTransformer","TNodeTransformerFactory_1","VisitorDirection_1","nodeTransformerFactory","nodeTransformerNamesGroupsBuilder","nodeTransformerNames","normalizedNodeTransformers","buildNormalizedNodeTransformers","nodeTransformerNamesGroups","enterVisitors","leaveVisitors","visitor","getVisitor","leave","mergeVisitorsForDirection","Enter","Leave","nodeTransformer","visitors","direction","visitorsLength","visitorFunction","visitorResult","isNode","TNodeTransformerFactory","TControlFlowCustomNodeFactory_1","AbstractNodeTransformer_1","controlFlowCustomNodeFactory","isBreakOrContinueStatement","isBreakStatementNode","isContinueStatementNode","isVariableDeclarationWithLetOrConstKind","isClassDeclaration","isClassDeclarationNode","canTransform","isWhileStatementNode","isProhibitedStatementNode","isBlockStatementNode","transformNode","controlFlowFlatteningThreshold","canTransformBlockStatementNode","originalKeys","createWithRange","blockStatementControlFlowFlatteningCustomNode","newBlockStatementNode","parentizeNode","TControlFlowCustomNodeFactory","TControlFlowReplacerFactory_1","TControlFlowStorageFactory_1","NodeType_1","controlFlowStorageFactory","controlFlowReplacerFactory","controlFlowData","visitedFunctionNodes","hostNodesWithControlFlowNode","isArrowFunctionExpressionNode","functionNode","hostNode","getHostNode","getControlFlowStorage","transformFunctionBody","controlFlowStorageCustomNode","hostControlFlowStorage","mergeWith","functionNodeBody","blockScopesOfNode","getParentNodesWithStatements","pop","hostNodeSearchMinDepth","hostNodeSearchMaxDepth","isVisitedFunctionNode","controlFlowReplacersMap","controlFlowReplacerName","BinaryExpression","CallExpression","LogicalExpression","Literal","TControlFlowStorageFactory","TControlFlowReplacerFactory","AbstractControlFlowReplacer_1","AbstractControlFlowReplacer","replacerDataByControlFlowStorageId","identifierDataByControlFlowStorageId","controlFlowStorageId","storageKeysById","customNode","replacerId","usingExistingIdentifierChance","getStorageKeysByIdForCurrentStorage","storageKeysForCurrentId","generateStorageKey","storageKey","ExpressionWithOperatorControlFlowReplacer_1","ExpressionWithOperatorControlFlowReplacer","binaryExpressionFunctionCustomNode","insertCustomNodeToControlFlowStorage","getControlFlowStorageCallNode","left","right","callExpressionFunctionCustomNode","controlFlowStorageCallCustomNode","statementNode","leftExpression","rightExpression","checkForProhibitedExpressions","logicalExpressionFunctionCustomNode","expressionNode","nodeForCheck","isUnaryExpressionNode","getUnaryExpressionArgumentNode","literalFunctionCustomNode","getTrueUnaryExpressionNode","getFalseUnaryExpressionNode","arrayExpressionNode","isExportSpecifierNode","exportSpecifierNode","local","exported","clone","isMethodDefinitionNode","methodDefinitionNode","replaceIdentifierKey","replaceLiteralKey","keyNode","ignoredNames","runAfter","numberLiteralCache","rawValue","isCeil","INumberNumericalExpressionAnalyzer_1","numberNumericalExpressionAnalyzer","numberNumericalExpressionData","convertNumericalExpressionDataToNode","numberNumericalExpressionDataLength","leftParts","rightParts","convertPartsToBinaryExpression","firstLeftPartOrNumber","isArray","convertPartOrNumberToLiteralNode","rightPartOrNumber","partOrNumber","isPositiveNumber","TObjectExpressionExtractorFactory_1","objectExpressionExtractorFactory","objectExpressionParentNode","objectExpressionHostStatement","isReferencedIdentifierName","isProhibitedArrowFunctionExpression","isProhibitedSequenceExpression","objectExpressionHostNode","isCurrentNode","objectExpressionNodeParentNode","isSequenceExpressionNode","expressions","isSuperNode","transformObjectKeys","hostStatement","getRootStatementOfNode","isProhibitedObjectExpressionNode","applyObjectExpressionKeysExtractorsRecursive","objectExpressionExtractorNames","newObjectExpressionExtractorNames","objectExpressionExtractor","nodeToReplace","newObjectExpressionHostStatement","newObjectExpressionNode","TObjectExpressionExtractorFactory","transformComputedProperty","transformBaseProperty","shorthand","isObjectPatternNode","renameGlobals","stringz","stringLength","chunkSize","chunksCount","ceil","chunks","nextChunkStartIndex","chunkIndex","substr","splitStrings","firstPassChunksNode","transformLiteralNodeByChunkLength","firstPassChunkLength","splitStringsChunkLength","chunkLength","valueLength","stringChunks","chunkString","transformStringChunksToBinaryExpressionNode","firstChunk","secondChunk","initialBinaryExpressionNode","chunk","chunkLiteralNode","isTemplateLiteralNode","templateLiteralNode","isTaggedTemplateExpressionNode","transformTemplateLiteralNode","templateLiteralExpressions","transformedNode","nodes","quasis","templateElement","cooked","isLiteralNodeWithStringValue","root","propertyKeyNode","isArrayPatternNode","isAssignmentPatternNode","isRestElementNode","transformObjectExpressionNode","memberExpressionHostNode","expressionStatements","removablePropertyIds","extractPropertiesToExpressionStatements","hostNodeWithStatements","getScopeOfNode","filterExtractedObjectExpressionProperties","insertAfter","isSpreadElementNode","isProhibitedPropertyNode","propertyValue","isProhibitedPattern","propertyKeyName","getPropertyNodeKeyName","memberExpressionProperty","shouldCreateLiteralNode","assignmentExpressionNode","TObjectExpressionKeysTransformerCustomNodeFactory_1","objectExpressionKeysTransformerCustomNodeFactory","transformObjectExpressionToVariableDeclaration","isNodeWithLexicalScope","getObjectExpressionHostNode","statementsToInsert","insertBefore","getObjectExpressionIdentifierNode","getObjectExpressionNode","variableDeclarationHostNodeCustomNode","newObjectExpressionIdentifierNode","declarations","TObjectExpressionKeysTransformerCustomNodeFactory","TDeadNodeInjectionCustomNodeFactory_1","deadCodeInjectionCustomNodeFactory","transformersRunner","deadCodeInjectionRootAstHostNodeSet","collectedBlockStatements","collectedBlockStatementsTotalLength","isAwaitExpressionNode","isYieldExpressionNode","isForOfStatementNode","await","scopeNode","scopeBody","indexInScope","slicedBody","hostBlockStatementNode","functionDeclarationName","isScopeHoistedFunctionDeclaration","nestedBlockStatementsCount","isValidBlockStatementNode","maxNestedBlockStatementsCount","isProhibitedNodeInsideCollectedBlockStatement","isScopeHoistingFunctionDeclaration","Program","prepareNode","isDeadCodeInjectionRootAstHostNode","restoreNode","programNode","clonedBlockStatementNode","isValidCollectedBlockStatementNode","transformedBlockStatementNode","makeClonedBlockStatementNodeUnique","minCollectedBlockStatementsCount","deadCodeInjectionThreshold","isValidWrappedBlockStatementNode","maxInteger","randomBlockStatementNode","replaceBlockStatementNode","hostNodeFirstStatement","transformersToRenameBlockScopeIdentifiers","functionDeclarationNode","deadCodeInjectionRootAstHostNodeName","blockStatementDeadCodeInjectionCustomNode","TDeadNodeInjectionCustomNodeFactory","unicodeEscapeSequence","newLiteralNode","filterCommentsOnFinalizingTraverse","rootNode","filterCommentsOnPrimaryTraverse","reverse","isFirstNode","commentIdx","findIndex","filterComment","keepConditionalComment","isConditionalComment","preservedWords","preservedWord","TCustomCodeHelperGroupStorage_1","IObfuscationEventEmitter_1","ICallsGraphAnalyzer_1","callsGraphAnalyzer","obfuscationEventEmitter","customCodeHelperGroupStorage","appendCustomNodesBeforeObfuscation","appendCustomNodesAfterObfuscation","customCodeHelperGroup","once","getAppendEvent","appendNodes","emit","TCustomCodeHelperGroupStorage","evalRootAstHostNodeSet","extractEvalStringFromLiteralNode","extractEvalStringFromTemplateLiteralNode","isEvalRootAstHostNode","callExpressionFirstArgument","evalString","extractEvalStringFromCallExpressionArgument","ast","evalRootAstHostNode","targetAst","convertStructureToCode","ignoredNode","TObfuscatingGuardFactory_1","ObfuscatingGuardResult_1","obfuscatingGuardFactory","obfuscatingGuards","obfuscatingGuardsList","obfuscatingGuardResults","obfuscatingGuard","check","setNodeMetadata","every","obfuscatingGuardResult","Transform","ForceTransform","Ignore","forceTransformNode","TObfuscatingGuardFactory","IIdentifierReplacer_1","IScopeIdentifiersTraverser_1","identifierReplacer","scopeIdentifiersTraverser","preserveScopeVariableIdentifiers","traverseScopeIdentifiers","isGlobalDeclaration","isBubblingDeclaration","variableScope","identifier","identifiers","preserveIdentifierNameForRootLexicalScope","preserveIdentifierNameForLexicalScope","block","blackListGuardsLength","blackListGuards","isUseStrictOperator","obfuscationAllowed","obfuscationEnableCommentRegExp","obfuscationDisableCommentRegExp","isNodeWithComments","checkComments","commentsLength","forceTransformStrings","isForceTransformString","forceTransformString","ignoreRequireImports","reservedStrings","isReservedString","reservedString","isLabeledStatementNode","labeledStatementNode","storeLabeledStatementName","replaceLabeledStatementName","storeLocalName","label","isLabelIdentifierNode","newIdentifier","lexicalScopesWithObjectPatternWithoutDeclarationMap","variableLexicalScopeNode","transformScopeVariableIdentifiers","firstIdentifier","isReplaceableIdentifierNode","storeIdentifierName","replaceIdentifierName","storeGlobalName","reference","isProhibitedPropertyIdentifierNode","isProhibitedPropertyAssignmentPatternIdentifierNode","isProhibitedClassDeclarationNameIdentifierNode","isProhibitedExportNamedClassDeclarationIdentifierNode","isProhibitedExportNamedFunctionDeclarationIdentifierNode","isProhibitedExportNamedVariableDeclarationIdentifierNode","isProhibitedImportSpecifierNode","isProhibitedVariableNameUsedInObjectPatternNode","isExportNamedDeclarationNode","isImportSpecifierNode","imported","isLexicalScopeHasObjectPatternWithoutDeclaration","isProhibitedVariableDeclaration","isAssignmentExpressionNode","traverseScopeThroughIdentifiers","transformScopeThroughIdentifiers","resolved","blockScopesMap","isReservedName","namesMap","IRenamePropertiesReplacer_1","renamePropertiesReplacer","transformPropertyNode","transformMemberExpressionNode","transformMethodDefinitionNode","isValidPropertyNode","ReservedDomProperties_json_1","propertyNamesMap","reservedDomPropertiesList","replacePropertyName","renamedPropertyName","isReservedOptionName","isReservedDomPropertyName","AbstractStatementSimplifyTransformer","leadingStatements","trailingStatement","hasReturnStatement","hasSingleExpression","startIndex","unwrappedExpressions","collectIteratedStatementsSimplifyData","getLeadingStatements","sequenceExpressionNode","statementBodyStatementNode","argument","statementSimplifyData","AbstractStatementSimplifyTransformer_1","simplifyData","getStatementSimplifyData","partialStatementNode","getPartialStatement","isNodeWithStatements","prevStatement","getPreviousSiblingStatement","Remove","isIfStatementNode","consequentSimplifyData","alternateSimplifyData","getConsequentAndAlternateNode","getConsequentNode","conditionalExpressionNode","partialStatement","isProhibitedSingleStatementForIfStatementBranch","TStringArrayCustomNodeFactory_1","IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1","IStringArrayScopeCallsWrapperNamesDataStorage_1","IVisitedLexicalScopeNodesStackStorage_1","visitedLexicalScopeNodesStackStorage","stringArrayScopeCallsWrapperNamesDataStorage","stringArrayScopeCallsWrapperLexicalScopeDataStorage","stringArrayTransformerCustomNodeFactory","stringArrayWrappersCount","isNodeWithLexicalScopeStatements","onLexicalScopeNodeEnter","onLexicalScopeNodeLeave","lexicalScopeBodyNode","stringArrayScopeCallsWrapperNamesDataByEncoding","stringArrayScopeCallsWrapperLexicalScopeData","callsWrappersParameterIndexesData","stringArrayScopeCallsWrapperParameterIndexes","stringArrayScopeCallsWrapperNamesDataList","stringArrayScopeCallsWrapperNamesData","names","upperStringArrayCallsWrapperShiftedIndex","parameterIndexesData","upperStringArrayCallsWrapperParameterIndexes","getUpperStringArrayCallsWrapperData","stringArrayScopeCallsWrapperNode","getStringArrayScopeCallsWrapperNode","resultShiftedIndex","scopeShiftedIndex","rootStringArrayCallsWrapperData","getRootStringArrayCallsWrapperData","stringArrayWrappersChainedCalls","parentLexicalScopeBodyNode","getLastElement","parentLexicalScopeNamesDataByEncoding","parentScopeCallsWrapperLexicalScopeData","parentLexicalScopeNames","stringArrayScopeCallsWrapperShiftedIndex","stringArrayWrappersType","getStringArrayScopeCallsWrapperFunctionNode","getStringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperFunctionNode","TStringArrayCustomNodeFactory","_k","ILiteralNodesCacheStorage_1","IStringArrayStorageAnalyzer_1","literalNodesCacheStorage","stringArrayStorageAnalyzer","isReplacedLiteral","shuffleStringArray","shuffleStorage","rotateStorage","getItemDataForLiteralNode","cacheKey","buildKey","shouldUseCachedValue","resultNode","getStringArrayCallNode","getStringArrayCallsWrapperData","stringArrayCallCustomNode","currentLexicalScopeBodyNode","getPenultimateElement","getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding","getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData","stringArrayScopeCallsWrapperNames","nextScopeCallsWrapperName","storedLexicalScopeData","parentLexicalScopeData","getStringArrayCallsWrapperParameterIndexesData","minShiftedIndexValue","maxShiftedIndexValue","lexicalScopeData","maxIndexValue","getRandomIntegerExcluding","parentizeScopeStatementsBeforeAppend","setScopeStatements","getScopeStatements","bodyStatements","targetBlockScope","deep","Infinity","firstCall","indexInScopeStatement","elements","ArrayExpression","ArrowFunctionExpression","AssignmentExpression","BlockStatement","BreakStatement","args","optional","ConditionalExpression","ContinueStatement","directive","ExpressionStatement","source","ExportAllDeclaration","specifiers","ExportNamedDeclaration","functionName","FunctionDeclaration","generator","FunctionExpression","IfStatement","Identifier","ImportDeclaration","raw","precedence","Precedence","Primary","MemberExpression","ObjectExpression","Property","method","ReturnStatement","SequenceExpression","discriminant","cases","SwitchStatement","SwitchCase","UnaryExpression","argumentExpr","UpdateExpression","tail","TemplateElement","TemplateLiteral","VariableDeclaration","VariableDeclarator","WhileStatement","ArrayPattern","AssignmentPattern","AwaitExpression","bigint","ClassDeclaration","ExportSpecifier","ForOfStatement","ImportSpecifier","parentNodeIsLabeledStatementNode","parentNodeIsContinueStatementNode","parentNodeIsBreakStatementNode","LabeledStatement","MethodDefinition","isFunctionNode","nodesWithLexicalStatements","ObjectPattern","RestElement","SpreadElement","Super","TaggedTemplateExpression","isDirectiveNode","YieldExpression","getLexicalScopesRecursive","maxSize","nodesWithLexicalScope","depth","isImportDeclarationNode","isExportAllDeclarationNode","getParentNodesWithStatementsRecursive","getSiblingStatementByOffset","nodesWithStatements","offset","cloneRecursive","addXVerbatimPropertyTo","copy","clonedValue","IScopeAnalyzer_1","scopeAnalyzer","globalScope","acquireScope","traverseScopeIdentifiersRecursive","traverseScopeThroughIdentifiersRecursive","rootScope","currentScope","isNodeWithBlockLexicalScope","globalScopeNames","argumentsVariableName","through","class_validator_1","TInputOptions_1","TOptionsPreset_1","TStringArrayWrappersType_1","TTypeFromEnum_1","IOptionsNormalizer_1","LowObfuscation_1","MediumObfuscation_1","HighObfuscation_1","ValidationErrorsFormatter_1","IsAllowedForObfuscationTargets_1","optionsNormalizer","errors","validateSync","validatorOptions","ValidationErrorsFormatter","optionPresetsMap","LOW_OBFUSCATION_PRESET","MEDIUM_OBFUSCATION_PRESET","HIGH_OBFUSCATION_PRESET","validationError","IsBoolean","IsNumber","Min","Max","IsArray","ArrayUnique","IsString","each","IsAllowedForObfuscationTargets","IsIn","TTypeFromEnum","ValidateIf","ArrayNotEmpty","TOptionsPreset","sourceMapBaseUrl","IsUrl","require_protocol","require_tld","require_valid_protocol","TStringArrayWrappersType","ControlFlowFlatteningThresholdRule_1","DeadCodeInjectionRule_1","DeadCodeInjectionThresholdRule_1","DomainLockRule_1","InputFileNameRule_1","SeedRule_1","SelfDefendingRule_1","SourceMapBaseUrlRule_1","SourceMapFileNameRule_1","SplitStringsChunkLengthRule_1","StringArrayRule_1","StringArrayEncodingRule_1","StringArrayWappersChainedCalls_1","normalizedOptions","normalizerRule","normalizerRules","ControlFlowFlatteningThresholdRule","DeadCodeInjectionRule","DeadCodeInjectionThresholdRule","DomainLockRule","InputFileNameRule","SeedRule","SelfDefendingRule","SourceMapBaseUrlRule","SourceMapFileNameRule","SplitStringsChunkLengthRule","StringArrayRule","StringArrayEncodingRule","StringArrayWrappersChainedCallsRule","errorMessages","formatWithNestedConstraints","constraints","constraint","normalizedDomains","domain","extractDomainFrom","floor","random","sourceMapFileNameParts","sourceMapFileNamePartsCount","lastPart","stringArrayIndexShift","freeze","fast_deep_equal_1","obfuscationTargets","validationOptions","optionsObject","registerDecorator","validator","validationArguments","defaultValue","defaultMessage","correctObfuscatedCode","sourceMapUrl","sourceMappingUrl","btoa","ArrayStorage","storageLength","storageId","deletedElement","mergeId","MapStorage","storageValue","TCustomCodeHelperGroupFactory_1","MapStorage_1","customCodeHelperGroupFactory","customCodeHelperGroupsList","customCodeHelperGroupName","TCustomCodeHelperGroupFactory","ICryptUtilsSwappedAlphabet_1","cryptUtilsSwappedAlphabet","rc4EncodedValuesSourcesCache","rotationAmount","stringArrayStorageCallsWrapperNamesMap","rc4Keys","n","rc4KeyLength","rc4KeysCount","minimumIndexShiftAmount","maximumIndexShiftAmount","minimumRotationAmount","maximumRotationAmount","getOrSetIfDoesNotExist","stringArrayStorageName","stringArrayNameLength","storageCallsWrapperName","newStorageCallsWrapperName","rotate","entries","sort","stringArrayStorageItemDataA","stringArrayStorageItemDataB","getEncodedValue","storedStringArrayStorageItemData","rc4","encodedValueSources","encodedValueSourcesLength","ArrayStorage_1","nodeWithLexicalScopeStatements","delete","ILevelledTopologicalSorter_1","levelledTopologicalSorter","normalizedTransformers","transformerNames","relationEdges","buildTransformersRelationEdges","precedent","sortByGroups","transformerName","runAfterRelations","runAfterRelation","valueFunction","array","elementsMap","mostOccurringElement","mostOccurringElementCount","element","updatedElementCount","times","newArray","temp","shuffledArray","j","Base64Alphabet_1","base64Alphabet","chars","encodeURIComponent","match","p1","fromCharCode","charCode","idx","charAt","charCodeAt","str","randomStringDiff","pool","randomGeneratorPool","s","randomStringDiffArray","s1","s2","i1","i2","randomMerge","x","y","stringsCache","encodeAllSymbols","replaceRegExp","forceEscapeCharactersRegExp","ASCIICharactersRegExp","graph","link","register","consequents","results","marks","visit","resultItemsGroups","hasNodes","rootNodes","findRootNodes","getPrecedents","precedentsGroups","precedentsGroup","hasPrecedents","precedents","mark","basePart","POSITIVE_INFINITY","MIN_SAFE_INTEGER","sqrt","incrementValue","currentFactor","compliment","a","b","md5_1","chance_1","ISourceCode_1","Chance","integer","valuesToExclude","valuesToPickArray","inputSeed","getSourceCode","js_string_escape_1","buildTimestamp","toISOString","url","baseMultipleSourcesIdentifiersPrefix","enumLikeObject","webpackEmptyContext","req","e","require","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","obj","prop"],"mappings":"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","file":"index.cli.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst JavaScriptObfuscatorCLIFacade_1 = require(\"./src/JavaScriptObfuscatorCLIFacade\");\nmodule.exports = JavaScriptObfuscatorCLIFacade_1.JavaScriptObfuscatorCLI;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASTParserFacade = void 0;\nconst acorn = __importStar(require(\"acorn\"));\nconst chalk_1 = __importDefault(require(\"chalk\"));\nclass ASTParserFacade {\n static parse(sourceCode, config) {\n const sourceTypeLength = ASTParserFacade.sourceTypes.length;\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc));\n }\n }\n throw new Error('Acorn parsing error');\n }\n static parseType(sourceCode, inputConfig, sourceType) {\n const comments = [];\n const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType });\n const program = acorn\n .parse(sourceCode, config);\n if (comments.length) {\n program.comments = comments;\n }\n return program;\n }\n static processParsingError(sourceCode, errorMessage, position) {\n if (!position || !position.line || !position.column) {\n throw new Error(errorMessage);\n }\n const sourceCodeLines = sourceCode.split(/\\r?\\n/);\n const errorLine = sourceCodeLines[position.line - 1];\n if (!errorLine) {\n throw new Error(errorMessage);\n }\n const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);\n const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);\n const formattedPointer = ASTParserFacade.colorError('>');\n const formattedCodeSlice = `...${errorLine.slice(startErrorIndex, endErrorIndex).replace(/^\\s+/, '')}...`;\n throw new Error(`ERROR at line ${position.line}: ${errorMessage}\\n${formattedPointer} ${formattedCodeSlice}`);\n }\n}\nexports.ASTParserFacade = ASTParserFacade;\nASTParserFacade.colorError = chalk_1.default.red;\nASTParserFacade.nearestSymbolsCount = 15;\nASTParserFacade.sourceTypes = [\n 'script',\n 'module'\n];\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst TObfuscatedCodeFactory_1 = require(\"./types/container/source-code/TObfuscatedCodeFactory\");\nconst ICodeTransformersRunner_1 = require(\"./interfaces/code-transformers/ICodeTransformersRunner\");\nconst ILogger_1 = require(\"./interfaces/logger/ILogger\");\nconst IOptions_1 = require(\"./interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"./interfaces/utils/IRandomGenerator\");\nconst INodeTransformersRunner_1 = require(\"./interfaces/node-transformers/INodeTransformersRunner\");\nconst CodeTransformer_1 = require(\"./enums/code-transformers/CodeTransformer\");\nconst CodeTransformationStage_1 = require(\"./enums/code-transformers/CodeTransformationStage\");\nconst LoggingMessage_1 = require(\"./enums/logger/LoggingMessage\");\nconst NodeTransformer_1 = require(\"./enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"./enums/node-transformers/NodeTransformationStage\");\nconst EcmaVersion_1 = require(\"./constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"./ASTParserFacade\");\nconst NodeGuards_1 = require(\"./node/NodeGuards\");\nconst Utils_1 = require(\"./utils/Utils\");\nlet JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator {\n constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {\n this.codeTransformersRunner = codeTransformersRunner;\n this.nodeTransformersRunner = nodeTransformersRunner;\n this.randomGenerator = randomGenerator;\n this.obfuscatedCodeFactory = obfuscatedCodeFactory;\n this.logger = logger;\n this.options = options;\n }\n obfuscate(sourceCode) {\n if (typeof sourceCode !== 'string') {\n sourceCode = '';\n }\n const timeStart = Date.now();\n this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP));\n this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);\n this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());\n sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers);\n const astTree = this.parseCode(sourceCode);\n const obfuscatedAstTree = this.transformAstTree(astTree);\n const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);\n generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers);\n const obfuscationTime = (Date.now() - timeStart) / 1000;\n this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);\n return this.getObfuscatedCode(generatorOutput);\n }\n parseCode(sourceCode) {\n return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions);\n }\n transformAstTree(astTree) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing);\n const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree)\n && !astTree.body.length\n && !astTree.leadingComments\n && !astTree.trailingComments;\n if (isEmptyAstTree) {\n this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);\n return astTree;\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing);\n if (this.options.deadCodeInjection) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection);\n }\n if (this.options.controlFlowFlattening) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening);\n }\n if (this.options.renameProperties) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray);\n if (this.options.simplify) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing);\n return astTree;\n }\n generateCode(sourceCode, astTree) {\n const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);\n if (this.options.sourceMap) {\n escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';\n escodegenParams.sourceContent = sourceCode;\n }\n const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: {\n compact: this.options.compact\n } }));\n generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';\n return generatorOutput;\n }\n getObfuscatedCode(generatorOutput) {\n return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);\n }\n runCodeTransformationStage(code, codeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage);\n return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage);\n }\n runNodeTransformationStage(astTree, nodeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage);\n return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage);\n }\n};\nJavaScriptObfuscator.parseOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n allowHashBang: true,\n allowImportExportEverywhere: true,\n allowReturnOutsideFunction: true,\n locations: true,\n ranges: true\n};\nJavaScriptObfuscator.escodegenParams = {\n comment: true,\n verbatim: 'x-verbatim-property',\n sourceMapWithCode: true\n};\nJavaScriptObfuscator.codeTransformersList = [\n CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer\n];\nJavaScriptObfuscator.nodeTransformersList = [\n NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.CommentsTransformer,\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer,\n NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer,\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer,\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer,\n NodeTransformer_1.NodeTransformer.MemberExpressionTransformer,\n NodeTransformer_1.NodeTransformer.MetadataTransformer,\n NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer,\n NodeTransformer_1.NodeTransformer.NumberLiteralTransformer,\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.SplitStringTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n];\nJavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== \"undefined\" && ICodeTransformersRunner_1.ICodeTransformersRunner) === \"function\" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== \"undefined\" && INodeTransformersRunner_1.INodeTransformersRunner) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof TObfuscatedCodeFactory_1.TObfuscatedCodeFactory !== \"undefined\" && TObfuscatedCodeFactory_1.TObfuscatedCodeFactory) === \"function\" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== \"undefined\" && ILogger_1.ILogger) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], JavaScriptObfuscator);\nexports.JavaScriptObfuscator = JavaScriptObfuscator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscatorCLI = void 0;\nrequire(\"reflect-metadata\");\nconst JavaScriptObfuscatorCLI_1 = require(\"./cli/JavaScriptObfuscatorCLI\");\nclass JavaScriptObfuscatorCLIFacade {\n static obfuscate(argv) {\n const javaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv);\n javaScriptObfuscatorCLI.initialize();\n javaScriptObfuscatorCLI.run();\n }\n}\nexports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLIFacade;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nrequire(\"reflect-metadata\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst InversifyContainerFacade_1 = require(\"./container/InversifyContainerFacade\");\nconst Options_1 = require(\"./options/Options\");\nconst Utils_1 = require(\"./utils/Utils\");\nclass JavaScriptObfuscatorFacade {\n static obfuscate(sourceCode, inputOptions = {}) {\n const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();\n inversifyContainerFacade.load(sourceCode, '', inputOptions);\n const javaScriptObfuscator = inversifyContainerFacade\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);\n const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);\n inversifyContainerFacade.unload();\n return obfuscatedCode;\n }\n static obfuscateMultiple(sourceCodesObject, inputOptions = {}) {\n if (typeof sourceCodesObject !== 'object') {\n throw new Error('Source codes object should be a plain object');\n }\n return Object\n .keys(sourceCodesObject)\n .reduce((acc, sourceCodeIdentifier, index) => {\n const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index);\n const sourceCode = sourceCodesObject[sourceCodeIdentifier];\n const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix });\n return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) });\n }, {});\n }\n static getOptionsByPreset(optionsPreset) {\n return Options_1.Options.getOptionsByPreset(optionsPreset);\n }\n}\nexports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;\nJavaScriptObfuscatorFacade.version = (_a = process.env.VERSION) !== null && _a !== void 0 ? _a : 'unknown';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallsGraphAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsGraphAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TCalleeDataExtractorFactory_1 = require(\"../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory\");\nconst CalleeDataExtractor_1 = require(\"../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer {\n constructor(calleeDataExtractorFactory) {\n this.calleeDataExtractorFactory = calleeDataExtractorFactory;\n }\n static getLimitIndex(blockScopeBodyLength) {\n const lastIndex = blockScopeBodyLength - 1;\n const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1;\n let limitIndex = lastIndex;\n if (lastIndex > limitThresholdActivationIndex) {\n limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold));\n if (limitIndex > lastIndex) {\n limitIndex = lastIndex;\n }\n }\n return limitIndex;\n }\n analyze(astTree) {\n return this.analyzeRecursive(astTree.body);\n }\n analyzeRecursive(blockScopeBody) {\n const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length);\n const callsGraphData = [];\n const blockScopeBodyLength = blockScopeBody.length;\n for (let index = 0; index < blockScopeBodyLength; index++) {\n if (index > limitIndex) {\n break;\n }\n const blockScopeBodyNode = blockScopeBody[index];\n estraverse.traverse(blockScopeBodyNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {\n return;\n }\n if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {\n return estraverse.VisitorOption.Skip;\n }\n this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);\n }\n });\n }\n return callsGraphData;\n }\n analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) {\n CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => {\n const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName)\n .extract(blockScopeBody, callExpressionNode.callee);\n if (!calleeData) {\n return;\n }\n callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) }));\n });\n }\n};\nCallsGraphAnalyzer.calleeDataExtractorsList = [\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor\n];\nCallsGraphAnalyzer.limitThresholdActivationLength = 25;\nCallsGraphAnalyzer.limitThreshold = 0.002;\nCallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== \"undefined\" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === \"function\" ? _a : Object])\n], CallsGraphAnalyzer);\nexports.CallsGraphAnalyzer = CallsGraphAnalyzer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nlet AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor {\n};\nAbstractCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], AbstractCalleeDataExtractor);\nexports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionDeclarationCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return null;\n }\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: callee.name\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionDeclarationCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionDeclarationCalleeDataExtractor);\nexports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n let calleeName = null;\n let calleeBlockStatement = null;\n if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n calleeName = callee.name;\n calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n }\n else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {\n calleeName = null;\n calleeBlockStatement = callee.body;\n }\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: calleeName\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) &&\n parentNode &&\n NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) &&\n parentNode.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionExpressionCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionExpressionCalleeDataExtractor);\nexports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ObjectExpressionCalleeDataExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {\n if (!propertyNode.key) {\n return false;\n }\n const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;\n const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) &&\n Boolean(propertyNode.key.value) &&\n propertyNode.key.value === nextItemInCallsChain;\n return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;\n }\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {\n return null;\n }\n const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);\n if (!objectMembersCallsChain.length) {\n return null;\n }\n const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: functionExpressionName\n };\n }\n createObjectMembersCallsChain(currentChain, memberExpression) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {\n currentChain.unshift(memberExpression.property.name);\n }\n else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) &&\n (typeof memberExpression.property.value === 'string' ||\n typeof memberExpression.property.value === 'number')) {\n currentChain.unshift(memberExpression.property.value);\n }\n else {\n return currentChain;\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {\n return this.createObjectMembersCallsChain(currentChain, memberExpression.object);\n }\n else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {\n currentChain.unshift(memberExpression.object.name);\n }\n return currentChain;\n }\n getCalleeBlockStatement(targetNode, objectMembersCallsChain) {\n const objectName = objectMembersCallsChain.shift();\n if (!objectName) {\n return null;\n }\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(node.id) &&\n node.init &&\n NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) &&\n node.id.name === objectName) {\n calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {\n const nextItemInCallsChain = objectMembersCallsChain.shift();\n if (!nextItemInCallsChain) {\n return null;\n }\n for (const propertyNode of objectExpressionProperties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) {\n continue;\n }\n if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {\n continue;\n }\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {\n return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);\n }\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {\n return propertyNode.value.body;\n }\n }\n return null;\n }\n};\nObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([\n inversify_1.injectable()\n], ObjectExpressionCalleeDataExtractor);\nexports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar NumberNumericalExpressionAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberNumericalExpressionAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer {\n constructor(randomGenerator) {\n this.numberFactorsMap = new Map();\n this.randomGenerator = randomGenerator;\n }\n analyze(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) {\n return [number];\n }\n const additionParts = this.generateAdditionParts(number);\n return additionParts.map((addition) => this.mixWithMultiplyParts(addition));\n }\n generateAdditionParts(number) {\n const additionParts = [];\n const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER);\n const from = Math.min(-10000, -upperNumberLimit);\n const to = Math.max(10000, upperNumberLimit);\n let temporarySum = 0;\n for (let i = 0; i < NumberNumericalExpressionAnalyzer_1.additionalParts; i++) {\n if (i < NumberNumericalExpressionAnalyzer_1.additionalParts - 1) {\n let addition = this.randomGenerator.getRandomInteger(from, to);\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition);\n if (isUnsafeCombination) {\n addition = -addition;\n }\n additionParts.push(addition);\n temporarySum += addition;\n }\n else {\n const combination = number - temporarySum;\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination);\n if (isUnsafeCombination) {\n additionParts.push(0 - temporarySum);\n additionParts.push(number);\n }\n else {\n additionParts.push(combination);\n }\n }\n }\n return additionParts;\n }\n mixWithMultiplyParts(number) {\n var _a;\n const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5;\n if (!shouldMixWithMultiplyParts || number === 0) {\n return number;\n }\n let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null;\n if (!factors) {\n factors = NumberUtils_1.NumberUtils.getFactors(number);\n this.numberFactorsMap.set(number, factors);\n }\n if (!factors.length) {\n return number;\n }\n const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)];\n return [factor, number / factor];\n }\n};\nNumberNumericalExpressionAnalyzer.additionalParts = 3;\nNumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], NumberNumericalExpressionAnalyzer);\nexports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PrevailingKindOfVariablesAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrevailingKindOfVariablesAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer {\n constructor(arrayUtils) {\n this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n this.arrayUtils = arrayUtils;\n }\n analyze(astTree) {\n var _a;\n const variableKinds = [];\n estraverse.traverse(astTree, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n variableKinds.push(node.kind);\n }\n });\n this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n }\n getPrevailingKind() {\n return this.prevailingKindOfVariables;\n }\n};\nPrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var';\nPrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _a : Object])\n], PrevailingKindOfVariablesAnalyzer);\nexports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ScopeAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eslintScope = __importStar(require(\"eslint-scope\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../../constants/EcmaVersion\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer {\n constructor() {\n this.scopeManager = null;\n }\n static attachMissingRanges(astTree) {\n estraverse.replace(astTree, {\n enter: (node, parentNode) => {\n var _a, _b, _c, _d;\n if (!node.range) {\n node.range = [\n (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue,\n (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ScopeAnalyzer_1.emptyRangeValue\n ];\n }\n return node;\n }\n });\n }\n static isRootNode(node) {\n return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node;\n }\n analyze(astTree) {\n const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length;\n ScopeAnalyzer_1.attachMissingRanges(astTree);\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] }));\n return;\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(error);\n }\n }\n throw new Error('Scope analyzing error');\n }\n acquireScope(node) {\n if (!this.scopeManager) {\n throw new Error('Scope manager is not defined');\n }\n const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node));\n if (!scope) {\n throw new Error('Cannot acquire scope for node');\n }\n this.sanitizeScopes(scope);\n return scope;\n }\n sanitizeScopes(scope) {\n scope.childScopes.forEach((childScope) => {\n if (childScope.type === 'class' && childScope.upper) {\n if (!childScope.variables.length) {\n return;\n }\n const classNameVariable = childScope.variables[0];\n const upperVariable = childScope.upper.variables\n .find((variable) => {\n const isValidClassNameVariable = classNameVariable.defs\n .some((definition) => definition.type === 'ClassName');\n return isValidClassNameVariable && variable.name === classNameVariable.name;\n });\n upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references);\n }\n });\n for (const childScope of scope.childScopes) {\n this.sanitizeScopes(childScope);\n }\n }\n};\nScopeAnalyzer.eslintScopeOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n optimistic: true\n};\nScopeAnalyzer.sourceTypes = [\n 'script',\n 'module'\n];\nScopeAnalyzer.emptyRangeValue = 0;\nScopeAnalyzer = ScopeAnalyzer_1 = __decorate([\n inversify_1.injectable()\n], ScopeAnalyzer);\nexports.ScopeAnalyzer = ScopeAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorageAnalyzer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorageAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer {\n constructor(stringArrayStorage, randomGenerator, options) {\n this.stringArrayStorageData = new Map();\n this.stringArrayStorage = stringArrayStorage;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n analyze(astTree) {\n if (!this.options.stringArray) {\n return;\n }\n estraverse.traverse(astTree, {\n enter: (node, parentNode) => {\n if (!parentNode) {\n return;\n }\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return;\n }\n this.analyzeLiteralNode(node, parentNode);\n }\n });\n }\n getItemDataForLiteralNode(literalNode) {\n return this.stringArrayStorageData.get(literalNode);\n }\n analyzeLiteralNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return;\n }\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return;\n }\n if (!this.shouldAddValueToStringArray(literalNode)) {\n return;\n }\n this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value));\n }\n shouldAddValueToStringArray(literalNode) {\n const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode);\n if (isForceTransformNode) {\n return true;\n }\n return literalNode.value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray\n && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;\n }\n};\nStringArrayStorageAnalyzer.minimumLengthForStringArray = 3;\nStringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], StringArrayStorageAnalyzer);\nexports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscatorCLI = void 0;\nconst commander = __importStar(require(\"commander\"));\nconst path = __importStar(require(\"path\"));\nconst TInputCLIOptions_1 = require(\"../types/options/TInputCLIOptions\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst IdentifierNamesGenerator_1 = require(\"../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst LoggingPrefix_1 = require(\"../enums/logger/LoggingPrefix\");\nconst ObfuscationTarget_1 = require(\"../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst StringArrayEncoding_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst Default_1 = require(\"../options/presets/Default\");\nconst ArraySanitizer_1 = require(\"./sanitizers/ArraySanitizer\");\nconst BooleanSanitizer_1 = require(\"./sanitizers/BooleanSanitizer\");\nconst CLIUtils_1 = require(\"./utils/CLIUtils\");\nconst JavaScriptObfuscatorFacade_1 = require(\"../JavaScriptObfuscatorFacade\");\nconst Logger_1 = require(\"../logger/Logger\");\nconst ObfuscatedCodeWriter_1 = require(\"./utils/ObfuscatedCodeWriter\");\nconst SourceCodeReader_1 = require(\"./utils/SourceCodeReader\");\nconst Utils_1 = require(\"../utils/Utils\");\nconst StringArrayIndexesType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nclass JavaScriptObfuscatorCLI {\n constructor(argv) {\n this.rawArguments = argv;\n this.arguments = argv.slice(2);\n }\n static buildOptions(inputOptions) {\n const inputCLIOptions = JavaScriptObfuscatorCLI.filterOptions(inputOptions);\n const configFilePath = inputOptions.config;\n const configFileLocation = configFilePath ? path.resolve(configFilePath, '.') : '';\n const configFileOptions = configFileLocation ? CLIUtils_1.CLIUtils.getUserConfig(configFileLocation) : {};\n return Object.assign(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), configFileOptions), inputCLIOptions);\n }\n static filterOptions(options) {\n const filteredOptions = {};\n Object\n .keys(options)\n .forEach((option) => {\n if (options[option] === undefined) {\n return;\n }\n filteredOptions[option] = options[option];\n });\n return filteredOptions;\n }\n initialize() {\n this.inputPath = path.normalize(this.arguments[0] || '');\n this.commands = (new commander.Command());\n this.configureCommands();\n this.configureHelp();\n this.inputCLIOptions = JavaScriptObfuscatorCLI.buildOptions(this.commands.opts());\n this.sourceCodeReader = new SourceCodeReader_1.SourceCodeReader(this.inputPath, this.inputCLIOptions);\n this.obfuscatedCodeWriter = new ObfuscatedCodeWriter_1.ObfuscatedCodeWriter(this.inputPath, this.inputCLIOptions);\n }\n run() {\n const canShowHelp = !this.arguments.length || this.arguments.includes('--help');\n if (canShowHelp) {\n this.commands.outputHelp();\n return;\n }\n const sourceCodeData = this.sourceCodeReader.readSourceCode();\n this.processSourceCodeData(sourceCodeData);\n }\n configureCommands() {\n this.commands\n .usage('<inputPath> [options]')\n .version(Utils_1.Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP), '-v, --version')\n .option('-o, --output <path>', 'Output path for obfuscated code')\n .option('--compact <boolean>', 'Disable one line output code compacting', BooleanSanitizer_1.BooleanSanitizer)\n .option('--config <boolean>', 'Name of js / json config file')\n .option('--control-flow-flattening <boolean>', 'Enables control flow flattening', BooleanSanitizer_1.BooleanSanitizer)\n .option('--control-flow-flattening-threshold <number>', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat)\n .option('--dead-code-injection <boolean>', 'Enables dead code injection', BooleanSanitizer_1.BooleanSanitizer)\n .option('--dead-code-injection-threshold <number>', 'The probability that the dead code injection transformation will be applied to the node', parseFloat)\n .option('--debug-protection <boolean>', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer)\n .option('--debug-protection-interval <boolean>', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer)\n .option('--disable-console-output <boolean>', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', BooleanSanitizer_1.BooleanSanitizer)\n .option('--domain-lock <list> (comma separated, without whitespaces)', 'Allows to run the obfuscated source code only on specific domains and/or sub-domains (comma separated)', ArraySanitizer_1.ArraySanitizer)\n .option('--exclude <list> (comma separated, without whitespaces)', 'A filename or glob which indicates files to exclude from obfuscation', ArraySanitizer_1.ArraySanitizer)\n .option('--force-transform-strings <list> (comma separated, without whitespaces)', 'Enables force transformation of string literals, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)\n .option('--identifier-names-generator <string>', 'Sets identifier names generator. ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(IdentifierNamesGenerator_1.IdentifierNamesGenerator)}. ` +\n `Default: ${IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator}`)\n .option('--identifiers-prefix <string>', 'Sets prefix for all global identifiers')\n .option('--identifiers-dictionary <list> (comma separated, without whitespaces)', 'Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option', ArraySanitizer_1.ArraySanitizer)\n .option('--ignore-require-imports <boolean>', 'Prevents obfuscation of `require` imports', BooleanSanitizer_1.BooleanSanitizer)\n .option('--log <boolean>', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer)\n .option('--numbers-to-expressions <boolean>', 'Enables numbers conversion to expressions', BooleanSanitizer_1.BooleanSanitizer)\n .option('--options-preset <string>', 'Allows to set options preset. ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(OptionsPreset_1.OptionsPreset)}. ` +\n `Default: ${OptionsPreset_1.OptionsPreset.Default}`)\n .option('--reserved-names <list> (comma separated, without whitespaces)', 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)\n .option('--reserved-strings <list> (comma separated, without whitespaces)', 'Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer)\n .option('--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration', BooleanSanitizer_1.BooleanSanitizer)\n .option('--rename-properties <boolean>', 'UNSAFE: Enables renaming of property names. This probably WILL break your code', BooleanSanitizer_1.BooleanSanitizer)\n .option('--rotate-string-array <boolean>', 'Enable rotation of string array values during obfuscation', BooleanSanitizer_1.BooleanSanitizer)\n .option('--seed <string|number>', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat)\n .option('--self-defending <boolean>', 'Disables self-defending for obfuscated code', BooleanSanitizer_1.BooleanSanitizer)\n .option('--shuffle-string-array <boolean>', 'Randomly shuffles string array items', BooleanSanitizer_1.BooleanSanitizer)\n .option('--simplify <boolean>', 'Enables additional code obfuscation through simplification', BooleanSanitizer_1.BooleanSanitizer)\n .option('--source-map <boolean>', 'Enables source map generation', BooleanSanitizer_1.BooleanSanitizer)\n .option('--source-map-base-url <string>', 'Sets base url to the source map import url when `--source-map-mode=separate`')\n .option('--source-map-file-name <string>', 'Sets file name for output source map when `--source-map-mode=separate`')\n .option('--source-map-mode <string>', 'Specify source map output mode. ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(SourceMapMode_1.SourceMapMode)}. ` +\n `Default: ${SourceMapMode_1.SourceMapMode.Separate}`)\n .option('--split-strings <boolean>', 'Splits literal strings into chunks with length of `splitStringsChunkLength` option value', BooleanSanitizer_1.BooleanSanitizer)\n .option('--split-strings-chunk-length <number>', 'Sets chunk length of `splitStrings` option', parseFloat)\n .option('--string-array <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', BooleanSanitizer_1.BooleanSanitizer)\n .option('--string-array-encoding <list> (comma separated, without whitespaces)', 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayEncoding_1.StringArrayEncoding)}. ` +\n `Default: ${StringArrayEncoding_1.StringArrayEncoding.None}`, ArraySanitizer_1.ArraySanitizer)\n .option('--string-array-indexes-type <list> (comma separated, without whitespaces)', 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayIndexesType_1.StringArrayIndexesType)}. ` +\n `Default: ${StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber}`, ArraySanitizer_1.ArraySanitizer)\n .option('--string-array-index-shift <boolean>', 'Enables additional index shift for all string array calls', BooleanSanitizer_1.BooleanSanitizer)\n .option('--string-array-wrappers-count <number>', 'Sets the count of wrappers for the string array inside each root or function scope', parseInt)\n .option('--string-array-wrappers-chained-calls <boolean>', 'Enables the chained calls between string array wrappers', BooleanSanitizer_1.BooleanSanitizer)\n .option('--string-array-wrappers-parameters-max-count <number>', 'Allows to control the maximum number of string array wrappers parameters', parseInt)\n .option('--string-array-wrappers-type <string>', 'Allows to select a type of the wrappers that are appending by the `--string-array-wrappers-count` option. ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(StringArrayWrappersType_1.StringArrayWrappersType)}. ` +\n `Default: ${StringArrayWrappersType_1.StringArrayWrappersType.Variable}`)\n .option('--string-array-threshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat)\n .option('--target <string>', 'Allows to set target environment for obfuscated code. ' +\n `Values: ${CLIUtils_1.CLIUtils.stringifyOptionAvailableValues(ObfuscationTarget_1.ObfuscationTarget)}. ` +\n `Default: ${ObfuscationTarget_1.ObfuscationTarget.Browser}`)\n .option('--transform-object-keys <boolean>', 'Enables transformation of object keys', BooleanSanitizer_1.BooleanSanitizer)\n .option('--unicode-escape-sequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', BooleanSanitizer_1.BooleanSanitizer)\n .parse(this.rawArguments);\n }\n configureHelp() {\n this.commands.on('--help', () => {\n console.log(' Examples:\\n');\n console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false');\n console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false');\n console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false');\n console.log('');\n });\n }\n processSourceCodeData(sourceCodeData) {\n sourceCodeData.forEach(({ filePath, content }, index) => {\n const outputCodePath = this.obfuscatedCodeWriter.getOutputCodePath(filePath);\n try {\n Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Obfuscating file: ${filePath}...`);\n this.processSourceCode(content, filePath, outputCodePath, index);\n }\n catch (error) {\n Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, `Error in file: ${filePath}...`);\n throw error;\n }\n });\n }\n processSourceCode(sourceCode, inputCodePath, outputCodePath, sourceCodeIndex) {\n const options = Object.assign(Object.assign(Object.assign({}, this.inputCLIOptions), { inputFileName: path.basename(inputCodePath) }), sourceCodeIndex !== null && {\n identifiersPrefix: Utils_1.Utils.getIdentifiersPrefixForMultipleSources(this.inputCLIOptions.identifiersPrefix, sourceCodeIndex)\n });\n if (options.sourceMap) {\n this.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options);\n }\n else {\n this.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options);\n }\n }\n processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options) {\n const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode();\n this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode);\n }\n processSourceCodeWithSourceMap(sourceCode, outputCodePath, options) {\n var _a;\n const outputSourceMapPath = this.obfuscatedCodeWriter.getOutputSourceMapPath(outputCodePath, (_a = options.sourceMapFileName) !== null && _a !== void 0 ? _a : '');\n options = Object.assign(Object.assign({}, options), { sourceMapFileName: path.basename(outputSourceMapPath) });\n const obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options);\n this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode.getObfuscatedCode());\n if (options.sourceMapMode === SourceMapMode_1.SourceMapMode.Separate && obfuscatedCode.getSourceMap()) {\n this.obfuscatedCodeWriter.writeFile(outputSourceMapPath, obfuscatedCode.getSourceMap());\n }\n }\n}\nJavaScriptObfuscatorCLI.availableInputExtensions = [\n '.js'\n];\nJavaScriptObfuscatorCLI.encoding = 'utf8';\nJavaScriptObfuscatorCLI.obfuscatedFilePrefix = '-obfuscated';\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof commander !== \"undefined\" && commander.CommanderStatic) === \"function\" ? _a : Object)\n], JavaScriptObfuscatorCLI.prototype, \"commands\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_b = typeof TInputCLIOptions_1.TInputCLIOptions !== \"undefined\" && TInputCLIOptions_1.TInputCLIOptions) === \"function\" ? _b : Object)\n], JavaScriptObfuscatorCLI.prototype, \"inputCLIOptions\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], JavaScriptObfuscatorCLI.prototype, \"inputPath\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_c = typeof SourceCodeReader_1.SourceCodeReader !== \"undefined\" && SourceCodeReader_1.SourceCodeReader) === \"function\" ? _c : Object)\n], JavaScriptObfuscatorCLI.prototype, \"sourceCodeReader\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_d = typeof ObfuscatedCodeWriter_1.ObfuscatedCodeWriter !== \"undefined\" && ObfuscatedCodeWriter_1.ObfuscatedCodeWriter) === \"function\" ? _d : Object)\n], JavaScriptObfuscatorCLI.prototype, \"obfuscatedCodeWriter\", void 0);\nexports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArraySanitizer = void 0;\nconst ArraySanitizer = (value) => {\n if (value.endsWith(',')) {\n throw new SyntaxError('Multiple <list> values should be wrapped inside quotes: --option-name \\'value1\\',\\'value2\\'');\n }\n return value.split(',').map((string) => string.trim());\n};\nexports.ArraySanitizer = ArraySanitizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanSanitizer = void 0;\nconst BooleanSanitizer = (value) => {\n return value === 'true' || value === '1';\n};\nexports.BooleanSanitizer = BooleanSanitizer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CLIUtils = void 0;\nconst path = __importStar(require(\"path\"));\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nclass CLIUtils {\n static getUserConfig(configPath) {\n let config;\n const configFileExtension = path.extname(configPath);\n const isValidExtension = CLIUtils.allowedConfigFileExtensions.includes(configFileExtension);\n if (!isValidExtension) {\n throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path');\n }\n try {\n config = require(configPath);\n }\n catch (_a) {\n try {\n config = __non_webpack_require__(configPath);\n }\n catch (_b) {\n throw new ReferenceError(`Cannot open config file with path: ${configPath}`);\n }\n }\n return config;\n }\n static stringifyOptionAvailableValues(optionEnum) {\n return Object.values(optionEnum).join(`${StringSeparator_1.StringSeparator.Comma} `);\n }\n}\nexports.CLIUtils = CLIUtils;\nCLIUtils.allowedConfigFileExtensions = [\n '.js',\n '.json'\n];\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatedCodeWriter = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst mkdirp = __importStar(require(\"mkdirp\"));\nconst path = __importStar(require(\"path\"));\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst JavaScriptObfuscatorCLI_1 = require(\"../JavaScriptObfuscatorCLI\");\nclass ObfuscatedCodeWriter {\n constructor(inputPath, options) {\n this.inputPath = path.normalize(inputPath);\n this.options = options;\n }\n getOutputCodePath(filePath) {\n const normalizedFilePath = path.normalize(filePath);\n const normalizedRawOutputPath = this.options.output\n ? path.normalize(this.options.output)\n : null;\n if (!normalizedRawOutputPath) {\n return normalizedFilePath\n .split(StringSeparator_1.StringSeparator.Dot)\n .map((value, index) => {\n return index === 0 ? `${value}${JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix}` : value;\n })\n .join(StringSeparator_1.StringSeparator.Dot);\n }\n const rawInputPathStats = fs.lstatSync(this.inputPath);\n const outputPathExtName = path.extname(normalizedRawOutputPath);\n const isDirectoryRawInputPath = rawInputPathStats.isDirectory();\n const isDirectoryRawOutputPath = !JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI\n .availableInputExtensions\n .includes(outputPathExtName);\n if (isDirectoryRawInputPath) {\n if (isDirectoryRawOutputPath) {\n const parsedNormalizedFilePath = path.parse(normalizedFilePath);\n const baseOutputPath = path.join(parsedNormalizedFilePath.dir.replace(this.inputPath, ''), parsedNormalizedFilePath.base);\n return path.join(normalizedRawOutputPath, baseOutputPath);\n }\n else {\n throw new Error('Output path for directory obfuscation should be a directory path');\n }\n }\n else {\n if (isDirectoryRawOutputPath) {\n return path.join(normalizedRawOutputPath, path.basename(filePath));\n }\n else {\n return normalizedRawOutputPath;\n }\n }\n }\n getOutputSourceMapPath(outputCodePath, sourceMapFileName = '') {\n if (!outputCodePath) {\n throw new Error('Output code path is empty');\n }\n let normalizedOutputCodePath = path.normalize(outputCodePath);\n let parsedOutputCodePath = path.parse(normalizedOutputCodePath);\n if (!parsedOutputCodePath.ext && !sourceMapFileName) {\n throw new Error('Source map file name should be set when output code path is a directory path');\n }\n if (sourceMapFileName) {\n const indexOfLastSeparator = normalizedOutputCodePath.lastIndexOf(path.sep);\n const sourceMapPath = parsedOutputCodePath.ext && indexOfLastSeparator > 0\n ? normalizedOutputCodePath.slice(0, indexOfLastSeparator)\n : normalizedOutputCodePath;\n const normalizedSourceMapFilePath = sourceMapFileName.replace(/^[a-zA-Z]:\\\\*/, '');\n normalizedOutputCodePath = path.join(sourceMapPath, normalizedSourceMapFilePath);\n }\n if (!/\\.js\\.map$/.test(normalizedOutputCodePath)) {\n parsedOutputCodePath = path.parse(normalizedOutputCodePath);\n const outputCodePathWithoutExtension = path.join(parsedOutputCodePath.dir, parsedOutputCodePath.name);\n normalizedOutputCodePath = `${outputCodePathWithoutExtension}.js.map`;\n }\n else if (/\\.js$/.test(normalizedOutputCodePath)) {\n normalizedOutputCodePath += '.map';\n }\n return normalizedOutputCodePath;\n }\n writeFile(outputPath, data) {\n mkdirp.sync(path.dirname(outputPath));\n fs.writeFileSync(outputPath, data, {\n encoding: JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding\n });\n }\n}\nexports.ObfuscatedCodeWriter = ObfuscatedCodeWriter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceCodeReader = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\nconst multimatch_1 = __importDefault(require(\"multimatch\"));\nconst JavaScriptObfuscatorCLI_1 = require(\"../JavaScriptObfuscatorCLI\");\nclass SourceCodeReader {\n constructor(inputPath, options) {\n this.inputPath = inputPath;\n this.options = options;\n }\n static isExcludedPath(filePath, excludePatterns = []) {\n if (!excludePatterns.length) {\n return false;\n }\n const fileName = path.basename(filePath);\n const isExcludedFilePathByGlobPattern = !!multimatch_1.default([filePath], excludePatterns).length;\n const isExcludedFilePathByInclusion = excludePatterns.some((excludePattern) => filePath.includes(excludePattern) || fileName.includes(excludePattern));\n return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern;\n }\n static isDirectoryPath(filePath) {\n try {\n return fs.statSync(filePath).isDirectory();\n }\n catch (_a) {\n return false;\n }\n }\n static isFilePath(filePath) {\n try {\n return fs.statSync(filePath).isFile();\n }\n catch (_a) {\n return false;\n }\n }\n static isValidDirectory(directoryPath, excludePatterns = []) {\n return !SourceCodeReader.isExcludedPath(directoryPath, excludePatterns);\n }\n static isValidFile(filePath, excludePatterns = []) {\n return JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.availableInputExtensions.includes(path.extname(filePath))\n && !filePath.includes(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix)\n && !SourceCodeReader.isExcludedPath(filePath, excludePatterns);\n }\n static readFile(filePath) {\n return {\n filePath: path.normalize(filePath),\n content: fs.readFileSync(filePath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding)\n };\n }\n readSourceCode() {\n if (SourceCodeReader.isFilePath(this.inputPath)\n && SourceCodeReader.isValidFile(this.inputPath, this.options.exclude)) {\n return [SourceCodeReader.readFile(this.inputPath)];\n }\n if (SourceCodeReader.isDirectoryPath(this.inputPath)\n && SourceCodeReader.isValidDirectory(this.inputPath, this.options.exclude)) {\n return this.readDirectoryRecursive(this.inputPath);\n }\n const availableFilePaths = JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI\n .availableInputExtensions\n .map((extension) => `\\`${extension}\\``)\n .join(', ');\n throw new ReferenceError(`Given input path must be a valid ${availableFilePaths} file or directory path`);\n }\n readDirectoryRecursive(directoryPath, filesData = []) {\n fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding)\n .forEach((fileName) => {\n const filePath = path.join(directoryPath, fileName);\n if (SourceCodeReader.isDirectoryPath(filePath)\n && SourceCodeReader.isValidDirectory(filePath, this.options.exclude)) {\n filesData.push(...this.readDirectoryRecursive(filePath));\n return;\n }\n if (SourceCodeReader.isFilePath(filePath)\n && SourceCodeReader.isValidFile(filePath, this.options.exclude)) {\n const fileData = SourceCodeReader.readFile(filePath);\n filesData.push(fileData);\n return;\n }\n });\n return filesData;\n }\n}\nexports.SourceCodeReader = SourceCodeReader;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCodeTransformer = class AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractCodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractCodeTransformer);\nexports.AbstractCodeTransformer = AbstractCodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nCodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], CodeTransformerNamesGroupsBuilder);\nexports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TCodeTransformerFactory_1 = require(\"../types/container/code-transformers/TCodeTransformerFactory\");\nconst ITransformerNamesGroupsBuilder_1 = require(\"../interfaces/utils/ITransformerNamesGroupsBuilder\");\nlet CodeTransformersRunner = class CodeTransformersRunner {\n constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) {\n this.codeTransformerFactory = codeTransformerFactory;\n this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;\n }\n transform(code, codeTransformerNames, codeTransformationStage) {\n if (!codeTransformerNames.length) {\n return code;\n }\n const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);\n const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);\n for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const codeTransformer = normalizedCodeTransformers[nodeTransformerName];\n code = codeTransformer.transformCode(code, codeTransformationStage);\n }\n }\n return code;\n }\n buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) {\n return codeTransformerNames\n .reduce((acc, codeTransformerName) => {\n const codeTransformer = this.codeTransformerFactory(codeTransformerName);\n return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer });\n }, {});\n }\n};\nCodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== \"undefined\" && TCodeTransformerFactory_1.TCodeTransformerFactory) === \"function\" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== \"undefined\" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === \"function\" ? _b : Object])\n], CodeTransformersRunner);\nexports.CodeTransformersRunner = CodeTransformersRunner;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashbangOperatorTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst CodeTransformationStage_1 = require(\"../../enums/code-transformers/CodeTransformationStage\");\nconst AbstractCodeTransformer_1 = require(\"../AbstractCodeTransformer\");\nlet HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.hashbangOperatorLine = null;\n }\n transformCode(code, codeTransformationStage) {\n switch (codeTransformationStage) {\n case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers:\n return this.removeAndSaveHashbangOperatorLine(code);\n case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers:\n return this.appendSavedHashbangOperatorLine(code);\n default:\n return code;\n }\n }\n removeAndSaveHashbangOperatorLine(code) {\n return code\n .replace(/^#!.*$(\\r?\\n)*/m, (substring) => {\n if (substring) {\n this.hashbangOperatorLine = substring;\n }\n return '';\n })\n .trim();\n }\n appendSavedHashbangOperatorLine(code) {\n var _a;\n return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`;\n }\n};\nHashbangOperatorTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], HashbangOperatorTransformer);\nexports.HashbangOperatorTransformer = HashbangOperatorTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetString = void 0;\nexports.alphabetString = 'abcdefghijklmnopqrstuvwxyz';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetStringUppercase = void 0;\nconst AlphabetString_1 = require(\"./AlphabetString\");\nexports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabet = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabetSwapped = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecmaVersion = void 0;\nexports.ecmaVersion = 12;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numbersString = void 0;\nexports.numbersString = '0123456789';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InversifyContainerFacade = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./ServiceIdentifiers\");\nconst AnalyzersModule_1 = require(\"./modules/analyzers/AnalyzersModule\");\nconst CodeTransformersModule_1 = require(\"./modules/code-transformers/CodeTransformersModule\");\nconst ControlFlowTransformersModule_1 = require(\"./modules/node-transformers/ControlFlowTransformersModule\");\nconst ConvertingTransformersModule_1 = require(\"./modules/node-transformers/ConvertingTransformersModule\");\nconst CustomCodeHelpersModule_1 = require(\"./modules/custom-code-helpers/CustomCodeHelpersModule\");\nconst CustomNodesModule_1 = require(\"./modules/custom-nodes/CustomNodesModule\");\nconst DeadCodeInjectionTransformersModule_1 = require(\"./modules/node-transformers/DeadCodeInjectionTransformersModule\");\nconst FinalizingTransformersModule_1 = require(\"./modules/node-transformers/FinalizingTransformersModule\");\nconst GeneratorsModule_1 = require(\"./modules/generators/GeneratorsModule\");\nconst InitializingTransformersModule_1 = require(\"./modules/node-transformers/InitializingTransformersModule\");\nconst NodeModule_1 = require(\"./modules/node/NodeModule\");\nconst NodeTransformersModule_1 = require(\"./modules/node-transformers/NodeTransformersModule\");\nconst OptionsModule_1 = require(\"./modules/options/OptionsModule\");\nconst PreparingTransformersModule_1 = require(\"./modules/node-transformers/PreparingTransformersModule\");\nconst RenameIdentifiersTransformersModule_1 = require(\"./modules/node-transformers/RenameIdentifiersTransformersModule\");\nconst RenamePropertiesTransformersModule_1 = require(\"./modules/node-transformers/RenamePropertiesTransformersModule\");\nconst SimplifyingTransformersModule_1 = require(\"./modules/node-transformers/SimplifyingTransformersModule\");\nconst StoragesModule_1 = require(\"./modules/storages/StoragesModule\");\nconst StringArrayTransformersModule_1 = require(\"./modules/node-transformers/StringArrayTransformersModule\");\nconst UtilsModule_1 = require(\"./modules/utils/UtilsModule\");\nconst CodeTransformersRunner_1 = require(\"../code-transformers/CodeTransformersRunner\");\nconst JavaScriptObfuscator_1 = require(\"../JavaScriptObfuscator\");\nconst Logger_1 = require(\"../logger/Logger\");\nconst NodeTransformersRunner_1 = require(\"../node-transformers/NodeTransformersRunner\");\nconst ObfuscationEventEmitter_1 = require(\"../event-emitters/ObfuscationEventEmitter\");\nconst ObfuscatedCode_1 = require(\"../source-code/ObfuscatedCode\");\nconst SourceCode_1 = require(\"../source-code/SourceCode\");\nclass InversifyContainerFacade {\n constructor() {\n this.container = new inversify_1.Container();\n }\n static getFactory(serviceIdentifier) {\n return (context) => {\n return (bindingName) => {\n return context.container.getNamed(serviceIdentifier, bindingName);\n };\n };\n }\n static getCacheFactory(serviceIdentifier) {\n return (context) => {\n const cache = new Map();\n return (bindingName) => {\n if (cache.has(bindingName)) {\n return cache.get(bindingName);\n }\n const object = context.container.getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, object);\n return object;\n };\n };\n }\n static getConstructorFactory(serviceIdentifier, ...dependencies) {\n return (context) => {\n const cache = new Map();\n const cachedDependencies = [];\n return (bindingName) => {\n dependencies.forEach((dependency, index) => {\n if (!cachedDependencies[index]) {\n cachedDependencies[index] = context.container.get(dependency);\n }\n });\n if (cache.has(bindingName)) {\n return new (cache.get(bindingName))(...cachedDependencies);\n }\n const constructor = context.container\n .getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, constructor);\n return new constructor(...cachedDependencies);\n };\n };\n }\n get(serviceIdentifier) {\n return this.container.get(serviceIdentifier);\n }\n getNamed(serviceIdentifier, named) {\n return this.container.getNamed(serviceIdentifier, named);\n }\n load(sourceCode, sourceMap, options) {\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)\n .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap))\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)\n .toDynamicValue(() => options)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)\n .to(Logger_1.Logger)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator)\n .to(JavaScriptObfuscator_1.JavaScriptObfuscator)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)\n .to(CodeTransformersRunner_1.CodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)\n .to(NodeTransformersRunner_1.NodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode)\n .to(ObfuscatedCode_1.ObfuscatedCode);\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)\n .toFactory((context) => {\n return (obfuscatedCodeAsString, sourceMapAsString) => {\n const obfuscatedCode = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode);\n obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);\n return obfuscatedCode;\n };\n });\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)\n .to(ObfuscationEventEmitter_1.ObfuscationEventEmitter)\n .inSingletonScope();\n this.container.load(AnalyzersModule_1.analyzersModule);\n this.container.load(CodeTransformersModule_1.codeTransformersModule);\n this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);\n this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);\n this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule);\n this.container.load(CustomNodesModule_1.customNodesModule);\n this.container.load(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule);\n this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);\n this.container.load(GeneratorsModule_1.generatorsModule);\n this.container.load(InitializingTransformersModule_1.initializingTransformersModule);\n this.container.load(NodeModule_1.nodeModule);\n this.container.load(NodeTransformersModule_1.nodeTransformersModule);\n this.container.load(OptionsModule_1.optionsModule);\n this.container.load(PreparingTransformersModule_1.preparingTransformersModule);\n this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule);\n this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule);\n this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule);\n this.container.load(StoragesModule_1.storagesModule);\n this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule);\n this.container.load(UtilsModule_1.utilsModule);\n }\n unload() {\n this.container.unbindAll();\n }\n}\nexports.InversifyContainerFacade = InversifyContainerFacade;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceIdentifiers = void 0;\nvar ServiceIdentifiers;\n(function (ServiceIdentifiers) {\n ServiceIdentifiers[\"Factory__ICalleeDataExtractor\"] = \"Factory<ICalleeDataExtractor>\";\n ServiceIdentifiers[\"Factory__ICodeTransformer\"] = \"Factory<ICodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IControlFlowCustomNode\"] = \"Factory<IControlFlowCustomNode>\";\n ServiceIdentifiers[\"Factory__IControlFlowReplacer\"] = \"Factory<IControlFlowReplacer>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelper\"] = \"Factory<ICustomCodeHelper>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelperGroup\"] = \"Factory<ICustomCodeHelperGroup>\";\n ServiceIdentifiers[\"Factory__IDeadCodeInjectionCustomNode\"] = \"Factory<IDeadCodeInjectionCustomNode>\";\n ServiceIdentifiers[\"Factory__IIdentifierNamesGenerator\"] = \"Factory<IIdentifierNamesGenerator>\";\n ServiceIdentifiers[\"Factory__INodeGuard\"] = \"Factory<INodeGuard>\";\n ServiceIdentifiers[\"Factory__INodeTransformer\"] = \"Factory<INodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IObfuscatedCode\"] = \"Factory<IObfuscatedCode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionKeysTransformerCustomNode\"] = \"Factory<IObjectExpressionKeysTransformerCustomNode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionExtractor\"] = \"Factory<IObjectExpressionExtractor>\";\n ServiceIdentifiers[\"Factory__IStringArrayCustomNode\"] = \"Factory<IStringArrayCustomNode>\";\n ServiceIdentifiers[\"Factory__IStringArrayIndexNode\"] = \"Factory<IStringArrayIndexNode>\";\n ServiceIdentifiers[\"Factory__TControlFlowStorage\"] = \"Factory<TControlFlowStorage>\";\n ServiceIdentifiers[\"IArrayUtils\"] = \"IArrayUtils\";\n ServiceIdentifiers[\"ICalleeDataExtractor\"] = \"ICalleeDataExtractor\";\n ServiceIdentifiers[\"ICallsGraphAnalyzer\"] = \"ICallsGraphAnalyzer\";\n ServiceIdentifiers[\"ICodeTransformer\"] = \"ICodeTransformer\";\n ServiceIdentifiers[\"ICodeTransformerNamesGroupsBuilder\"] = \"ICodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"ICodeTransformersRunner\"] = \"ICodeTransformersRunner\";\n ServiceIdentifiers[\"ICryptUtils\"] = \"ICryptUtils\";\n ServiceIdentifiers[\"ICryptUtilsSwappedAlphabet\"] = \"ICryptUtilsSwappedAlphabet\";\n ServiceIdentifiers[\"ICustomCodeHelper\"] = \"ICustomCodeHelper\";\n ServiceIdentifiers[\"ICustomCodeHelperGroup\"] = \"ICustomCodeHelperGroup\";\n ServiceIdentifiers[\"IControlFlowReplacer\"] = \"IControlFlowReplacer\";\n ServiceIdentifiers[\"ICustomCodeHelperFormatter\"] = \"ICustomCodeHelperFormatter\";\n ServiceIdentifiers[\"ICustomCodeHelperObfuscator\"] = \"ICustomCodeHelperObfuscator\";\n ServiceIdentifiers[\"IEscapeSequenceEncoder\"] = \"IEscapeSequenceEncoder\";\n ServiceIdentifiers[\"IIdentifierNamesGenerator\"] = \"IIdentifierNamesGenerator\";\n ServiceIdentifiers[\"IIdentifierReplacer\"] = \"IIdentifierReplacer\";\n ServiceIdentifiers[\"IJavaScriptObfuscator\"] = \"IJavaScriptObfuscator\";\n ServiceIdentifiers[\"ILevelledTopologicalSorter\"] = \"ILevelledTopologicalSorter\";\n ServiceIdentifiers[\"ILiteralNodesCacheStorage\"] = \"ILiteralNodesCacheStorage\";\n ServiceIdentifiers[\"ILogger\"] = \"ILogger\";\n ServiceIdentifiers[\"INodeGuard\"] = \"INodeGuard\";\n ServiceIdentifiers[\"INodeTransformer\"] = \"INodeTransformer\";\n ServiceIdentifiers[\"INodeTransformerNamesGroupsBuilder\"] = \"INodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"INodeTransformersRunner\"] = \"INodeTransformersRunner\";\n ServiceIdentifiers[\"INumberNumericalExpressionAnalyzer\"] = \"INumberNumericalExpressionAnalyzer\";\n ServiceIdentifiers[\"IObfuscationEventEmitter\"] = \"IObfuscationEventEmitter\";\n ServiceIdentifiers[\"IObfuscatedCode\"] = \"IObfuscatedCode\";\n ServiceIdentifiers[\"IOptions\"] = \"IOptions\";\n ServiceIdentifiers[\"IOptionsNormalizer\"] = \"IOptionsNormalizer\";\n ServiceIdentifiers[\"IPrevailingKindOfVariablesAnalyzer\"] = \"IPrevailingKindOfVariablesAnalyzer\";\n ServiceIdentifiers[\"IObjectExpressionExtractor\"] = \"IObjectExpressionExtractor\";\n ServiceIdentifiers[\"IRandomGenerator\"] = \"IRandomGenerator\";\n ServiceIdentifiers[\"IRenamePropertiesReplacer\"] = \"IRenamePropertiesReplacer\";\n ServiceIdentifiers[\"IScopeIdentifiersTraverser\"] = \"IScopeIdentifiersTraverser\";\n ServiceIdentifiers[\"ISourceCode\"] = \"ISourceCode\";\n ServiceIdentifiers[\"IScopeAnalyzer\"] = \"IScopeAnalyzer\";\n ServiceIdentifiers[\"IStringArrayIndexNode\"] = \"IStringArrayIndexNode\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\"] = \"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperNamesDataStorage\"] = \"IStringArrayScopeCallsWrapperNamesDataStorage\";\n ServiceIdentifiers[\"IStringArrayStorage\"] = \"IStringArrayStorage\";\n ServiceIdentifiers[\"IStringArrayStorageAnalyzer\"] = \"IStringArrayStorageAnalyzer\";\n ServiceIdentifiers[\"IVisitedLexicalScopeNodesStackStorage\"] = \"IVisitedLexicalScopeNodesStackStorage\";\n ServiceIdentifiers[\"Newable__ICustomNode\"] = \"Newable<ICustomNode>\";\n ServiceIdentifiers[\"Newable__TControlFlowStorage\"] = \"Newable<TControlFlowStorage>\";\n ServiceIdentifiers[\"TCustomNodeGroupStorage\"] = \"TCustomNodeGroupStorage\";\n ServiceIdentifiers[\"TInputOptions\"] = \"TInputOptions\";\n})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.analyzersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CalleeDataExtractor_1 = require(\"../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst CallsGraphAnalyzer_1 = require(\"../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer\");\nconst FunctionDeclarationCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor\");\nconst FunctionExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor\");\nconst NumberNumericalExpressionAnalyzer_1 = require(\"../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer\");\nconst ObjectExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor\");\nconst PrevailingKindOfVariablesAnalyzer_1 = require(\"../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer\");\nconst ScopeAnalyzer_1 = require(\"../../../analyzers/scope-analyzer/ScopeAnalyzer\");\nconst StringArrayStorageAnalyzer_1 = require(\"../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer\");\nexports.analyzersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)\n .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)\n .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)\n .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)\n .to(ScopeAnalyzer_1.ScopeAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)\n .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.codeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CodeTransformer_1 = require(\"../../../enums/code-transformers/CodeTransformer\");\nconst CodeTransformerNamesGroupsBuilder_1 = require(\"../../../code-transformers/CodeTransformerNamesGroupsBuilder\");\nconst HashbangOperatorTransformer_1 = require(\"../../../code-transformers/preparing-transformers/HashbangOperatorTransformer\");\nexports.codeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)\n .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)\n .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer)\n .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customCodeHelpersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst CustomCodeHelperGroup_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst ConsoleOutputCodeHelperGroup_1 = require(\"../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup\");\nconst DebugProtectionCodeHelperGroup_1 = require(\"../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup\");\nconst DomainLockCustomCodeHelperGroup_1 = require(\"../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup\");\nconst SelfDefendingCodeHelperGroup_1 = require(\"../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup\");\nconst StringArrayCodeHelperGroup_1 = require(\"../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup\");\nconst ConsoleOutputDisableCodeHelper_1 = require(\"../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper\");\nconst CustomCodeHelperFormatter_1 = require(\"../../../custom-code-helpers/CustomCodeHelperFormatter\");\nconst CustomCodeHelperObfuscator_1 = require(\"../../../custom-code-helpers/CustomCodeHelperObfuscator\");\nconst DebugProtectionFunctionCallCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper\");\nconst DebugProtectionFunctionIntervalCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper\");\nconst DebugProtectionFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper\");\nconst DomainLockCodeHelper_1 = require(\"../../../custom-code-helpers/domain-lock/DomainLockCodeHelper\");\nconst CallsControllerFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper\");\nconst SelfDefendingUnicodeCodeHelper_1 = require(\"../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper\");\nconst StringArrayCallsWrapperBase64CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper\");\nconst StringArrayCallsWrapperRc4CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper\");\nconst StringArrayCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCodeHelper\");\nconst StringArrayRotateFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper\");\nexports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DomainLockCodeHelper_1.DomainLockCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCodeHelper_1.StringArrayCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)\n .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)\n .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customNodesModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst DeadCodeInjectionCustomNode_1 = require(\"../../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst StringArrayCustomNode_1 = require(\"../../../enums/custom-nodes/StringArrayCustomNode\");\nconst BinaryExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode\");\nconst BlockStatementControlFlowFlatteningNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode\");\nconst BlockStatementDeadCodeInjectionNode_1 = require(\"../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode\");\nconst CallExpressionControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode\");\nconst CallExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode\");\nconst ControlFlowStorageNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode\");\nconst ExpressionWithOperatorControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode\");\nconst LogicalExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode\");\nconst ObjectExpressionVariableDeclarationHostNode_1 = require(\"../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode\");\nconst StringArrayCallNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayCallNode\");\nconst StringArrayHexadecimalNumberIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode\");\nconst StringArrayHexadecimalNumericStringIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode\");\nconst StringArrayIndexNode_1 = require(\"../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst StringArrayScopeCallsWrapperFunctionNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode\");\nconst StringArrayScopeCallsWrapperVariableNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode\");\nconst StringLiteralControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode\");\nconst StringLiteralNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode\");\nexports.customNodesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralNode_1.StringLiteralNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode)\n .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode)\n .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayCallNode_1.StringArrayCallNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generatorsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst IdentifierNamesGenerator_1 = require(\"../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst DictionaryIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator\");\nconst HexadecimalIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator\");\nconst MangledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator\");\nconst MangledShuffledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator\");\nexports.generatorsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n function identifierNameGeneratorFactory() {\n let cachedIdentifierNamesGenerator = null;\n return (context) => (options) => {\n if (cachedIdentifierNamesGenerator) {\n return cachedIdentifierNamesGenerator;\n }\n let identifierNamesGenerator;\n switch (options.identifierNamesGenerator) {\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:\n default:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n }\n cachedIdentifierNamesGenerator = identifierNamesGenerator;\n return identifierNamesGenerator;\n };\n }\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)\n .toFactory(identifierNameGeneratorFactory());\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.controlFlowTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowReplacer_1 = require(\"../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BinaryExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer\");\nconst BlockStatementControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer\");\nconst CallExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer\");\nconst FunctionControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer\");\nconst LogicalExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer\");\nconst StringLiteralControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer\");\nexports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObjectExpressionExtractor_1 = require(\"../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst BasePropertiesExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor\");\nconst BooleanLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/BooleanLiteralTransformer\");\nconst ExportSpecifierTransformer_1 = require(\"../../../node-transformers/converting-transformers/ExportSpecifierTransformer\");\nconst MemberExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MemberExpressionTransformer\");\nconst MethodDefinitionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MethodDefinitionTransformer\");\nconst NumberLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberLiteralTransformer\");\nconst NumberToNumericalExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer\");\nconst ObjectExpressionKeysTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer\");\nconst ObjectExpressionToVariableDeclarationExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor\");\nconst ObjectExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionTransformer\");\nconst ObjectPatternPropertiesTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer\");\nconst SplitStringTransformer_1 = require(\"../../../node-transformers/converting-transformers/SplitStringTransformer\");\nconst TemplateLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/TemplateLiteralTransformer\");\nexports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MemberExpressionTransformer_1.MemberExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MethodDefinitionTransformer_1.MethodDefinitionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberLiteralTransformer_1.NumberLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(SplitStringTransformer_1.SplitStringTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(BasePropertiesExtractor_1.BasePropertiesExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deadCodeInjectionTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst DeadCodeInjectionTransformer_1 = require(\"../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer\");\nexports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.finalizingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst EscapeSequenceTransformer_1 = require(\"../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer\");\nexports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst CommentsTransformer_1 = require(\"../../../node-transformers/initializing-transformers/CommentsTransformer\");\nexports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CommentsTransformer_1.CommentsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformerNamesGroupsBuilder_1 = require(\"../../../node-transformers/NodeTransformerNamesGroupsBuilder\");\nexports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)\n .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.preparingTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObfuscatingGuard_1 = require(\"../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst BlackListObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst CustomCodeHelpersTransformer_1 = require(\"../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer\");\nconst EvalCallExpressionTransformer_1 = require(\"../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer\");\nconst ForceTransformStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard\");\nconst IgnoredRequireImportObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard\");\nconst MetadataTransformer_1 = require(\"../../../node-transformers/preparing-transformers/MetadataTransformer\");\nconst ObfuscatingGuardsTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer\");\nconst ParentificationTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ParentificationTransformer\");\nconst ReservedStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard\");\nconst VariablePreserveTransformer_1 = require(\"../../../node-transformers/preparing-transformers/VariablePreserveTransformer\");\nexports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MetadataTransformer_1.MetadataTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ParentificationTransformer_1.ParentificationTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariablePreserveTransformer_1.VariablePreserveTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renameIdentifiersTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst IdentifierReplacer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer\");\nconst LabeledStatementTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer\");\nconst ScopeIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer\");\nconst ScopeThroughIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer\");\nexports.renameIdentifiersTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(LabeledStatementTransformer_1.LabeledStatementTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)\n .to(IdentifierReplacer_1.IdentifierReplacer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renamePropertiesTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst RenamePropertiesReplacer_1 = require(\"../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer\");\nconst RenamePropertiesTransformer_1 = require(\"../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer\");\nexports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)\n .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.simplifyingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BlockStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer\");\nconst ExpressionStatementsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer\");\nconst IfStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer\");\nconst VariableDeclarationsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer\");\nexports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArrayTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst StringArrayScopeCallsWrapperTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer\");\nconst StringArrayTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayTransformer\");\nexports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayTransformer_1.StringArrayTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ScopeIdentifiersTraverser_1 = require(\"../../../node/ScopeIdentifiersTraverser\");\nexports.nodeModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)\n .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst Options_1 = require(\"../../../options/Options\");\nconst OptionsNormalizer_1 = require(\"../../../options/OptionsNormalizer\");\nexports.optionsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)\n .to(Options_1.Options)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)\n .to(OptionsNormalizer_1.OptionsNormalizer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storagesModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowStorage_1 = require(\"../../../storages/custom-nodes/ControlFlowStorage\");\nconst CustomCodeHelperGroupStorage_1 = require(\"../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage\");\nconst LiteralNodesCacheStorage_1 = require(\"../../../storages/string-array-transformers/LiteralNodesCacheStorage\");\nconst StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst StringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage\");\nconst StringArrayStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayStorage\");\nconst VisitedLexicalScopeNodesStackStorage_1 = require(\"../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage\");\nexports.storagesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)\n .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)\n .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)\n .to(StringArrayStorage_1.StringArrayStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)\n .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)\n .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage)\n .toConstructor(ControlFlowStorage_1.ControlFlowStorage);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)\n .toFactory((context) => {\n return () => {\n const constructor = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);\n const randomGenerator = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);\n const options = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);\n const storage = new constructor(randomGenerator, options);\n storage.initialize();\n return storage;\n };\n });\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utilsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ArrayUtils_1 = require(\"../../../utils/ArrayUtils\");\nconst CryptUtils_1 = require(\"../../../utils/CryptUtils\");\nconst CryptUtilsSwappedAlphabet_1 = require(\"../../../utils/CryptUtilsSwappedAlphabet\");\nconst EscapeSequenceEncoder_1 = require(\"../../../utils/EscapeSequenceEncoder\");\nconst LevelledTopologicalSorter_1 = require(\"../../../utils/LevelledTopologicalSorter\");\nconst RandomGenerator_1 = require(\"../../../utils/RandomGenerator\");\nexports.utilsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)\n .to(ArrayUtils_1.ArrayUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)\n .to(RandomGenerator_1.RandomGenerator)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)\n .to(CryptUtils_1.CryptUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)\n .to(CryptUtilsSwappedAlphabet_1.CryptUtilsSwappedAlphabet)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)\n .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)\n .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst GlobalVariableTemplate1_1 = require(\"./common/templates/GlobalVariableTemplate1\");\nconst GlobalVariableTemplate2_1 = require(\"./common/templates/GlobalVariableTemplate2\");\nlet AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.customCodeHelperObfuscator = customCodeHelperObfuscator;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n const codeHelperTemplate = this.getCodeHelperTemplate();\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate));\n }\n return this.cachedNode;\n }\n getGlobalVariableTemplate() {\n return this.randomGenerator\n .getRandomGenerator()\n .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions);\n }\n getCodeHelperTemplate() {\n return '';\n }\n};\nAbstractCustomCodeHelper.globalVariableTemplateFunctions = [\n GlobalVariableTemplate1_1.GlobalVariableTemplate1(),\n GlobalVariableTemplate2_1.GlobalVariableTemplate2()\n];\nAbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], AbstractCustomCodeHelper);\nexports.AbstractCustomCodeHelper = AbstractCustomCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup {\n constructor(identifierNamesGeneratorFactory, randomGenerator, options) {\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getAppendEvent() {\n return this.appendEvent;\n }\n getCustomCodeHelpers() {\n return this.customCodeHelpers;\n }\n appendCustomNodeIfExist(customCodeHelperName, callback) {\n const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName);\n if (!customCodeHelper) {\n return;\n }\n callback(customCodeHelper);\n }\n getRandomCallsGraphIndex(callsGraphLength) {\n return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));\n }\n};\nAbstractCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], AbstractCustomCodeHelperGroup);\nexports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperFormatter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst string_template_1 = __importDefault(require(\"string-template\"));\nconst IPrevailingKindOfVariablesAnalyzer_1 = require(\"../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer\");\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nlet CustomCodeHelperFormatter = class CustomCodeHelperFormatter {\n constructor(prevailingKindOfVariablesAnalyzer) {\n this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();\n }\n formatTemplate(template, mapping) {\n return string_template_1.default(template, mapping);\n }\n formatStructure(statements) {\n for (const statement of statements) {\n estraverse.replace(statement, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n if (this.prevailingKindOfVariables === 'var') {\n node.kind = 'var';\n }\n return node;\n }\n });\n }\n return statements;\n }\n};\nCustomCodeHelperFormatter = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== \"undefined\" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === \"function\" ? _a : Object])\n], CustomCodeHelperFormatter);\nexports.CustomCodeHelperFormatter = CustomCodeHelperFormatter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst NoCustomNodes_1 = require(\"../options/presets/NoCustomNodes\");\nconst JavaScriptObfuscatorFacade_1 = require(\"../JavaScriptObfuscatorFacade\");\nlet CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n obfuscateTemplate(template, additionalOptions = {}) {\n return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, numbersToExpressions: this.options.numbersToExpressions, simplify: this.options.simplify, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode();\n }\n};\nCustomCodeHelperObfuscator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], CustomCodeHelperObfuscator);\nexports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsControllerFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SingleCallControllerTemplate_1 = require(\"../common/templates/SingleCallControllerTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(appendEvent, callsControllerFunctionName) {\n this.appendEvent = appendEvent;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n }));\n }\n return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallsControllerFunctionCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof ObfuscationEvent_1.ObfuscationEvent !== \"undefined\" && ObfuscationEvent_1.ObfuscationEvent) === \"function\" ? _a : Object)\n], CallsControllerFunctionCodeHelper.prototype, \"appendEvent\", void 0);\nCallsControllerFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], CallsControllerFunctionCodeHelper);\nexports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableNoEvalTemplate = void 0;\nfunction GlobalVariableNoEvalTemplate() {\n return `\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n `;\n}\nexports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate1 = void 0;\nfunction GlobalVariableTemplate1() {\n return `\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n `;\n}\nexports.GlobalVariableTemplate1 = GlobalVariableTemplate1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate2 = void 0;\nfunction GlobalVariableTemplate2() {\n return `\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n `;\n}\nexports.GlobalVariableTemplate2 = GlobalVariableTemplate2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingleCallControllerTemplate = void 0;\nfunction SingleCallControllerTemplate() {\n return `\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n `;\n}\nexports.SingleCallControllerTemplate = SingleCallControllerTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst ConsoleOutputDisableTemplate_1 = require(\"./templates/ConsoleOutputDisableTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"consoleOutputDisableFunctionName\", void 0);\nConsoleOutputDisableCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ConsoleOutputDisableCodeHelper);\nexports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const consoleOutputDisableHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null;\n const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);\n NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], ConsoleOutputCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nConsoleOutputCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ConsoleOutputCodeHelperGroup);\nexports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableTemplate = void 0;\nfunction ConsoleOutputDisableTemplate() {\n return `\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n `;\n}\nexports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionCallTemplate_1 = require(\"./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName, callsControllerFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName,\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCallCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionCallCodeHelper);\nexports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebuggerTemplate_1 = require(\"./templates/debug-protection-function/DebuggerTemplate\");\nconst DebuggerTemplateNoEval_1 = require(\"./templates/debug-protection-function/DebuggerTemplateNoEval\");\nconst DebugProtectionFunctionTemplate_1 = require(\"./templates/debug-protection-function/DebugProtectionFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? DebuggerTemplate_1.DebuggerTemplate()\n : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {\n debuggerTemplate,\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionCodeHelper);\nexports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionIntervalTemplate_1 = require(\"./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionIntervalCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionIntervalCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionIntervalCodeHelper);\nexports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.debugProtection) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const debugProtectionFunctionCallHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null;\n const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => {\n const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)\n ? nodeWithStatements.consequent.length\n : nodeWithStatements.body.length;\n const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength);\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.debugProtection) {\n return;\n }\n const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);\n if (this.options.debugProtectionInterval) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);\n }\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], DebugProtectionCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDebugProtectionCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionCodeHelperGroup);\nexports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallTemplate = void 0;\nfunction DebugProtectionFunctionCallTemplate() {\n return `\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\\\\\( *\\\\\\\\)');\n const regExp2 = new RegExp('\\\\\\\\+\\\\\\\\+ *\\\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n `;\n}\nexports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalTemplate = void 0;\nfunction DebugProtectionFunctionIntervalTemplate() {\n return `\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n `;\n}\nexports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionTemplate = void 0;\nfunction DebugProtectionFunctionTemplate() {\n return `\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n `;\n}\nexports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplate = void 0;\nfunction DebuggerTemplate() {\n return `\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n `;\n}\nexports.DebuggerTemplate = DebuggerTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplateNoEval = void 0;\nfunction DebuggerTemplateNoEval() {\n return `\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n `;\n}\nexports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst ICryptUtils_1 = require(\"../../interfaces/utils/ICryptUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DomainLockTemplate_1 = require(\"./templates/DomainLockTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.cryptUtils = cryptUtils;\n }\n initialize(callsControllerFunctionName, domainLockFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.domainLockFunctionName = domainLockFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const domainsString = this.options.domainLock.join(';');\n const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3);\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n domainLockFunctionName: this.domainLockFunctionName,\n diff,\n domains: hiddenDomainsString,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"domainLockFunctionName\", void 0);\nDomainLockCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== \"undefined\" && ICryptUtils_1.ICryptUtils) === \"function\" ? _f : Object])\n], DomainLockCodeHelper);\nexports.DomainLockCodeHelper = DomainLockCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.domainLock.length) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const domainLockFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const domainLockFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);\n NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.domainLock.length) {\n return;\n }\n const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], DomainLockCustomCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDomainLockCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DomainLockCustomCodeHelperGroup);\nexports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockTemplate = void 0;\nfunction DomainLockTemplate() {\n return `\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp(\"[{diff}]\", \"g\");\n const domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n `;\n}\nexports.DomainLockTemplate = DomainLockTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingUnicodeCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/SelfDefendingTemplate\");\nconst SelfDefendingNoEvalTemplate_1 = require(\"./templates/SelfDefendingNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nlet SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, selfDefendingFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.selfDefendingFunctionName = selfDefendingFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? SelfDefendingTemplate_1.SelfDefendingTemplate()\n : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {\n callControllerFunctionName: this.callsControllerFunctionName,\n selfDefendingFunctionName: this.selfDefendingFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"selfDefendingFunctionName\", void 0);\nSelfDefendingUnicodeCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], SelfDefendingUnicodeCodeHelper);\nexports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.selfDefending) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const selfDefendingFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);\n NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.selfDefending) {\n return;\n }\n const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], SelfDefendingCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nSelfDefendingCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], SelfDefendingCodeHelperGroup);\nexports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingNoEvalTemplate = void 0;\nfunction SelfDefendingNoEvalTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperBase64CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst StringArrayBase64DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName: atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n atobFunctionName,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperBase64CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperBase64CodeHelper);\nexports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-calls-wrapper/SelfDefendingTemplate\");\nconst StringArrayCallsWrapperTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayCallsWrapperName, indexShiftAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.indexShiftAmount = indexShiftAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate();\n const preservedNames = [`^${this.stringArrayName}$`];\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {\n decodeCodeHelperTemplate,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName,\n indexShiftAmount: this.indexShiftAmount\n }), {\n reservedNames: preservedNames\n });\n }\n getDecodeStringArrayTemplate() {\n return '';\n }\n getSelfDefendingTemplate() {\n if (!this.options.selfDefending) {\n return '';\n }\n return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallsWrapperCodeHelper.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayCallsWrapperName\", void 0);\nStringArrayCallsWrapperCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _f : Object])\n], StringArrayCallsWrapperCodeHelper);\nexports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperRc4CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst Rc4Template_1 = require(\"./templates/string-array-calls-wrapper/Rc4Template\");\nconst StringArrayRC4DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName\n });\n const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), {\n atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n rc4Polyfill,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperRc4CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperRc4CodeHelper);\nexports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst StringArrayTemplate_1 = require(\"./templates/string-array/StringArrayTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(stringArrayStorage, stringArrayName) {\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayName = stringArrayName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), {\n stringArrayName: this.stringArrayName,\n stringArrayStorageItems: this.getEncodedStringArrayStorageItems()\n });\n }\n getEncodedStringArrayStorageItems() {\n return Array\n .from(this.stringArrayStorage.getStorage().values())\n .map((stringArrayStorageItemData) => {\n const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue);\n return `'${escapedEncodedValue}'`;\n })\n .toString();\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _a : Object)\n], StringArrayCodeHelper.prototype, \"stringArrayStorage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCodeHelper.prototype, \"stringArrayName\", void 0);\nStringArrayCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], StringArrayCodeHelper);\nexports.StringArrayCodeHelper = StringArrayCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-rotate-function/SelfDefendingTemplate\");\nconst StringArrayRotateFunctionTemplate_1 = require(\"./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayRotationAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayRotationAmount = stringArrayRotationAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const timesName = this.identifierNamesGenerator.generateNext();\n const whileFunctionName = this.identifierNamesGenerator.generateNext();\n const preservedNames = [`^${this.stringArrayName}$`];\n let code = '';\n if (this.options.selfDefending) {\n code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {\n timesName,\n whileFunctionName\n });\n }\n else {\n code = `${whileFunctionName}(++${timesName})`;\n }\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {\n code,\n timesName,\n whileFunctionName,\n stringArrayName: this.stringArrayName,\n stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount)\n }), {\n reservedNames: preservedNames\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayRotationAmount\", void 0);\nStringArrayRotateFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _f : Object])\n], StringArrayRotateFunctionCodeHelper);\nexports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayCodeHelperGroup_1, _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst StringArrayEncoding_1 = require(\"../../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nlet StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n this.stringArrayStorage = stringArrayStorage;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n if (!this.stringArrayStorage.getLength()) {\n return;\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());\n });\n const stringArrayEncodingsLength = this.options.stringArrayEncoding.length;\n for (let i = 0; i < stringArrayEncodingsLength; i++) {\n const stringArrayEncoding = this.options.stringArrayEncoding[i];\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1);\n });\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.stringArray) {\n return;\n }\n const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n const stringArrayName = this.stringArrayStorage.getStorageName();\n stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper);\n for (const stringArrayEncoding of this.options.stringArrayEncoding) {\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);\n const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);\n stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount());\n this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);\n }\n const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, this.stringArrayStorage.getRotationAmount());\n if (this.options.rotateStringArray) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper);\n }\n }\n getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) {\n var _a;\n return (_a = StringArrayCodeHelperGroup_1\n .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper;\n }\n};\nStringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([\n [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper],\n [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64],\n [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4]\n]);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], StringArrayCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nStringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], StringArrayCodeHelperGroup);\nexports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AtobTemplate = void 0;\nconst Base64AlphabetSwapped_1 = require(\"../../../../constants/Base64AlphabetSwapped\");\nfunction AtobTemplate() {\n return `\n var {atobFunctionName} = function (input) {\n const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `;\n}\nexports.AtobTemplate = AtobTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rc4Template = void 0;\nfunction Rc4Template() {\n return `\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n `;\n}\nexports.Rc4Template = Rc4Template;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {\n const identifierLength = 6;\n const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);\n const statesIdentifier = randomGenerator.getRandomString(identifierLength);\n const newStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const firstStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const secondStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const checkStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const runStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const getStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const stateResultIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n const StatesClass = function (${rc4BytesIdentifier}) {\n this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};\n this.${statesIdentifier} = [1, 0, 0];\n this.${newStateIdentifier} = function(){return 'newState';};\n this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *', true)}';\n this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\\'|\"].+[\\'|\"];? *}', true)}';\n };\n \n StatesClass.prototype.${checkStateIdentifier} = function () {\n const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});\n const expression = regExp.test(this.${newStateIdentifier}.toString())\n ? --this.${statesIdentifier}[1]\n : --this.${statesIdentifier}[0];\n \n return this.${runStateIdentifier}(expression);\n };\n \n StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {\n if (!Boolean(~${stateResultIdentifier})) {\n return ${stateResultIdentifier};\n }\n \n return this.${getStateIdentifier}(this.${rc4BytesIdentifier});\n };\n\n StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {\n for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {\n this.${statesIdentifier}.push(Math.round(Math.random()));\n len = this.${statesIdentifier}.length;\n }\n \n return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayBase64DecodeTemplate = void 0;\nfunction StringArrayBase64DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperTemplate = void 0;\nfunction StringArrayCallsWrapperTemplate() {\n return `\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n `;\n}\nexports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRC4DecodeTemplate = void 0;\nfunction StringArrayRC4DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const rc4Identifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n const onceIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${onceIdentifier} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(escapeSequenceEncoder) {\n return `\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + \"=\" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *[\\'|\"].+[\\'|\"];? *}', true)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionTemplate = void 0;\nfunction StringArrayRotateFunctionTemplate() {\n return `\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n `;\n}\nexports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTemplate = void 0;\nfunction StringArrayTemplate() {\n return `\n const {stringArrayName} = [{stringArrayStorageItems}];\n `;\n}\nexports.StringArrayTemplate = StringArrayTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCustomNode = class AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure());\n }\n return this.cachedNode;\n }\n};\nAbstractCustomNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], AbstractCustomNode);\nexports.AbstractCustomNode = AbstractCustomNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBinaryExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BinaryExpressionFunctionNode);\nexports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowFlatteningNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {\n this.blockStatementBody = blockStatementBody;\n this.shuffledKeys = shuffledKeys;\n this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;\n }\n getNodeStructure() {\n const controllerIdentifierName = this.randomGenerator.getRandomString(6);\n const indexIdentifierName = this.randomGenerator.getRandomString(6);\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [\n NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine)\n ]))\n ], 'const'),\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))\n ], 'let'),\n NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => {\n const statement = this.blockStatementBody[key];\n const consequent = [statement];\n if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {\n consequent.push(NodeFactory_1.NodeFactory.continueStatement());\n }\n return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);\n })),\n NodeFactory_1.NodeFactory.breakStatement()\n ]))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"blockStatementBody\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"originalKeysIndexesInShuffledArray\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"shuffledKeys\", void 0);\nBlockStatementControlFlowFlatteningNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementControlFlowFlatteningNode);\nexports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(expressionArguments) {\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');\n const params = [];\n const argumentsLength = this.expressionArguments.length;\n for (let i = 0; i < argumentsLength; i++) {\n params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`));\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n calleeIdentifier,\n ...params\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionFunctionNode.prototype, \"expressionArguments\", void 0);\nCallExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], CallExpressionFunctionNode);\nexports.CallExpressionFunctionNode = CallExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nLogicalExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], LogicalExpressionFunctionNode);\nexports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(literalValue) {\n this.literalValue = literalValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralNode.prototype, \"literalValue\", void 0);\nStringLiteralNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], StringLiteralNode);\nexports.StringLiteralNode = StringLiteralNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.callee = callee;\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.callee,\n ...this.expressionArguments\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof ESTree !== \"undefined\" && ESTree.Expression) === \"function\" ? _a : Object)\n], CallExpressionControlFlowStorageCallNode.prototype, \"callee\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionControlFlowStorageCallNode.prototype, \"expressionArguments\", void 0);\nCallExpressionControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], CallExpressionControlFlowStorageCallNode);\nexports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorageNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowStorage_1 = require(\"../../../types/storages/TControlFlowStorage\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorage) {\n this.controlFlowStorage = controlFlowStorage;\n }\n getNodeStructure() {\n const propertyNodes = Array\n .from(this.controlFlowStorage.getStorage())\n .map(([key, value]) => {\n const node = value.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');\n }\n return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);\n });\n let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))\n ], 'const');\n structure = NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== \"undefined\" && TControlFlowStorage_1.TControlFlowStorage) === \"function\" ? _a : Object)\n], ControlFlowStorageNode.prototype, \"controlFlowStorage\", void 0);\nControlFlowStorageNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ControlFlowStorageNode);\nexports.ControlFlowStorageNode = ControlFlowStorageNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.leftValue = leftValue;\n this.rightValue = rightValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.leftValue,\n this.rightValue\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nExpressionWithOperatorControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], ExpressionWithOperatorControlFlowStorageCallNode);\nexports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nStringLiteralControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], StringLiteralControlFlowStorageCallNode);\nexports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementDeadCodeInjectionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {\n this.blockStatementNode = blockStatementNode;\n this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;\n }\n getNode() {\n return this.getNodeStructure();\n }\n getNodeStructure() {\n const random1 = this.randomGenerator.getMathRandom() > 0.5;\n const random2 = this.randomGenerator.getMathRandom() > 0.5;\n const operator = random1 ? '===' : '!==';\n const leftString = this.randomGenerator.getRandomString(5);\n const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);\n const [consequent, alternate] = random1 === random2\n ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]\n : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBlockStatementDeadCodeInjectionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementDeadCodeInjectionNode);\nexports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionVariableDeclarationHostNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(lexicalScopeNode, properties) {\n this.lexicalScopeNode = lexicalScopeNode;\n this.properties = properties;\n }\n getNodeStructure() {\n const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties))\n ], 'const');\n return [structure];\n }\n};\nObjectExpressionVariableDeclarationHostNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], ObjectExpressionVariableDeclarationHostNode);\nexports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractStringArrayCallNode_1, _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayIndexNode_1 = require(\"../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nlet AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory;\n this.stringArrayStorage = stringArrayStorage;\n this.arrayUtils = arrayUtils;\n }\n getStringArrayIndexNode(index) {\n var _a;\n const isPositive = index >= 0;\n const normalizedIndex = Math.abs(index);\n const stringArrayCallsIndexType = this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayIndexesType);\n const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null;\n if (!stringArrayIndexNodeName) {\n throw new Error('Invalid string array index node name');\n }\n const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName)\n .getNode(normalizedIndex);\n NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true });\n const hexadecimalNode = isPositive\n ? stringArrayCallIndexNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode);\n NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode);\n return hexadecimalNode;\n }\n getRc4KeyLiteralNode(decodeKey) {\n const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey);\n NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });\n return rc4KeyLiteralNode;\n }\n};\nAbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2;\nAbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]\n]);\nAbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _g : Object])\n], AbstractStringArrayCallNode);\nexports.AbstractStringArrayCallNode = AbstractStringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g, _h;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) {\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData;\n this.index = index;\n this.indexShiftAmount = indexShiftAmount;\n this.decodeKey = decodeKey;\n }\n getNodeStructure() {\n var _a, _b;\n const resultIndex = this.indexShiftAmount + this.index;\n const indexNode = this.getStringArrayIndexNode(resultIndex);\n const rc4KeyLiteralNode = this.decodeKey\n ? this.getRc4KeyLiteralNode(this.decodeKey)\n : null;\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex));\n callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode);\n if (this.stringArrayCallsWrapperParameterIndexesData) {\n callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex));\n }\n else if (rc4KeyLiteralNode) {\n callExpressionArgs.splice(1, 1, rc4KeyLiteralNode);\n }\n else {\n callExpressionArgs.splice(1, 1);\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n getFakeStringArrayIndexNode(actualIndex) {\n return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex));\n }\n getFakeStringArrayIndex(actualIndex) {\n const stringArrayStorageLength = this.stringArrayStorage.getLength();\n const fakeIndexOffset = stringArrayStorageLength / 2;\n const minimumIndex = actualIndex - fakeIndexOffset;\n const maximumIndex = actualIndex + fakeIndexOffset;\n return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"decodeKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"index\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperParameterIndexesData\", void 0);\nStringArrayCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _e : Object, typeof (_f = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _f : Object, typeof (_g = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _g : Object, typeof (_h = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _h : Object])\n], StringArrayCallNode);\nexports.StringArrayCallNode = StringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g, _h, _j;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData;\n this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName;\n this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData;\n this.shiftedIndex = shiftedIndex;\n }\n getNodeStructure() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex));\n const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode());\n parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode);\n parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode);\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode()));\n callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode);\n callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode);\n const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs))\n ]));\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode)\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n for (const parameter of parameters) {\n parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode);\n }\n return [structure];\n }\n getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode);\n }\n getFakeParameterNode() {\n return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n }\n getFakeUpperStringArrayIndexNode() {\n return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500));\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"shiftedIndex\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperParameterIndexesData\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperParameterIndexesData\", void 0);\nStringArrayScopeCallsWrapperFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _d : Object, typeof (_e = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _f : Object, typeof (_g = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _g : Object, typeof (_h = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _h : Object, typeof (_j = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _j : Object])\n], StringArrayScopeCallsWrapperFunctionNode);\nexports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperVariableNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\nStringArrayScopeCallsWrapperVariableNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _g : Object])\n], StringArrayScopeCallsWrapperVariableNode);\nexports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nlet AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractStringArrayIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractStringArrayIndexNode);\nexports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumberIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumberIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayHexadecimalNumberIndexNode);\nexports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumericStringIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumericStringIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayHexadecimalNumericStringIndexNode);\nexports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializable = void 0;\nconst defaultDescriptor = {\n configurable: true,\n enumerable: true\n};\nconst initializedTargetMetadataKey = '_initialized';\nconst initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';\nconst wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';\nconst constructorMethodName = 'constructor';\nfunction initializable(initializeMethodName = 'initialize') {\n const decoratorName = Object.keys(this)[0];\n return (target, propertyKey) => {\n const initializeMethod = target[initializeMethodName];\n if (!initializeMethod || typeof initializeMethod !== 'function') {\n throw new Error(`\\`${initializeMethodName}\\` method with initialization logic not ` +\n `found. \\`@${decoratorName}\\` decorator requires \\`${initializeMethodName}\\` method`);\n }\n initializeTargetMetadata(initializedTargetMetadataKey, false, target);\n initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);\n initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);\n wrapTargetMethodsInInitializedCheck(target, initializeMethodName);\n wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);\n return wrapInitializableProperty(target, propertyKey);\n };\n}\nexports.initializable = initializable;\nfunction initializeTargetMetadata(metadataKey, metadataValue, target) {\n const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);\n if (!hasInitializedMetadata) {\n Reflect.defineMetadata(metadataKey, metadataValue, target);\n }\n}\nfunction wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {\n const ownPropertyNames = Object.getOwnPropertyNames(target);\n const prohibitedPropertyNames = new Set([initializeMethodName, constructorMethodName]);\n ownPropertyNames.forEach((propertyName) => {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n const wrappedMethodsSet = Reflect\n .getMetadata(wrappedMethodsSetMetadataKey, target);\n const isProhibitedPropertyName = prohibitedPropertyNames.has(propertyName)\n || initializablePropertiesSet.has(propertyName)\n || wrappedMethodsSet.has(propertyName);\n if (isProhibitedPropertyName) {\n return;\n }\n const targetProperty = target[propertyName];\n if (typeof targetProperty !== 'function') {\n return;\n }\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() {\n if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {\n throw new Error(`Class should be initialized with \\`${initializeMethodName}()\\` method`);\n }\n return originalMethod.apply(this, arguments);\n } }));\n wrappedMethodsSet.add(propertyName);\n });\n}\nfunction wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {\n var _a;\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () {\n Reflect.defineMetadata(initializedTargetMetadataKey, true, this);\n const result = originalMethod.apply(this, arguments);\n if (this[propertyKey]) { }\n return result;\n } }));\n}\nfunction wrapInitializableProperty(target, propertyKey) {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n initializablePropertiesSet.add(propertyKey);\n const initializablePropertyMetadataKey = `_${propertyKey.toString()}`;\n const propertyDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () {\n if (this[initializablePropertyMetadataKey] === undefined) {\n throw new Error(`Property \\`${propertyKey.toString()}\\` is not initialized! Initialize it first!`);\n }\n return this[initializablePropertyMetadataKey];\n }, set: function (newVal) {\n this[initializablePropertyMetadataKey] = newVal;\n } }));\n return propertyDescriptor;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationTarget = void 0;\nconst Utils_1 = require(\"../utils/Utils\");\nexports.ObfuscationTarget = Utils_1.Utils.makeEnum({\n Browser: 'browser',\n BrowserNoEval: 'browser-no-eval',\n Node: 'node'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringSeparator = void 0;\nvar StringSeparator;\n(function (StringSeparator) {\n StringSeparator[\"Comma\"] = \",\";\n StringSeparator[\"Dot\"] = \".\";\n StringSeparator[\"VerticalLine\"] = \"|\";\n})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalleeDataExtractor = void 0;\nvar CalleeDataExtractor;\n(function (CalleeDataExtractor) {\n CalleeDataExtractor[\"FunctionDeclarationCalleeDataExtractor\"] = \"FunctionDeclarationCalleeDataExtractor\";\n CalleeDataExtractor[\"FunctionExpressionCalleeDataExtractor\"] = \"FunctionExpressionCalleeDataExtractor\";\n CalleeDataExtractor[\"ObjectExpressionCalleeDataExtractor\"] = \"ObjectExpressionCalleeDataExtractor\";\n})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformationStage = void 0;\nvar CodeTransformationStage;\n(function (CodeTransformationStage) {\n CodeTransformationStage[\"PreparingTransformers\"] = \"PreparingTransformers\";\n CodeTransformationStage[\"FinalizingTransformers\"] = \"FinalizingTransformers\";\n})(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformer = void 0;\nvar CodeTransformer;\n(function (CodeTransformer) {\n CodeTransformer[\"HashbangOperatorTransformer\"] = \"HashbangOperatorTransformer\";\n})(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelper = void 0;\nvar CustomCodeHelper;\n(function (CustomCodeHelper) {\n CustomCodeHelper[\"CallsControllerFunction\"] = \"CallsControllerFunction\";\n CustomCodeHelper[\"ConsoleOutputDisable\"] = \"ConsoleOutputDisable\";\n CustomCodeHelper[\"DebugProtectionFunctionCall\"] = \"DebugProtectionFunctionCall\";\n CustomCodeHelper[\"DebugProtectionFunctionInterval\"] = \"DebugProtectionFunctionInterval\";\n CustomCodeHelper[\"DebugProtectionFunction\"] = \"DebugProtectionFunction\";\n CustomCodeHelper[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelper[\"SelfDefendingUnicode\"] = \"SelfDefendingUnicode\";\n CustomCodeHelper[\"StringArray\"] = \"StringArray\";\n CustomCodeHelper[\"StringArrayCallsWrapper\"] = \"StringArrayCallsWrapper\";\n CustomCodeHelper[\"StringArrayCallsWrapperBase64\"] = \"StringArrayCallsWrapperBase64\";\n CustomCodeHelper[\"StringArrayCallsWrapperRc4\"] = \"StringArrayCallsWrapperRc4\";\n CustomCodeHelper[\"StringArrayRotateFunction\"] = \"StringArrayRotateFunction\";\n})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroup = void 0;\nvar CustomCodeHelperGroup;\n(function (CustomCodeHelperGroup) {\n CustomCodeHelperGroup[\"ConsoleOutput\"] = \"ConsoleOutput\";\n CustomCodeHelperGroup[\"DebugProtection\"] = \"DebugProtection\";\n CustomCodeHelperGroup[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelperGroup[\"SelfDefending\"] = \"SelfDefending\";\n CustomCodeHelperGroup[\"StringArray\"] = \"StringArray\";\n})(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowCustomNode = void 0;\nvar ControlFlowCustomNode;\n(function (ControlFlowCustomNode) {\n ControlFlowCustomNode[\"BinaryExpressionFunctionNode\"] = \"BinaryExpressionFunctionNode\";\n ControlFlowCustomNode[\"BlockStatementControlFlowFlatteningNode\"] = \"BlockStatementControlFlowFlatteningNode\";\n ControlFlowCustomNode[\"CallExpressionControlFlowStorageCallNode\"] = \"CallExpressionControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"CallExpressionFunctionNode\"] = \"CallExpressionFunctionNode\";\n ControlFlowCustomNode[\"ControlFlowStorageNode\"] = \"ControlFlowStorageNode\";\n ControlFlowCustomNode[\"ExpressionWithOperatorControlFlowStorageCallNode\"] = \"ExpressionWithOperatorControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"LogicalExpressionFunctionNode\"] = \"LogicalExpressionFunctionNode\";\n ControlFlowCustomNode[\"StringLiteralControlFlowStorageCallNode\"] = \"StringLiteralControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"StringLiteralNode\"] = \"StringLiteralNode\";\n})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionCustomNode = void 0;\nvar DeadCodeInjectionCustomNode;\n(function (DeadCodeInjectionCustomNode) {\n DeadCodeInjectionCustomNode[\"BlockStatementDeadCodeInjectionNode\"] = \"BlockStatementDeadCodeInjectionNode\";\n})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformerCustomNode = void 0;\nvar ObjectExpressionKeysTransformerCustomNode;\n(function (ObjectExpressionKeysTransformerCustomNode) {\n ObjectExpressionKeysTransformerCustomNode[\"ObjectExpressionVariableDeclarationHostNode\"] = \"ObjectExpressionVariableDeclarationHostNode\";\n})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCustomNode = void 0;\nvar StringArrayCustomNode;\n(function (StringArrayCustomNode) {\n StringArrayCustomNode[\"StringArrayCallNode\"] = \"StringArrayCallNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperFunctionNode\"] = \"StringArrayScopeCallsWrapperFunctionNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperVariableNode\"] = \"StringArrayScopeCallsWrapperVariableNode\";\n})(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexNode = void 0;\nvar StringArrayIndexNode;\n(function (StringArrayIndexNode) {\n StringArrayIndexNode[\"StringArrayHexadecimalNumberIndexNode\"] = \"StringArrayHexadecimalNumberIndexNode\";\n StringArrayIndexNode[\"StringArrayHexadecimalNumericStringIndexNode\"] = \"StringArrayHexadecimalNumericStringIndexNode\";\n})(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEvent = void 0;\nvar ObfuscationEvent;\n(function (ObfuscationEvent) {\n ObfuscationEvent[\"AfterObfuscation\"] = \"afterObfuscation\";\n ObfuscationEvent[\"BeforeObfuscation\"] = \"beforeObfuscation\";\n})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierNamesGenerator = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({\n DictionaryIdentifierNamesGenerator: 'dictionary',\n HexadecimalIdentifierNamesGenerator: 'hexadecimal',\n MangledIdentifierNamesGenerator: 'mangled',\n MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingMessage = void 0;\nvar LoggingMessage;\n(function (LoggingMessage) {\n LoggingMessage[\"EmptySourceCode\"] = \"Empty source code. Obfuscation canceled...\";\n LoggingMessage[\"ObfuscationCompleted\"] = \"Obfuscation completed. Total time: %s sec.\";\n LoggingMessage[\"ObfuscationStarted\"] = \"Obfuscation started...\";\n LoggingMessage[\"RandomGeneratorSeed\"] = \"Random generator seed: %s...\";\n LoggingMessage[\"CodeTransformationStage\"] = \"Code transformation stage: %s...\";\n LoggingMessage[\"NodeTransformationStage\"] = \"AST transformation stage: %s...\";\n LoggingMessage[\"Version\"] = \"Version: %s\";\n})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingPrefix = void 0;\nvar LoggingPrefix;\n(function (LoggingPrefix) {\n LoggingPrefix[\"Base\"] = \"[javascript-obfuscator]\";\n LoggingPrefix[\"CLI\"] = \"[javascript-obfuscator-cli]\";\n})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformationStage = void 0;\nvar NodeTransformationStage;\n(function (NodeTransformationStage) {\n NodeTransformationStage[\"ControlFlowFlattening\"] = \"ControlFlowFlattening\";\n NodeTransformationStage[\"Converting\"] = \"Converting\";\n NodeTransformationStage[\"DeadCodeInjection\"] = \"DeadCodeInjection\";\n NodeTransformationStage[\"Finalizing\"] = \"Finalizing\";\n NodeTransformationStage[\"Initializing\"] = \"Initializing\";\n NodeTransformationStage[\"Preparing\"] = \"Preparing\";\n NodeTransformationStage[\"RenameIdentifiers\"] = \"RenameIdentifiers\";\n NodeTransformationStage[\"RenameProperties\"] = \"RenameProperties\";\n NodeTransformationStage[\"Simplifying\"] = \"Simplifying\";\n NodeTransformationStage[\"StringArray\"] = \"StringArray\";\n})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformer = void 0;\nvar NodeTransformer;\n(function (NodeTransformer) {\n NodeTransformer[\"BooleanLiteralTransformer\"] = \"BooleanLiteralTransformer\";\n NodeTransformer[\"BlockStatementControlFlowTransformer\"] = \"BlockStatementControlFlowTransformer\";\n NodeTransformer[\"BlockStatementSimplifyTransformer\"] = \"BlockStatementSimplifyTransformer\";\n NodeTransformer[\"CommentsTransformer\"] = \"CommentsTransformer\";\n NodeTransformer[\"CustomCodeHelpersTransformer\"] = \"CustomCodeHelpersTransformer\";\n NodeTransformer[\"DeadCodeInjectionTransformer\"] = \"DeadCodeInjectionTransformer\";\n NodeTransformer[\"EscapeSequenceTransformer\"] = \"EscapeSequenceTransformer\";\n NodeTransformer[\"EvalCallExpressionTransformer\"] = \"EvalCallExpressionTransformer\";\n NodeTransformer[\"ExportSpecifierTransformer\"] = \"ExportSpecifierTransformer\";\n NodeTransformer[\"ExpressionStatementsMergeTransformer\"] = \"ExpressionStatementsMergeTransformer\";\n NodeTransformer[\"FunctionControlFlowTransformer\"] = \"FunctionControlFlowTransformer\";\n NodeTransformer[\"IfStatementSimplifyTransformer\"] = \"IfStatementSimplifyTransformer\";\n NodeTransformer[\"LabeledStatementTransformer\"] = \"LabeledStatementTransformer\";\n NodeTransformer[\"MemberExpressionTransformer\"] = \"MemberExpressionTransformer\";\n NodeTransformer[\"MetadataTransformer\"] = \"MetadataTransformer\";\n NodeTransformer[\"MethodDefinitionTransformer\"] = \"MethodDefinitionTransformer\";\n NodeTransformer[\"NumberLiteralTransformer\"] = \"NumberLiteralTransformer\";\n NodeTransformer[\"NumberToNumericalExpressionTransformer\"] = \"NumberToNumericalExpressionTransformer\";\n NodeTransformer[\"ObfuscatingGuardsTransformer\"] = \"ObfuscatingGuardsTransformer\";\n NodeTransformer[\"ObjectExpressionKeysTransformer\"] = \"ObjectExpressionKeysTransformer\";\n NodeTransformer[\"ObjectExpressionTransformer\"] = \"ObjectExpressionTransformer\";\n NodeTransformer[\"ObjectPatternPropertiesTransformer\"] = \"ObjectPatternPropertiesTransformer\";\n NodeTransformer[\"ParentificationTransformer\"] = \"ParentificationTransformer\";\n NodeTransformer[\"RenamePropertiesTransformer\"] = \"RenamePropertiesTransformer\";\n NodeTransformer[\"ScopeIdentifiersTransformer\"] = \"ScopeIdentifiersTransformer\";\n NodeTransformer[\"ScopeThroughIdentifiersTransformer\"] = \"ScopeThroughIdentifiersTransformer\";\n NodeTransformer[\"SplitStringTransformer\"] = \"SplitStringTransformer\";\n NodeTransformer[\"StringArrayTransformer\"] = \"StringArrayTransformer\";\n NodeTransformer[\"StringArrayScopeCallsWrapperTransformer\"] = \"StringArrayScopeCallsWrapperTransformer\";\n NodeTransformer[\"TemplateLiteralTransformer\"] = \"TemplateLiteralTransformer\";\n NodeTransformer[\"VariableDeclarationsMergeTransformer\"] = \"VariableDeclarationsMergeTransformer\";\n NodeTransformer[\"VariablePreserveTransformer\"] = \"VariablePreserveTransformer\";\n})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitorDirection = void 0;\nvar VisitorDirection;\n(function (VisitorDirection) {\n VisitorDirection[\"Enter\"] = \"enter\";\n VisitorDirection[\"Leave\"] = \"leave\";\n})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowReplacer = void 0;\nvar ControlFlowReplacer;\n(function (ControlFlowReplacer) {\n ControlFlowReplacer[\"BinaryExpressionControlFlowReplacer\"] = \"BinaryExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"CallExpressionControlFlowReplacer\"] = \"CallExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"LogicalExpressionControlFlowReplacer\"] = \"LogicalExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"StringLiteralControlFlowReplacer\"] = \"StringLiteralControlFlowReplacer\";\n})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionExtractor = void 0;\nvar ObjectExpressionExtractor;\n(function (ObjectExpressionExtractor) {\n ObjectExpressionExtractor[\"BasePropertiesExtractor\"] = \"BasePropertiesExtractor\";\n ObjectExpressionExtractor[\"ObjectExpressionToVariableDeclarationExtractor\"] = \"ObjectExpressionToVariableDeclarationExtractor\";\n})(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuard = void 0;\nvar ObfuscatingGuard;\n(function (ObfuscatingGuard) {\n ObfuscatingGuard[\"BlackListObfuscatingGuard\"] = \"BlackListObfuscatingGuard\";\n ObfuscatingGuard[\"ConditionalCommentObfuscatingGuard\"] = \"ConditionalCommentObfuscatingGuard\";\n ObfuscatingGuard[\"ForceTransformStringObfuscatingGuard\"] = \"ForceTransformStringObfuscatingGuard\";\n ObfuscatingGuard[\"IgnoredRequireImportObfuscatingGuard\"] = \"IgnoredRequireImportObfuscatingGuard\";\n ObfuscatingGuard[\"ReservedStringObfuscatingGuard\"] = \"ReservedStringObfuscatingGuard\";\n})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncoding = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayEncoding = Utils_1.Utils.makeEnum({\n None: 'none',\n Base64: 'base64',\n Rc4: 'rc4'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexesType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayIndexesType = Utils_1.Utils.makeEnum({\n HexadecimalNumber: 'hexadecimal-number',\n HexadecimalNumericString: 'hexadecimal-numeric-string'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayWrappersType = Utils_1.Utils.makeEnum({\n Variable: 'variable',\n Function: 'function',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = void 0;\nvar NodeType;\n(function (NodeType) {\n NodeType[\"ArrayExpression\"] = \"ArrayExpression\";\n NodeType[\"ArrayPattern\"] = \"ArrayPattern\";\n NodeType[\"ArrowFunctionExpression\"] = \"ArrowFunctionExpression\";\n NodeType[\"AssignmentExpression\"] = \"AssignmentExpression\";\n NodeType[\"AssignmentPattern\"] = \"AssignmentPattern\";\n NodeType[\"AwaitExpression\"] = \"AwaitExpression\";\n NodeType[\"BinaryExpression\"] = \"BinaryExpression\";\n NodeType[\"BlockStatement\"] = \"BlockStatement\";\n NodeType[\"BreakStatement\"] = \"BreakStatement\";\n NodeType[\"CallExpression\"] = \"CallExpression\";\n NodeType[\"CatchClause\"] = \"CatchClause\";\n NodeType[\"ChainExpression\"] = \"ChainExpression\";\n NodeType[\"ClassDeclaration\"] = \"ClassDeclaration\";\n NodeType[\"ConditionalExpression\"] = \"ConditionalExpression\";\n NodeType[\"ContinueStatement\"] = \"ContinueStatement\";\n NodeType[\"ExportAllDeclaration\"] = \"ExportAllDeclaration\";\n NodeType[\"ExportNamedDeclaration\"] = \"ExportNamedDeclaration\";\n NodeType[\"ExportSpecifier\"] = \"ExportSpecifier\";\n NodeType[\"ExpressionStatement\"] = \"ExpressionStatement\";\n NodeType[\"ForStatement\"] = \"ForStatement\";\n NodeType[\"ForInStatement\"] = \"ForInStatement\";\n NodeType[\"ForOfStatement\"] = \"ForOfStatement\";\n NodeType[\"FunctionDeclaration\"] = \"FunctionDeclaration\";\n NodeType[\"FunctionExpression\"] = \"FunctionExpression\";\n NodeType[\"Identifier\"] = \"Identifier\";\n NodeType[\"IfStatement\"] = \"IfStatement\";\n NodeType[\"ImportDeclaration\"] = \"ImportDeclaration\";\n NodeType[\"ImportDefaultSpecifier\"] = \"ImportDefaultSpecifier\";\n NodeType[\"ImportNamespaceSpecifier\"] = \"ImportNamespaceSpecifier\";\n NodeType[\"ImportSpecifier\"] = \"ImportSpecifier\";\n NodeType[\"LabeledStatement\"] = \"LabeledStatement\";\n NodeType[\"Literal\"] = \"Literal\";\n NodeType[\"LogicalExpression\"] = \"LogicalExpression\";\n NodeType[\"MemberExpression\"] = \"MemberExpression\";\n NodeType[\"MethodDefinition\"] = \"MethodDefinition\";\n NodeType[\"ObjectExpression\"] = \"ObjectExpression\";\n NodeType[\"ObjectPattern\"] = \"ObjectPattern\";\n NodeType[\"Program\"] = \"Program\";\n NodeType[\"Property\"] = \"Property\";\n NodeType[\"RestElement\"] = \"RestElement\";\n NodeType[\"ReturnStatement\"] = \"ReturnStatement\";\n NodeType[\"SequenceExpression\"] = \"SequenceExpression\";\n NodeType[\"SpreadElement\"] = \"SpreadElement\";\n NodeType[\"Super\"] = \"Super\";\n NodeType[\"SwitchCase\"] = \"SwitchCase\";\n NodeType[\"SwitchStatement\"] = \"SwitchStatement\";\n NodeType[\"TaggedTemplateExpression\"] = \"TaggedTemplateExpression\";\n NodeType[\"TemplateElement\"] = \"TemplateElement\";\n NodeType[\"TemplateLiteral\"] = \"TemplateLiteral\";\n NodeType[\"ThrowStatement\"] = \"ThrowStatement\";\n NodeType[\"TryStatement\"] = \"TryStatement\";\n NodeType[\"UnaryExpression\"] = \"UnaryExpression\";\n NodeType[\"UpdateExpression\"] = \"UpdateExpression\";\n NodeType[\"VariableDeclaration\"] = \"VariableDeclaration\";\n NodeType[\"VariableDeclarator\"] = \"VariableDeclarator\";\n NodeType[\"WhileStatement\"] = \"WhileStatement\";\n NodeType[\"YieldExpression\"] = \"YieldExpression\";\n})(NodeType = exports.NodeType || (exports.NodeType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardResult = void 0;\nvar ObfuscatingGuardResult;\n(function (ObfuscatingGuardResult) {\n ObfuscatingGuardResult[\"ForceTransform\"] = \"ForceTransform\";\n ObfuscatingGuardResult[\"Ignore\"] = \"Ignore\";\n ObfuscatingGuardResult[\"Transform\"] = \"Transform\";\n})(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsPreset = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.OptionsPreset = Utils_1.Utils.makeEnum({\n Default: 'default',\n LowObfuscation: 'low-obfuscation',\n MediumObfuscation: 'medium-obfuscation',\n HighObfuscation: 'high-obfuscation'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapMode = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nexports.SourceMapMode = Utils_1.Utils.makeEnum({\n Inline: 'inline',\n Separate: 'separate'\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEventEmitter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eventemitter3_1 = __importDefault(require(\"eventemitter3\"));\ninversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default);\nlet ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default {\n};\nObfuscationEventEmitter = __decorate([\n inversify_1.injectable()\n], ObfuscationEventEmitter);\nexports.ObfuscationEventEmitter = ObfuscationEventEmitter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n this.preservedNamesSet = new Set();\n this.lexicalScopesPreservedNamesMap = new Map();\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n generate(lexicalScopeNode, nameLength) {\n return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode)\n ? this.generateForGlobalScope()\n : this.generateForLexicalScope(lexicalScopeNode);\n }\n preserveName(name) {\n this.preservedNamesSet.add(name);\n }\n preserveNameForLexicalScope(name, lexicalScopeNode) {\n var _a;\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set();\n preservedNamesForLexicalScopeSet.add(name);\n this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);\n }\n isValidIdentifierName(name) {\n return this.notReservedName(name) && !this.preservedNamesSet.has(name);\n }\n isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) {\n var _a;\n if (!this.isValidIdentifierName(name)) {\n return false;\n }\n for (const lexicalScope of lexicalScopeNodes) {\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!preservedNamesForLexicalScopeSet) {\n continue;\n }\n if (preservedNamesForLexicalScopeSet.has(name)) {\n return false;\n }\n }\n return true;\n }\n notReservedName(name) {\n return this.options.reservedNames.length\n ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null)\n : true;\n }\n};\nAbstractIdentifierNamesGenerator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractIdentifierNamesGenerator);\nexports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DictionaryIdentifierNamesGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DictionaryIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));\n this.identifiersIterator = this.identifierNamesSet.values();\n }\n static incrementIdentifierName(identifierName) {\n let newIdentifierName = '';\n let isSuccess = false;\n for (const character of identifierName) {\n if (!isSuccess && character === character.toUpperCase()) {\n newIdentifierName += character.toLowerCase();\n }\n else if (!isSuccess && character === character.toLowerCase()) {\n newIdentifierName += character.toUpperCase();\n isSuccess = true;\n }\n else {\n newIdentifierName += character;\n }\n }\n if (isSuccess) {\n return newIdentifierName;\n }\n return null;\n }\n generateNext() {\n const identifierName = this.generateNewDictionaryName();\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope() {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewDictionaryName();\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope();\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const identifierName = this.generateNewDictionaryName();\n if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {\n return this.generateForLexicalScope(lexicalScopeNode);\n }\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n generateNewDictionaryName() {\n if (!this.identifierNamesSet.size) {\n throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');\n }\n const iteratorResult = this.identifiersIterator.next();\n if (!iteratorResult.done) {\n const identifierName = iteratorResult.value;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNewDictionaryName();\n }\n return iteratorResult.value;\n }\n this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));\n this.identifiersIterator = this.identifierNamesSet.values();\n return this.generateNewDictionaryName();\n }\n getInitialIdentifierNames(identifierNames) {\n const formattedIdentifierNames = identifierNames\n .filter(Boolean)\n .map((identifierName) => identifierName.toLowerCase());\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n getIncrementedIdentifierNames(identifierNames) {\n const formattedIdentifierNames = [];\n for (const identifierName of identifierNames) {\n const newIdentifierName = DictionaryIdentifierNamesGenerator_1\n .incrementIdentifierName(identifierName);\n if (newIdentifierName) {\n formattedIdentifierNames.push(newIdentifierName);\n }\n }\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n};\nDictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _c : Object])\n], DictionaryIdentifierNamesGenerator);\nexports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HexadecimalIdentifierNamesGenerator_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HexadecimalIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nconst Utils_1 = require(\"../../utils/Utils\");\nlet HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n generateNext(nameLength) {\n const rangeMinInteger = 10000;\n const rangeMaxInteger = 99999999;\n const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);\n const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);\n const prefixLength = Utils_1.Utils.hexadecimalPrefix.length;\n const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength)\n + prefixLength;\n const baseIdentifierName = hexadecimalNumber.slice(0, baseNameLength);\n const identifierName = `_${baseIdentifierName}`;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNext(nameLength);\n }\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const identifierName = this.generateNext(nameLength);\n return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n return this.generateNext(nameLength);\n }\n};\nHexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;\nHexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], HexadecimalIdentifierNamesGenerator);\nexports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledIdentifierNamesGenerator_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n generateNext(nameLength) {\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n this.updatePreviousMangledName(identifierName);\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n this.updatePreviousMangledName(identifierName);\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope(nameLength);\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes);\n let identifierName = lastMangledNameForScope;\n do {\n identifierName = this.generateNewMangledName(identifierName);\n } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));\n MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);\n this.updatePreviousMangledName(identifierName);\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n isIncrementedMangledName(nextName, prevName) {\n if (nextName === prevName) {\n return false;\n }\n const nextNameLength = nextName.length;\n const prevNameLength = prevName.length;\n if (nextNameLength !== prevNameLength) {\n return nextNameLength > prevNameLength;\n }\n const nameSequence = this.getNameSequence();\n for (let i = 0; i < nextNameLength; i++) {\n const nextNameCharacter = nextName[i];\n const prevNameCharacter = prevName[i];\n if (nextNameCharacter === prevNameCharacter) {\n continue;\n }\n const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter);\n const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter);\n return indexOfNextNameCharacter > indexOfPrevNameCharacter;\n }\n throw new Error('Something goes wrong during comparison of mangled names');\n }\n isValidIdentifierName(mangledName) {\n return super.isValidIdentifierName(mangledName)\n && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName);\n }\n getNameSequence() {\n return MangledIdentifierNamesGenerator_1.nameSequence;\n }\n updatePreviousMangledName(name) {\n if (!this.isIncrementedMangledName(name, this.previousMangledName)) {\n return;\n }\n this.previousMangledName = name;\n }\n generateNewMangledName(previousMangledName) {\n const generateNewMangledName = (name) => {\n const nameSequence = this.getNameSequence();\n const nameSequenceLength = nameSequence.length;\n const nameLength = name.length;\n const zeroSequence = (num) => {\n return '0'.repeat(num);\n };\n let index = nameLength - 1;\n do {\n const character = name[index];\n const indexInSequence = nameSequence.indexOf(character);\n const lastNameSequenceIndex = nameSequenceLength - 1;\n if (indexInSequence !== lastNameSequenceIndex) {\n const previousNamePart = name.slice(0, index);\n const nextCharacter = nameSequence[indexInSequence + 1];\n const zeroSequenceLength = nameLength - (index + 1);\n const zeroSequenceCharacters = zeroSequence(zeroSequenceLength);\n return previousNamePart + nextCharacter + zeroSequenceCharacters;\n }\n --index;\n } while (index >= 0);\n const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length];\n return `${firstLetterCharacter}${zeroSequence(nameLength)}`;\n };\n let newMangledName = generateNewMangledName(previousMangledName);\n if (!this.isValidIdentifierName(newMangledName)) {\n newMangledName = this.generateNewMangledName(newMangledName);\n }\n return newMangledName;\n }\n getLastMangledNameForScopes(lexicalScopeNodes) {\n var _a;\n for (const lexicalScope of lexicalScopeNodes) {\n const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap\n .get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!lastMangledName) {\n continue;\n }\n return lastMangledName;\n }\n return MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n};\nMangledIdentifierNamesGenerator.initMangledNameCharacter = '9';\nMangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap();\nMangledIdentifierNamesGenerator.nameSequence = [\n ...`${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`\n];\nMangledIdentifierNamesGenerator.reservedNamesSet = new Set([\n 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto',\n 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try',\n 'var', 'void', 'with'\n]);\nMangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MangledIdentifierNamesGenerator);\nexports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledShuffledIdentifierNamesGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledShuffledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst MangledIdentifierNamesGenerator_1 = require(\"./MangledIdentifierNamesGenerator\");\nlet MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator {\n constructor(arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n initialize() {\n this.initializeNameSequence([\n ...`${NumbersString_1.numbersString}`,\n ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`])\n ]);\n }\n initializeNameSequence(nameSequence) {\n if (!this.getNameSequence()) {\n MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence;\n }\n }\n getNameSequence() {\n return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence;\n }\n generateNewMangledName(previousMangledName) {\n return super.generateNewMangledName(previousMangledName);\n }\n};\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MangledShuffledIdentifierNamesGenerator.prototype, \"initialize\", null);\nMangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], MangledShuffledIdentifierNamesGenerator);\nexports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar Logger_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst chalk_1 = __importDefault(require(\"chalk\"));\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst LoggingPrefix_1 = require(\"../enums/logger/LoggingPrefix\");\nlet Logger = Logger_1 = class Logger {\n constructor(options) {\n this.options = options;\n }\n static log(loggingLevelColor, loggingPrefix, loggingMessage, value) {\n const processedMessage = loggingLevelColor(`\\n${loggingPrefix} ${loggingMessage}`);\n console.log(processedMessage, value !== null && value !== void 0 ? value : '');\n }\n info(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n success(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n warn(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n};\nLogger.colorInfo = chalk_1.default.cyan;\nLogger.colorSuccess = chalk_1.default.green;\nLogger.colorWarn = chalk_1.default.yellow;\nLogger = Logger_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], Logger);\nexports.Logger = Logger;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractNodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractNodeTransformer = class AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractNodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractNodeTransformer);\nexports.AbstractNodeTransformer = AbstractNodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nNodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], NodeTransformerNamesGroupsBuilder);\nexports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TNodeTransformerFactory_1 = require(\"../types/container/node-transformers/TNodeTransformerFactory\");\nconst ITransformerNamesGroupsBuilder_1 = require(\"../interfaces/utils/ITransformerNamesGroupsBuilder\");\nconst VisitorDirection_1 = require(\"../enums/node-transformers/VisitorDirection\");\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../node/NodeMetadata\");\nlet NodeTransformersRunner = class NodeTransformersRunner {\n constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {\n this.nodeTransformerFactory = nodeTransformerFactory;\n this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;\n }\n transform(astTree, nodeTransformerNames, nodeTransformationStage) {\n if (!nodeTransformerNames.length) {\n return astTree;\n }\n const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);\n const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);\n for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {\n const enterVisitors = [];\n const leaveVisitors = [];\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const nodeTransformer = normalizedNodeTransformers[nodeTransformerName];\n const visitor = nodeTransformer.getVisitor(nodeTransformationStage);\n if (!visitor) {\n continue;\n }\n if (visitor.enter) {\n enterVisitors.push({ enter: visitor.enter });\n }\n if (visitor.leave) {\n leaveVisitors.push({ leave: visitor.leave });\n }\n }\n if (!enterVisitors.length && !leaveVisitors.length) {\n continue;\n }\n estraverse.replace(astTree, {\n enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),\n leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)\n });\n }\n return astTree;\n }\n buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) {\n return nodeTransformerNames\n .reduce((acc, nodeTransformerName) => {\n const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName);\n if (!nodeTransformer.getVisitor(nodeTransformationStage)) {\n return acc;\n }\n return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer });\n }, {});\n }\n mergeVisitorsForDirection(visitors, direction) {\n const visitorsLength = visitors.length;\n if (!visitorsLength) {\n return (node, parentNode) => node;\n }\n return (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n for (let i = 0; i < visitorsLength; i++) {\n const visitorFunction = visitors[i][direction];\n if (!visitorFunction) {\n continue;\n }\n const visitorResult = visitorFunction(node, parentNode);\n if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {\n continue;\n }\n node = visitorResult;\n }\n return node;\n };\n }\n};\nNodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== \"undefined\" && TNodeTransformerFactory_1.TNodeTransformerFactory) === \"function\" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== \"undefined\" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === \"function\" ? _b : Object])\n], NodeTransformersRunner);\nexports.NodeTransformersRunner = NodeTransformersRunner;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BlockStatementControlFlowTransformer_1, _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TControlFlowCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.arrayUtils = arrayUtils;\n }\n static isProhibitedStatementNode(node) {\n const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(node);\n const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)\n && (node.kind === 'const' || node.kind === 'let');\n const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)\n || isBreakOrContinueStatement\n || isVariableDeclarationWithLetOrConstKind\n || isClassDeclaration;\n }\n static canTransformBlockStatementNode(blockStatementNode) {\n let canTransform = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {\n canTransform = false;\n }\n }\n });\n if (blockStatementNode.body.length <= 4) {\n canTransform = false;\n }\n return canTransform;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(blockStatementNode, parentNode) {\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||\n !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const blockStatementBody = blockStatementNode.body;\n const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);\n const shuffledKeys = this.arrayUtils.shuffle(originalKeys);\n const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key));\n const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);\n const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nBlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementControlFlowTransformer);\nexports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TControlFlowCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst TControlFlowReplacerFactory_1 = require(\"../../types/container/node-transformers/TControlFlowReplacerFactory\");\nconst TControlFlowStorageFactory_1 = require(\"../../types/container/node-transformers/TControlFlowStorageFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ControlFlowReplacer_1 = require(\"../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowData = new Map();\n this.visitedFunctionNodes = new Set();\n this.hostNodesWithControlFlowNode = new Set();\n this.controlFlowStorageFactory = controlFlowStorageFactory;\n this.controlFlowReplacerFactory = controlFlowReplacerFactory;\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(functionNode, parentNode) {\n this.visitedFunctionNodes.add(functionNode);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {\n return functionNode;\n }\n const hostNode = this.getHostNode(functionNode.body);\n const controlFlowStorage = this.getControlFlowStorage(hostNode);\n this.controlFlowData.set(hostNode, controlFlowStorage);\n this.transformFunctionBody(functionNode.body, controlFlowStorage);\n if (!controlFlowStorage.getLength()) {\n return functionNode;\n }\n const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n controlFlowStorageCustomNode.initialize(controlFlowStorage);\n NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());\n this.hostNodesWithControlFlowNode.add(hostNode);\n NodeUtils_1.NodeUtils.parentizeAst(functionNode);\n return functionNode;\n }\n getControlFlowStorage(hostNode) {\n const controlFlowStorage = this.controlFlowStorageFactory();\n if (this.controlFlowData.has(hostNode)) {\n if (this.hostNodesWithControlFlowNode.has(hostNode)) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {\n hostNode.consequent.shift();\n }\n else {\n hostNode.body.shift();\n }\n }\n const hostControlFlowStorage = this.controlFlowData.get(hostNode);\n controlFlowStorage.mergeWith(hostControlFlowStorage, true);\n }\n return controlFlowStorage;\n }\n getHostNode(functionNodeBody) {\n const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);\n if (blockScopesOfNode.length === 1) {\n return functionNodeBody;\n }\n else {\n blockScopesOfNode.pop();\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {\n blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {\n blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;\n }\n return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);\n }\n isVisitedFunctionNode(node) {\n return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);\n }\n transformFunctionBody(functionNodeBody, controlFlowStorage) {\n estraverse.replace(functionNodeBody, {\n enter: (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (this.isVisitedFunctionNode(node) || !parentNode) {\n return estraverse.VisitorOption.Skip;\n }\n if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {\n return node;\n }\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {\n return node;\n }\n const controlFlowReplacerName = FunctionControlFlowTransformer_1\n .controlFlowReplacersMap.get(node.type);\n if (controlFlowReplacerName === undefined) {\n return node;\n }\n return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode });\n }\n });\n }\n};\nFunctionControlFlowTransformer.controlFlowReplacersMap = new Map([\n [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],\n [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer],\n [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],\n [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]\n]);\nFunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;\nFunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;\nFunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== \"undefined\" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === \"function\" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== \"undefined\" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === \"function\" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], FunctionControlFlowTransformer);\nexports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nlet AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n this.replacerDataByControlFlowStorageId = new Map();\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {\n let storageKeysById;\n if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {\n storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);\n }\n else {\n storageKeysById = new Map();\n }\n return storageKeysById;\n }\n insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {\n const controlFlowStorageId = controlFlowStorage.getStorageId();\n const storageKeysById = AbstractControlFlowReplacer_1\n .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);\n const storageKeysForCurrentId = storageKeysById.get(replacerId);\n if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&\n storageKeysForCurrentId &&\n storageKeysForCurrentId.length) {\n return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);\n }\n const generateStorageKey = (length) => {\n const key = this.randomGenerator.getRandomString(length);\n if (controlFlowStorage.getStorage().has(key)) {\n return generateStorageKey(length);\n }\n return key;\n };\n const storageKey = generateStorageKey(5);\n storageKeysById.set(replacerId, [storageKey]);\n this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);\n controlFlowStorage.set(storageKey, customNode);\n return storageKey;\n }\n};\nAbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], AbstractControlFlowReplacer);\nexports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BinaryExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nlet BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(binaryExpressionNode, parentNode, controlFlowStorage) {\n const operator = binaryExpressionNode.operator;\n const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n binaryExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);\n }\n};\nBinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nBinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], BinaryExpressionControlFlowReplacer);\nexports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(callExpressionNode, parentNode, controlFlowStorage) {\n const callee = callExpressionNode.callee;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return callExpressionNode;\n }\n const replacerId = String(callExpressionNode.arguments.length);\n const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n const expressionArguments = callExpressionNode.arguments;\n callExpressionFunctionCustomNode.initialize(expressionArguments);\n const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nCallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nCallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], CallExpressionControlFlowReplacer);\nexports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nExpressionWithOperatorControlFlowReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ExpressionWithOperatorControlFlowReplacer);\nexports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LogicalExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(logicalExpressionNode, parentNode, controlFlowStorage) {\n if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {\n return logicalExpressionNode;\n }\n const operator = logicalExpressionNode.operator;\n const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n logicalExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);\n }\n checkForProhibitedExpressions(leftExpression, rightExpression) {\n return [leftExpression, rightExpression].some((expressionNode) => {\n let nodeForCheck;\n if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {\n nodeForCheck = expressionNode;\n }\n else {\n nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);\n }\n return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);\n });\n }\n};\nLogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nLogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], LogicalExpressionControlFlowReplacer);\nexports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringLiteralControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../../node/NodeLiteralUtils\");\nlet StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(literalNode, parentNode, controlFlowStorage) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {\n return literalNode;\n }\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || literalNode.value.length < 3) {\n return literalNode;\n }\n const replacerId = String(literalNode.value);\n const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n literalFunctionCustomNode.initialize(literalNode.value);\n const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nStringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;\nStringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], StringLiteralControlFlowReplacer);\nexports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet BooleanLiteralTransformer = class BooleanLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'boolean') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const unaryExpressionNode = literalValue\n ? this.getTrueUnaryExpressionNode()\n : this.getFalseUnaryExpressionNode();\n NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode);\n return unaryExpressionNode;\n }\n getTrueUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode());\n }\n getFalseUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());\n }\n};\nBooleanLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], BooleanLiteralTransformer);\nexports.BooleanLiteralTransformer = BooleanLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportSpecifierTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExportSpecifierTransformer = class ExportSpecifierTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExportSpecifierNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(exportSpecifierNode, parentNode) {\n if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) {\n exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local);\n }\n return exportSpecifierNode;\n }\n};\nExportSpecifierTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ExportSpecifierTransformer);\nexports.ExportSpecifierTransformer = ExportSpecifierTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemberExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(memberExpressionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {\n if (memberExpressionNode.computed) {\n return memberExpressionNode;\n }\n memberExpressionNode.computed = true;\n memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);\n }\n return memberExpressionNode;\n }\n};\nMemberExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MemberExpressionTransformer);\nexports.MemberExpressionTransformer = MemberExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MethodDefinitionTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MethodDefinitionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(methodDefinitionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) {\n return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) {\n return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n return methodDefinitionNode;\n }\n replaceIdentifierKey(methodDefinitionNode, keyNode) {\n if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name);\n }\n return methodDefinitionNode;\n }\n replaceLiteralKey(methodDefinitionNode, keyNode) {\n if (typeof keyNode.value === 'string'\n && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n }\n return methodDefinitionNode;\n }\n};\nMethodDefinitionTransformer.ignoredNames = ['constructor'];\nMethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MethodDefinitionTransformer);\nexports.MethodDefinitionTransformer = MethodDefinitionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer\n ];\n this.numberLiteralCache = new Map();\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n let rawValue;\n if (this.numberLiteralCache.has(literalValue)) {\n rawValue = this.numberLiteralCache.get(literalValue);\n }\n else {\n if (NumberUtils_1.NumberUtils.isCeil(literalValue)) {\n rawValue = NumberUtils_1.NumberUtils.toHex(literalValue);\n }\n else {\n rawValue = String(literalValue);\n }\n this.numberLiteralCache.set(literalValue, rawValue);\n }\n return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue);\n }\n};\nNumberLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], NumberLiteralTransformer);\nexports.NumberLiteralTransformer = NumberLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberToNumericalExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst INumberNumericalExpressionAnalyzer_1 = require(\"../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) {\n super(randomGenerator, options);\n this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.numbersToExpressions) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number') {\n return literalNode;\n }\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) {\n return literalNode;\n }\n const numberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value);\n return this.convertNumericalExpressionDataToNode(numberNumericalExpressionData);\n }\n convertNumericalExpressionDataToNode(numberNumericalExpressionData, operator = '+') {\n var _a;\n const numberNumericalExpressionDataLength = numberNumericalExpressionData.length;\n const leftParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1)\n : [numberNumericalExpressionData[0]];\n const rightParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(-1)\n : [];\n if (rightParts.length) {\n return this.convertPartsToBinaryExpression(operator, leftParts, rightParts);\n }\n const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null;\n return Array.isArray(firstLeftPartOrNumber)\n ? this.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, '*')\n : this.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber);\n }\n convertPartsToBinaryExpression(operator, leftParts, rightParts) {\n const rightPartOrNumber = rightParts[0];\n if (Array.isArray(rightPartOrNumber)) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertNumericalExpressionDataToNode(rightPartOrNumber, '*'));\n }\n else {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertPartOrNumberToLiteralNode(rightPartOrNumber));\n }\n }\n convertPartOrNumberToLiteralNode(partOrNumber) {\n const number = Array.isArray(partOrNumber)\n ? partOrNumber[0]\n : partOrNumber;\n const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number);\n const literalNode = NodeFactory_1.NodeFactory.literalNode(Math.abs(number));\n return isPositiveNumber\n ? literalNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', literalNode);\n }\n};\nNumberToNumericalExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== \"undefined\" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], NumberToNumericalExpressionTransformer);\nexports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObjectExpressionKeysTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TObjectExpressionExtractorFactory_1 = require(\"../../types/container/node-transformers/TObjectExpressionExtractorFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObjectExpressionExtractor_1 = require(\"../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(objectExpressionExtractorFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;\n }\n static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) {\n return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement)\n || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode)\n || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement);\n }\n static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) {\n const identifierNamesSet = [];\n let isReferencedIdentifierName = false;\n let isCurrentNode = false;\n estraverse.traverse(objectExpressionHostNode, {\n enter: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = true;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return;\n }\n if (!isCurrentNode) {\n identifierNamesSet.push(node.name);\n return;\n }\n if (identifierNamesSet.includes(node.name)) {\n isReferencedIdentifierName = true;\n }\n },\n leave: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isReferencedIdentifierName;\n }\n static isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) {\n return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)\n && objectExpressionNodeParentNode.body === objectExpressionNode;\n }\n static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) {\n return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode)\n && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)\n && objectExpressionHostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode)\n && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee));\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.transformObjectKeys) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n if (!objectExpressionNode.properties.length) {\n return objectExpressionNode;\n }\n const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);\n if (ObjectExpressionKeysTransformer_1.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, hostStatement)) {\n return objectExpressionNode;\n }\n return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement);\n }\n applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) {\n const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames];\n const objectExpressionExtractor = newObjectExpressionExtractorNames.shift();\n if (!objectExpressionExtractor) {\n return objectExpressionNode;\n }\n const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor)\n .extract(objectExpressionNode, hostStatement);\n this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement);\n return nodeToReplace;\n }\n};\nObjectExpressionKeysTransformer.objectExpressionExtractorNames = [\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor\n];\nObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== \"undefined\" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ObjectExpressionKeysTransformer);\nexports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n objectExpressionNode.properties\n .forEach((property) => {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n return;\n }\n if (!property.key) {\n return;\n }\n if (property.computed) {\n this.transformComputedProperty(property);\n }\n else {\n this.transformBaseProperty(property);\n }\n });\n return objectExpressionNode;\n }\n transformComputedProperty(property) {\n if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value);\n }\n transformBaseProperty(property) {\n if (property.shorthand) {\n property.shorthand = false;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);\n }\n};\nObjectExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObjectExpressionTransformer);\nexports.ObjectExpressionTransformer = ObjectExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectPatternPropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(propertyNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) {\n return propertyNode;\n }\n if (!this.options.renameGlobals) {\n const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode);\n const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope);\n if (shouldNotTransformGlobalPropertyNode) {\n return propertyNode;\n }\n }\n propertyNode.shorthand = false;\n propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value);\n NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode);\n return propertyNode;\n }\n};\nObjectPatternPropertiesTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObjectPatternPropertiesTransformer);\nexports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SplitStringTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst stringz = __importStar(require(\"stringz\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer\n ];\n }\n static chunkString(string, stringLength, chunkSize) {\n const chunksCount = Math.ceil(stringLength / chunkSize);\n const chunks = [];\n let nextChunkStartIndex = 0;\n for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {\n chunks[chunkIndex] = stringz.substr(string, nextChunkStartIndex, chunkSize);\n }\n return chunks;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (!this.options.splitStrings) {\n return;\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength);\n const secondPassChunksNode = estraverse.replace(firstPassChunksNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength);\n }\n }\n });\n return secondPassChunksNode;\n }\n transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const valueLength = stringz.length(literalNode.value);\n if (chunkLength >= valueLength) {\n return literalNode;\n }\n const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, chunkLength);\n const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks);\n NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode);\n NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode);\n return binaryExpressionNode;\n }\n transformStringChunksToBinaryExpressionNode(chunks) {\n const firstChunk = chunks.shift();\n const secondChunk = chunks.shift();\n if (!firstChunk || !secondChunk) {\n throw new Error('First and second chunks values should not be empty');\n }\n const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk));\n return chunks.reduce((binaryExpressionNode, chunk) => {\n const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk);\n return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode);\n }, initialBinaryExpressionNode);\n }\n};\nSplitStringTransformer.firstPassChunkLength = 1000;\nSplitStringTransformer = SplitStringTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], SplitStringTransformer);\nexports.SplitStringTransformer = SplitStringTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar TemplateLiteralTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n static isLiteralNodeWithStringValue(node) {\n return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(templateLiteralNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) {\n return templateLiteralNode;\n }\n return this.transformTemplateLiteralNode(templateLiteralNode, parentNode);\n }\n transformTemplateLiteralNode(templateLiteralNode, parentNode) {\n const templateLiteralExpressions = templateLiteralNode.expressions;\n let nodes = [];\n templateLiteralNode.quasis.forEach((templateElement) => {\n nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));\n const expression = templateLiteralExpressions.shift();\n if (!expression) {\n return;\n }\n nodes.push(expression);\n });\n nodes = nodes.filter((node) => {\n return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');\n });\n if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) &&\n !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {\n nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));\n }\n let transformedNode;\n if (nodes.length > 1) {\n let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());\n nodes.forEach((node) => {\n root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);\n });\n transformedNode = root;\n }\n else {\n transformedNode = nodes[0];\n }\n NodeUtils_1.NodeUtils.parentizeAst(transformedNode);\n NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n return transformedNode;\n }\n};\nTemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], TemplateLiteralTransformer);\nexports.TemplateLiteralTransformer = TemplateLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BasePropertiesExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePropertiesExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor {\n static getPropertyNodeKeyName(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode)\n && (typeof propertyKeyNode.value === 'string'\n || typeof propertyKeyNode.value === 'number')) {\n return propertyKeyNode.value.toString();\n }\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {\n return propertyKeyNode.name;\n }\n return null;\n }\n static isProhibitedPropertyNode(node) {\n return node.kind !== 'init';\n }\n static isProhibitedPattern(node) {\n return !node\n || NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n || NodeGuards_1.NodeGuards.isArrayPatternNode(node)\n || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node)\n || NodeGuards_1.NodeGuards.isRestElementNode(node);\n }\n static shouldCreateLiteralNode(property) {\n return !property.computed\n || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key));\n }\n extract(objectExpressionNode, hostStatement) {\n const hostNode = objectExpressionNode.parentNode;\n if (hostNode\n && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) {\n return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);\n }\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) {\n const properties = objectExpressionNode.properties;\n const [expressionStatements, removablePropertyIds] = this\n .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode);\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);\n NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements);\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) {\n const propertiesLength = properties.length;\n const expressionStatements = [];\n const removablePropertyIds = [];\n for (let i = propertiesLength - 1; i >= 0; i--) {\n const property = properties[i];\n if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) {\n break;\n }\n if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) {\n continue;\n }\n const propertyValue = property.value;\n if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) {\n continue;\n }\n const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property);\n if (!propertyKeyName) {\n continue;\n }\n const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property);\n const memberExpressionProperty = shouldCreateLiteralNode\n ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName)\n : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);\n const memberExpressionNode = NodeFactory_1.NodeFactory\n .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);\n const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {\n this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);\n }\n expressionStatements.unshift(expressionStatementNode);\n removablePropertyIds.unshift(i);\n }\n return [expressionStatements, removablePropertyIds];\n }\n filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {\n objectExpressionNode.properties = objectExpressionNode.properties\n .filter((property, index) => !removablePropertyIds.includes(index));\n }\n};\nBasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([\n inversify_1.injectable()\n], BasePropertiesExtractor);\nexports.BasePropertiesExtractor = BasePropertiesExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionToVariableDeclarationExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TObjectExpressionKeysTransformerCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor {\n constructor(objectExpressionKeysTransformerCustomNodeFactory) {\n this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;\n }\n extract(objectExpressionNode, hostStatement) {\n return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement);\n }\n transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) {\n var _a;\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)\n ? hostNodeWithStatements\n : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null;\n if (!lexicalScopeNode) {\n throw new Error('Cannot find lexical scope node for the host statement node');\n }\n const properties = objectExpressionNode.properties;\n const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties);\n const statementsToInsert = [newObjectExpressionHostStatement];\n NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement);\n NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);\n const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);\n const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement);\n return {\n nodeToReplace: newObjectExpressionIdentifier,\n objectExpressionHostStatement: newObjectExpressionHostStatement,\n objectExpressionNode: newObjectExpressionNode\n };\n }\n getObjectExpressionHostNode(lexicalScopeNode, properties) {\n const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);\n const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0];\n if (!statementNode\n || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) {\n throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');\n }\n return statementNode;\n }\n getObjectExpressionIdentifierNode(objectExpressionHostNode) {\n const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');\n }\n return newObjectExpressionIdentifierNode;\n }\n getObjectExpressionNode(objectExpressionHostNode) {\n var _a;\n const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null;\n if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');\n }\n return newObjectExpressionNode;\n }\n};\nObjectExpressionToVariableDeclarationExtractor = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== \"undefined\" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === \"function\" ? _a : Object])\n], ObjectExpressionToVariableDeclarationExtractor);\nexports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DeadCodeInjectionTransformer_1, _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TDeadNodeInjectionCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst INodeTransformersRunner_1 = require(\"../../interfaces/node-transformers/INodeTransformersRunner\");\nconst DeadCodeInjectionCustomNode_1 = require(\"../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {\n super(randomGenerator, options);\n this.deadCodeInjectionRootAstHostNodeSet = new Set();\n this.collectedBlockStatements = [];\n this.collectedBlockStatementsTotalLength = 0;\n this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;\n this.transformersRunner = transformersRunner;\n }\n static isProhibitedNodeInsideCollectedBlockStatement(targetNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)\n || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isSuperNode(targetNode)\n || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await);\n }\n static isScopeHoistingFunctionDeclaration(targetNode) {\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {\n return false;\n }\n const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(targetNode);\n if (indexInScope === 0) {\n return false;\n }\n const slicedBody = scopeBody.slice(0, indexInScope);\n const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);\n const functionDeclarationName = targetNode.id.name;\n let isScopeHoistedFunctionDeclaration = false;\n estraverse.traverse(hostBlockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {\n isScopeHoistedFunctionDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isScopeHoistedFunctionDeclaration;\n }\n static isValidCollectedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let nestedBlockStatementsCount = 0;\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n nestedBlockStatementsCount++;\n }\n if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount\n || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node)\n || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isValidBlockStatementNode;\n }\n static isValidWrappedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n if (!isValidBlockStatementNode) {\n return false;\n }\n const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils\n .getParentNodeWithStatements(blockStatementNode);\n return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n return node;\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.deadCodeInjectionRootAstHostNodeSet.size) {\n return null;\n }\n return {\n enter: (node, parentNode) => {\n if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode, parentNode) {\n estraverse.traverse(programNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return;\n }\n const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);\n if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {\n return;\n }\n const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);\n this.collectedBlockStatements.push(transformedBlockStatementNode);\n }\n });\n this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;\n }\n transformNode(blockStatementNode, parentNode) {\n const canBreakTraverse = !this.collectedBlockStatements.length\n || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;\n if (canBreakTraverse) {\n return estraverse.VisitorOption.Break;\n }\n if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold\n || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const minInteger = 0;\n const maxInteger = this.collectedBlockStatements.length - 1;\n const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);\n const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];\n const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;\n if (isDuplicateBlockStatementNodes) {\n return blockStatementNode;\n }\n return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);\n }\n restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {\n const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {\n throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');\n }\n return hostNodeFirstStatement.body;\n }\n isDeadCodeInjectionRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);\n }\n makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {\n const hostNode = NodeFactory_1.NodeFactory.programNode([\n NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(hostNode);\n NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);\n this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n return clonedBlockStatementNode;\n }\n replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {\n const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)\n ]);\n this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);\n const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);\n const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nDeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';\nDeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;\nDeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;\nDeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer\n];\nDeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== \"undefined\" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== \"undefined\" && INodeTransformersRunner_1.INodeTransformersRunner) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], DeadCodeInjectionTransformer);\nexports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, escapeSequenceEncoder) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer\n ];\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence);\n const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue);\n NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);\n return newLiteralNode;\n }\n};\nEscapeSequenceTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _c : Object])\n], EscapeSequenceTransformer);\nexports.EscapeSequenceTransformer = EscapeSequenceTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CommentsTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommentsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Initializing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.filterCommentsOnFinalizingTraverse(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(rootNode) {\n rootNode = this.filterCommentsOnPrimaryTraverse(rootNode);\n if (!rootNode.comments || !rootNode.comments.length) {\n return rootNode;\n }\n const comments = rootNode.comments.reverse();\n if (comments.length === 0) {\n return rootNode;\n }\n if (!rootNode.body.length) {\n rootNode.leadingComments = comments;\n return rootNode;\n }\n let isFirstNode = true;\n estraverse.traverse(rootNode, {\n enter: (node) => {\n if (node === rootNode) {\n return;\n }\n const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]);\n if (commentIdx >= 0) {\n (isFirstNode ? rootNode : node).leadingComments =\n comments.splice(commentIdx, comments.length - commentIdx).reverse();\n }\n isFirstNode = false;\n }\n });\n if (comments.length > 0) {\n rootNode.trailingComments = comments.reverse();\n }\n return rootNode;\n }\n filterCommentsOnPrimaryTraverse(rootNode) {\n var _a;\n rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true));\n return rootNode;\n }\n filterCommentsOnFinalizingTraverse(rootNode) {\n estraverse.replace(rootNode, {\n enter: (node) => {\n var _a, _b;\n if (node.leadingComments) {\n node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false));\n }\n if (node.trailingComments) {\n node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false));\n }\n return node;\n }\n });\n return rootNode;\n }\n filterComment(comment, keepConditionalComment) {\n if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) {\n return true;\n }\n return CommentsTransformer_1.preservedWords\n .some((preservedWord) => comment.value.includes(preservedWord));\n }\n};\nCommentsTransformer.preservedWords = [\n '@license',\n '@preserve'\n];\nCommentsTransformer = CommentsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], CommentsTransformer);\nexports.CommentsTransformer = CommentsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelpersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperGroupStorage_1 = require(\"../../types/storages/TCustomCodeHelperGroupStorage\");\nconst IObfuscationEventEmitter_1 = require(\"../../interfaces/event-emitters/IObfuscationEventEmitter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ICallsGraphAnalyzer_1 = require(\"../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer\");\nconst IPrevailingKindOfVariablesAnalyzer_1 = require(\"../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.callsGraphData = [];\n this.callsGraphAnalyzer = callsGraphAnalyzer;\n this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;\n this.obfuscationEventEmitter = obfuscationEventEmitter;\n this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n this.appendCustomNodesBeforeObfuscation(node, parentNode);\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.appendCustomNodesAfterObfuscation(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(node, parentNode) {\n this.callsGraphData = this.callsGraphAnalyzer.analyze(node);\n this.prevailingKindOfVariablesAnalyzer.analyze(node);\n }\n transformNode(node, parentNode) {\n return node;\n }\n appendCustomNodesBeforeObfuscation(node, parentNode) {\n this.customCodeHelperGroupStorage\n .getStorage()\n .forEach((customCodeHelperGroup) => {\n customCodeHelperGroup.initialize();\n this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup));\n });\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData);\n }\n appendCustomNodesAfterObfuscation(node, parentNode) {\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData);\n }\n};\nCustomCodeHelpersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== \"undefined\" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === \"function\" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== \"undefined\" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === \"function\" ? _b : Object, typeof (_c = typeof IObfuscationEventEmitter_1.IObfuscationEventEmitter !== \"undefined\" && IObfuscationEventEmitter_1.IObfuscationEventEmitter) === \"function\" ? _c : Object, typeof (_d = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== \"undefined\" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], CustomCodeHelpersTransformer);\nexports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EvalCallExpressionTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvalCallExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.evalRootAstHostNodeSet = new Set();\n }\n static extractEvalStringFromCallExpressionArgument(node) {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromLiteralNode(node);\n }\n if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromTemplateLiteralNode(node);\n }\n return null;\n }\n static extractEvalStringFromLiteralNode(node) {\n return typeof node.value === 'string' ? node.value : null;\n }\n static extractEvalStringFromTemplateLiteralNode(node) {\n const quasis = node.quasis;\n const allowedQuasisLength = 1;\n if (quasis.length !== allowedQuasisLength || node.expressions.length) {\n return null;\n }\n return quasis[0].value.cooked;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'eval') {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.evalRootAstHostNodeSet.size) {\n return null;\n }\n return {\n leave: (node, parentNode) => {\n if (parentNode && this.isEvalRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(callExpressionNode, parentNode) {\n const callExpressionFirstArgument = callExpressionNode.arguments[0];\n if (!callExpressionFirstArgument) {\n return callExpressionNode;\n }\n const evalString = EvalCallExpressionTransformer_1\n .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);\n if (!evalString) {\n return callExpressionNode;\n }\n let ast;\n try {\n ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);\n }\n catch (_a) {\n return callExpressionNode;\n }\n const evalRootAstHostNode = NodeFactory_1.NodeFactory\n .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));\n NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode);\n NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);\n this.evalRootAstHostNodeSet.add(evalRootAstHostNode);\n return evalRootAstHostNode;\n }\n restoreNode(evalRootAstHostNode, parentNode) {\n const targetAst = evalRootAstHostNode.body.body;\n const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);\n return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [\n NodeFactory_1.NodeFactory.literalNode(StringUtils_1.StringUtils.escapeJsString(obfuscatedCode))\n ]);\n }\n isEvalRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);\n }\n};\nEvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], EvalCallExpressionTransformer);\nexports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetadataTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false });\n }\n return node;\n }\n};\nMetadataTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MetadataTransformer);\nexports.MetadataTransformer = MetadataTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObfuscatingGuardsTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TObfuscatingGuardFactory_1 = require(\"../../types/container/node-transformers/TObfuscatingGuardFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObfuscatingGuard_1 = require(\"../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst ObfuscatingGuardResult_1 = require(\"../../enums/node/ObfuscatingGuardResult\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(obfuscatingGuardFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n const obfuscatingGuardResults = this.obfuscatingGuards\n .map((obfuscatingGuard) => obfuscatingGuard.check(node));\n this.setNodeMetadata(node, obfuscatingGuardResults);\n return node;\n }\n setNodeMetadata(node, obfuscatingGuardResults) {\n const isTransformNode = obfuscatingGuardResults\n .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform);\n let isForceTransformNode = false;\n let isIgnoredNode = false;\n if (!isTransformNode) {\n isForceTransformNode = obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform);\n isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore);\n }\n NodeMetadata_1.NodeMetadata.set(node, {\n forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node),\n ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node)\n });\n }\n};\nObfuscatingGuardsTransformer.obfuscatingGuardsList = [\n ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard\n];\nObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== \"undefined\" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ObfuscatingGuardsTransformer);\nexports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParentificationTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);\n }\n};\nParentificationTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ParentificationTransformer);\nexports.ParentificationTransformer = ParentificationTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariablePreserveTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer\n ];\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, this.preserveScopeVariableIdentifiers);\n return programNode;\n }\n preserveScopeVariableIdentifiers(data) {\n const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data;\n for (const identifier of variable.identifiers) {\n if (isGlobalDeclaration || isBubblingDeclaration) {\n this.preserveIdentifierNameForRootLexicalScope(identifier);\n }\n else {\n this.preserveIdentifierNameForLexicalScope(identifier, variableScope);\n }\n }\n }\n preserveIdentifierNameForRootLexicalScope(identifierNode) {\n this.identifierReplacer.preserveName(identifierNode);\n }\n preserveIdentifierNameForLexicalScope(identifierNode, variableScope) {\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!lexicalScopeNode) {\n return;\n }\n this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);\n }\n};\nVariablePreserveTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], VariablePreserveTransformer);\nexports.VariablePreserveTransformer = VariablePreserveTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar BlackListObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlackListObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard {\n constructor() {\n this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;\n }\n check(node) {\n for (let i = 0; i < this.blackListGuardsLength; i++) {\n if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nBlackListObfuscatingGuard.blackListGuards = [\n NodeGuards_1.NodeGuards.isUseStrictOperator\n];\nBlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([\n inversify_1.injectable(),\n __metadata(\"design:paramtypes\", [])\n], BlackListObfuscatingGuard);\nexports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionalCommentObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConditionalCommentObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard {\n constructor() {\n this.obfuscationAllowed = true;\n }\n static isConditionalComment(comment) {\n return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) ||\n ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);\n }\n check(node) {\n if (NodeGuards_1.NodeGuards.isNodeWithComments(node)) {\n const leadingComments = node.leadingComments;\n if (leadingComments) {\n this.obfuscationAllowed = this.checkComments(leadingComments);\n }\n }\n return this.obfuscationAllowed\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n checkComments(comments) {\n const commentsLength = comments.length;\n let obfuscationAllowed = this.obfuscationAllowed;\n for (let i = 0; i < commentsLength; i++) {\n const comment = comments[i];\n if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = true;\n continue;\n }\n if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = false;\n }\n }\n return obfuscationAllowed;\n }\n};\nConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');\nConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');\nConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([\n inversify_1.injectable()\n], ConditionalCommentObfuscatingGuard);\nexports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForceTransformStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.forceTransformStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isForceTransformString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isForceTransformString(value) {\n return this.options.forceTransformStrings\n .some((forceTransformString) => {\n return new RegExp(forceTransformString, 'g').exec(value) !== null;\n });\n }\n};\nForceTransformStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], ForceTransformStringObfuscatingGuard);\nexports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IgnoredRequireImportObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.ignoreRequireImports\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'require') {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nIgnoredRequireImportObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], IgnoredRequireImportObfuscatingGuard);\nexports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReservedStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.reservedStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isReservedString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isReservedString(value) {\n return this.options.reservedStrings\n .some((reservedString) => {\n return new RegExp(reservedString, 'g').exec(value) !== null;\n });\n }\n};\nReservedStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], ReservedStringObfuscatingGuard);\nexports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabeledStatementTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(labeledStatementNode, parentNode) {\n const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);\n if (!lexicalScopeNode) {\n return labeledStatementNode;\n }\n this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n return labeledStatementNode;\n }\n storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);\n }\n replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n estraverse.replace(labeledStatementNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {\n const newIdentifier = this.identifierReplacer\n .replace(node, lexicalScopeNode);\n node.name = newIdentifier.name;\n }\n }\n });\n }\n};\nLabeledStatementTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], LabeledStatementTransformer);\nexports.LabeledStatementTransformer = LabeledStatementTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map();\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, (data) => {\n const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data;\n if (!this.options.renameGlobals && isGlobalDeclaration) {\n const isImportBindingOrCatchClauseIdentifier = variable.defs\n .every((definition) => definition.type === 'ImportBinding'\n || definition.type === 'CatchClause');\n if (!isImportBindingOrCatchClauseIdentifier) {\n return;\n }\n }\n this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration);\n });\n return programNode;\n }\n transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) {\n var _a;\n const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null;\n if (!firstIdentifier) {\n return;\n }\n if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {\n return;\n }\n this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);\n this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) {\n if (isGlobalDeclaration) {\n this.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode);\n }\n else {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, variable) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n variable.identifiers.forEach((identifier) => {\n identifier.name = newIdentifier.name;\n });\n variable.references.forEach((reference) => {\n reference.identifier.name = identifierNode.name;\n });\n }\n isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) {\n const parentNode = identifierNode.parentNode;\n return !!parentNode\n && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode)\n && !this.isProhibitedPropertyIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)\n && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)\n && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)\n && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);\n }\n isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block)\n && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode;\n }\n isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode)\n && !!parentNode.parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);\n }\n isProhibitedImportSpecifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode)\n && parentNode.imported.name === parentNode.local.name;\n }\n isProhibitedPropertyIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isPropertyNode(parentNode)\n && !parentNode.computed\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node)\n && parentNode.shorthand\n && parentNode.key.name === node.name;\n }\n isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode)\n && parentNode.left === node\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key)\n && parentNode.left.name === parentNode.parentNode.key.name;\n }\n isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) {\n let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);\n if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {\n return false;\n }\n const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var');\n if (!hasVarDefinitions) {\n return false;\n }\n let isProhibitedVariableDeclaration = false;\n estraverse.traverse(lexicalScopeNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n && parentNode\n && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) {\n isLexicalScopeHasObjectPatternWithoutDeclaration = true;\n const properties = node.properties;\n for (const property of properties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n continue;\n }\n if (property.computed || !property.shorthand) {\n continue;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n continue;\n }\n if (identifierNode.name !== property.key.name) {\n continue;\n }\n isProhibitedVariableDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n }\n });\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false);\n return isProhibitedVariableDeclaration;\n }\n};\nScopeIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], ScopeIdentifiersTransformer);\nexports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeThroughIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => {\n const { reference, variableLexicalScopeNode } = data;\n this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);\n });\n return programNode;\n }\n transformScopeThroughIdentifiers(reference, lexicalScopeNode) {\n if (reference.resolved) {\n return;\n }\n const identifier = reference.identifier;\n this.storeIdentifierName(identifier, lexicalScopeNode);\n this.replaceIdentifierName(identifier, lexicalScopeNode, reference);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, reference) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n reference.identifier.name = newIdentifier.name;\n }\n};\nScopeThroughIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], ScopeThroughIdentifiersTransformer);\nexports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet IdentifierReplacer = class IdentifierReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.blockScopesMap = new Map();\n this.options = options;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n }\n storeGlobalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope();\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n storeLocalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n replace(identifierNode, lexicalScopeNode) {\n let identifierName = identifierNode.name;\n if (this.blockScopesMap.has(lexicalScopeNode)) {\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n if (namesMap.has(identifierName)) {\n identifierName = namesMap.get(identifierName);\n }\n }\n return NodeFactory_1.NodeFactory.identifierNode(identifierName);\n }\n preserveName(identifierNode) {\n this.identifierNamesGenerator.preserveName(identifierNode.name);\n }\n preserveNameForLexicalScope(identifierNode, lexicalScopeNode) {\n this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);\n }\n isReservedName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n};\nIdentifierReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], IdentifierReplacer);\nexports.IdentifierReplacer = IdentifierReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RenamePropertiesTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IRenamePropertiesReplacer_1 = require(\"../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(renamePropertiesReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.renamePropertiesReplacer = renamePropertiesReplacer;\n }\n static isValidPropertyNode(propertyNode, propertyKeyNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {\n return false;\n }\n return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameProperties:\n return {\n enter: (node, parentNode) => {\n if (parentNode) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformPropertyNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformMemberExpressionNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformMethodDefinitionNode(node);\n }\n return node;\n }\n transformPropertyNode(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) {\n propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n propertyNode.shorthand = false;\n }\n return propertyNode;\n }\n transformMemberExpressionNode(memberExpressionNode) {\n const propertyKeyNode = memberExpressionNode.property;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {\n memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return memberExpressionNode;\n }\n transformMethodDefinitionNode(methodDefinitionNode) {\n const propertyKeyNode = methodDefinitionNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {\n methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return methodDefinitionNode;\n }\n};\nRenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRenamePropertiesReplacer_1.IRenamePropertiesReplacer !== \"undefined\" && IRenamePropertiesReplacer_1.IRenamePropertiesReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], RenamePropertiesTransformer);\nexports.RenamePropertiesTransformer = RenamePropertiesTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ReservedDomProperties_json_1 = __importDefault(require(\"./ReservedDomProperties.json\"));\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet RenamePropertiesReplacer = class RenamePropertiesReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.propertyNamesMap = new Map();\n this.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default);\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.options = options;\n }\n replace(node) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name));\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {\n return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value));\n }\n return node;\n }\n replacePropertyName(propertyName) {\n var _a;\n if (this.isReservedName(propertyName)) {\n return propertyName;\n }\n let renamedPropertyName = (_a = this.propertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null;\n if (renamedPropertyName !== null) {\n return renamedPropertyName;\n }\n renamedPropertyName = this.identifierNamesGenerator.generateNext();\n this.propertyNamesMap.set(propertyName, renamedPropertyName);\n return renamedPropertyName;\n }\n isReservedName(name) {\n return this.isReservedOptionName(name)\n || this.isReservedDomPropertyName(name);\n }\n isReservedOptionName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n isReservedDomPropertyName(name) {\n return this.reservedDomPropertiesList.has(name);\n }\n};\nRenamePropertiesReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], RenamePropertiesReplacer);\nexports.RenamePropertiesReplacer = RenamePropertiesReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getStatementSimplifyData(statementNode) {\n if (!statementNode) {\n return null;\n }\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) {\n return {\n leadingStatements: [statementNode],\n trailingStatement: null,\n hasReturnStatement: false,\n hasSingleExpression: false\n };\n }\n const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode);\n const leadingStatements = this.getLeadingStatements(statementNode, startIndex);\n if (!unwrappedExpressions.length) {\n return {\n leadingStatements,\n trailingStatement: null,\n hasReturnStatement,\n hasSingleExpression: false\n };\n }\n const hasSingleExpression = unwrappedExpressions.length === 1;\n const expression = hasSingleExpression\n ? unwrappedExpressions[0]\n : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions);\n const statement = hasReturnStatement\n ? NodeFactory_1.NodeFactory.returnStatementNode(expression)\n : NodeFactory_1.NodeFactory.expressionStatementNode(expression);\n return {\n leadingStatements,\n trailingStatement: {\n statement,\n expression\n },\n hasReturnStatement,\n hasSingleExpression\n };\n }\n collectIteratedStatementsSimplifyData(statementNode) {\n const statementNodeBodyLength = statementNode.body.length;\n const unwrappedExpressions = [];\n let hasReturnStatement = false;\n let startIndex = null;\n for (let i = statementNodeBodyLength - 1; i >= 0; i--) {\n const statementBodyStatementNode = statementNode.body[i];\n if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) {\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) {\n unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions);\n }\n else {\n unwrappedExpressions.unshift(statementBodyStatementNode.expression);\n }\n startIndex = i;\n continue;\n }\n if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode)\n && statementBodyStatementNode.argument) {\n unwrappedExpressions.unshift(statementBodyStatementNode.argument);\n hasReturnStatement = true;\n startIndex = i;\n continue;\n }\n break;\n }\n return {\n startIndex,\n unwrappedExpressions,\n hasReturnStatement\n };\n }\n getLeadingStatements(statementNode, startIndex) {\n if (startIndex === null) {\n return statementNode.body;\n }\n return startIndex === 0\n ? []\n : statementNode.body.slice(0, startIndex);\n }\n getPartialStatement(statementSimplifyData) {\n if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) {\n return statementSimplifyData.trailingStatement.statement;\n }\n return NodeFactory_1.NodeFactory.blockStatementNode([\n ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [],\n ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : []\n ]);\n }\n};\nAbstractStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractStatementSimplifyTransformer);\nexports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(statementNode, parentNode) {\n const simplifyData = this.getStatementSimplifyData(statementNode);\n if (!simplifyData) {\n return statementNode;\n }\n const partialStatementNode = this.getPartialStatement(simplifyData);\n const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode)\n ? partialStatementNode\n : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]);\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n};\nBlockStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], BlockStatementSimplifyTransformer);\nexports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionStatementsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(expressionStatementNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return expressionStatementNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) {\n return expressionStatementNode;\n }\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) {\n prevStatement.expression.expressions.push(expressionStatementNode.expression);\n NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression);\n }\n else {\n prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([\n prevStatement.expression,\n expressionStatementNode.expression\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression);\n NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement);\n }\n return estraverse.VisitorOption.Remove;\n }\n};\nExpressionStatementsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ExpressionStatementsMergeTransformer);\nexports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IfStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(ifStatementNode, parentNode) {\n const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent);\n if (!consequentSimplifyData) {\n return ifStatementNode;\n }\n let transformedNode;\n if (!ifStatementNode.alternate) {\n transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData);\n }\n else {\n const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate);\n if (!alternateSimplifyData) {\n return ifStatementNode;\n }\n transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData);\n }\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n getConsequentNode(ifStatementNode, consequentSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression));\n }\n getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || alternateSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement\n || !alternateSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n getPartialStatement(statementSimplifyData) {\n const partialStatement = super.getPartialStatement(statementSimplifyData);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) {\n return partialStatement;\n }\n return partialStatement.body.length === 1\n && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0])\n ? partialStatement.body[0]\n : partialStatement;\n }\n isProhibitedSingleStatementForIfStatementBranch(statement) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement)\n || NodeGuards_1.NodeGuards.isIfStatementNode(statement)\n || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var');\n }\n};\nIfStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], IfStatementSimplifyTransformer);\nexports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariableDeclarationsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(variableDeclarationNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return variableDeclarationNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) {\n return variableDeclarationNode;\n }\n if (variableDeclarationNode.kind !== prevStatement.kind) {\n return variableDeclarationNode;\n }\n prevStatement.declarations.push(...variableDeclarationNode.declarations);\n return estraverse.VisitorOption.Remove;\n }\n};\nVariableDeclarationsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], VariableDeclarationsMergeTransformer);\nexports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TStringArrayCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TStringArrayCustomNodeFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst IStringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst IVisitedLexicalScopeNodesStackStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.stringArrayWrappersCount) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeEnter(node);\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeLeave();\n return this.transformNode(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(lexicalScopeBodyNode) {\n var _a, _b;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) {\n return lexicalScopeBodyNode;\n }\n const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData;\n const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding);\n for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) {\n if (!stringArrayScopeCallsWrapperNamesData) {\n continue;\n }\n const { names } = stringArrayScopeCallsWrapperNamesData;\n const namesLength = names.length;\n for (let i = namesLength - 1; i >= 0; i--) {\n const stringArrayScopeCallsWrapperName = names[i];\n const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex);\n NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode);\n }\n }\n return lexicalScopeBodyNode;\n }\n getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n return {\n name: this.stringArrayStorage.getStorageCallsWrapperName(encoding),\n index: resultShiftedIndex,\n parameterIndexesData: null\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n var _a, _b, _c, _d, _e, _f;\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n if (!this.options.stringArrayWrappersChainedCalls) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n if (!parentLexicalScopeBodyNode) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null;\n const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null;\n if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) {\n return rootStringArrayCallsWrapperData;\n }\n const upperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(parentLexicalScopeNames);\n const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null;\n return {\n name: upperStringArrayCallsWrapperName,\n index: scopeShiftedIndex,\n parameterIndexesData\n };\n }\n getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n switch (this.options.stringArrayWrappersType) {\n case StringArrayWrappersType_1.StringArrayWrappersType.Function:\n return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n case StringArrayWrappersType_1.StringArrayWrappersType.Variable:\n default:\n return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n }\n }\n getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) {\n const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n return stringArrayScopeCallsWrapperVariableNode.getNode();\n }\n getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n return stringArrayScopeCallsWrapperFunctionNode.getNode();\n }\n onLexicalScopeNodeEnter(lexicalScopeBodyNode) {\n this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode);\n }\n onLexicalScopeNodeLeave() {\n this.visitedLexicalScopeNodesStackStorage.pop();\n }\n};\nStringArrayScopeCallsWrapperTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== \"undefined\" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === \"function\" ? _f : Object, typeof (_g = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== \"undefined\" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === \"function\" ? _g : Object])\n], StringArrayScopeCallsWrapperTransformer);\nexports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayTransformer_1, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TStringArrayCustomNodeFactory\");\nconst ILiteralNodesCacheStorage_1 = require(\"../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst IStringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst IStringArrayStorageAnalyzer_1 = require(\"../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer\");\nconst IVisitedLexicalScopeNodesStackStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.literalNodesCacheStorage = literalNodesCacheStorage;\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node);\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode) {\n this.stringArrayStorageAnalyzer.analyze(programNode);\n if (this.options.shuffleStringArray) {\n this.stringArrayStorage.shuffleStorage();\n }\n if (this.options.rotateStringArray) {\n this.stringArrayStorage.rotateStorage();\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)\n || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode);\n const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData);\n const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData);\n if (useCachedValue) {\n return this.literalNodesCacheStorage.get(cacheKey);\n }\n const resultNode = stringArrayStorageItemData\n ? this.getStringArrayCallNode(stringArrayStorageItemData)\n : literalNode;\n this.literalNodesCacheStorage.set(cacheKey, resultNode);\n NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode);\n return resultNode;\n }\n getStringArrayCallNode(stringArrayStorageItemData) {\n const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData);\n const { decodeKey } = stringArrayStorageItemData;\n const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey);\n const statementNode = stringArrayCallCustomNode.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n getStringArrayCallsWrapperData(stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData)\n : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData);\n }\n getRootStringArrayCallsWrapperData(stringArrayStorageItemData) {\n const { encoding, index } = stringArrayStorageItemData;\n const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding);\n return {\n name: rootStringArrayCallsWrapperName,\n parameterIndexesData: null,\n index\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) {\n var _a, _b, _c, _d;\n const { encoding, index } = stringArrayStorageItemData;\n const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null;\n if (!currentLexicalScopeBodyNode) {\n throw new Error('Cannot find current lexical scope body node');\n }\n const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData);\n const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode);\n const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : [];\n const randomUpperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(stringArrayScopeCallsWrapperNames);\n const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData\n ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index\n : index;\n return {\n name: randomUpperStringArrayCallsWrapperName,\n index: resultIndex,\n parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData\n };\n }\n getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) {\n var _a, _b, _c;\n const { encoding } = stringArrayStorageItemData;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {};\n const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : [];\n const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount;\n if (isFilledScopeCallsWrapperNamesList) {\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateNext();\n stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = {\n encoding,\n names: [\n ...stringArrayScopeCallsWrapperNames,\n nextScopeCallsWrapperName\n ]\n };\n this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding);\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) {\n var _a, _b;\n const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n if (storedLexicalScopeData) {\n return storedLexicalScopeData;\n }\n const parentLexicalScopeData = parentLexicalScopeBodyNode\n ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null : null;\n const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.getStringArrayCallsWrapperParameterIndexesData()\n : null;\n const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue)\n : 0;\n const resultShiftedIndex = parentLexicalScopeData\n ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex\n : scopeShiftedIndex;\n const lexicalScopeData = {\n callsWrappersParameterIndexesData,\n parentLexicalScopeBodyNode,\n resultShiftedIndex,\n scopeShiftedIndex\n };\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData);\n return lexicalScopeData;\n }\n getStringArrayCallsWrapperParameterIndexesData() {\n const minIndexValue = 0;\n const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1;\n const valueIndexParameterIndex = this.randomGenerator\n .getRandomInteger(minIndexValue, maxIndexValue);\n const decodeKeyParameterIndex = this.randomGenerator\n .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]);\n return {\n valueIndexParameterIndex,\n decodeKeyParameterIndex\n };\n }\n};\nStringArrayTransformer.minShiftedIndexValue = -1000;\nStringArrayTransformer.maxShiftedIndexValue = 1000;\nStringArrayTransformer = StringArrayTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),\n __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage !== \"undefined\" && ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage) === \"function\" ? _c : Object, typeof (_d = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== \"undefined\" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === \"function\" ? _f : Object, typeof (_g = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === \"function\" ? _g : Object, typeof (_h = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== \"undefined\" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === \"function\" ? _h : Object, typeof (_j = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _j : Object, typeof (_k = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== \"undefined\" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === \"function\" ? _k : Object])\n], StringArrayTransformer);\nexports.StringArrayTransformer = StringArrayTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeAppender = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeAppender {\n static append(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ...statements\n ]);\n }\n static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) {\n const targetBlockScope = callsGraphData.length\n ? NodeAppender.getOptimalBlockScope(callsGraphData, index)\n : nodeWithStatements;\n NodeAppender.prepend(targetBlockScope, bodyStatements);\n }\n static getOptimalBlockScope(callsGraphData, index, deep = Infinity) {\n const firstCall = callsGraphData[index];\n if (deep <= 0) {\n throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');\n }\n if (deep > 1 && firstCall.callsGraph.length) {\n return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);\n }\n else {\n return firstCall.callee;\n }\n }\n static insertBefore(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);\n }\n static insertAfter(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);\n }\n static insertAtIndex(nodeWithStatements, statements, index) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)\n ]);\n }\n static prepend(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ]);\n }\n static getScopeStatements(nodeWithStatements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n return nodeWithStatements.consequent;\n }\n return nodeWithStatements.body;\n }\n static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {\n statements.forEach((statement) => {\n statement.parentNode = nodeWithStatements;\n });\n return statements;\n }\n static setScopeStatements(nodeWithStatements, statements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n nodeWithStatements.consequent = statements;\n return;\n }\n nodeWithStatements.body = statements;\n }\n}\nexports.NodeAppender = NodeAppender;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFactory = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeFactory {\n static programNode(body = []) {\n return {\n type: NodeType_1.NodeType.Program,\n body,\n sourceType: 'script',\n metadata: { ignoredNode: false }\n };\n }\n static arrayExpressionNode(elements = []) {\n return {\n type: NodeType_1.NodeType.ArrayExpression,\n elements,\n metadata: { ignoredNode: false }\n };\n }\n static arrowFunctionExpressionNode(params, expression, body) {\n return {\n type: NodeType_1.NodeType.ArrowFunctionExpression,\n params,\n expression,\n body\n };\n }\n static assignmentExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.AssignmentExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static binaryExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.BinaryExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static blockStatementNode(body = []) {\n return {\n type: NodeType_1.NodeType.BlockStatement,\n body,\n metadata: { ignoredNode: false }\n };\n }\n static breakStatement(label) {\n return {\n type: NodeType_1.NodeType.BreakStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static callExpressionNode(callee, args = [], optional = false) {\n return {\n type: NodeType_1.NodeType.CallExpression,\n callee,\n optional,\n arguments: args,\n metadata: { ignoredNode: false }\n };\n }\n static conditionalExpressionNode(test, consequent, alternate) {\n return {\n type: NodeType_1.NodeType.ConditionalExpression,\n test,\n consequent,\n alternate,\n metadata: { ignoredNode: false }\n };\n }\n static continueStatement(label) {\n return {\n type: NodeType_1.NodeType.ContinueStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static directiveNode(expression, directive) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n directive,\n metadata: { ignoredNode: false }\n };\n }\n static exportAllDeclarationNode(source) {\n return {\n type: NodeType_1.NodeType.ExportAllDeclaration,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static exportNamedDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ExportNamedDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static expressionStatementNode(expression) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n metadata: { ignoredNode: false }\n };\n }\n static functionDeclarationNode(functionName, params, body) {\n return {\n type: NodeType_1.NodeType.FunctionDeclaration,\n id: NodeFactory.identifierNode(functionName),\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static functionExpressionNode(params, body) {\n return {\n type: NodeType_1.NodeType.FunctionExpression,\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static ifStatementNode(test, consequent, alternate) {\n return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test,\n consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } });\n }\n static identifierNode(name) {\n return {\n type: NodeType_1.NodeType.Identifier,\n name,\n metadata: { ignoredNode: false }\n };\n }\n static importDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ImportDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static literalNode(value, raw) {\n raw = raw !== undefined ? raw : `'${value}'`;\n return {\n type: NodeType_1.NodeType.Literal,\n value,\n raw,\n 'x-verbatim-property': {\n content: raw,\n precedence: escodegen.Precedence.Primary\n },\n metadata: { ignoredNode: false }\n };\n }\n static logicalExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.LogicalExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static memberExpressionNode(object, property, computed = false, optional = false) {\n return {\n type: NodeType_1.NodeType.MemberExpression,\n computed,\n object,\n optional,\n property,\n metadata: { ignoredNode: false }\n };\n }\n static objectExpressionNode(properties) {\n return {\n type: NodeType_1.NodeType.ObjectExpression,\n properties,\n metadata: { ignoredNode: false }\n };\n }\n static propertyNode(key, value, computed = false) {\n return {\n type: NodeType_1.NodeType.Property,\n key,\n value,\n kind: 'init',\n method: false,\n shorthand: false,\n computed,\n metadata: { ignoredNode: false }\n };\n }\n static returnStatementNode(argument) {\n return {\n type: NodeType_1.NodeType.ReturnStatement,\n argument,\n metadata: { ignoredNode: false }\n };\n }\n static sequenceExpressionNode(expressions) {\n return {\n type: NodeType_1.NodeType.SequenceExpression,\n expressions,\n metadata: { ignoredNode: false }\n };\n }\n static switchStatementNode(discriminant, cases) {\n return {\n type: NodeType_1.NodeType.SwitchStatement,\n discriminant,\n cases,\n metadata: { ignoredNode: false }\n };\n }\n static switchCaseNode(test, consequent) {\n return {\n type: NodeType_1.NodeType.SwitchCase,\n test,\n consequent,\n metadata: { ignoredNode: false }\n };\n }\n static unaryExpressionNode(operator, argument, prefix = true) {\n return {\n type: NodeType_1.NodeType.UnaryExpression,\n operator,\n argument,\n prefix,\n metadata: { ignoredNode: false }\n };\n }\n static updateExpressionNode(operator, argumentExpr) {\n return {\n type: NodeType_1.NodeType.UpdateExpression,\n operator,\n argument: argumentExpr,\n prefix: false,\n metadata: { ignoredNode: false }\n };\n }\n static templateElement(value, tail) {\n return {\n type: NodeType_1.NodeType.TemplateElement,\n value,\n tail,\n metadata: { ignoredNode: false }\n };\n }\n static templateLiteral(expressions, quasis) {\n return {\n type: NodeType_1.NodeType.TemplateLiteral,\n expressions,\n quasis,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclarationNode(declarations = [], kind = 'var') {\n return {\n type: NodeType_1.NodeType.VariableDeclaration,\n declarations,\n kind,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclaratorNode(id, init) {\n return {\n type: NodeType_1.NodeType.VariableDeclarator,\n id,\n init,\n metadata: { ignoredNode: false }\n };\n }\n static whileStatementNode(test, body) {\n return {\n type: NodeType_1.NodeType.WhileStatement,\n test,\n body,\n metadata: { ignoredNode: false }\n };\n }\n}\nexports.NodeFactory = NodeFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeGuards = void 0;\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeGuards {\n static isArrayPatternNode(node) {\n return node.type === NodeType_1.NodeType.ArrayPattern;\n }\n static isArrowFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ArrowFunctionExpression;\n }\n static isAssignmentExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentExpression;\n }\n static isAssignmentPatternNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentPattern;\n }\n static isAwaitExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AwaitExpression;\n }\n static isBigIntLiteralNode(node) {\n return NodeGuards.isLiteralNode(node) && !!node.bigint;\n }\n static isBlockStatementNode(node) {\n return node.type === NodeType_1.NodeType.BlockStatement;\n }\n static isBreakStatementNode(node) {\n return node.type === NodeType_1.NodeType.BreakStatement;\n }\n static isCallExpressionNode(node) {\n return node.type === NodeType_1.NodeType.CallExpression;\n }\n static isClassDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null;\n }\n static isContinueStatementNode(node) {\n return node.type === NodeType_1.NodeType.ContinueStatement;\n }\n static isDirectiveNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && 'directive' in node;\n }\n static isExportAllDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportAllDeclaration;\n }\n static isExportNamedDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportNamedDeclaration;\n }\n static isExportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ExportSpecifier;\n }\n static isExpressionStatementNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && !('directive' in node);\n }\n static isForOfStatementNode(node) {\n return node.type === NodeType_1.NodeType.ForOfStatement;\n }\n static isFunctionNode(node) {\n return NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards.isArrowFunctionExpressionNode(node);\n }\n static isFunctionDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null;\n }\n static isFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.FunctionExpression;\n }\n static isIdentifierNode(node) {\n return node.type === NodeType_1.NodeType.Identifier;\n }\n static isIfStatementNode(node) {\n return node.type === NodeType_1.NodeType.IfStatement;\n }\n static isImportDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ImportDeclaration;\n }\n static isImportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ImportSpecifier;\n }\n static isLabelIdentifierNode(node, parentNode) {\n const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;\n return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;\n }\n static isLabeledStatementNode(node) {\n return node.type === NodeType_1.NodeType.LabeledStatement;\n }\n static isLiteralNode(node) {\n return node.type === NodeType_1.NodeType.Literal;\n }\n static isMemberExpressionNode(node) {\n return node.type === NodeType_1.NodeType.MemberExpression;\n }\n static isMethodDefinitionNode(node) {\n return node.type === NodeType_1.NodeType.MethodDefinition;\n }\n static isNode(object) {\n return object && !object.type !== undefined;\n }\n static isNodeWithLexicalScope(node) {\n return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);\n }\n static isNodeWithBlockLexicalScope(node) {\n return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);\n }\n static isNodeWithLexicalScopeStatements(node, parentNode) {\n return NodeGuards.isProgramNode(node)\n || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));\n }\n static isNodeWithStatements(node) {\n return NodeGuards.isProgramNode(node)\n || NodeGuards.isBlockStatementNode(node)\n || NodeGuards.isSwitchCaseNode(node);\n }\n static isNodeWithComments(node) {\n return Boolean(node.leadingComments) || Boolean(node.trailingComments);\n }\n static isObjectPatternNode(node) {\n return node.type === NodeType_1.NodeType.ObjectPattern;\n }\n static isObjectExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ObjectExpression;\n }\n static isProgramNode(node) {\n return node.type === NodeType_1.NodeType.Program;\n }\n static isPropertyNode(node) {\n return node.type === NodeType_1.NodeType.Property;\n }\n static isRestElementNode(node) {\n return node.type === NodeType_1.NodeType.RestElement;\n }\n static isReturnStatementNode(node) {\n return node.type === NodeType_1.NodeType.ReturnStatement;\n }\n static isSequenceExpressionNode(node) {\n return node.type === NodeType_1.NodeType.SequenceExpression;\n }\n static isSpreadElementNode(node) {\n return node.type === NodeType_1.NodeType.SpreadElement;\n }\n static isSuperNode(node) {\n return node.type === NodeType_1.NodeType.Super;\n }\n static isSwitchCaseNode(node) {\n return node.type === NodeType_1.NodeType.SwitchCase;\n }\n static isTaggedTemplateExpressionNode(node) {\n return node.type === NodeType_1.NodeType.TaggedTemplateExpression;\n }\n static isTemplateLiteralNode(node) {\n return node.type === NodeType_1.NodeType.TemplateLiteral;\n }\n static isUnaryExpressionNode(node) {\n return node.type === NodeType_1.NodeType.UnaryExpression;\n }\n static isUseStrictOperator(node) {\n return NodeGuards.isDirectiveNode(node)\n && node.directive === 'use strict';\n }\n static isVariableDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclaration;\n }\n static isVariableDeclaratorNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclarator;\n }\n static isWhileStatementNode(node) {\n return node.type === NodeType_1.NodeType.WhileStatement;\n }\n static isYieldExpressionNode(node) {\n return node.type === NodeType_1.NodeType.YieldExpression;\n }\n}\nexports.NodeGuards = NodeGuards;\nNodeGuards.nodesWithLexicalStatements = [\n NodeType_1.NodeType.ArrowFunctionExpression,\n NodeType_1.NodeType.FunctionDeclaration,\n NodeType_1.NodeType.FunctionExpression,\n NodeType_1.NodeType.MethodDefinition,\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLexicalScopeUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLexicalScopeUtils {\n static getLexicalScope(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];\n }\n static getLexicalScopes(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);\n }\n static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) {\n if (nodesWithLexicalScope.length >= maxSize) {\n return nodesWithLexicalScope;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {\n nodesWithLexicalScope.push(node);\n }\n if (node !== parentNode) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);\n }\n return nodesWithLexicalScope;\n }\n}\nexports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLiteralUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLiteralUtils {\n static isStringLiteralNode(literalNode) {\n return typeof literalNode.value === 'string';\n }\n static isProhibitedLiteralNode(literalNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {\n return true;\n }\n return false;\n }\n}\nexports.NodeLiteralUtils = NodeLiteralUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeMetadata = void 0;\nclass NodeMetadata {\n static set(node, metadata) {\n var _a;\n node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata);\n }\n static get(node, metadataKey) {\n return node.metadata !== undefined\n ? node.metadata[metadataKey]\n : undefined;\n }\n static isForceTransformNode(node) {\n return NodeMetadata.get(node, 'forceTransformNode') === true;\n }\n static isIgnoredNode(node) {\n return NodeMetadata.get(node, 'ignoredNode') === true;\n }\n static isReplacedLiteral(literalNode) {\n return NodeMetadata.get(literalNode, 'replacedLiteral') === true;\n }\n}\nexports.NodeMetadata = NodeMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeStatementUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeStatementUtils {\n static getParentNodeWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];\n }\n static getParentNodesWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);\n }\n static getNextSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);\n }\n static getPreviousSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);\n }\n static getRootStatementOfNode(node) {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n throw new Error('Unable to find root statement for `Program` node');\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getRootStatementOfNode(parentNode);\n }\n return node;\n }\n static getScopeOfNode(node) {\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getScopeOfNode(parentNode);\n }\n return parentNode;\n }\n static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) {\n if (nodesWithStatements.length >= maxSize) {\n return nodesWithStatements;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isProgramNode(node) ||\n (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) {\n nodesWithStatements.push(node);\n }\n if (node !== parentNode) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);\n }\n return nodesWithStatements;\n }\n static getSiblingStatementByOffset(statement, offset) {\n const scopeNode = NodeStatementUtils.getScopeOfNode(statement);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(statement);\n return scopeBody[indexInScope + offset] || null;\n }\n}\nexports.NodeStatementUtils = NodeStatementUtils;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeUtils = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"../ASTParserFacade\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nconst NodeMetadata_1 = require(\"./NodeMetadata\");\nclass NodeUtils {\n static addXVerbatimPropertyTo(literalNode) {\n literalNode['x-verbatim-property'] = {\n content: literalNode.raw,\n precedence: escodegen.Precedence.Primary\n };\n return literalNode;\n }\n static clone(astTree) {\n return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));\n }\n static convertCodeToStructure(code) {\n const structure = ASTParserFacade_1.ASTParserFacade.parse(code, {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n sourceType: 'script'\n });\n estraverse.replace(structure, {\n enter: (node, parentNode) => {\n NodeUtils.parentizeNode(node, parentNode);\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeUtils.addXVerbatimPropertyTo(node);\n }\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n return node;\n }\n });\n return structure.body;\n }\n static convertStructureToCode(structure) {\n return structure.reduce((code, node) => {\n return code + escodegen.generate(node, {\n sourceMapWithCode: true\n }).code;\n }, '');\n }\n static getUnaryExpressionArgumentNode(unaryExpressionNode) {\n if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {\n return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);\n }\n return unaryExpressionNode.argument;\n }\n static parentizeAst(astTree) {\n var _a;\n const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null;\n estraverse.replace(astTree, {\n enter: NodeUtils.parentizeNode\n });\n if (parentNode) {\n astTree.parentNode = parentNode;\n }\n return astTree;\n }\n static parentizeNode(node, parentNode) {\n node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node;\n return node;\n }\n static cloneRecursive(node) {\n if (node === null) {\n return node;\n }\n const copy = {};\n const nodeKeys = Object.keys(node);\n nodeKeys\n .forEach((property) => {\n var _a;\n if (property === 'parentNode') {\n return;\n }\n const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null;\n let clonedValue;\n if (value === null || value instanceof RegExp) {\n clonedValue = value;\n }\n else if (value instanceof Array) {\n clonedValue = value.map(NodeUtils.cloneRecursive);\n }\n else if (typeof value === 'object') {\n clonedValue = NodeUtils.cloneRecursive(value);\n }\n else {\n clonedValue = value;\n }\n copy[property] = clonedValue;\n });\n return copy;\n }\n}\nexports.NodeUtils = NodeUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ScopeIdentifiersTraverser_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTraverser = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IScopeAnalyzer_1 = require(\"../interfaces/analyzers/scope-analyzer/IScopeAnalyzer\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nlet ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser {\n constructor(scopeAnalyzer) {\n this.scopeAnalyzer = scopeAnalyzer;\n }\n traverseScopeIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeThroughIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const variable of currentScope.variables) {\n if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) {\n continue;\n }\n const isBubblingDeclaration = variable\n .identifiers\n .some((identifier) => identifier.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode)\n && identifier.parentNode.shorthand);\n callback({\n isGlobalDeclaration,\n isBubblingDeclaration,\n rootScope,\n variable,\n variableScope,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const reference of currentScope.through) {\n callback({\n reference,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeThroughIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n};\nScopeIdentifiersTraverser.argumentsVariableName = 'arguments';\nScopeIdentifiersTraverser.globalScopeNames = [\n 'global',\n 'module'\n];\nScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== \"undefined\" && IScopeAnalyzer_1.IScopeAnalyzer) === \"function\" ? _a : Object])\n], ScopeIdentifiersTraverser);\nexports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar Options_1, _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Options = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst class_validator_1 = require(\"class-validator\");\nconst TInputOptions_1 = require(\"../types/options/TInputOptions\");\nconst TOptionsPreset_1 = require(\"../types/options/TOptionsPreset\");\nconst TStringArrayWrappersType_1 = require(\"../types/options/TStringArrayWrappersType\");\nconst TTypeFromEnum_1 = require(\"../types/utils/TTypeFromEnum\");\nconst IOptionsNormalizer_1 = require(\"../interfaces/options/IOptionsNormalizer\");\nconst IdentifierNamesGenerator_1 = require(\"../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst Default_1 = require(\"./presets/Default\");\nconst LowObfuscation_1 = require(\"./presets/LowObfuscation\");\nconst MediumObfuscation_1 = require(\"./presets/MediumObfuscation\");\nconst HighObfuscation_1 = require(\"./presets/HighObfuscation\");\nconst ValidationErrorsFormatter_1 = require(\"./ValidationErrorsFormatter\");\nconst IsAllowedForObfuscationTargets_1 = require(\"./validators/IsAllowedForObfuscationTargets\");\nlet Options = Options_1 = class Options {\n constructor(inputOptions, optionsNormalizer) {\n var _a;\n const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default);\n Object.assign(this, optionsPreset, inputOptions);\n const errors = class_validator_1.validateSync(this, Options_1.validatorOptions);\n if (errors.length) {\n throw new ReferenceError(`Validation failed. errors:\\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`);\n }\n Object.assign(this, optionsNormalizer.normalize(this));\n }\n static getOptionsByPreset(optionsPreset) {\n var _a;\n const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null;\n if (!options) {\n throw new Error(`Options for preset name \\`${optionsPreset}\\` are not found`);\n }\n return options;\n }\n};\nOptions.optionPresetsMap = new Map([\n [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET],\n [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET]\n]);\nOptions.validatorOptions = {\n validationError: {\n target: false\n }\n};\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"compact\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"controlFlowFlattening\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"controlFlowFlatteningThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"deadCodeInjection\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"deadCodeInjectionThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtection\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtectionInterval\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"disableConsoleOutput\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([\n ObfuscationTarget_1.ObfuscationTarget.Browser,\n ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval,\n ]),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"domainLock\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"forceTransformStrings\", void 0);\n__decorate([\n class_validator_1.IsIn([\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator\n ]),\n __metadata(\"design:type\", typeof (_a = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _a : Object)\n], Options.prototype, \"identifierNamesGenerator\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"identifiersPrefix\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),\n class_validator_1.ArrayNotEmpty(),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"identifiersDictionary\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"ignoreRequireImports\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"inputFileName\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"log\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"numbersToExpressions\", void 0);\n__decorate([\n class_validator_1.IsIn([\n OptionsPreset_1.OptionsPreset.Default,\n OptionsPreset_1.OptionsPreset.LowObfuscation,\n OptionsPreset_1.OptionsPreset.MediumObfuscation,\n OptionsPreset_1.OptionsPreset.HighObfuscation\n ]),\n __metadata(\"design:type\", typeof (_b = typeof TOptionsPreset_1.TOptionsPreset !== \"undefined\" && TOptionsPreset_1.TOptionsPreset) === \"function\" ? _b : Object)\n], Options.prototype, \"optionsPreset\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameGlobals\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameProperties\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedNames\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedStrings\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"rotateStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"selfDefending\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"shuffleStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"simplify\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"sourceMap\", void 0);\n__decorate([\n class_validator_1.IsString(),\n class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)),\n class_validator_1.IsUrl({\n require_protocol: true,\n require_tld: false,\n require_valid_protocol: true\n }),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapBaseUrl\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapFileName\", void 0);\n__decorate([\n class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]),\n __metadata(\"design:type\", typeof (_c = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _c : Object)\n], Options.prototype, \"sourceMapMode\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"splitStrings\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)),\n class_validator_1.Min(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"splitStringsChunkLength\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArray\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayEncoding\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayNotEmpty(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayIndexesType\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayIndexShift\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayWrappersChainedCalls\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersCount\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(2),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersParametersMaxCount\", void 0);\n__decorate([\n class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]),\n __metadata(\"design:type\", typeof (_d = typeof TStringArrayWrappersType_1.TStringArrayWrappersType !== \"undefined\" && TStringArrayWrappersType_1.TStringArrayWrappersType) === \"function\" ? _d : Object)\n], Options.prototype, \"stringArrayWrappersType\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayThreshold\", void 0);\n__decorate([\n class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]),\n __metadata(\"design:type\", typeof (_e = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _e : Object)\n], Options.prototype, \"target\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"transformObjectKeys\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"unicodeEscapeSequence\", void 0);\nOptions = Options_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)),\n __metadata(\"design:paramtypes\", [typeof (_f = typeof TInputOptions_1.TInputOptions !== \"undefined\" && TInputOptions_1.TInputOptions) === \"function\" ? _f : Object, typeof (_g = typeof IOptionsNormalizer_1.IOptionsNormalizer !== \"undefined\" && IOptionsNormalizer_1.IOptionsNormalizer) === \"function\" ? _g : Object])\n], Options);\nexports.Options = Options;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar OptionsNormalizer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsNormalizer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ControlFlowFlatteningThresholdRule_1 = require(\"./normalizer-rules/ControlFlowFlatteningThresholdRule\");\nconst DeadCodeInjectionRule_1 = require(\"./normalizer-rules/DeadCodeInjectionRule\");\nconst DeadCodeInjectionThresholdRule_1 = require(\"./normalizer-rules/DeadCodeInjectionThresholdRule\");\nconst DomainLockRule_1 = require(\"./normalizer-rules/DomainLockRule\");\nconst InputFileNameRule_1 = require(\"./normalizer-rules/InputFileNameRule\");\nconst SeedRule_1 = require(\"./normalizer-rules/SeedRule\");\nconst SelfDefendingRule_1 = require(\"./normalizer-rules/SelfDefendingRule\");\nconst SourceMapBaseUrlRule_1 = require(\"./normalizer-rules/SourceMapBaseUrlRule\");\nconst SourceMapFileNameRule_1 = require(\"./normalizer-rules/SourceMapFileNameRule\");\nconst SplitStringsChunkLengthRule_1 = require(\"./normalizer-rules/SplitStringsChunkLengthRule\");\nconst StringArrayRule_1 = require(\"./normalizer-rules/StringArrayRule\");\nconst StringArrayEncodingRule_1 = require(\"./normalizer-rules/StringArrayEncodingRule\");\nconst StringArrayWappersChainedCalls_1 = require(\"./normalizer-rules/StringArrayWappersChainedCalls\");\nlet OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer {\n normalize(options) {\n let normalizedOptions = Object.assign({}, options);\n for (const normalizerRule of OptionsNormalizer_1.normalizerRules) {\n normalizedOptions = normalizerRule(normalizedOptions);\n }\n return normalizedOptions;\n }\n};\nOptionsNormalizer.normalizerRules = [\n ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule,\n DeadCodeInjectionRule_1.DeadCodeInjectionRule,\n DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule,\n DomainLockRule_1.DomainLockRule,\n InputFileNameRule_1.InputFileNameRule,\n SeedRule_1.SeedRule,\n SelfDefendingRule_1.SelfDefendingRule,\n SourceMapBaseUrlRule_1.SourceMapBaseUrlRule,\n SourceMapFileNameRule_1.SourceMapFileNameRule,\n SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule,\n StringArrayRule_1.StringArrayRule,\n StringArrayEncodingRule_1.StringArrayEncodingRule,\n StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule,\n];\nOptionsNormalizer = OptionsNormalizer_1 = __decorate([\n inversify_1.injectable()\n], OptionsNormalizer);\nexports.OptionsNormalizer = OptionsNormalizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationErrorsFormatter = void 0;\nclass ValidationErrorsFormatter {\n static format(errors) {\n return errors\n .reduce((errorMessages, error) => [\n ...errorMessages,\n ValidationErrorsFormatter.formatWithNestedConstraints(error)\n ], [])\n .join('\\n');\n }\n static formatWithNestedConstraints(error) {\n const constraints = error.constraints;\n if (!constraints) {\n return `\\`${error.property}\\` error\\n`;\n }\n const rootError = `\\`${error.property}\\` errors:\\n`;\n const nestedErrors = Object\n .keys(constraints)\n .map((constraint) => ` - ${constraints[constraint]}\\n`)\n .join();\n return `${rootError}${nestedErrors}`;\n }\n}\nexports.ValidationErrorsFormatter = ValidationErrorsFormatter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowFlatteningThresholdRule = void 0;\nconst ControlFlowFlatteningThresholdRule = (options) => {\n if (options.controlFlowFlatteningThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 });\n }\n return options;\n};\nexports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionRule = void 0;\nconst Default_1 = require(\"../presets/Default\");\nconst DeadCodeInjectionRule = (options) => {\n if (options.deadCodeInjection) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: true, stringArray: true });\n if (!options.stringArrayThreshold) {\n options = Object.assign(Object.assign({}, options), { stringArray: true, stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold });\n }\n }\n return options;\n};\nexports.DeadCodeInjectionRule = DeadCodeInjectionRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionThresholdRule = void 0;\nconst DeadCodeInjectionThresholdRule = (options) => {\n if (options.deadCodeInjectionThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 });\n }\n return options;\n};\nexports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockRule = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nconst DomainLockRule = (options) => {\n if (options.domainLock.length) {\n const normalizedDomains = [];\n for (const domain of options.domainLock) {\n normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));\n }\n options = Object.assign(Object.assign({}, options), { domainLock: normalizedDomains });\n }\n return options;\n};\nexports.DomainLockRule = DomainLockRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst InputFileNameRule = (options) => {\n let { inputFileName } = options;\n if (inputFileName) {\n inputFileName = inputFileName\n .replace(/^\\/+/, '')\n .split(StringSeparator_1.StringSeparator.Dot)\n .slice(0, -1)\n .join(StringSeparator_1.StringSeparator.Dot) || inputFileName;\n options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` });\n }\n return options;\n};\nexports.InputFileNameRule = InputFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeedRule = void 0;\nconst SeedRule = (options) => {\n if (options.seed) {\n return Object.assign(Object.assign({}, options), { seed: options.seed });\n }\n const getRandomInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n };\n return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) });\n};\nexports.SeedRule = SeedRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingRule = void 0;\nconst SelfDefendingRule = (options) => {\n if (options.selfDefending) {\n options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true });\n }\n return options;\n};\nexports.SelfDefendingRule = SelfDefendingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapBaseUrlRule = void 0;\nconst SourceMapBaseUrlRule = (options) => {\n const { sourceMapBaseUrl } = options;\n if (!options.sourceMapFileName) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' });\n return options;\n }\n if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${sourceMapBaseUrl}/` });\n }\n return options;\n};\nexports.SourceMapBaseUrlRule = SourceMapBaseUrlRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst SourceMapFileNameRule = (options) => {\n let { sourceMapFileName } = options;\n if (sourceMapFileName) {\n sourceMapFileName = sourceMapFileName\n .replace(/^\\/+/, '')\n .replace(/(?:\\.js)?(?:\\.map)?$/, '');\n let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot);\n const sourceMapFileNamePartsCount = sourceMapFileNameParts.length;\n const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];\n if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {\n sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);\n }\n sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot);\n options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${sourceMapFileName}.js.map` });\n }\n return options;\n};\nexports.SourceMapFileNameRule = SourceMapFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringsChunkLengthRule = void 0;\nconst SplitStringsChunkLengthRule = (options) => {\n if (options.splitStringsChunkLength === 0) {\n options = Object.assign(Object.assign({}, options), { splitStrings: false, splitStringsChunkLength: 0 });\n }\n else {\n options = Object.assign(Object.assign({}, options), { splitStringsChunkLength: Math.floor(options.splitStringsChunkLength) });\n }\n return options;\n};\nexports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncodingRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayEncodingRule = (options) => {\n if (!options.stringArrayEncoding.length) {\n options = Object.assign(Object.assign({}, options), { stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ] });\n }\n return options;\n};\nexports.StringArrayEncodingRule = StringArrayEncodingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayRule = (options) => {\n if (!options.stringArray) {\n options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ], stringArrayIndexShift: false, stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0, stringArrayThreshold: 0 });\n }\n return options;\n};\nexports.StringArrayRule = StringArrayRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersChainedCallsRule = void 0;\nconst StringArrayWrappersChainedCallsRule = (options) => {\n if (options.stringArrayWrappersCount === 0) {\n options = Object.assign(Object.assign({}, options), { stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0 });\n }\n return options;\n};\nexports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nexports.DEFAULT_PRESET = Object.freeze({\n compact: true,\n config: '',\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0.75,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0.4,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n optionsPreset: OptionsPreset_1.OptionsPreset.Default,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: true,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: true,\n simplify: true,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 10,\n stringArray: true,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: true,\n stringArrayWrappersChainedCalls: true,\n stringArrayWrappersCount: 1,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0.75,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HIGH_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MediumObfuscation_1 = require(\"./MediumObfuscation\");\nexports.HIGH_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET), { controlFlowFlatteningThreshold: 1, deadCodeInjectionThreshold: 1, debugProtection: true, debugProtectionInterval: true, optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation, splitStringsChunkLength: 5, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Rc4\n ], stringArrayWrappersCount: 5, stringArrayWrappersParametersMaxCount: 5, stringArrayThreshold: 1 }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LOW_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst Default_1 = require(\"./Default\");\nexports.LOW_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), { disableConsoleOutput: true, optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation, rotateStringArray: true, selfDefending: true, shuffleStringArray: true, simplify: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MEDIUM_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst LowObfuscation_1 = require(\"./LowObfuscation\");\nexports.MEDIUM_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, LowObfuscation_1.LOW_OBFUSCATION_PRESET), { controlFlowFlattening: true, deadCodeInjection: true, numbersToExpressions: true, optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation, splitStrings: true, splitStringsChunkLength: 10, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Base64\n ], stringArrayWrappersCount: 2, stringArrayWrappersParametersMaxCount: 4, stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function, transformObjectKeys: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_ADDITIONAL_NODES_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nexports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({\n compact: true,\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: false,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: false,\n simplify: false,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 0,\n stringArray: false,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: false,\n stringArrayWrappersChainedCalls: false,\n stringArrayWrappersCount: 0,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IsAllowedForObfuscationTargets = void 0;\nconst class_validator_1 = require(\"class-validator\");\nconst fast_deep_equal_1 = __importDefault(require(\"fast-deep-equal\"));\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst Default_1 = require(\"../presets/Default\");\nfunction IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) {\n return (optionsObject, propertyName) => {\n class_validator_1.registerDecorator({\n propertyName,\n constraints: [obfuscationTargets],\n name: 'IsAllowedForObfuscationTargets',\n options: validationOptions,\n target: optionsObject.constructor,\n validator: {\n validate(value, validationArguments) {\n const options = validationArguments.object;\n const defaultValue = Default_1.DEFAULT_PRESET[propertyName];\n const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);\n return isDefaultValue || obfuscationTargets.includes(options.target);\n },\n defaultMessage(validationArguments) {\n const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `);\n return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;\n }\n }\n });\n };\n}\nexports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatedCode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst ICryptUtils_1 = require(\"../interfaces/utils/ICryptUtils\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nlet ObfuscatedCode = class ObfuscatedCode {\n constructor(cryptUtils, options) {\n this.cryptUtils = cryptUtils;\n this.options = options;\n }\n initialize(obfuscatedCode, sourceMap) {\n this.obfuscatedCode = obfuscatedCode;\n this.sourceMap = sourceMap;\n }\n getObfuscatedCode() {\n return this.correctObfuscatedCode();\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.obfuscatedCode;\n }\n correctObfuscatedCode() {\n if (!this.sourceMap) {\n return this.obfuscatedCode;\n }\n const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;\n let sourceMappingUrl = '//# sourceMappingURL=';\n switch (this.options.sourceMapMode) {\n case SourceMapMode_1.SourceMapMode.Inline:\n sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;\n break;\n case SourceMapMode_1.SourceMapMode.Separate:\n default:\n if (!sourceMapUrl) {\n return this.obfuscatedCode;\n }\n sourceMappingUrl += sourceMapUrl;\n }\n return `${this.obfuscatedCode}\\n${sourceMappingUrl}`;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"obfuscatedCode\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"sourceMap\", void 0);\nObfuscatedCode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== \"undefined\" && ICryptUtils_1.ICryptUtils) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObfuscatedCode);\nexports.ObfuscatedCode = ObfuscatedCode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceCode = void 0;\nclass SourceCode {\n constructor(sourceCode, sourceMap) {\n this.sourceCode = sourceCode;\n this.sourceMap = sourceMap;\n }\n getSourceCode() {\n return this.sourceCode;\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.sourceCode;\n }\n}\nexports.SourceCode = SourceCode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet ArrayStorage = class ArrayStorage {\n constructor(randomGenerator, options) {\n this.storageLength = 0;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = [];\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n delete(key) {\n var _a;\n const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined;\n if (deletedElement) {\n this.storageLength--;\n }\n return deletedElement;\n }\n get(key) {\n return this.storage[key];\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in array storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n const key = this.storage.indexOf(value);\n return key >= 0 ? key : null;\n }\n getLength() {\n return this.storageLength;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n mergeWith(storage, mergeId = false) {\n this.storage = [...this.storage, ...storage.getStorage()];\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n if (key === this.storageLength) {\n this.storage.push(value);\n }\n else {\n this.storage.splice(key, 0, value);\n }\n this.storageLength++;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], ArrayStorage.prototype, \"storage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ArrayStorage.prototype, \"storageId\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ArrayStorage.prototype, \"initialize\", null);\nArrayStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ArrayStorage);\nexports.ArrayStorage = ArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet MapStorage = class MapStorage {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = new Map();\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n get(key) {\n return this.storage.get(key);\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in map storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n for (const [key, storageValue] of this.storage) {\n if (value === storageValue) {\n return key;\n }\n }\n return null;\n }\n getLength() {\n return this.storage.size;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n has(key) {\n return this.storage.has(key);\n }\n mergeWith(storage, mergeId = false) {\n this.storage = new Map([...this.storage, ...storage.getStorage()]);\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n this.storage.set(key, value);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], MapStorage.prototype, \"storageId\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], MapStorage.prototype, \"storage\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MapStorage.prototype, \"initialize\", null);\nMapStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], MapStorage);\nexports.MapStorage = MapStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CustomCodeHelperGroupStorage_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroupStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperGroupFactory_1 = require(\"../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst CustomCodeHelperGroup_1 = require(\"../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage {\n constructor(customCodeHelperGroupFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;\n }\n initialize() {\n super.initialize();\n CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => {\n const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);\n this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);\n });\n }\n};\nCustomCodeHelperGroupStorage.customCodeHelperGroupsList = [\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray\n];\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], CustomCodeHelperGroupStorage.prototype, \"initialize\", null);\nCustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== \"undefined\" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], CustomCodeHelperGroupStorage);\nexports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nControlFlowStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ControlFlowStorage);\nexports.ControlFlowStorage = ControlFlowStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LiteralNodesCacheStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n buildKey(literalValue, stringArrayStorageItemData) {\n return `${literalValue}-${Boolean(stringArrayStorageItemData)}`;\n }\n shouldUseCachedValue(key, stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4\n && this.storage.has(key);\n }\n};\nLiteralNodesCacheStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], LiteralNodesCacheStorage);\nexports.LiteralNodesCacheStorage = LiteralNodesCacheStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperLexicalScopeDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayScopeCallsWrapperLexicalScopeDataStorage);\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperNamesDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperNamesDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayScopeCallsWrapperNamesDataStorage);\nexports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorage_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICryptUtilsSwappedAlphabet_1 = require(\"../../interfaces/utils/ICryptUtilsSwappedAlphabet\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage {\n constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtilsSwappedAlphabet) {\n super(randomGenerator, options);\n this.rc4EncodedValuesSourcesCache = new Map();\n this.indexShiftAmount = 0;\n this.rotationAmount = 0;\n this.stringArrayStorageCallsWrapperNamesMap = new Map();\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.arrayUtils = arrayUtils;\n this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet;\n this.rc4Keys = this.randomGenerator.getRandomGenerator()\n .n(() => this.randomGenerator.getRandomGenerator().string({\n length: StringArrayStorage_1.rc4KeyLength\n }), StringArrayStorage_1.rc4KeysCount);\n }\n initialize() {\n super.initialize();\n this.indexShiftAmount = this.options.stringArrayIndexShift\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount)\n : 0;\n this.rotationAmount = this.options.rotateStringArray\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount)\n : 0;\n }\n get(value) {\n return this.getOrSetIfDoesNotExist(value);\n }\n getIndexShiftAmount() {\n return this.indexShiftAmount;\n }\n getRotationAmount() {\n return this.rotationAmount;\n }\n getStorageName() {\n return this.getStorageId();\n }\n getStorageId() {\n if (!this.stringArrayStorageName) {\n this.stringArrayStorageName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n }\n return this.stringArrayStorageName;\n }\n getStorageCallsWrapperName(stringArrayEncoding) {\n var _a;\n const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap\n .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null;\n if (storageCallsWrapperName) {\n return storageCallsWrapperName;\n }\n const newStorageCallsWrapperName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName);\n return newStorageCallsWrapperName;\n }\n rotateStorage() {\n if (!this.getLength()) {\n return;\n }\n this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount));\n }\n shuffleStorage() {\n this.storage = new Map(this.arrayUtils\n .shuffle(Array.from(this.storage.entries()))\n .map(([value, stringArrayStorageItemData], index) => {\n stringArrayStorageItemData.index = index;\n return [value, stringArrayStorageItemData];\n })\n .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index));\n }\n getOrSetIfDoesNotExist(value) {\n const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value);\n const storedStringArrayStorageItemData = this.storage.get(encodedValue);\n if (storedStringArrayStorageItemData) {\n return storedStringArrayStorageItemData;\n }\n const stringArrayStorageItemData = {\n encodedValue,\n encoding,\n decodeKey,\n value,\n index: this.getLength()\n };\n this.storage.set(encodedValue, stringArrayStorageItemData);\n return stringArrayStorageItemData;\n }\n getEncodedValue(value) {\n var _a;\n const encoding = this.options.stringArrayEncoding.length\n ? this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayEncoding)\n : null;\n if (!encoding) {\n throw new Error('`stringArrayEncoding` option array is empty');\n }\n switch (encoding) {\n case StringArrayEncoding_1.StringArrayEncoding.Rc4: {\n const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(value, decodeKey));\n const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : [];\n let encodedValueSourcesLength = encodedValueSources.length;\n const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value);\n if (shouldAddValueToSourcesCache) {\n encodedValueSources.push(value);\n encodedValueSourcesLength++;\n }\n this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);\n if (encodedValueSourcesLength > 1) {\n return this.getEncodedValue(value);\n }\n return { encodedValue, encoding, decodeKey };\n }\n case StringArrayEncoding_1.StringArrayEncoding.Base64: {\n const decodeKey = null;\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(value);\n return { encodedValue, encoding, decodeKey };\n }\n default: {\n const decodeKey = null;\n const encodedValue = value;\n return { encodedValue, encoding, decodeKey };\n }\n }\n }\n};\nStringArrayStorage.minimumRotationAmount = 100;\nStringArrayStorage.maximumRotationAmount = 500;\nStringArrayStorage.minimumIndexShiftAmount = 100;\nStringArrayStorage.maximumIndexShiftAmount = 500;\nStringArrayStorage.rc4KeyLength = 4;\nStringArrayStorage.rc4KeysCount = 50;\nStringArrayStorage.stringArrayNameLength = 4;\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], StringArrayStorage.prototype, \"initialize\", null);\nStringArrayStorage = StringArrayStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object, typeof (_e = typeof ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet !== \"undefined\" && ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet) === \"function\" ? _e : Object])\n], StringArrayStorage);\nexports.StringArrayStorage = StringArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitedLexicalScopeNodesStackStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ArrayStorage_1 = require(\"../ArrayStorage\");\nlet VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n getLastElement() {\n return this.arrayUtils.getLastElement(this.getStorage());\n }\n getPenultimateElement() {\n var _a;\n const storageLength = this.getLength();\n return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined;\n }\n push(nodeWithLexicalScopeStatements) {\n const storageLength = this.getLength();\n this.set(storageLength, nodeWithLexicalScopeStatements);\n }\n pop() {\n const storageLength = this.getLength();\n return this.delete(storageLength - 1);\n }\n};\nVisitedLexicalScopeNodesStackStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _c : Object])\n], VisitedLexicalScopeNodesStackStorage);\nexports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst ILevelledTopologicalSorter_1 = require(\"../interfaces/utils/ILevelledTopologicalSorter\");\nlet AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder {\n constructor(levelledTopologicalSorter) {\n this.levelledTopologicalSorter = levelledTopologicalSorter;\n }\n build(normalizedTransformers) {\n const transformerNames = Object.keys(normalizedTransformers);\n const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers);\n for (const [precedent, consequent] of relationEdges) {\n this.levelledTopologicalSorter.add(precedent, consequent);\n }\n return this.levelledTopologicalSorter.sortByGroups();\n }\n buildTransformersRelationEdges(transformerNames, normalizedTransformers) {\n const relationEdges = [];\n for (const transformerName of transformerNames) {\n const transformer = normalizedTransformers[transformerName];\n const runAfterRelations = transformer.runAfter;\n if (!runAfterRelations || !runAfterRelations.length) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n for (const runAfterRelation of runAfterRelations) {\n const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined;\n if (isUnknownRelation) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n relationEdges.push([runAfterRelation, transformerName]);\n }\n }\n return relationEdges;\n }\n};\nAbstractTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== \"undefined\" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === \"function\" ? _a : Object])\n], AbstractTransformerNamesGroupsBuilder);\nexports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet ArrayUtils = class ArrayUtils {\n constructor(randomGenerator) {\n this.randomGenerator = randomGenerator;\n }\n createWithRange(length) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(i);\n }\n return range;\n }\n fillWithRange(length, valueFunction) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(valueFunction(i));\n }\n return range;\n }\n findMostOccurringElement(array) {\n var _a;\n const arrayLength = array.length;\n if (!arrayLength) {\n return null;\n }\n const elementsMap = {};\n let mostOccurringElement = array[0];\n let mostOccurringElementCount = 1;\n for (const element of array) {\n const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0;\n const updatedElementCount = currentElementCount + 1;\n if (updatedElementCount > mostOccurringElementCount) {\n mostOccurringElement = element;\n mostOccurringElementCount = updatedElementCount;\n }\n elementsMap[element] = updatedElementCount;\n }\n return mostOccurringElement;\n }\n getLastElement(array) {\n var _a;\n const arrayLength = array.length;\n return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined;\n }\n rotate(array, times) {\n if (!array.length) {\n throw new ReferenceError('Cannot rotate empty array.');\n }\n if (times <= 0) {\n return array;\n }\n const newArray = array;\n let temp;\n while (times--) {\n temp = newArray.pop();\n if (temp) {\n newArray.unshift(temp);\n }\n }\n return newArray;\n }\n shuffle(array) {\n const shuffledArray = [...array];\n for (let i = shuffledArray.length; i; i--) {\n const j = Math.floor(this.randomGenerator.getMathRandom() * i);\n [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];\n }\n return shuffledArray;\n }\n};\nArrayUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], ArrayUtils);\nexports.ArrayUtils = ArrayUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Base64Alphabet_1 = require(\"../constants/Base64Alphabet\");\nconst RandomGenerator_1 = require(\"./RandomGenerator\");\nconst Utils_1 = require(\"./Utils\");\nlet CryptUtils = class CryptUtils {\n constructor(randomGenerator) {\n this.base64Alphabet = Base64Alphabet_1.base64alphabet;\n this.randomGenerator = randomGenerator;\n }\n btoa(string) {\n const chars = this.base64Alphabet;\n let output = '';\n string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16));\n });\n for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {\n charCode = string.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new Error('\\'btoa\\' failed: The string to be encoded contains characters outside of the Latin1 range.');\n }\n block = block << 8 | charCode;\n }\n return output;\n }\n hideString(str, length) {\n const escapeRegExp = (s) => s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const randomMerge = (s1, s2) => {\n let i1 = -1;\n let i2 = -1;\n let result = '';\n while (i1 < s1.length || i2 < s2.length) {\n if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {\n result += s2.charAt(++i2);\n }\n else {\n result += s1.charAt(++i1);\n }\n }\n return result;\n };\n const randomString = this.randomGenerator.getRandomGenerator().string({\n length: length,\n pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool\n });\n let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), '');\n const randomStringDiffArray = randomStringDiff.split('');\n this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);\n randomStringDiff = randomStringDiffArray.join('');\n return [randomMerge(str, randomStringDiff), randomStringDiff];\n }\n rc4(string, key) {\n const s = [];\n let j = 0;\n let x;\n let result = '';\n for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n i = 0;\n j = 0;\n for (let y = 0; y < string.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n return result;\n }\n};\nCryptUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], CryptUtils);\nexports.CryptUtils = CryptUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtilsSwappedAlphabet = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Base64AlphabetSwapped_1 = require(\"../constants/Base64AlphabetSwapped\");\nconst CryptUtils_1 = require(\"./CryptUtils\");\nlet CryptUtilsSwappedAlphabet = class CryptUtilsSwappedAlphabet extends CryptUtils_1.CryptUtils {\n constructor(randomGenerator) {\n super(randomGenerator);\n this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped;\n }\n};\nCryptUtilsSwappedAlphabet = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], CryptUtilsSwappedAlphabet);\nexports.CryptUtilsSwappedAlphabet = CryptUtilsSwappedAlphabet;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EscapeSequenceEncoder_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceEncoder = void 0;\nconst inversify_1 = require(\"inversify\");\nlet EscapeSequenceEncoder = EscapeSequenceEncoder_1 = class EscapeSequenceEncoder {\n constructor() {\n this.stringsCache = new Map();\n }\n encode(string, encodeAllSymbols) {\n const cacheKey = `${string}-${String(encodeAllSymbols)}`;\n if (this.stringsCache.has(cacheKey)) {\n return this.stringsCache.get(cacheKey);\n }\n const radix = 16;\n const replaceRegExp = new RegExp('[\\\\s\\\\S]', 'g');\n let prefix;\n let template;\n const result = string.replace(replaceRegExp, (character) => {\n const shouldEncodeCharacter = encodeAllSymbols\n || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character);\n if (!shouldEncodeCharacter) {\n return character;\n }\n if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(character)) {\n prefix = '\\\\x';\n template = '00';\n }\n else {\n prefix = '\\\\u';\n template = '0000';\n }\n return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;\n });\n this.stringsCache.set(cacheKey, result);\n this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);\n return result;\n }\n};\nEscapeSequenceEncoder.ASCIICharactersRegExp = /[\\x00-\\x7F]/;\nEscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\\x00-\\x1F\\x7F-\\x9F'\"\\\\\\s]/;\nEscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([\n inversify_1.injectable()\n], EscapeSequenceEncoder);\nexports.EscapeSequenceEncoder = EscapeSequenceEncoder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelledTopologicalSorter = void 0;\nconst inversify_1 = require(\"inversify\");\nlet LevelledTopologicalSorter = class LevelledTopologicalSorter {\n constructor() {\n this.graph = new Map();\n }\n add(precedent, consequent = null) {\n if (consequent !== null) {\n return this.link(precedent, consequent);\n }\n return this.register(precedent);\n }\n sort() {\n const consequents = Array.from(this.graph.keys());\n const results = [];\n const marks = {};\n for (const consequent of consequents) {\n if (marks[consequent] !== undefined) {\n continue;\n }\n this.visit(results, marks, consequent);\n }\n return results;\n }\n sortByGroups() {\n this.sort();\n const resultItemsGroups = [];\n while (this.hasNodes()) {\n const rootNodes = this.findRootNodes();\n resultItemsGroups.push(rootNodes);\n for (const rootNode of rootNodes) {\n this.delete(rootNode);\n }\n }\n return resultItemsGroups;\n }\n delete(consequent) {\n const precedents = this.getPrecedents(consequent);\n if (precedents.length) {\n throw new Error(`Unable to remove non-root node: ${consequent}`);\n }\n this.graph.delete(consequent);\n const precedentsGroups = Array.from(this.graph.values());\n for (const precedentsGroup of precedentsGroups) {\n const precedentsCount = precedentsGroup.length - 1;\n for (let index = precedentsCount; index >= 0; index = index - 1) {\n if (precedentsGroup[index] !== consequent) {\n continue;\n }\n precedentsGroup.splice(index, 1);\n }\n }\n }\n findRootNodes() {\n const consequents = Array.from(this.graph.keys());\n const rootNodes = [];\n for (const consequent of consequents) {\n if (!this.hasPrecedents(consequent)) {\n rootNodes.push(consequent);\n }\n }\n return rootNodes;\n }\n getPrecedents(consequent) {\n const precedents = this.graph.get(consequent);\n if (!precedents) {\n throw new Error(`Unknown node: ${consequent}`);\n }\n return precedents;\n }\n hasNodes() {\n return this.graph.size > 0;\n }\n hasPrecedents(consequent) {\n return this.getPrecedents(consequent).length > 0;\n }\n link(precedent, consequent) {\n this.register(precedent);\n this.register(consequent);\n const target = this.graph.get(consequent);\n if (target && !target.includes(precedent)) {\n target.push(precedent);\n }\n return this;\n }\n register(name) {\n if (!this.graph.has(name)) {\n this.graph.set(name, []);\n }\n return this;\n }\n visit(results, marks, name) {\n const mark = marks[name];\n if (mark === 'visiting') {\n throw new Error(`Detected cycle involving node: ${name}`);\n }\n if (mark) {\n return;\n }\n marks[name] = 'visiting';\n const precedents = this.getPrecedents(name);\n for (const precedent of precedents) {\n this.visit(results, marks, precedent);\n }\n marks[name] = 'ok';\n results.push(name);\n return;\n }\n};\nLevelledTopologicalSorter = __decorate([\n inversify_1.injectable()\n], LevelledTopologicalSorter);\nexports.LevelledTopologicalSorter = LevelledTopologicalSorter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberUtils = void 0;\nconst Utils_1 = require(\"./Utils\");\nclass NumberUtils {\n static toHex(number) {\n const radix = 16;\n const basePart = typeof number === 'number'\n ? number.toString(radix)\n : `${number.toString(radix)}n`;\n return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`;\n }\n static isCeil(number) {\n return typeof number === 'number'\n ? number % 1 === 0\n : true;\n }\n static isPositive(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (number > 0) {\n return true;\n }\n if (number < 0) {\n return false;\n }\n if (1 / number === Number.POSITIVE_INFINITY) {\n return true;\n }\n return false;\n }\n static isUnsafeNumber(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER;\n }\n static getFactors(number) {\n if (number === 0) {\n throw new Error('Invalid number. Allowed only non-zero number');\n }\n number = Math.abs(number);\n if (number === 1) {\n return [-number, number];\n }\n const factors = [];\n const root = Math.sqrt(number);\n const isEven = number % 2 === 0;\n const incrementValue = isEven ? 1 : 2;\n for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) {\n if (number % currentFactor !== 0) {\n continue;\n }\n factors.push(...[-currentFactor, currentFactor]);\n const compliment = number / currentFactor;\n if (compliment !== currentFactor) {\n factors.push(...[-compliment, compliment]);\n }\n }\n return factors.sort((a, b) => a - b);\n }\n}\nexports.NumberUtils = NumberUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar RandomGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RandomGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst md5_1 = __importDefault(require(\"md5\"));\nconst chance_1 = require(\"chance\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst ISourceCode_1 = require(\"../interfaces/source-code/ISourceCode\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst AlphabetString_1 = require(\"../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../constants/AlphabetStringUppercase\");\nlet RandomGenerator = RandomGenerator_1 = class RandomGenerator {\n constructor(sourceCode, options) {\n this.sourceCode = sourceCode;\n this.options = options;\n }\n initialize() {\n this.randomGenerator = new chance_1.Chance(this.getRawSeed());\n }\n getMathRandom() {\n return this.getRandomInteger(0, 99999) / 100000;\n }\n getRandomGenerator() {\n return this.randomGenerator;\n }\n getRandomInteger(min, max) {\n return this.getRandomGenerator().integer({\n min: min,\n max: max\n });\n }\n getRandomIntegerExcluding(min, max, valuesToExclude) {\n const valuesToPickArray = [];\n for (let value = min; value <= max; value++) {\n if (valuesToExclude.includes(value)) {\n continue;\n }\n valuesToPickArray.push(value);\n }\n return this.randomGenerator.pickone(valuesToPickArray);\n }\n getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) {\n return this.getRandomGenerator().string({ length, pool });\n }\n getInputSeed() {\n return this.options.seed.toString();\n }\n getRawSeed() {\n const inputSeed = this.getInputSeed();\n const inputSeedParts = `${inputSeed}`.split('|');\n if (inputSeedParts.length > 1) {\n return inputSeed;\n }\n const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode());\n return `${inputSeed}|${sourceCodeMD5Hash}`;\n }\n};\nRandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`;\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof chance_1.Chance !== \"undefined\" && chance_1.Chance.Chance) === \"function\" ? _a : Object)\n], RandomGenerator.prototype, \"randomGenerator\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], RandomGenerator.prototype, \"initialize\", null);\nRandomGenerator = RandomGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof ISourceCode_1.ISourceCode !== \"undefined\" && ISourceCode_1.ISourceCode) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], RandomGenerator);\nexports.RandomGenerator = RandomGenerator;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringUtils = void 0;\nconst js_string_escape_1 = __importDefault(require(\"js-string-escape\"));\nclass StringUtils {\n static escapeJsString(string) {\n return js_string_escape_1.default(string);\n }\n}\nexports.StringUtils = StringUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utils = void 0;\nclass Utils {\n static buildVersionMessage(version, buildTimestamp) {\n if (!version || !buildTimestamp) {\n return 'unknown';\n }\n const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString();\n return `${version}_${buildDate}`;\n }\n static extractDomainFrom(url) {\n let domain;\n if (url.includes('://') || url.indexOf('//') === 0) {\n domain = url.split('/')[2];\n }\n else {\n domain = url.split('/')[0];\n }\n domain = domain.split(':')[0];\n return domain;\n }\n static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) {\n const baseIdentifiersPrefix = !!identifiersPrefix\n ? identifiersPrefix\n : Utils.baseMultipleSourcesIdentifiersPrefix;\n return `${baseIdentifiersPrefix}${sourceCodeIndex}`;\n }\n static makeEnum(enumLikeObject) {\n return Object.freeze(Object.assign({}, enumLikeObject));\n }\n}\nexports.Utils = Utils;\nUtils.baseMultipleSourcesIdentifiersPrefix = 'a';\nUtils.hexadecimalPrefix = '0x';\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => [];\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 5285;\nmodule.exports = webpackEmptyContext;","module.exports = require(\"@javascript-obfuscator/escodegen\");;","module.exports = require(\"acorn\");;","module.exports = require(\"chalk\");;","module.exports = require(\"chance\");;","module.exports = require(\"class-validator\");;","module.exports = require(\"commander\");;","module.exports = require(\"eslint-scope\");;","module.exports = require(\"estraverse\");;","module.exports = require(\"eventemitter3\");;","module.exports = require(\"fast-deep-equal\");;","module.exports = require(\"fs\");;","module.exports = require(\"inversify\");;","module.exports = require(\"js-string-escape\");;","module.exports = require(\"md5\");;","module.exports = require(\"mkdirp\");;","module.exports = require(\"multimatch\");;","module.exports = require(\"path\");;","module.exports = require(\"reflect-metadata\");;","module.exports = require(\"string-template\");;","module.exports = require(\"stringz\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(7568);\n","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)"],"sourceRoot":""} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.js b/src/node_modules/javascript-obfuscator/dist/index.js
new file mode 100644
index 0000000..d2cbc78
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.js
@@ -0,0 +1,3 @@
+/*! For license information please see index.js.LICENSE.txt */
+require("source-map-support").install(),module.exports=(()=>{"use strict";var e={3254:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=r(2895);e.exports=o.JavaScriptObfuscator},425:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ASTParserFacade=void 0;const s=i(r(6054)),c=a(r(2242));class d{static parse(e,t){const r=d.sourceTypes.length;for(let o=0;o<r;o++)try{return d.parseType(e,t,d.sourceTypes[o])}catch(t){if(o<r-1)continue;throw new Error(d.processParsingError(e,t.message,t.loc))}throw new Error("Acorn parsing error")}static parseType(e,t,r){const o=[],n=Object.assign(Object.assign({},t),{onComment:o,sourceType:r}),i=s.parse(e,n);return o.length&&(i.comments=o),i}static processParsingError(e,t,r){if(!r||!r.line||!r.column)throw new Error(t);const o=e.split(/\r?\n/)[r.line-1];if(!o)throw new Error(t);const n=Math.max(0,r.column-d.nearestSymbolsCount),i=Math.min(o.length,r.column+d.nearestSymbolsCount),a=d.colorError(">"),s=`...${o.slice(n,i).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${a} ${s}`)}}t.ASTParserFacade=d,d.colorError=c.default.red,d.nearestSymbolsCount=15,d.sourceTypes=["script","module"]},7086:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),f=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&l(t,e,r);return u(t,e),t},m=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},g=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0;const S=r(2991),y=r(5350),N=p(r(9385)),h=r(2596),_=r(7673),b=r(5082),I=r(4482),O=r(1403),E=r(698),v=r(7082),C=r(5670),T=r(6221),R=r(4212),A=r(8932),j=r(4941),M=r(425),F=r(4134),P=r(4741);let D=o=class{constructor(e,t,r,o,n,i){this.codeTransformersRunner=e,this.nodeTransformersRunner=t,this.randomGenerator=r,this.obfuscatedCodeFactory=o,this.logger=n,this.options=i}obfuscate(e){"string"!=typeof e&&(e="");const t=Date.now();this.logger.info(T.LoggingMessage.Version,P.Utils.buildVersionMessage("2.9.4",1606121270168)),this.logger.info(T.LoggingMessage.ObfuscationStarted),this.logger.info(T.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getInputSeed()),e=this.runCodeTransformationStage(e,C.CodeTransformationStage.PreparingTransformers);const r=this.parseCode(e),o=this.transformAstTree(r),n=this.generateCode(e,o);n.code=this.runCodeTransformationStage(n.code,C.CodeTransformationStage.FinalizingTransformers);const i=(Date.now()-t)/1e3;return this.logger.success(T.LoggingMessage.ObfuscationCompleted,i),this.getObfuscatedCode(n)}parseCode(e){return M.ASTParserFacade.parse(e,o.parseOptions)}transformAstTree(e){return e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Initializing),!F.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.ControlFlowFlattening)),this.options.renameProperties&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameProperties)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Converting),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.RenameIdentifiers),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.StringArray),this.options.simplify&&(e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Simplifying)),e=this.runNodeTransformationStage(e,A.NodeTransformationStage.Finalizing)):(this.logger.warn(T.LoggingMessage.EmptySourceCode),e)}generateCode(e,t){const r=Object.assign({},o.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);const n=N.generate(t,Object.assign(Object.assign({},r),{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}getObfuscatedCode(e){return this.obfuscatedCodeFactory(e.code,e.map)}runCodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.CodeTransformationStage,t),this.codeTransformersRunner.transform(e,o.codeTransformersList,t)}runNodeTransformationStage(e,t){return this.logger.info(T.LoggingMessage.NodeTransformationStage,t),this.nodeTransformersRunner.transform(e,o.nodeTransformersList,t)}};D.parseOptions={ecmaVersion:j.ecmaVersion,allowHashBang:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,locations:!0,ranges:!0},D.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},D.codeTransformersList=[v.CodeTransformer.HashbangOperatorTransformer],D.nodeTransformersList=[R.NodeTransformer.BooleanLiteralTransformer,R.NodeTransformer.BlockStatementControlFlowTransformer,R.NodeTransformer.BlockStatementSimplifyTransformer,R.NodeTransformer.CommentsTransformer,R.NodeTransformer.CustomCodeHelpersTransformer,R.NodeTransformer.DeadCodeInjectionTransformer,R.NodeTransformer.EscapeSequenceTransformer,R.NodeTransformer.EvalCallExpressionTransformer,R.NodeTransformer.ExportSpecifierTransformer,R.NodeTransformer.ExpressionStatementsMergeTransformer,R.NodeTransformer.FunctionControlFlowTransformer,R.NodeTransformer.IfStatementSimplifyTransformer,R.NodeTransformer.LabeledStatementTransformer,R.NodeTransformer.RenamePropertiesTransformer,R.NodeTransformer.MemberExpressionTransformer,R.NodeTransformer.MetadataTransformer,R.NodeTransformer.MethodDefinitionTransformer,R.NodeTransformer.NumberLiteralTransformer,R.NodeTransformer.NumberToNumericalExpressionTransformer,R.NodeTransformer.ObfuscatingGuardsTransformer,R.NodeTransformer.ObjectExpressionKeysTransformer,R.NodeTransformer.ObjectExpressionTransformer,R.NodeTransformer.ObjectPatternPropertiesTransformer,R.NodeTransformer.ParentificationTransformer,R.NodeTransformer.ScopeIdentifiersTransformer,R.NodeTransformer.SplitStringTransformer,R.NodeTransformer.StringArrayScopeCallsWrapperTransformer,R.NodeTransformer.StringArrayTransformer,R.NodeTransformer.TemplateLiteralTransformer,R.NodeTransformer.VariableDeclarationsMergeTransformer,R.NodeTransformer.VariablePreserveTransformer],D=o=f([S.injectable(),g(0,S.inject(y.ServiceIdentifiers.ICodeTransformersRunner)),g(1,S.inject(y.ServiceIdentifiers.INodeTransformersRunner)),g(2,S.inject(y.ServiceIdentifiers.IRandomGenerator)),g(3,S.inject(y.ServiceIdentifiers.Factory__IObfuscatedCode)),g(4,S.inject(y.ServiceIdentifiers.ILogger)),g(5,S.inject(y.ServiceIdentifiers.IOptions)),m("design:paramtypes",["function"==typeof(n=void 0!==_.ICodeTransformersRunner&&_.ICodeTransformersRunner)?n:Object,"function"==typeof(i=void 0!==E.INodeTransformersRunner&&E.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.TObfuscatedCodeFactory&&h.TObfuscatedCodeFactory)?s:Object,"function"==typeof(c=void 0!==b.ILogger&&b.ILogger)?c:Object,"function"==typeof(d=void 0!==I.IOptions&&I.IOptions)?d:Object])],D),t.JavaScriptObfuscator=D},2895:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptObfuscator=void 0,r(9906);const o=r(5350),n=r(1636),i=r(8516),a=r(4741);class s{static obfuscate(e,t={}){const r=new n.InversifyContainerFacade;r.load(e,"",t);const i=r.get(o.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),i}static obfuscateMultiple(e,t={}){if("object"!=typeof e)throw new Error("Source codes object should be a plain object");return Object.keys(e).reduce(((r,o,n)=>{const i=a.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,n),c=e[o],d=Object.assign(Object.assign({},t),{identifiersPrefix:i});return Object.assign(Object.assign({},r),{[o]:s.obfuscate(c,d)})}),{})}static getOptionsByPreset(e){return i.Options.getOptionsByPreset(e)}}t.JavaScriptObfuscator=s,s.version=null!=="2.9.4"?"2.9.4":"unknown"},3900:function(e,t,r){var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsGraphAnalyzer=void 0;const u=r(2991),f=r(5350),p=c(r(4523)),m=r(8904),g=r(8657),S=r(4134),y=r(8134);let N=o=class{constructor(e){this.calleeDataExtractorFactory=e}static getLimitIndex(e){const t=e-1,r=o.limitThresholdActivationLength-1;let n=t;return t>r&&(n=Math.round(r+t*o.limitThreshold),n>t&&(n=t)),n}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=o.getLimitIndex(e.length),r=[],n=e.length;for(let o=0;o<n&&!(o>t);o++){const t=e[o];p.traverse(t,{enter:o=>{if(S.NodeGuards.isCallExpressionNode(o))return t.parentNode!==y.NodeStatementUtils.getParentNodeWithStatements(o)?p.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,o)}})}return r}analyzeCallExpressionNode(e,t,r){o.calleeDataExtractorsList.forEach((o=>{const n=this.calleeDataExtractorFactory(o).extract(t,r.callee);n&&e.push(Object.assign(Object.assign({},n),{callsGraph:this.analyzeRecursive(n.callee.body)}))}))}};N.calleeDataExtractorsList=[g.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,g.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,g.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],N.limitThresholdActivationLength=25,N.limitThreshold=.002,N=o=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__ICalleeDataExtractor)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TCalleeDataExtractorFactory&&m.TCalleeDataExtractorFactory)?n:Object])],N),t.CallsGraphAnalyzer=N},3159:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;const n=r(2991);let i=class{};i=o([n.injectable()],i),t.AbstractCalleeDataExtractor=i},5341:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionDeclarationCalleeDataExtractor=void 0;const s=r(2991),c=a(r(4523)),d=r(3159),l=r(4134),u=r(8134);let f=class extends d.AbstractCalleeDataExtractor{extract(e,t){if(!l.NodeGuards.isIdentifierNode(t))return null;const r=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name);return r?{callee:r,name:t.name}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:e=>{if(l.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionDeclarationCalleeDataExtractor=f},1853:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionExpressionCalleeDataExtractor=void 0;const s=r(2991),c=a(r(4523)),d=r(3159),l=r(4134),u=r(8134);let f=class extends d.AbstractCalleeDataExtractor{extract(e,t){let r=null,o=null;return l.NodeGuards.isIdentifierNode(t)?(r=t.name,o=this.getCalleeBlockStatement(u.NodeStatementUtils.getParentNodeWithStatements(e[0]),t.name)):l.NodeGuards.isFunctionExpressionNode(t)&&(r=null,o=t.body),o?{callee:o,name:r}:null}getCalleeBlockStatement(e,t){let r=null;return c.traverse(e,{enter:(e,o)=>{if(l.NodeGuards.isFunctionExpressionNode(e)&&o&&l.NodeGuards.isVariableDeclaratorNode(o)&&l.NodeGuards.isIdentifierNode(o.id)&&o.id.name===t)return r=e.body,c.VisitorOption.Break}}),r}};f=i([s.injectable()],f),t.FunctionExpressionCalleeDataExtractor=f},5773:function(e,t,r){var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionCalleeDataExtractor=void 0;const c=r(2991),d=s(r(4523)),l=r(3159),u=r(4134),f=r(8134);let p=o=class extends l.AbstractCalleeDataExtractor{static isValidTargetPropertyNode(e,t){if(!e.key)return!1;const r=u.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,o=u.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||o}extract(e,t){if(!u.NodeGuards.isMemberExpressionNode(t))return null;const r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;const o=r[r.length-1],n=this.getCalleeBlockStatement(f.NodeStatementUtils.getParentNodeWithStatements(e[0]),r);return n?{callee:n,name:o}:null}createObjectMembersCallsChain(e,t){if(u.NodeGuards.isIdentifierNode(t.property)&&!t.computed)e.unshift(t.property.name);else{if(!u.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return u.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(u.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}getCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;let o=null;return d.traverse(e,{enter:e=>{if(u.NodeGuards.isVariableDeclaratorNode(e)&&u.NodeGuards.isIdentifierNode(e.id)&&e.init&&u.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return o=this.findCalleeBlockStatement(e.init.properties,t),d.VisitorOption.Break}}),o}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const n of e)if(u.NodeGuards.isPropertyNode(n)&&o.isValidTargetPropertyNode(n,r)){if(u.NodeGuards.isObjectExpressionNode(n.value))return this.findCalleeBlockStatement(n.value.properties,t);if(u.NodeGuards.isFunctionExpressionNode(n.value))return n.value.body}return null}};p=o=a([c.injectable()],p),t.ObjectExpressionCalleeDataExtractor=p},472:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNumericalExpressionAnalyzer=void 0;const c=r(2991),d=r(1403),l=r(5350),u=r(6543);let f=o=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e){if(isNaN(e))throw new Error("Given value is NaN");return u.NumberUtils.isUnsafeNumber(e)?[e]:this.generateAdditionParts(e).map((e=>this.mixWithMultiplyParts(e)))}generateAdditionParts(e){const t=[],r=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),n=Math.min(-1e4,-r),i=Math.max(1e4,r);let a=0;for(let r=0;r<o.additionalParts;r++)if(r<o.additionalParts-1){let e=this.randomGenerator.getRandomInteger(n,i);u.NumberUtils.isUnsafeNumber(a+e)&&(e=-e),t.push(e),a+=e}else{const r=e-a;u.NumberUtils.isUnsafeNumber(r)?(t.push(0-a),t.push(e)):t.push(r)}return t}mixWithMultiplyParts(e){var t;if(!(this.randomGenerator.getMathRandom()>.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=u.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const o=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[o,e/o]}};f.additionalParts=3,f=o=i([c.injectable(),s(0,c.inject(l.ServiceIdentifiers.IRandomGenerator)),a("design:paramtypes",["function"==typeof(n=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?n:Object])],f),t.NumberNumericalExpressionAnalyzer=f},3e3:function(e,t,r){var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PrevailingKindOfVariablesAnalyzer=void 0;const u=r(2991),f=r(5350),p=c(r(4523)),m=r(5768),g=r(4134);let S=o=class{constructor(e){this.prevailingKindOfVariables=o.defaultKindOfVariables,this.arrayUtils=e}analyze(e){var t;const r=[];p.traverse(e,{enter:e=>{g.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:o.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};S.defaultKindOfVariables="var",S=o=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.IArrayUtils)),d("design:paramtypes",["function"==typeof(n=void 0!==m.IArrayUtils&&m.IArrayUtils)?n:Object])],S),t.PrevailingKindOfVariablesAnalyzer=S},9458:function(e,t,r){var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeAnalyzer=void 0;const c=r(2991),d=s(r(8)),l=s(r(4523)),u=r(4941),f=r(4134);let p=o=class{constructor(){this.scopeManager=null}static attachMissingRanges(e){l.replace(e,{enter:(e,t)=>{var r,n,i,a;return e.range||(e.range=[null!==(n=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:o.emptyRangeValue,null!==(a=null===(i=null==t?void 0:t.range)||void 0===i?void 0:i[1])&&void 0!==a?a:o.emptyRangeValue]),e}})}static isRootNode(e){return f.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=o.sourceTypes.length;o.attachMissingRanges(e);for(let r=0;r<t;r++)try{return void(this.scopeManager=d.analyze(e,Object.assign(Object.assign({},o.eslintScopeOptions),{sourceType:o.sourceTypes[r]})))}catch(e){if(r<t-1)continue;throw new Error(e)}throw new Error("Scope analyzing error")}acquireScope(e){if(!this.scopeManager)throw new Error("Scope manager is not defined");const t=this.scopeManager.acquire(e,o.isRootNode(e));if(!t)throw new Error("Cannot acquire scope for node");return this.sanitizeScopes(t),t}sanitizeScopes(e){e.childScopes.forEach((e=>{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find((e=>t.defs.some((e=>"ClassName"===e.type))&&e.name===t.name));null==r||r.references.push(...e.variables[0].references)}}));for(const t of e.childScopes)this.sanitizeScopes(t)}};p.eslintScopeOptions={ecmaVersion:u.ecmaVersion,optimistic:!0},p.sourceTypes=["script","module"],p.emptyRangeValue=0,p=o=a([c.injectable()],p),t.ScopeAnalyzer=p},1190:function(e,t,r){var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorageAnalyzer=void 0;const p=r(2991),m=r(5350),g=l(r(4523)),S=r(4482),y=r(1403),N=r(5683),h=r(4134),_=r(8241),b=r(739);let I=o=class{constructor(e,t,r){this.stringArrayStorageData=new Map,this.stringArrayStorage=e,this.randomGenerator=t,this.options=r}analyze(e){this.options.stringArray&&g.traverse(e,{enter:(e,t)=>{if(t)return b.NodeMetadata.isIgnoredNode(e)?g.VisitorOption.Skip:void(h.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}analyzeLiteralNode(e,t){_.NodeLiteralUtils.isStringLiteralNode(e)&&(_.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value)))}shouldAddValueToStringArray(e){return!!b.NodeMetadata.isForceTransformNode(e)||e.value.length>=o.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};I.minimumLengthForStringArray=3,I=o=d([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==N.IStringArrayStorage&&N.IStringArrayStorage)?n:Object,"function"==typeof(i=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==S.IOptions&&S.IOptions)?a:Object])],I),t.StringArrayStorageAnalyzer=I},8541:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.AbstractCodeTransformer=f},4132:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const n=r(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.CodeTransformerNamesGroupsBuilder=a},8282:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const c=r(2991),d=r(5350),l=r(5127),u=r(9658);let f=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedCodeTransformers(t,r),n=this.codeTransformerNamesGroupsBuilder.build(o);for(const t of n)for(const n of t)e=o[n].transformCode(e,r);return e}buildNormalizedCodeTransformers(e,t){return e.reduce(((e,t)=>{const r=this.codeTransformerFactory(t);return Object.assign(Object.assign({},e),{[t]:r})}),{})}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.Factory__ICodeTransformer)),s(1,c.inject(d.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),a("design:paramtypes",["function"==typeof(o=void 0!==l.TCodeTransformerFactory&&l.TCodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==u.ITransformerNamesGroupsBuilder&&u.ITransformerNamesGroupsBuilder)?n:Object])],f),t.CodeTransformersRunner=f},71:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(5670),p=r(8541);let m=class extends p.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case f.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case f.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,(e=>(e&&(this.hashbangOperatorLine=e),""))).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.HashbangOperatorTransformer=m},6366:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},2691:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const o=r(6366);t.alphabetStringUppercase=o.alphabetString.toUpperCase()},6934:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabet=`${o.alphabetStringUppercase}${n.alphabetString}${i.numbersString}+/=`},4497:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const o=r(2691),n=r(6366),i=r(2023);t.base64alphabetSwapped=`${n.alphabetString}${o.alphabetStringUppercase}${i.numbersString}+/=`},4941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=12},2023:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},1636:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const o=r(2991),n=r(5350),i=r(5821),a=r(7867),s=r(9654),c=r(5602),d=r(3693),l=r(7626),u=r(8974),f=r(645),p=r(4080),m=r(4028),g=r(5424),S=r(1719),y=r(4682),N=r(1469),h=r(7817),_=r(725),b=r(1426),I=r(1466),O=r(9542),E=r(1937),v=r(8282),C=r(7086),T=r(7149),R=r(6827),A=r(9196),j=r(8072),M=r(8589);t.InversifyContainerFacade=class{constructor(){this.container=new o.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return o=>{if(r.has(o))return r.get(o);const n=t.container.getNamed(e,o);return r.set(o,n),n}}}static getConstructorFactory(e,...t){return r=>{const o=new Map,n=[];return i=>{if(t.forEach(((e,t)=>{n[t]||(n[t]=r.container.get(e))})),o.has(i))return new(o.get(i))(...n);const a=r.container.getNamed(e,i);return o.set(i,a),new a(...n)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(n.ServiceIdentifiers.ISourceCode).toDynamicValue((()=>new M.SourceCode(e,t))).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.TInputOptions).toDynamicValue((()=>r)).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ILogger).to(T.Logger).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IJavaScriptObfuscator).to(C.JavaScriptObfuscator).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.ICodeTransformersRunner).to(v.CodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.INodeTransformersRunner).to(R.NodeTransformersRunner).inSingletonScope(),this.container.bind(n.ServiceIdentifiers.IObfuscatedCode).to(j.ObfuscatedCode),this.container.bind(n.ServiceIdentifiers.Factory__IObfuscatedCode).toFactory((e=>(t,r)=>{const o=e.container.get(n.ServiceIdentifiers.IObfuscatedCode);return o.initialize(t,r),o})),this.container.bind(n.ServiceIdentifiers.IObfuscationEventEmitter).to(A.ObfuscationEventEmitter).inSingletonScope(),this.container.load(i.analyzersModule),this.container.load(a.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(d.customCodeHelpersModule),this.container.load(l.customNodesModule),this.container.load(u.deadCodeInjectionTransformersModule),this.container.load(f.finalizingTransformersModule),this.container.load(p.generatorsModule),this.container.load(m.initializingTransformersModule),this.container.load(g.nodeModule),this.container.load(S.nodeTransformersModule),this.container.load(y.optionsModule),this.container.load(N.preparingTransformersModule),this.container.load(h.renameIdentifiersTransformersModule),this.container.load(_.renamePropertiesTransformersModule),this.container.load(b.simplifyingTransformersModule),this.container.load(I.storagesModule),this.container.load(O.stringArrayTransformersModule),this.container.load(E.utilsModule)}unload(){this.container.unbindAll()}}},5350:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,(r=t.ServiceIdentifiers||(t.ServiceIdentifiers={})).Factory__ICalleeDataExtractor="Factory<ICalleeDataExtractor>",r.Factory__ICodeTransformer="Factory<ICodeTransformer[]>",r.Factory__IControlFlowCustomNode="Factory<IControlFlowCustomNode>",r.Factory__IControlFlowReplacer="Factory<IControlFlowReplacer>",r.Factory__ICustomCodeHelper="Factory<ICustomCodeHelper>",r.Factory__ICustomCodeHelperGroup="Factory<ICustomCodeHelperGroup>",r.Factory__IDeadCodeInjectionCustomNode="Factory<IDeadCodeInjectionCustomNode>",r.Factory__IIdentifierNamesGenerator="Factory<IIdentifierNamesGenerator>",r.Factory__INodeGuard="Factory<INodeGuard>",r.Factory__INodeTransformer="Factory<INodeTransformer[]>",r.Factory__IObfuscatedCode="Factory<IObfuscatedCode>",r.Factory__IObjectExpressionKeysTransformerCustomNode="Factory<IObjectExpressionKeysTransformerCustomNode>",r.Factory__IObjectExpressionExtractor="Factory<IObjectExpressionExtractor>",r.Factory__IStringArrayCustomNode="Factory<IStringArrayCustomNode>",r.Factory__IStringArrayIndexNode="Factory<IStringArrayIndexNode>",r.Factory__TControlFlowStorage="Factory<TControlFlowStorage>",r.IArrayUtils="IArrayUtils",r.ICalleeDataExtractor="ICalleeDataExtractor",r.ICallsGraphAnalyzer="ICallsGraphAnalyzer",r.ICodeTransformer="ICodeTransformer",r.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",r.ICodeTransformersRunner="ICodeTransformersRunner",r.ICryptUtils="ICryptUtils",r.ICryptUtilsSwappedAlphabet="ICryptUtilsSwappedAlphabet",r.ICustomCodeHelper="ICustomCodeHelper",r.ICustomCodeHelperGroup="ICustomCodeHelperGroup",r.IControlFlowReplacer="IControlFlowReplacer",r.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",r.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",r.IEscapeSequenceEncoder="IEscapeSequenceEncoder",r.IIdentifierNamesGenerator="IIdentifierNamesGenerator",r.IIdentifierReplacer="IIdentifierReplacer",r.IJavaScriptObfuscator="IJavaScriptObfuscator",r.ILevelledTopologicalSorter="ILevelledTopologicalSorter",r.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",r.ILogger="ILogger",r.INodeGuard="INodeGuard",r.INodeTransformer="INodeTransformer",r.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",r.INodeTransformersRunner="INodeTransformersRunner",r.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",r.IObfuscationEventEmitter="IObfuscationEventEmitter",r.IObfuscatedCode="IObfuscatedCode",r.IOptions="IOptions",r.IOptionsNormalizer="IOptionsNormalizer",r.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",r.IObjectExpressionExtractor="IObjectExpressionExtractor",r.IRandomGenerator="IRandomGenerator",r.IRenamePropertiesReplacer="IRenamePropertiesReplacer",r.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",r.ISourceCode="ISourceCode",r.IScopeAnalyzer="IScopeAnalyzer",r.IStringArrayIndexNode="IStringArrayIndexNode",r.IStringArrayScopeCallsWrapperLexicalScopeDataStorage="IStringArrayScopeCallsWrapperLexicalScopeDataStorage",r.IStringArrayScopeCallsWrapperNamesDataStorage="IStringArrayScopeCallsWrapperNamesDataStorage",r.IStringArrayStorage="IStringArrayStorage",r.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",r.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",r.Newable__ICustomNode="Newable<ICustomNode>",r.Newable__TControlFlowStorage="Newable<TControlFlowStorage>",r.TCustomNodeGroupStorage="TCustomNodeGroupStorage",r.TInputOptions="TInputOptions"},5821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(8657),s=r(3900),c=r(5341),d=r(1853),l=r(472),u=r(5773),f=r(3e3),p=r(9458),m=r(1190);t.analyzersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(l.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(f.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IScopeAnalyzer).to(p.ScopeAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(m.StringArrayStorageAnalyzer).inSingletonScope(),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(d.FunctionExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.ICalleeDataExtractor).to(u.ObjectExpressionCalleeDataExtractor).whenTargetNamed(a.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(i.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICalleeDataExtractor))}))},7867:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7082),s=r(4132),c=r(71);t.codeTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.ICodeTransformer)),e(i.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(i.ServiceIdentifiers.ICodeTransformer).to(c.HashbangOperatorTransformer).whenTargetNamed(a.CodeTransformer.HashbangOperatorTransformer)}))},3693:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(7295),s=r(1806),c=r(4860),d=r(1723),l=r(9673),u=r(4582),f=r(5769),p=r(5655),m=r(259),g=r(299),S=r(2628),y=r(5600),N=r(9915),h=r(5227),_=r(4400),b=r(7675),I=r(7689),O=r(9681),E=r(8352),v=r(5007),C=r(256);t.customCodeHelpersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.ICustomCodeHelper).to(p.ConsoleOutputDisableCodeHelper).whenTargetNamed(a.CustomCodeHelper.ConsoleOutputDisable),e(i.ServiceIdentifiers.ICustomCodeHelper).to(S.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionCall),e(i.ServiceIdentifiers.ICustomCodeHelper).to(y.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunctionInterval),e(i.ServiceIdentifiers.ICustomCodeHelper).to(N.DebugProtectionFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.DebugProtectionFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(h.DomainLockCodeHelper).whenTargetNamed(a.CustomCodeHelper.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelper).to(_.CallsControllerFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.CallsControllerFunction),e(i.ServiceIdentifiers.ICustomCodeHelper).to(b.SelfDefendingUnicodeCodeHelper).whenTargetNamed(a.CustomCodeHelper.SelfDefendingUnicode),e(i.ServiceIdentifiers.ICustomCodeHelper).to(I.StringArrayCallsWrapperCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapper),e(i.ServiceIdentifiers.ICustomCodeHelper).to(O.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperBase64),e(i.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayCallsWrapperRc4),e(i.ServiceIdentifiers.ICustomCodeHelper).to(v.StringArrayCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArray),e(i.ServiceIdentifiers.ICustomCodeHelper).to(C.StringArrayRotateFunctionCodeHelper).whenTargetNamed(a.CustomCodeHelper.StringArrayRotateFunction),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(i.ServiceIdentifiers.ICustomCodeHelperGroup).to(f.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(i.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelper)),e(i.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(o.InversifyContainerFacade.getFactory(i.ServiceIdentifiers.ICustomCodeHelperGroup)),e(i.ServiceIdentifiers.ICustomCodeHelperFormatter).to(m.CustomCodeHelperFormatter).inSingletonScope(),e(i.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(g.CustomCodeHelperObfuscator).inSingletonScope()}))},7626:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(1280),s=r(2620),c=r(9809),d=r(294),l=r(1597),u=r(5540),f=r(9193),p=r(8105),m=r(1984),g=r(9372),S=r(8807),y=r(2088),N=r(8866),h=r(9826),_=r(398),b=r(6379),I=r(8064),O=r(573),E=r(9867),v=r(6512),C=r(7388);t.customNodesModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(l.BinaryExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(u.BlockStatementControlFlowFlatteningNode).whenTargetNamed(a.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.CallExpressionControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.CallExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.CallExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.ControlFlowStorageNode).whenTargetNamed(a.ControlFlowCustomNode.ControlFlowStorageNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.LogicalExpressionFunctionNode).whenTargetNamed(a.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(C.StringLiteralNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.StringLiteralControlFlowStorageCallNode).whenTargetNamed(a.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.StringArrayCallNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayCallNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(O.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(i.ServiceIdentifiers.Newable__ICustomNode).toConstructor(E.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(d.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(I.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(i.ServiceIdentifiers.IStringArrayIndexNode).to(b.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(I.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),e(i.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(o.InversifyContainerFacade.getConstructorFactory(i.ServiceIdentifiers.Newable__ICustomNode,i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,i.ServiceIdentifiers.Factory__IStringArrayIndexNode,i.ServiceIdentifiers.ICustomCodeHelperFormatter,i.ServiceIdentifiers.IStringArrayStorage,i.ServiceIdentifiers.IArrayUtils,i.ServiceIdentifiers.IRandomGenerator,i.ServiceIdentifiers.IOptions)),e(i.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IStringArrayIndexNode))}))},4080:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const o=r(2991),n=r(5350),i=r(3177),a=r(8370),s=r(5932),c=r(3119),d=r(2677);t.generatorsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(a.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(c.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(n.ServiceIdentifiers.IIdentifierNamesGenerator).to(d.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),e(n.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let o;switch(r.identifierNamesGenerator){case i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:o=t.container.getNamed(n.ServiceIdentifiers.IIdentifierNamesGenerator,i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=o,o}}())}))},9654:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4015),s=r(4212),c=r(3358),d=r(5912),l=r(5760),u=r(9749),f=r(6522),p=r(270);t.controlFlowTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(l.CallExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(f.LogicalExpressionControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(i.ServiceIdentifiers.IControlFlowReplacer).to(p.StringLiteralControlFlowReplacer).whenTargetNamed(a.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(i.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IControlFlowReplacer))}))},5602:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const o=r(2991),n=r(1636),i=r(5350),a=r(4212),s=r(9946),c=r(8539),d=r(2337),l=r(9912),u=r(9139),f=r(6037),p=r(9467),m=r(3393),g=r(122),S=r(7834),y=r(626),N=r(6312),h=r(5869),_=r(810);t.convertingTransformersModule=new o.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(d.BooleanLiteralTransformer).whenTargetNamed(a.NodeTransformer.BooleanLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(l.ExportSpecifierTransformer).whenTargetNamed(a.NodeTransformer.ExportSpecifierTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.MemberExpressionTransformer).whenTargetNamed(a.NodeTransformer.MemberExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(f.MethodDefinitionTransformer).whenTargetNamed(a.NodeTransformer.MethodDefinitionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(p.NumberLiteralTransformer).whenTargetNamed(a.NodeTransformer.NumberLiteralTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.NumberToNumericalExpressionTransformer).whenTargetNamed(a.NodeTransformer.NumberToNumericalExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObjectExpressionKeysTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionKeysTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(y.ObjectExpressionTransformer).whenTargetNamed(a.NodeTransformer.ObjectExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.ObjectPatternPropertiesTransformer).whenTargetNamed(a.NodeTransformer.ObjectPatternPropertiesTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(h.SplitStringTransformer).whenTargetNamed(a.NodeTransformer.SplitStringTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(_.TemplateLiteralTransformer).whenTargetNamed(a.NodeTransformer.TemplateLiteralTransformer),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(S.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(i.ServiceIdentifiers.IObjectExpressionExtractor).to(c.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(i.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.IObjectExpressionExtractor))}))},8974:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(8043);t.deadCodeInjectionTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.DeadCodeInjectionTransformer).whenTargetNamed(i.NodeTransformer.DeadCodeInjectionTransformer)}))},645:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4837);t.finalizingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.EscapeSequenceTransformer).whenTargetNamed(i.NodeTransformer.EscapeSequenceTransformer)}))},4028:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(5289);t.initializingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.CommentsTransformer).whenTargetNamed(i.NodeTransformer.CommentsTransformer)}))},1719:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(5419);t.nodeTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.Factory__INodeTransformer).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeTransformer)),e(i.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(a.NodeTransformerNamesGroupsBuilder).inSingletonScope()}))},1469:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const o=r(1636),n=r(2991),i=r(5350),a=r(4212),s=r(4361),c=r(5878),d=r(6955),l=r(4996),u=r(3449),f=r(4935),p=r(147),m=r(8049),g=r(1581),S=r(774),y=r(7985),N=r(2616);t.preparingTransformersModule=new n.ContainerModule((e=>{e(i.ServiceIdentifiers.INodeTransformer).to(l.CustomCodeHelpersTransformer).whenTargetNamed(a.NodeTransformer.CustomCodeHelpersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.EvalCallExpressionTransformer).whenTargetNamed(a.NodeTransformer.EvalCallExpressionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(m.MetadataTransformer).whenTargetNamed(a.NodeTransformer.MetadataTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(g.ObfuscatingGuardsTransformer).whenTargetNamed(a.NodeTransformer.ObfuscatingGuardsTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(S.ParentificationTransformer).whenTargetNamed(a.NodeTransformer.ParentificationTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(N.VariablePreserveTransformer).whenTargetNamed(a.NodeTransformer.VariablePreserveTransformer),e(i.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(d.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(f.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(p.IgnoredRequireImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard),e(i.ServiceIdentifiers.INodeGuard).to(y.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(i.ServiceIdentifiers.Factory__INodeGuard).toFactory(o.InversifyContainerFacade.getCacheFactory(i.ServiceIdentifiers.INodeGuard))}))},7817:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(6181),s=r(8869),c=r(5806),d=r(7247);t.renameIdentifiersTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.LabeledStatementTransformer).whenTargetNamed(i.NodeTransformer.LabeledStatementTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.ScopeIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeIdentifiersTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(d.ScopeThroughIdentifiersTransformer).whenTargetNamed(i.NodeTransformer.ScopeThroughIdentifiersTransformer),e(n.ServiceIdentifiers.IIdentifierReplacer).to(a.IdentifierReplacer).inSingletonScope()}))},725:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(7889),s=r(2143);t.renamePropertiesTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(i.NodeTransformer.RenamePropertiesTransformer),e(n.ServiceIdentifiers.IRenamePropertiesReplacer).to(a.RenamePropertiesReplacer)}))},1426:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(2838),s=r(1226),c=r(8821),d=r(3115);t.simplifyingTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.BlockStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.BlockStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(i.NodeTransformer.ExpressionStatementsMergeTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(c.IfStatementSimplifyTransformer).whenTargetNamed(i.NodeTransformer.IfStatementSimplifyTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(d.VariableDeclarationsMergeTransformer).whenTargetNamed(i.NodeTransformer.VariableDeclarationsMergeTransformer)}))},9542:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const o=r(2991),n=r(5350),i=r(4212),a=r(4123),s=r(4940);t.stringArrayTransformersModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.INodeTransformer).to(a.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(i.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(n.ServiceIdentifiers.INodeTransformer).to(s.StringArrayTransformer).whenTargetNamed(i.NodeTransformer.StringArrayTransformer)}))},5424:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const o=r(2991),n=r(5350),i=r(2551);t.nodeModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IScopeIdentifiersTraverser).to(i.ScopeIdentifiersTraverser).inSingletonScope()}))},4682:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const o=r(2991),n=r(5350),i=r(8516),a=r(6248);t.optionsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IOptions).to(i.Options).inSingletonScope(),e(n.ServiceIdentifiers.IOptionsNormalizer).to(a.OptionsNormalizer).inSingletonScope()}))},1466:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const o=r(2991),n=r(5350),i=r(646),a=r(1951),s=r(3464),c=r(1453),d=r(995),l=r(1860),u=r(1891);t.storagesModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomCodeHelperGroupStorage).inSingletonScope(),e(n.ServiceIdentifiers.ILiteralNodesCacheStorage).to(s.LiteralNodesCacheStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayStorage).to(l.StringArrayStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage).to(c.StringArrayScopeCallsWrapperLexicalScopeDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage).to(d.StringArrayScopeCallsWrapperNamesDataStorage).inSingletonScope(),e(n.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(u.VisitedLexicalScopeNodesStackStorage).inSingletonScope(),e(n.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(i.ControlFlowStorage),e(n.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory((e=>()=>{const t=new(e.container.get(n.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(n.ServiceIdentifiers.IRandomGenerator),e.container.get(n.ServiceIdentifiers.IOptions));return t.initialize(),t}))}))},1937:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const o=r(2991),n=r(5350),i=r(3087),a=r(5579),s=r(6913),c=r(1622),d=r(7248),l=r(3697);t.utilsModule=new o.ContainerModule((e=>{e(n.ServiceIdentifiers.IArrayUtils).to(i.ArrayUtils).inSingletonScope(),e(n.ServiceIdentifiers.IRandomGenerator).to(l.RandomGenerator).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtils).to(a.CryptUtils).inSingletonScope(),e(n.ServiceIdentifiers.ICryptUtilsSwappedAlphabet).to(s.CryptUtilsSwappedAlphabet).inSingletonScope(),e(n.ServiceIdentifiers.IEscapeSequenceEncoder).to(c.EscapeSequenceEncoder).inSingletonScope(),e(n.ServiceIdentifiers.ILevelledTopologicalSorter).to(d.LevelledTopologicalSorter)}))},8920:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),N=r(1403),h=r(8837),_=r(699);let b=o=class{constructor(e,t,r,o,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=o,this.options=n}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){return this.randomGenerator.getRandomGenerator().pickone(o.globalVariableTemplateFunctions)}getCodeHelperTemplate(){return""}};b.globalVariableTemplateFunctions=[h.GlobalVariableTemplate1(),_.GlobalVariableTemplate2()],b=o=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],b),t.AbstractCustomCodeHelper=b},9834:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const d=r(2991),l=r(5350),u=r(9416),f=r(4482),p=r(1403);let m=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getAppendEvent(){return this.appendEvent}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};m=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],m),t.AbstractCustomCodeHelperGroup=m},259:function(e,t,r){var o,n=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperFormatter=void 0;const u=r(2991),f=r(5350),p=s(r(4523)),m=l(r(8655)),g=r(3499),S=r(4134);let y=class{constructor(e){this.prevailingKindOfVariables=e.getPrevailingKind()}formatTemplate(e,t){return m.default(e,t)}formatStructure(e){for(const t of e)p.replace(t,{enter:e=>{if(S.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};y=a([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",["function"==typeof(o=void 0!==g.IPrevailingKindOfVariablesAnalyzer&&g.IPrevailingKindOfVariablesAnalyzer)?o:Object])],y),t.CustomCodeHelperFormatter=y},299:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(3685),p=r(2895);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return p.JavaScriptObfuscator.obfuscate(e,Object.assign(Object.assign(Object.assign({},f.NO_ADDITIONAL_NODES_PRESET),{identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,seed:this.randomGenerator.getRawSeed()}),t)).getObfuscatedCode()}};m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.CustomCodeHelperObfuscator=m},4400:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6871),S=r(6949),y=r(4482),N=r(1403),h=r(1093),_=r(5233),b=r(5423),I=r(8920),O=r(2361);let E=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.appendEvent===h.ObfuscationEvent.AfterObfuscation?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate(b.SingleCallControllerTemplate(),{callControllerFunctionName:this.callsControllerFunctionName})}};d([_.initializable(),l("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),d([_.initializable(),l("design:type","function"==typeof(o=void 0!==h.ObfuscationEvent&&h.ObfuscationEvent)?o:Object)],E.prototype,"appendEvent",void 0),E=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperFormatter&&S.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],E),t.CallsControllerFunctionCodeHelper=E},484:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=void 0,t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},8837:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=void 0,t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},699:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=void 0,t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},5423:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=void 0,t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},5655:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(1848),_=r(484),b=r(5233),I=r(8920),O=r(2361);let E=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(h.ConsoleOutputDisableTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:e})}};c([b.initializable(),d("design:type",String)],E.prototype,"callsControllerFunctionName",void 0),c([b.initializable(),d("design:type",String)],E.prototype,"consoleOutputDisableFunctionName",void 0),E=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],E),t.ConsoleOutputDisableCodeHelper=E},4860:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const u=r(2991),f=r(5350),p=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(1093),_=r(9834),b=r(7678),I=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.disableConsoleOutput)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=I.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.ConsoleOutputDisable,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.ConsoleOutputCodeHelperGroup=O},1848:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=void 0,t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},2628:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(5233),h=r(8125),_=r(8920),b=r(2361);let I=class extends _.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};c([N.initializable(),d("design:type",String)],I.prototype,"callsControllerFunctionName",void 0),c([N.initializable(),d("design:type",String)],I.prototype,"debugProtectionFunctionName",void 0),I=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],I),t.DebugProtectionFunctionCallCodeHelper=I},9915:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(5233),_=r(2415),b=r(176),I=r(6927),O=r(8920),E=r(2361);let v=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?_.DebuggerTemplate():b.DebuggerTemplateNoEval();return this.customCodeHelperFormatter.formatTemplate(I.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([h.initializable(),d("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.DebugProtectionFunctionCodeHelper=v},5600:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(5233),h=r(5987),_=r(8920),b=r(2361);let I=class extends _.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return b.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(h.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}};c([N.initializable(),d("design:type",String)],I.prototype,"debugProtectionFunctionName",void 0),I=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],I),t.DebugProtectionFunctionIntervalCodeHelper=I},1723:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const u=r(2991),f=r(5350),p=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(1093),_=r(9834),b=r(7678),I=r(4134),O=r(1534);let E=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.debugProtection)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=O.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunctionCall,(e=>{e.initialize(s,c),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunction,(t=>{t.initialize(s),b.NodeAppender.append(e,t.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.DebugProtectionFunctionInterval,(t=>{const r=I.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,o=this.randomGenerator.getRandomInteger(0,r);t.initialize(s),b.NodeAppender.insertAtIndex(e,t.getNode(),o)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(N.CustomCodeHelper.DebugProtectionFunctionInterval),o=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(N.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,o)}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],E.prototype,"customCodeHelpers",void 0),E=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],E),t.DebugProtectionCodeHelperGroup=E},8125:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=void 0,t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},5987:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=void 0,t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},6927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=void 0,t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},2415:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=void 0,t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},176:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=void 0,t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},5227:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(5591),N=r(4482),h=r(1403),_=r(7370),b=r(5233),I=r(3762),O=r(484),E=r(8920),v=r(2361);let C=class extends E.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.cryptUtils=i}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return v.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),[t,r]=this.cryptUtils.hideString(e,3*e.length),o=this.options.target!==_.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():O.GlobalVariableNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(I.DomainLockTemplate(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,diff:r,domains:t,globalVariableTemplate:o})}};d([b.initializable(),l("design:type",String)],C.prototype,"callsControllerFunctionName",void 0),d([b.initializable(),l("design:type",String)],C.prototype,"domainLockFunctionName",void 0),C=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.ICryptUtils)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==y.ICryptUtils&&y.ICryptUtils)?c:Object])],C),t.DomainLockCodeHelper=C},9673:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const u=r(2991),f=r(5350),p=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(1093),_=r(9834),b=r(7678),I=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.domainLock.length)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=I.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.DomainLock,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.DomainLockCustomCodeHelperGroup=O},3762:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=void 0,t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp("[{diff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},7675:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingUnicodeCodeHelper=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(6871),S=r(4482),y=r(1403),N=r(7370),h=r(5233),_=r(6739),b=r(3957),I=r(8920),O=r(2361),E=r(484);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==N.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():E.GlobalVariableNoEvalTemplate(),t=this.options.target!==N.ObfuscationTarget.BrowserNoEval?_.SelfDefendingTemplate():b.SelfDefendingNoEvalTemplate();return this.customCodeHelperFormatter.formatTemplate(t,{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName,globalVariableTemplate:e})}};c([h.initializable(),d("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),c([h.initializable(),d("design:type",String)],v.prototype,"selfDefendingFunctionName",void 0),v=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.ICustomCodeHelperObfuscator)),l(3,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(4,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperObfuscator&&g.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],v),t.SelfDefendingUnicodeCodeHelper=v},4582:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const u=r(2991),f=r(5350),p=r(8820),m=r(9416),g=r(4482),S=r(1403),y=r(5233),N=r(7295),h=r(1093),_=r(9834),b=r(7678),I=r(1534);let O=class extends _.AbstractCustomCodeHelperGroup{constructor(e,t,r,o){super(t,r,o),this.appendEvent=h.ObfuscationEvent.BeforeObfuscation,this.customCodeHelperFactory=e}appendNodes(e,t){var r;if(!this.options.selfDefending)return;const o=this.getRandomCallsGraphIndex(t.length),n=t.length?b.NodeAppender.getOptimalBlockScope(t,o):e,i=t.length?b.NodeAppender.getOptimalBlockScope(t,o,1):e,a=null!==(r=I.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null,s=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext(),c=a?this.identifierNamesGenerator.generate(a):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(N.CustomCodeHelper.SelfDefendingUnicode,(e=>{e.initialize(c,s),b.NodeAppender.prepend(n,e.getNode())})),this.appendCustomNodeIfExist(N.CustomCodeHelper.CallsControllerFunction,(e=>{e.initialize(this.appendEvent,c),b.NodeAppender.prepend(i,e.getNode())}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(N.CustomCodeHelper.SelfDefendingUnicode),t=this.customCodeHelperFactory(N.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(N.CustomCodeHelper.SelfDefendingUnicode,e),this.customCodeHelpers.set(N.CustomCodeHelper.CallsControllerFunction,t)}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],O.prototype,"customCodeHelpers",void 0),O=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(1,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==p.TCustomCodeHelperFactory&&p.TCustomCodeHelperFactory)?n:Object,"function"==typeof(i=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],O),t.SelfDefendingCodeHelperGroup=O},3957:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingNoEvalTemplate=void 0,t.SelfDefendingNoEvalTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},6739:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n "}},9681:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperBase64CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2267),s=r(7689);let c=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(a.StringArrayBase64DecodeTemplate(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};c=o([n.injectable()],c),t.StringArrayCallsWrapperBase64CodeHelper=c},7689:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),N=r(4482),h=r(1403),_=r(5233),b=r(5534),I=r(7927),O=r(8920),E=r(2361);let v=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t,r){this.stringArrayName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(I.StringArrayCallsWrapperTemplate(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}):""}};d([_.initializable(),l("design:type",Number)],v.prototype,"indexShiftAmount",void 0),d([_.initializable(),l("design:type",String)],v.prototype,"stringArrayName",void 0),d([_.initializable(),l("design:type",String)],v.prototype,"stringArrayCallsWrapperName",void 0),v=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],v),t.StringArrayCallsWrapperCodeHelper=v},8352:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperRc4CodeHelper=void 0;const n=r(2991),i=r(893),a=r(2099),s=r(9913),c=r(7689);let d=class extends c.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate(i.AtobTemplate(),{atobFunctionName:e}),r=this.customCodeHelperFormatter.formatTemplate(a.Rc4Template(),{atobFunctionName:e}),o=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate(s.StringArrayRC4DecodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:r,selfDefendingCode:o,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}};d=o([n.injectable()],d),t.StringArrayCallsWrapperRc4CodeHelper=d},5007:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(4482),N=r(1403),h=r(5683),_=r(5233),b=r(5819),I=r(8920),O=r(2361),E=r(2161);let v=class extends I.AbstractCustomCodeHelper{constructor(e,t,r,o,n){super(e,t,r,o,n)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayName=t}getNodeStructure(e){return O.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate(b.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map((e=>`'${E.StringUtils.escapeJsString(e.encodedValue)}'`)).toString()}};d([_.initializable(),l("design:type","function"==typeof(o=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?o:Object)],v.prototype,"stringArrayStorage",void 0),d([_.initializable(),l("design:type",String)],v.prototype,"stringArrayName",void 0),v=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?a:Object,"function"==typeof(s=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==y.IOptions&&y.IOptions)?c:Object])],v),t.StringArrayCodeHelper=v},256:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(6949),S=r(6871),y=r(2747),N=r(4482),h=r(1403),_=r(5233),b=r(3099),I=r(4016),O=r(8920),E=r(2361),v=r(6543);let C=class extends O.AbstractCustomCodeHelper{constructor(e,t,r,o,n,i){super(e,t,r,o,n),this.escapeSequenceEncoder=i}initialize(e,t){this.stringArrayName=e,this.stringArrayRotationAmount=t}getNodeStructure(e){return E.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext(),t=this.identifierNamesGenerator.generateNext(),r=[`^${this.stringArrayName}$`];let o="";return o=this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate(b.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):`${t}(++${e})`,this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(I.StringArrayRotateFunctionTemplate(),{code:o,timesName:e,whileFunctionName:t,stringArrayName:this.stringArrayName,stringArrayRotationAmount:v.NumberUtils.toHex(this.stringArrayRotationAmount)}),{reservedNames:r})}};d([_.initializable(),l("design:type",String)],C.prototype,"stringArrayName",void 0),d([_.initializable(),l("design:type",Number)],C.prototype,"stringArrayRotationAmount",void 0),C=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.ICustomCodeHelperFormatter)),u(2,f.inject(p.ServiceIdentifiers.ICustomCodeHelperObfuscator)),u(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(4,f.inject(p.ServiceIdentifiers.IOptions)),u(5,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),l("design:paramtypes",["function"==typeof(o=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.ICustomCodeHelperObfuscator&&S.ICustomCodeHelperObfuscator)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object,"function"==typeof(c=void 0!==y.IEscapeSequenceEncoder&&y.IEscapeSequenceEncoder)?c:Object])],C),t.StringArrayRotateFunctionCodeHelper=C},5769:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const p=r(2991),m=r(5350),g=r(8820),S=r(9416),y=r(4482),N=r(1403),h=r(5683),_=r(5233),b=r(7295),I=r(1093),O=r(1137),E=r(9834),v=r(7678);let C=o=class extends E.AbstractCustomCodeHelperGroup{constructor(e,t,r,o,n){super(r,o,n),this.appendEvent=I.ObfuscationEvent.AfterObfuscation,this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendNodes(e,t){if(!this.stringArrayStorage.getLength())return;this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArray,(t=>{v.NodeAppender.prepend(e,t.getNode())}));const r=this.options.stringArrayEncoding.length;for(let t=0;t<r;t++){const r=this.options.stringArrayEncoding[t],o=this.getStringArrayCallsWrapperCodeHelperName(r);this.appendCustomNodeIfExist(o,(r=>{v.NodeAppender.insertAtIndex(e,r.getNode(),t+1)}))}this.appendCustomNodeIfExist(b.CustomCodeHelper.StringArrayRotateFunction,(t=>{v.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.customCodeHelperFactory(b.CustomCodeHelper.StringArray),t=this.stringArrayStorage.getStorageName();e.initialize(this.stringArrayStorage,t),this.customCodeHelpers.set(b.CustomCodeHelper.StringArray,e);for(const e of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(e),o=this.customCodeHelperFactory(r),n=this.stringArrayStorage.getStorageCallsWrapperName(e);o.initialize(t,n,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,o)}const r=this.customCodeHelperFactory(b.CustomCodeHelper.StringArrayRotateFunction);r.initialize(t,this.stringArrayStorage.getRotationAmount()),this.options.rotateStringArray&&this.customCodeHelpers.set(b.CustomCodeHelper.StringArrayRotateFunction,r)}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=o.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:b.CustomCodeHelper.StringArrayCallsWrapper}};C.stringArrayCallsWrapperCodeHelperMap=new Map([[O.StringArrayEncoding.None,b.CustomCodeHelper.StringArrayCallsWrapper],[O.StringArrayEncoding.Base64,b.CustomCodeHelper.StringArrayCallsWrapperBase64],[O.StringArrayEncoding.Rc4,b.CustomCodeHelper.StringArrayCallsWrapperRc4]]),l([_.initializable(),u("design:type","function"==typeof(n="undefined"!=typeof Map&&Map)?n:Object)],C.prototype,"customCodeHelpers",void 0),C=o=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__ICustomCodeHelper)),f(1,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(2,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(3,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(4,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(i=void 0!==g.TCustomCodeHelperFactory&&g.TCustomCodeHelperFactory)?i:Object,"function"==typeof(a=void 0!==h.IStringArrayStorage&&h.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?s:Object,"function"==typeof(c=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==y.IOptions&&y.IOptions)?d:Object])],C),t.StringArrayCodeHelperGroup=C},893:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=void 0;const o=r(4497);t.AtobTemplate=function(){return`\n var {atobFunctionName} = function (input) {\n const chars = '${o.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `}},2099:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=void 0,t.Rc4Template=function(){return"\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},5534:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),d=e.getRandomString(6),l=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${o} = [1, 0, 0];\n this.${n} = function(){return 'newState';};\n this.${i} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${a} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${i} + this.${a});\n const expression = regExp.test(this.${n}.toString())\n ? --this.${o}[1]\n : --this.${o}[0];\n \n return this.${c}(expression);\n };\n \n StatesClass.prototype.${c} = function (${l}) {\n if (!Boolean(~${l})) {\n return ${l};\n }\n \n return this.${d}(this.${r});\n };\n\n StatesClass.prototype.${d} = function (${r}) {\n for (let i = 0, len = this.${o}.length; i < len; i++) {\n this.${o}.push(Math.round(Math.random()));\n len = this.${o}.length;\n }\n \n return ${r}(this.${o}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},2267:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=void 0,t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${r} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},7927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=void 0,t.StringArrayCallsWrapperTemplate=function(){return"\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n "}},9913:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=void 0,t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),o=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = rc4;\n \n {stringArrayCallsWrapperName}.${o} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${o}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${n} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${n} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${o}[index] = value;\n } else {\n value = cachedValue;\n }\n `}},3099:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=void 0,t.SelfDefendingTemplate=function(e){return`\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + "=" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += "; " + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += "=" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n "(?:^|; )" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + "=([^;]*)"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `}},4016:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=void 0,t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n "}},5819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=void 0,t.StringArrayTemplate=function(){return"\n const {stringArrayName} = [{stringArrayStorageItems}];\n "}},3088:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403);let S=class{constructor(e,t,r,o){this.cachedNode=null,this.identifierNamesGenerator=e(o),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=o}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};S=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],S),t.AbstractCustomNode=S},1597:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.binaryExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.BinaryExpressionFunctionNode=h},5540:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(9965),m=r(6949),g=r(4482),S=r(1403),y=r(5233),N=r(3088),h=r(9376),_=r(4134),b=r(2361);let I=class extends N.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=h.NodeFactory.blockStatementNode([h.NodeFactory.variableDeclarationNode([h.NodeFactory.variableDeclaratorNode(h.NodeFactory.identifierNode(e),h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(p.StringSeparator.VerticalLine)),h.NodeFactory.identifierNode("split")),[h.NodeFactory.literalNode(p.StringSeparator.VerticalLine)]))],"const"),h.NodeFactory.variableDeclarationNode([h.NodeFactory.variableDeclaratorNode(h.NodeFactory.identifierNode(t),h.NodeFactory.literalNode(0))],"let"),h.NodeFactory.whileStatementNode(h.NodeFactory.literalNode(!0),h.NodeFactory.blockStatementNode([h.NodeFactory.switchStatementNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(e),h.NodeFactory.updateExpressionNode("++",h.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map(((e,t)=>{const r=this.blockStatementBody[e],o=[r];return _.NodeGuards.isReturnStatementNode(r)||o.push(h.NodeFactory.continueStatement()),h.NodeFactory.switchCaseNode(h.NodeFactory.literalNode(String(t)),o)}))),h.NodeFactory.breakStatement()]))]);return b.NodeUtils.parentizeAst(r),[r]}};s([y.initializable(),c("design:type",Array)],I.prototype,"blockStatementBody",void 0),s([y.initializable(),c("design:type",Array)],I.prototype,"originalKeysIndexesInShuffledArray",void 0),s([y.initializable(),c("design:type",Array)],I.prototype,"shuffledKeys",void 0),I=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],I),t.BlockStatementControlFlowFlatteningNode=I},1984:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.expressionArguments=e}getNodeStructure(){const e=N.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length;for(let e=0;e<r;e++)t.push(N.NodeFactory.identifierNode("param"+(e+1)));const o=N.NodeFactory.expressionStatementNode(N.NodeFactory.functionExpressionNode([e,...t],N.NodeFactory.blockStatementNode([N.NodeFactory.returnStatementNode(N.NodeFactory.callExpressionNode(e,t))])));return h.NodeUtils.parentizeAst(o),[o]}};s([S.initializable(),c("design:type",Array)],_.prototype,"expressionArguments",void 0),_=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.CallExpressionFunctionNode=_},2088:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.operator=e}getNodeStructure(){const e=y.NodeFactory.expressionStatementNode(y.NodeFactory.functionExpressionNode([y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")],y.NodeFactory.blockStatementNode([y.NodeFactory.returnStatementNode(y.NodeFactory.logicalExpressionNode(this.operator,y.NodeFactory.identifierNode("x"),y.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.LogicalExpressionFunctionNode=h},7388:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376);let h=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.literalValue=e}getNodeStructure(){return[N.NodeFactory.expressionStatementNode(N.NodeFactory.literalNode(this.literalValue))]}};s([S.initializable(),c("design:type",String)],h.prototype,"literalValue",void 0),h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.StringLiteralNode=h},8105:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const u=r(2991),f=r(5350),p=r(9416),m=r(6949),g=r(4482),S=r(1403),y=r(5233),N=r(3088),h=r(9376),_=r(2361);let b=class extends N.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=o}getNodeStructure(){const e=h.NodeFactory.expressionStatementNode(h.NodeFactory.callExpressionNode(h.NodeFactory.memberExpressionNode(h.NodeFactory.identifierNode(this.controlFlowStorageName),h.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return _.NodeUtils.parentizeAst(e),[e]}};c([y.initializable(),d("design:type","function"==typeof(o="undefined"!=typeof ESTree&&ESTree.Expression)?o:Object)],b.prototype,"callee",void 0),c([y.initializable(),d("design:type",String)],b.prototype,"controlFlowStorageKey",void 0),c([y.initializable(),d("design:type",String)],b.prototype,"controlFlowStorageName",void 0),c([y.initializable(),d("design:type",Array)],b.prototype,"expressionArguments",void 0),b=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==p.TIdentifierNamesGeneratorFactory&&p.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==m.ICustomCodeHelperFormatter&&m.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==g.IOptions&&g.IOptions)?s:Object])],b),t.CallExpressionControlFlowStorageCallNode=b},9372:function(e,t,r){var o,n,i,a,s,c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const u=r(2991),f=r(5350),p=r(138),m=r(9416),g=r(6949),S=r(4482),y=r(1403),N=r(5233),h=r(3088),_=r(9376),b=r(4134),I=r(2361);let O=class extends h.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=Array.from(this.controlFlowStorage.getStorage()).map((([e,t])=>{const r=t.getNode()[0];if(!b.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return _.NodeFactory.propertyNode(_.NodeFactory.identifierNode(e),r.expression)}));let t=_.NodeFactory.variableDeclarationNode([_.NodeFactory.variableDeclaratorNode(_.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),_.NodeFactory.objectExpressionNode(e))],"const");return t=I.NodeUtils.parentizeAst(t),[t]}};c([N.initializable(),d("design:type","function"==typeof(o=void 0!==p.TControlFlowStorage&&p.TControlFlowStorage)?o:Object)],O.prototype,"controlFlowStorage",void 0),O=c([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(1,u.inject(f.ServiceIdentifiers.ICustomCodeHelperFormatter)),l(2,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(3,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.ICustomCodeHelperFormatter&&g.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==S.IOptions&&S.IOptions)?s:Object])],O),t.ControlFlowStorageNode=O},8807:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t,r,o){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=o}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.callExpressionNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return h.NodeUtils.parentizeAst(e),[e]}};s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.ExpressionWithOperatorControlFlowStorageCallNode=_},6512:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(5233),y=r(3088),N=r(9376),h=r(2361);let _=class extends y.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=N.NodeFactory.expressionStatementNode(N.NodeFactory.memberExpressionNode(N.NodeFactory.identifierNode(this.controlFlowStorageName),N.NodeFactory.identifierNode(this.controlFlowStorageKey)));return h.NodeUtils.parentizeAst(e),[e]}};s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageKey",void 0),s([S.initializable(),c("design:type",String)],_.prototype,"controlFlowStorageName",void 0),_=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],_),t.StringLiteralControlFlowStorageCallNode=_},9193:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(2361);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",o=this.randomGenerator.getRandomString(5),n=t?o:this.randomGenerator.getRandomString(5),[i,a]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=y.NodeFactory.blockStatementNode([y.NodeFactory.ifStatementNode(y.NodeFactory.binaryExpressionNode(r,y.NodeFactory.literalNode(o),y.NodeFactory.literalNode(n)),i,a)]);return N.NodeUtils.parentizeAst(s),[s]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.BlockStatementDeadCodeInjectionNode=h},8866:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const l=r(2991),u=r(5350),f=r(9416),p=r(6949),m=r(4482),g=r(1403),S=r(3088),y=r(9376),N=r(4134);let h=class extends S.AbstractCustomNode{constructor(e,t,r,o){super(e,t,r,o)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=N.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[y.NodeFactory.variableDeclarationNode([y.NodeFactory.variableDeclaratorNode(y.NodeFactory.identifierNode(e),y.NodeFactory.objectExpressionNode(this.properties))],"const")]}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d(1,l.inject(u.ServiceIdentifiers.ICustomCodeHelperFormatter)),d(2,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(3,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(o=void 0!==f.TIdentifierNamesGeneratorFactory&&f.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==p.ICustomCodeHelperFormatter&&p.ICustomCodeHelperFormatter)?n:Object,"function"==typeof(i=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==m.IOptions&&m.IOptions)?a:Object])],h),t.ObjectExpressionVariableDeclarationHostNode=h},7306:function(e,t,r){var o,n,i,a,s,c,d,l,u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayCallNode=void 0;const m=r(2991),g=r(5350),S=r(9416),y=r(7219),N=r(6949),h=r(4482),_=r(1403),b=r(5683),I=r(6212),O=r(8064),E=r(3088),v=r(9376),C=r(739),T=r(2361),R=r(5768);let A=o=class extends E.AbstractCustomNode{constructor(e,t,r,o,n,i,a){super(e,r,i,a),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=o,this.arrayUtils=n}getStringArrayIndexNode(e){var t;const r=e>=0,n=Math.abs(e),i=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),a=null!==(t=o.stringArrayIndexNodesMap.get(i))&&void 0!==t?t:null;if(!a)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(a).getNode(n);C.NodeMetadata.set(s,{replacedLiteral:!0});const c=r?s:v.NodeFactory.unaryExpressionNode("-",s);return T.NodeUtils.parentizeAst(c),c}getRc4KeyLiteralNode(e){const t=v.NodeFactory.literalNode(e);return C.NodeMetadata.set(t,{replacedLiteral:!0}),t}};A.stringArrayRootCallsWrapperParametersCount=2,A.stringArrayIndexNodesMap=new Map([[I.StringArrayIndexesType.HexadecimalNumber,O.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[I.StringArrayIndexesType.HexadecimalNumericString,O.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),A=o=u([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,m.inject(g.ServiceIdentifiers.Factory__IStringArrayIndexNode)),p(2,m.inject(g.ServiceIdentifiers.ICustomCodeHelperFormatter)),p(3,m.inject(g.ServiceIdentifiers.IStringArrayStorage)),p(4,m.inject(g.ServiceIdentifiers.IArrayUtils)),p(5,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(6,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==S.TIdentifierNamesGeneratorFactory&&S.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==y.TStringArrayIndexNodeFactory&&y.TStringArrayIndexNodeFactory)?i:Object,"function"==typeof(a=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?a:Object,"function"==typeof(s=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?s:Object,"function"==typeof(c=void 0!==R.IArrayUtils&&R.IArrayUtils)?c:Object,"function"==typeof(d=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?d:Object,"function"==typeof(l=void 0!==h.IOptions&&h.IOptions)?l:Object])],A),t.AbstractStringArrayCallNode=A},9826:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallNode=void 0;const p=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),b=r(5683),I=r(5233),O=r(7306),E=r(9376),v=r(2361);let C=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayCallsWrapperName=e,this.stringArrayCallsWrapperParameterIndexesData=t,this.index=r,this.indexShiftAmount=o,this.decodeKey=n}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.index,o=this.getStringArrayIndexNode(r),n=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,i=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeStringArrayIndexNode(r)));i.splice(null!==(t=null===(e=this.stringArrayCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,o),this.stringArrayCallsWrapperParameterIndexesData?i.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,1,null!=n?n:this.getFakeStringArrayIndexNode(r)):n?i.splice(1,1,n):i.splice(1,1);const a=E.NodeFactory.expressionStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName),i));return v.NodeUtils.parentizeAst(a),[a]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,o=e+t;return this.randomGenerator.getRandomInteger(r,o)}};l([I.initializable(),u("design:type",Object)],C.prototype,"decodeKey",void 0),l([I.initializable(),u("design:type",Number)],C.prototype,"index",void 0),l([I.initializable(),u("design:type",Number)],C.prototype,"indexShiftAmount",void 0),l([I.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),l([I.initializable(),u("design:type",Object)],C.prototype,"stringArrayCallsWrapperParameterIndexesData",void 0),C=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,p.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(4,p.inject(m.ServiceIdentifiers.IArrayUtils)),f(5,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(6,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],C),t.StringArrayCallNode=C},573:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperFunctionNode=void 0;const p=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),b=r(5683),I=r(5233),O=r(7306),E=r(9376),v=r(2361);let C=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t,r,o,n){this.stringArrayScopeCallsWrapperName=e,this.stringArrayScopeCallsWrapperParameterIndexesData=t,this.upperStringArrayCallsWrapperName=r,this.upperStringArrayCallsWrapperParameterIndexesData=o,this.shiftedIndex=n}getNodeStructure(){var e,t,r,o,n,i,a,s;const c=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),d=E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),l=this.getUpperStringArrayCallNode(c,this.getStringArrayIndexNode(this.shiftedIndex)),u=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(()=>this.getFakeParameterNode()));u.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,c),u.splice(null!==(o=null===(r=this.stringArrayScopeCallsWrapperParameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==o?o:1,1,d);const f=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperParameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:O.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,(e=>this.getUpperStringArrayCallNode(u[e],this.getFakeUpperStringArrayIndexNode())));f.splice(null!==(i=null===(n=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===n?void 0:n.valueIndexParameterIndex)&&void 0!==i?i:0,1,l),f.splice(null!==(s=null===(a=this.upperStringArrayCallsWrapperParameterIndexesData)||void 0===a?void 0:a.decodeKeyParameterIndex)&&void 0!==s?s:1,1,d);const p=E.NodeFactory.functionExpressionNode(u,E.NodeFactory.blockStatementNode([E.NodeFactory.returnStatementNode(E.NodeFactory.callExpressionNode(E.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),f))])),m=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),p)],"const");v.NodeUtils.parentizeAst(m);for(const e of u)e.name=this.identifierNamesGenerator.generateForLexicalScope(p);return[m]}getUpperStringArrayCallNode(e,t){return E.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return E.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};l([I.initializable(),u("design:type",Number)],C.prototype,"shiftedIndex",void 0),l([I.initializable(),u("design:type",String)],C.prototype,"upperStringArrayCallsWrapperName",void 0),l([I.initializable(),u("design:type",Object)],C.prototype,"upperStringArrayCallsWrapperParameterIndexesData",void 0),l([I.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),l([I.initializable(),u("design:type",Object)],C.prototype,"stringArrayScopeCallsWrapperParameterIndexesData",void 0),C=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,p.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(4,p.inject(m.ServiceIdentifiers.IArrayUtils)),f(5,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(6,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],C),t.StringArrayScopeCallsWrapperFunctionNode=C},9867:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperVariableNode=void 0;const p=r(2991),m=r(5350),g=r(9416),S=r(7219),y=r(5768),N=r(6949),h=r(4482),_=r(1403),b=r(5683),I=r(5233),O=r(7306),E=r(9376),v=r(2361);let C=class extends O.AbstractStringArrayCallNode{constructor(e,t,r,o,n,i,a){super(e,t,r,o,n,i,a)}initialize(e,t){this.stringArrayScopeCallsWrapperName=e,this.stringArrayCallsWrapperName=t}getNodeStructure(){const e=E.NodeFactory.variableDeclarationNode([E.NodeFactory.variableDeclaratorNode(E.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),E.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))],"const");return v.NodeUtils.parentizeAst(e),[e]}};l([I.initializable(),u("design:type",String)],C.prototype,"stringArrayCallsWrapperName",void 0),l([I.initializable(),u("design:type",String)],C.prototype,"stringArrayScopeCallsWrapperName",void 0),C=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(m.ServiceIdentifiers.Factory__IStringArrayIndexNode)),f(2,p.inject(m.ServiceIdentifiers.ICustomCodeHelperFormatter)),f(3,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(4,p.inject(m.ServiceIdentifiers.IArrayUtils)),f(5,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(6,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(o=void 0!==g.TIdentifierNamesGeneratorFactory&&g.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==S.TStringArrayIndexNodeFactory&&S.TStringArrayIndexNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.ICustomCodeHelperFormatter&&N.ICustomCodeHelperFormatter)?i:Object,"function"==typeof(a=void 0!==b.IStringArrayStorage&&b.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==y.IArrayUtils&&y.IArrayUtils)?s:Object,"function"==typeof(c=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?c:Object,"function"==typeof(d=void 0!==h.IOptions&&h.IOptions)?d:Object])],C),t.StringArrayScopeCallsWrapperVariableNode=C},6897:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],f),t.AbstractStringArrayIndexNode=f},398:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumberIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350),f=r(6897),p=r(9376),m=r(6543);let g=class extends f.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return p.NodeFactory.literalNode(e,t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumberIndexNode=g},6379:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumericStringIndexNode=void 0;const c=r(2991),d=r(4482),l=r(1403),u=r(5350),f=r(6897),p=r(9376),m=r(6543);let g=class extends f.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=m.NumberUtils.toHex(e);return p.NodeFactory.literalNode(t)}};g=i([c.injectable(),s(0,c.inject(u.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.IRandomGenerator&&l.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==d.IOptions&&d.IOptions)?n:Object])],g),t.StringArrayHexadecimalNumericStringIndexNode=g},5233:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=void 0;const r={configurable:!0,enumerable:!0},o="_initialized",n="_initializablePropertiesSet",i="_wrappedMethodsSet";function a(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}t.initializable=function(e="initialize"){const t=Object.keys(this)[0];return(s,c)=>{const d=s[e];if(!d||"function"!=typeof d)throw new Error(`\`${e}\` method with initialization logic not found. \`@${t}\` decorator requires \`${e}\` method`);return a(o,!1,s),a(n,new Set,s),a(i,new Set,s),function(e,t){const a=Object.getOwnPropertyNames(e),s=new Set([t,"constructor"]);a.forEach((a=>{var c;const d=Reflect.getMetadata(n,e),l=Reflect.getMetadata(i,e);if(s.has(a)||d.has(a)||l.has(a))return;if("function"!=typeof e[a])return;const u=null!==(c=Object.getOwnPropertyDescriptor(e,a))&&void 0!==c?c:r,f=u.value;Object.defineProperty(e,a,Object.assign(Object.assign({},u),{value(){if(!Reflect.getMetadata(o,this))throw new Error(`Class should be initialized with \`${t}()\` method`);return f.apply(this,arguments)}})),l.add(a)}))}(s,e),function(e,t,n){var i;const a=null!==(i=Object.getOwnPropertyDescriptor(e,t))&&void 0!==i?i:r,s=a.value;Object.defineProperty(e,t,Object.assign(Object.assign({},a),{value:function(){Reflect.defineMetadata(o,!0,this);const e=s.apply(this,arguments);return this[n],e}}))}(s,e,c),function(e,t){var o;Reflect.getMetadata(n,e).add(t);const i="_"+t.toString(),a=null!==(o=Object.getOwnPropertyDescriptor(e,i))&&void 0!==o?o:r;return Object.defineProperty(e,t,Object.assign(Object.assign({},a),{get:function(){if(void 0===this[i])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[i]},set:function(e){this[i]=e}})),a}(s,c)}}},7370:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const o=r(4741);t.ObfuscationTarget=o.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node"})},9965:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,(r=t.StringSeparator||(t.StringSeparator={})).Comma=",",r.Dot=".",r.VerticalLine="|"},8657:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,(r=t.CalleeDataExtractor||(t.CalleeDataExtractor={})).FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",r.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",r.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"},5670:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,(r=t.CodeTransformationStage||(t.CodeTransformationStage={})).PreparingTransformers="PreparingTransformers",r.FinalizingTransformers="FinalizingTransformers"},7082:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,(t.CodeTransformer||(t.CodeTransformer={})).HashbangOperatorTransformer="HashbangOperatorTransformer"},7295:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,(r=t.CustomCodeHelper||(t.CustomCodeHelper={})).CallsControllerFunction="CallsControllerFunction",r.ConsoleOutputDisable="ConsoleOutputDisable",r.DebugProtectionFunctionCall="DebugProtectionFunctionCall",r.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",r.DebugProtectionFunction="DebugProtectionFunction",r.DomainLock="DomainLock",r.SelfDefendingUnicode="SelfDefendingUnicode",r.StringArray="StringArray",r.StringArrayCallsWrapper="StringArrayCallsWrapper",r.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",r.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",r.StringArrayRotateFunction="StringArrayRotateFunction"},1806:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,(r=t.CustomCodeHelperGroup||(t.CustomCodeHelperGroup={})).ConsoleOutput="ConsoleOutput",r.DebugProtection="DebugProtection",r.DomainLock="DomainLock",r.SelfDefending="SelfDefending",r.StringArray="StringArray"},1280:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,(r=t.ControlFlowCustomNode||(t.ControlFlowCustomNode={})).BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",r.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",r.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",r.CallExpressionFunctionNode="CallExpressionFunctionNode",r.ControlFlowStorageNode="ControlFlowStorageNode",r.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",r.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",r.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",r.StringLiteralNode="StringLiteralNode"},2620:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,(t.DeadCodeInjectionCustomNode||(t.DeadCodeInjectionCustomNode={})).BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"},9809:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,(t.ObjectExpressionKeysTransformerCustomNode||(t.ObjectExpressionKeysTransformerCustomNode={})).ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"},294:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,(r=t.StringArrayCustomNode||(t.StringArrayCustomNode={})).StringArrayCallNode="StringArrayCallNode",r.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",r.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"},8064:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,(r=t.StringArrayIndexNode||(t.StringArrayIndexNode={})).StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",r.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"},1093:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEvent=void 0,(r=t.ObfuscationEvent||(t.ObfuscationEvent={})).AfterObfuscation="afterObfuscation",r.BeforeObfuscation="beforeObfuscation"},3177:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const o=r(4741);t.IdentifierNamesGenerator=o.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},6221:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0,(r=t.LoggingMessage||(t.LoggingMessage={})).EmptySourceCode="Empty source code. Obfuscation canceled...",r.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",r.ObfuscationStarted="Obfuscation started...",r.RandomGeneratorSeed="Random generator seed: %s...",r.CodeTransformationStage="Code transformation stage: %s...",r.NodeTransformationStage="AST transformation stage: %s...",r.Version="Version: %s"},4469:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,(r=t.LoggingPrefix||(t.LoggingPrefix={})).Base="[javascript-obfuscator]",r.CLI="[javascript-obfuscator-cli]"},8932:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,(r=t.NodeTransformationStage||(t.NodeTransformationStage={})).ControlFlowFlattening="ControlFlowFlattening",r.Converting="Converting",r.DeadCodeInjection="DeadCodeInjection",r.Finalizing="Finalizing",r.Initializing="Initializing",r.Preparing="Preparing",r.RenameIdentifiers="RenameIdentifiers",r.RenameProperties="RenameProperties",r.Simplifying="Simplifying",r.StringArray="StringArray"},4212:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,(r=t.NodeTransformer||(t.NodeTransformer={})).BooleanLiteralTransformer="BooleanLiteralTransformer",r.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",r.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",r.CommentsTransformer="CommentsTransformer",r.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",r.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",r.EscapeSequenceTransformer="EscapeSequenceTransformer",r.EvalCallExpressionTransformer="EvalCallExpressionTransformer",r.ExportSpecifierTransformer="ExportSpecifierTransformer",r.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",r.FunctionControlFlowTransformer="FunctionControlFlowTransformer",r.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",r.LabeledStatementTransformer="LabeledStatementTransformer",r.MemberExpressionTransformer="MemberExpressionTransformer",r.MetadataTransformer="MetadataTransformer",r.MethodDefinitionTransformer="MethodDefinitionTransformer",r.NumberLiteralTransformer="NumberLiteralTransformer",r.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",r.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",r.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",r.ObjectExpressionTransformer="ObjectExpressionTransformer",r.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",r.ParentificationTransformer="ParentificationTransformer",r.RenamePropertiesTransformer="RenamePropertiesTransformer",r.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",r.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",r.SplitStringTransformer="SplitStringTransformer",r.StringArrayTransformer="StringArrayTransformer",r.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",r.TemplateLiteralTransformer="TemplateLiteralTransformer",r.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",r.VariablePreserveTransformer="VariablePreserveTransformer"},9487:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,(r=t.VisitorDirection||(t.VisitorDirection={})).Enter="enter",r.Leave="leave"},4015:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,(r=t.ControlFlowReplacer||(t.ControlFlowReplacer={})).BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",r.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",r.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",r.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"},9946:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,(r=t.ObjectExpressionExtractor||(t.ObjectExpressionExtractor={})).BasePropertiesExtractor="BasePropertiesExtractor",r.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"},4361:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,(r=t.ObfuscatingGuard||(t.ObfuscatingGuard={})).BlackListObfuscatingGuard="BlackListObfuscatingGuard",r.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",r.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",r.IgnoredRequireImportObfuscatingGuard="IgnoredRequireImportObfuscatingGuard",r.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"},1137:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const o=r(4741);t.StringArrayEncoding=o.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},6212:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const o=r(4741);t.StringArrayIndexesType=o.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},9614:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const o=r(4741);t.StringArrayWrappersType=o.Utils.makeEnum({Variable:"variable",Function:"function"})},9945:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,(r=t.NodeType||(t.NodeType={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassDeclaration="ClassDeclaration",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForStatement="ForStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MethodDefinition="MethodDefinition",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.YieldExpression="YieldExpression"},8608:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,(r=t.ObfuscatingGuardResult||(t.ObfuscatingGuardResult={})).ForceTransform="ForceTransform",r.Ignore="Ignore",r.Transform="Transform"},6532:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const o=r(4741);t.OptionsPreset=o.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},6086:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const o=r(4741);t.SourceMapMode=o.Utils.makeEnum({Inline:"inline",Separate:"separate"})},9196:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationEventEmitter=void 0;const i=r(2991),a=n(r(9553));i.decorate(i.injectable(),a.default);let s=class extends a.default{};s=o([i.injectable()],s),t.ObfuscationEventEmitter=s},2207:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(4134);let p=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new Map,this.randomGenerator=e,this.options=t}generate(e,t){return f.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const o=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;o.add(e),this.lexicalScopesPreservedNamesMap.set(t,o)}isValidIdentifierName(e){return this.notReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const o of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(o))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}notReservedName(e){return!this.options.reservedNames.length||!this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.AbstractIdentifierNamesGenerator=p},8370:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const l=r(2991),u=r(5350),f=r(5768),p=r(4482),m=r(1403),g=r(2207),S=r(1534);let y=o=class extends g.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const o of e)r||o!==o.toUpperCase()?r||o!==o.toLowerCase()?t+=o:(t+=o.toUpperCase(),r=!0):t+=o.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){const e=`${this.options.identifiersPrefix?""+this.options.identifiersPrefix:""}${this.generateNewDictionaryName()}`;return this.isValidIdentifierName(e)?(this.preserveName(e),e):this.generateForGlobalScope()}generateForLexicalScope(e){const t=[e,...S.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName();return this.isValidIdentifierNameInLexicalScopes(r,t)?(this.preserveNameForLexicalScope(r,e),r):this.generateForLexicalScope(e)}generateNewDictionaryName(){if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const e=this.identifiersIterator.next();if(!e.done){const t=e.value;return this.isValidIdentifierName(t)?e.value:this.generateNewDictionaryName()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),this.generateNewDictionaryName()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map((e=>e.toLowerCase()));return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=o.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(1,l.inject(u.ServiceIdentifiers.IOptions)),d(2,l.inject(u.ServiceIdentifiers.IArrayUtils)),c("design:paramtypes",["function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==f.IArrayUtils&&f.IArrayUtils)?a:Object])],y),t.DictionaryIdentifierNamesGenerator=y},5932:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(2207),m=r(6543),g=r(4741);let S=o=class extends p.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){const t=this.randomGenerator.getRandomInteger(1e4,99999999),r=m.NumberUtils.toHex(t),n=g.Utils.hexadecimalPrefix.length,i=(null!=e?e:o.baseIdentifierNameLength)+n,a="_"+r.slice(0,i);return this.isValidIdentifierName(a)?(this.preserveName(a),a):this.generateNext(e)}generateForGlobalScope(e){const t=this.generateNext(e);return`${this.options.identifiersPrefix}${t}`.replace("__","_")}generateForLexicalScope(e,t){return this.generateNext(t)}};S.baseIdentifierNameLength=6,S=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],S),t.HexadecimalIdentifierNamesGenerator=S},3119:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(2023),m=r(6366),g=r(2691),S=r(2207),y=r(1534);let N=o=class extends S.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t),this.previousMangledName=o.initMangledNameCharacter}generateNext(e){const t=this.generateNewMangledName(this.previousMangledName);return this.updatePreviousMangledName(t),this.preserveName(t),t}generateForGlobalScope(e){const t=this.options.identifiersPrefix?""+this.options.identifiersPrefix:"",r=this.generateNewMangledName(this.previousMangledName),o=`${t}${r}`;return this.updatePreviousMangledName(r),this.isValidIdentifierName(o)?(this.preserveName(o),o):this.generateForGlobalScope(e)}generateForLexicalScope(e,t){const r=[e,...y.NodeLexicalScopeUtils.getLexicalScopes(e)];let n=this.getLastMangledNameForScopes(r);do{n=this.generateNewMangledName(n)}while(!this.isValidIdentifierNameInLexicalScopes(n,r));return o.lastMangledNameInScopeMap.set(e,n),this.updatePreviousMangledName(n),this.preserveNameForLexicalScope(n,e),n}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,o=t.length;if(r!==o)return r>o;const n=this.getNameSequence();for(let o=0;o<r;o++){const r=e[o],i=t[o];if(r!==i)return n.indexOf(r)>n.indexOf(i)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!o.reservedNamesSet.has(e)}getNameSequence(){return o.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.previousMangledName)&&(this.previousMangledName=e)}generateNewMangledName(e){let t=(e=>{const t=this.getNameSequence(),r=t.length,o=e.length,n=e=>"0".repeat(e);let i=o-1;do{const a=e[i],s=t.indexOf(a);if(s!==r-1)return e.slice(0,i)+t[s+1]+n(o-(i+1));--i}while(i>=0);return`${t[p.numbersString.length]}${n(o)}`})(e);return this.isValidIdentifierName(t)||(t=this.generateNewMangledName(t)),t}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=o.lastMangledNameInScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return o.initMangledNameCharacter}};N.initMangledNameCharacter="9",N.lastMangledNameInScopeMap=new WeakMap,N.nameSequence=[...`${p.numbersString}${m.alphabetString}${g.alphabetStringUppercase}`],N.reservedNamesSet=new Set(["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"]),N=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.MangledIdentifierNamesGenerator=N},2677:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledShuffledIdentifierNamesGenerator=void 0;const l=r(2991),u=r(5350),f=r(5768),p=r(4482),m=r(1403),g=r(2023),S=r(6366),y=r(2691),N=r(3119);let h=o=class extends N.MangledIdentifierNamesGenerator{constructor(e,t,r){super(t,r),this.arrayUtils=e}initialize(){this.initializeNameSequence([...""+g.numbersString,...this.arrayUtils.shuffle([...`${S.alphabetString}${y.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(o.shuffledNameSequence=e)}getNameSequence(){return o.shuffledNameSequence}generateNewMangledName(e){return super.generateNewMangledName(e)}};s([l.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],h.prototype,"initialize",null),h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IArrayUtils)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.IArrayUtils&&f.IArrayUtils)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.MangledShuffledIdentifierNamesGenerator=h},5562:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3499:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5435:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},927:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7673:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6949:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5603:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5082:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},698:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5167:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5524:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5822:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},68:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5164:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2086:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},870:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8688:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5683:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3186:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5768:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5591:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9825:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2747:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2569:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1403:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9658:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7149:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const d=r(2991),l=r(5350),u=c(r(2242)),f=r(4482),p=r(4469);let m=o=class{constructor(e){this.options=e}static log(e,t,r,o){const n=e(`\n${t} ${r}`);console.log(n,null!=o?o:"")}info(e,t){this.options.log&&o.log(o.colorInfo,p.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&o.log(o.colorSuccess,p.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&o.log(o.colorWarn,p.LoggingPrefix.Base,e,t)}};m.colorInfo=u.default.cyan,m.colorSuccess=u.default.green,m.colorWarn=u.default.yellow,m=o=i([d.injectable(),s(0,d.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],m),t.Logger=m},9173:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403);let f=class{constructor(e,t){this.randomGenerator=e,this.options=t}};f=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],f),t.AbstractNodeTransformer=f},5419:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const n=r(2991),i=r(7207);let a=class extends i.AbstractTransformerNamesGroupsBuilder{};a=o([n.injectable()],a),t.NodeTransformerNamesGroupsBuilder=a},6827:function(e,t,r){var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformersRunner=void 0;const u=r(2991),f=r(5350),p=c(r(4523)),m=r(3312),g=r(9658),S=r(9487),y=r(4134),N=r(739);let h=class{constructor(e,t){this.nodeTransformerFactory=e,this.nodeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const o=this.buildNormalizedNodeTransformers(t,r),n=this.nodeTransformerNamesGroupsBuilder.build(o);for(const t of n){const n=[],i=[];for(const e of t){const t=o[e].getVisitor(r);t&&(t.enter&&n.push({enter:t.enter}),t.leave&&i.push({leave:t.leave}))}(n.length||i.length)&&p.replace(e,{enter:this.mergeVisitorsForDirection(n,S.VisitorDirection.Enter),leave:this.mergeVisitorsForDirection(i,S.VisitorDirection.Leave)})}return e}buildNormalizedNodeTransformers(e,t){return e.reduce(((e,r)=>{const o=this.nodeTransformerFactory(r);return o.getVisitor(t)?Object.assign(Object.assign({},e),{[r]:o}):e}),{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(o,n)=>{if(N.NodeMetadata.isIgnoredNode(o))return p.VisitorOption.Skip;for(let i=0;i<r;i++){const r=e[i][t];if(!r)continue;const a=r(o,n);a&&y.NodeGuards.isNode(a)&&(o=a)}return o}:(e,t)=>e}};h=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.Factory__INodeTransformer)),l(1,u.inject(f.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),d("design:paramtypes",["function"==typeof(o=void 0!==m.TNodeTransformerFactory&&m.TNodeTransformerFactory)?o:Object,"function"==typeof(n=void 0!==g.ITransformerNamesGroupsBuilder&&g.ITransformerNamesGroupsBuilder)?n:Object])],h),t.NodeTransformersRunner=h},5912:function(e,t,r){var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return d(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(8749),N=r(5768),h=r(4482),_=r(1403),b=r(1280),I=r(8932),O=r(9173),E=r(4134),v=r(2361);let C=o=class extends O.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.controlFlowCustomNodeFactory=e,this.arrayUtils=t}static isProhibitedStatementNode(e){const t=E.NodeGuards.isBreakStatementNode(e)||E.NodeGuards.isContinueStatementNode(e),r=E.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),o=E.NodeGuards.isClassDeclarationNode(e);return E.NodeGuards.isFunctionDeclarationNode(e)||t||r||o}static canTransformBlockStatementNode(e){let t=!0;return S.traverse(e,{enter:e=>{if(E.NodeGuards.isWhileStatementNode(e))return S.VisitorOption.Skip;o.isProhibitedStatementNode(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}getVisitor(e){switch(e){case I.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&E.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!o.canTransformBlockStatementNode(e))return e;const r=e.body,n=this.arrayUtils.createWithRange(r.length),i=this.arrayUtils.shuffle(n),a=n.map((e=>i.indexOf(e))),s=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(r,i,a);const c=s.getNode()[0];return v.NodeUtils.parentizeNode(c,t),c}};C=o=l([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),p(1,m.inject(g.ServiceIdentifiers.IArrayUtils)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==y.TControlFlowCustomNodeFactory&&y.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==N.IArrayUtils&&N.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==_.IRandomGenerator&&_.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==h.IOptions&&h.IOptions)?s:Object])],C),t.BlockStatementControlFlowTransformer=C},9749:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),l=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&d(t,e,r);return l(t,e),t},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowTransformer=void 0;const g=r(2991),S=r(5350),y=f(r(4523)),N=r(8749),h=r(9628),_=r(2147),b=r(4482),I=r(1403),O=r(1280),E=r(4015),v=r(9945),C=r(8932),T=r(9173),R=r(7678),A=r(4134),j=r(739),M=r(8134),F=r(2361);let P=o=class extends T.AbstractNodeTransformer{constructor(e,t,r,o,n){super(o,n),this.controlFlowData=new Map,this.visitedFunctionNodes=new Set,this.hostNodesWithControlFlowNode=new Set,this.controlFlowStorageFactory=e,this.controlFlowReplacerFactory=t,this.controlFlowCustomNodeFactory=r}getVisitor(e){switch(e){case C.NodeTransformationStage.ControlFlowFlattening:return{leave:(e,t)=>{if(t&&(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e)))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!A.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),o=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,o),this.transformFunctionBody(e.body,o),!o.getLength())return e;const n=this.controlFlowCustomNodeFactory(O.ControlFlowCustomNode.ControlFlowStorageNode);return n.initialize(o),R.NodeAppender.prepend(r,n.getNode()),this.hostNodesWithControlFlowNode.add(r),F.NodeUtils.parentizeAst(e),e}getControlFlowStorage(e){const t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&(A.NodeGuards.isSwitchCaseNode(e)?e.consequent.shift():e.body.shift());const r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}getHostNode(e){const t=M.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>o.hostNodeSearchMinDepth&&t.splice(0,o.hostNodeSearchMinDepth),t.length>o.hostNodeSearchMaxDepth&&(t.length=o.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}isVisitedFunctionNode(e){return(A.NodeGuards.isFunctionDeclarationNode(e)||A.NodeGuards.isFunctionExpressionNode(e)||A.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}transformFunctionBody(e,t){y.replace(e,{enter:(e,r)=>{if(j.NodeMetadata.isIgnoredNode(e))return y.VisitorOption.Skip;if(this.isVisitedFunctionNode(e)||!r)return y.VisitorOption.Skip;if(!o.controlFlowReplacersMap.has(e.type))return e;if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold)return e;const n=o.controlFlowReplacersMap.get(e.type);return void 0===n?e:Object.assign(Object.assign({},this.controlFlowReplacerFactory(n).replace(e,r,t)),{parentNode:r})}})}};P.controlFlowReplacersMap=new Map([[v.NodeType.BinaryExpression,E.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[v.NodeType.CallExpression,E.ControlFlowReplacer.CallExpressionControlFlowReplacer],[v.NodeType.LogicalExpression,E.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[v.NodeType.Literal,E.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),P.hostNodeSearchMinDepth=0,P.hostNodeSearchMaxDepth=2,P=o=u([g.injectable(),m(0,g.inject(S.ServiceIdentifiers.Factory__TControlFlowStorage)),m(1,g.inject(S.ServiceIdentifiers.Factory__IControlFlowReplacer)),m(2,g.inject(S.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(3,g.inject(S.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(S.ServiceIdentifiers.IOptions)),p("design:paramtypes",["function"==typeof(n=void 0!==_.TControlFlowStorageFactory&&_.TControlFlowStorageFactory)?n:Object,"function"==typeof(i=void 0!==h.TControlFlowReplacerFactory&&h.TControlFlowReplacerFactory)?i:Object,"function"==typeof(a=void 0!==N.TControlFlowCustomNodeFactory&&N.TControlFlowCustomNodeFactory)?a:Object,"function"==typeof(s=void 0!==I.IRandomGenerator&&I.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==b.IOptions&&b.IOptions)?c:Object])],P),t.FunctionControlFlowTransformer=P},9732:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const l=r(2991),u=r(5350),f=r(8749),p=r(4482),m=r(1403);let g=o=class{constructor(e,t,r){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.randomGenerator=t,this.options=r}static getStorageKeysByIdForCurrentStorage(e,t){let r;return r=e.has(t)?e.get(t):new Map,r}insertCustomNodeToControlFlowStorage(e,t,r,n){const i=t.getStorageId(),a=o.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,i),s=a.get(r);if(this.randomGenerator.getMathRandom()<n&&s&&s.length)return this.randomGenerator.getRandomGenerator().pickone(s);const c=e=>{const r=this.randomGenerator.getRandomString(e);return t.getStorage().has(r)?c(e):r},d=c(5);return a.set(r,[d]),this.replacerDataByControlFlowStorageId.set(i,a),t.set(d,e),d}};g=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],g),t.AbstractControlFlowReplacer=g},3358:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const l=r(2991),u=r(5350),f=r(8749),p=r(4482),m=r(1403),g=r(1280),S=r(8146);let y=o=class extends S.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.BinaryExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}};y.usingExistingIdentifierChance=.5,y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],y),t.BinaryExpressionControlFlowReplacer=y},5760:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const l=r(2991),u=r(5350),f=r(8749),p=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134);let N=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){const n=e.callee;if(!y.NodeGuards.isIdentifierNode(n))return e;const i=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;a.initialize(s);const c=this.insertCustomNodeToControlFlowStorage(a,r,i,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),c,n,s)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!y.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};N.usingExistingIdentifierChance=.5,N=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.CallExpressionControlFlowReplacer=N},8146:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const d=r(2991),l=r(5350),u=r(8749),f=r(4482),p=r(1403),m=r(1280),g=r(9732),S=r(4134);let y=class extends g.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}getControlFlowStorageCallNode(e,t,r,o){const n=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);n.initialize(e,t,r,o);const i=n.getNode()[0];if(!i||!S.NodeGuards.isExpressionStatementNode(i))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return i.expression}};y=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.Factory__IControlFlowCustomNode)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.TControlFlowCustomNodeFactory&&u.TControlFlowCustomNodeFactory)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],y),t.ExpressionWithOperatorControlFlowReplacer=y},6522:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionControlFlowReplacer=void 0;const l=r(2991),u=r(5350),f=r(8749),p=r(4482),m=r(1403),g=r(1280),S=r(8146),y=r(4134),N=r(2361);let h=o=class extends S.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;const n=e.operator,i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.LogicalExpressionFunctionNode);i.initialize(n);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}checkForProhibitedExpressions(e,t){return[e,t].some((e=>{let t;return t=y.NodeGuards.isUnaryExpressionNode(e)?N.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(y.NodeGuards.isLiteralNode(t)||y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isObjectExpressionNode(t)||y.NodeGuards.isExpressionStatementNode(t))}))}};h.usingExistingIdentifierChance=.5,h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.LogicalExpressionControlFlowReplacer=h},270:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const l=r(2991),u=r(5350),f=r(8749),p=r(4482),m=r(1403),g=r(1280),S=r(9732),y=r(4134),N=r(8241);let h=o=class extends S.AbstractControlFlowReplacer{constructor(e,t,r){super(e,t,r)}replace(e,t,r){if(y.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!N.NodeLiteralUtils.isStringLiteralNode(e)||e.value.length<3)return e;const n=String(e.value),i=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralNode);i.initialize(e.value);const a=this.insertCustomNodeToControlFlowStorage(i,r,n,o.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(g.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!y.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}};h.usingExistingIdentifierChance=1,h=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__IControlFlowCustomNode)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TControlFlowCustomNodeFactory&&f.TControlFlowCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],h),t.StringLiteralControlFlowReplacer=h},2337:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(4134),g=r(2361),S=r(9376);let y=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return g.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return S.NodeFactory.unaryExpressionNode("!",S.NodeFactory.arrayExpressionNode())}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.BooleanLiteralTransformer=y},9912:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSpecifierTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(4134),g=r(2361);let S=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=g.NodeUtils.clone(e.local)),e}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.ExportSpecifierTransformer=S},9139:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(9376),g=r(4134);let S=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(g.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.MemberExpressionTransformer=S},6037:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MethodDefinitionTransformer=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(8932),m=r(9173),g=r(9376),S=r(4134);let y=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isMethodDefinitionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):S.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return o.ignoredNames.includes(t.name)||e.computed||(e.computed=!0,e.key=g.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||o.ignoredNames.includes(t.value)||e.computed||(e.computed=!0),e}};y.ignoredNames=["constructor"],y=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],y),t.MethodDefinitionTransformer=y},9467:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(4212),p=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(6543);let N=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let o;return this.numberLiteralCache.has(r)?o=this.numberLiteralCache.get(r):(o=y.NumberUtils.isCeil(r)?y.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,o)),g.NodeFactory.literalNode(r,o)}};N=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],N),t.NumberLiteralTransformer=N},3393:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberToNumericalExpressionTransformer=void 0;const d=r(2991),l=r(5350),u=r(5435),f=r(4482),p=r(1403),m=r(8932),g=r(9173),S=r(4134),y=r(9376),N=r(6543);let h=class extends g.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){if(!this.options.numbersToExpressions)return null;switch(e){case m.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if("number"!=typeof e.value)return e;if(S.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=this.numberNumericalExpressionAnalyzer.analyze(e.value);return this.convertNumericalExpressionDataToNode(r)}convertNumericalExpressionDataToNode(e,t="+"){var r;const o=e.length,n=o>1?e.slice(0,o-1):[e[0]],i=o>1?e.slice(-1):[];if(i.length)return this.convertPartsToBinaryExpression(t,n,i);const a=null!==(r=n[0])&&void 0!==r?r:null;return Array.isArray(a)?this.convertNumericalExpressionDataToNode(a,"*"):this.convertPartOrNumberToLiteralNode(a)}convertPartsToBinaryExpression(e,t,r){const o=r[0];return Array.isArray(o)?y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertNumericalExpressionDataToNode(o,"*")):y.NodeFactory.binaryExpressionNode(e,this.convertNumericalExpressionDataToNode(t),this.convertPartOrNumberToLiteralNode(o))}convertPartOrNumberToLiteralNode(e){const t=Array.isArray(e)?e[0]:e,r=N.NumberUtils.isPositive(t),o=y.NodeFactory.literalNode(Math.abs(t));return r?o:y.NodeFactory.unaryExpressionNode("-",o)}};h=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),c(1,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(2,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(o=void 0!==u.INumberNumericalExpressionAnalyzer&&u.INumberNumericalExpressionAnalyzer)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object])],h),t.NumberToNumericalExpressionTransformer=h},122:function(e,t,r){var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformer=void 0;const p=r(2991),m=r(5350),g=l(r(4523)),S=r(2937),y=r(4482),N=r(1403),h=r(8932),_=r(9946),b=r(9173),I=r(4134),O=r(8134);let E=o=class extends b.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.objectExpressionExtractorFactory=e}static isProhibitedObjectExpressionNode(e,t,r){return o.isReferencedIdentifierName(e,r)||o.isProhibitedArrowFunctionExpression(e,t)||o.isProhibitedSequenceExpression(e,r)}static isReferencedIdentifierName(e,t){const r=[];let o=!1,n=!1;return g.traverse(t,{enter:t=>{t===e&&(n=!0),I.NodeGuards.isIdentifierNode(t)&&(n?r.includes(t.name)&&(o=!0):r.push(t.name))},leave:t=>{if(t===e)return n=!1,g.VisitorOption.Break}}),o}static isProhibitedArrowFunctionExpression(e,t){return I.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}static isProhibitedSequenceExpression(e,t){return I.NodeGuards.isExpressionStatementNode(t)&&I.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some((e=>I.NodeGuards.isCallExpressionNode(e)&&I.NodeGuards.isSuperNode(e.callee)))}getVisitor(e){if(!this.options.transformObjectKeys)return null;switch(e){case h.NodeTransformationStage.Converting:return{leave:(e,t)=>{if(t&&I.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!e.properties.length)return e;const r=O.NodeStatementUtils.getRootStatementOfNode(e);return o.isProhibitedObjectExpressionNode(e,t,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(o.objectExpressionExtractorNames,e,r)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const o=[...e],n=o.shift();if(!n)return t;const{nodeToReplace:i,objectExpressionHostStatement:a,objectExpressionNode:s}=this.objectExpressionExtractorFactory(n).extract(t,r);return this.applyObjectExpressionKeysExtractorsRecursive(o,s,a),i}};E.objectExpressionExtractorNames=[_.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,_.ObjectExpressionExtractor.BasePropertiesExtractor],E=o=d([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),u("design:paramtypes",["function"==typeof(n=void 0!==S.TObjectExpressionExtractorFactory&&S.TObjectExpressionExtractorFactory)?n:Object,"function"==typeof(i=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==y.IOptions&&y.IOptions)?a:Object])],E),t.ObjectExpressionKeysTransformer=E},626:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(9376),g=r(4134);let S=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&g.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return e.properties.forEach((e=>{g.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))})),e}transformComputedProperty(e){g.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=m.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),g.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name))}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.ObjectExpressionTransformer=S},6312:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectPatternPropertiesTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(4134),g=r(1534),S=r(2361);let y=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&m.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!m.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=g.NodeLexicalScopeUtils.getLexicalScope(e);if(t&&m.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=S.NodeUtils.clone(e.value),S.NodeUtils.parentizeNode(e.value,e),e}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.ObjectPatternPropertiesTransformer=y},5869:function(e,t,r){var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringTransformer=void 0;const f=r(2991),p=r(5350),m=d(r(4523)),g=d(r(6094)),S=r(4482),y=r(1403),N=r(4212),h=r(8932),_=r(9173),b=r(9376),I=r(4134),O=r(8241),E=r(2361);let v=o=class extends _.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[N.NodeTransformer.ObjectExpressionKeysTransformer,N.NodeTransformer.TemplateLiteralTransformer]}static chunkString(e,t,r){const o=Math.ceil(t/r),n=[];let i=0;for(let t=0;t<o;++t,i+=r)n[t]=g.substr(e,i,r);return n}getVisitor(e){switch(e){case h.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(this.options.splitStrings)return t&&I.NodeGuards.isLiteralNode(e)?this.transformNode(e,t):void 0}};default:return null}}transformNode(e,t){if(O.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,t,o.firstPassChunkLength);return m.replace(r,{enter:(e,t)=>{if(t&&I.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,t,this.options.splitStringsChunkLength)}})}transformLiteralNodeByChunkLength(e,t,r){if(!O.NodeLiteralUtils.isStringLiteralNode(e))return e;const n=g.length(e.value);if(r>=n)return e;const i=o.chunkString(e.value,n,r),a=this.transformStringChunksToBinaryExpressionNode(i);return E.NodeUtils.parentizeAst(a),E.NodeUtils.parentizeNode(a,t),a}transformStringChunksToBinaryExpressionNode(e){const t=e.shift(),r=e.shift();if(!t||!r)throw new Error("First and second chunks values should not be empty");const o=b.NodeFactory.binaryExpressionNode("+",b.NodeFactory.literalNode(t),b.NodeFactory.literalNode(r));return e.reduce(((e,t)=>{const r=b.NodeFactory.literalNode(t);return b.NodeFactory.binaryExpressionNode("+",e,r)}),o)}};v.firstPassChunkLength=1e3,v=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],v),t.SplitStringTransformer=v},810:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(8932),m=r(9173),g=r(9376),S=r(4134),y=r(2361);let N=o=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&S.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){switch(e){case p.NodeTransformationStage.Converting:return{enter:(e,t)=>{if(t&&S.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return S.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(e,t){const r=e.expressions;let n,i=[];if(e.quasis.forEach((e=>{i.push(g.NodeFactory.literalNode(e.value.cooked));const t=r.shift();t&&i.push(t)})),i=i.filter((e=>!(S.NodeGuards.isLiteralNode(e)&&""===e.value))),o.isLiteralNodeWithStringValue(i[0])||o.isLiteralNodeWithStringValue(i[1])||i.unshift(g.NodeFactory.literalNode("")),i.length>1){let e=g.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());i.forEach((t=>{e=g.NodeFactory.binaryExpressionNode("+",e,t)})),n=e}else n=i[0];return y.NodeUtils.parentizeAst(n),y.NodeUtils.parentizeNode(n,t),n}};N=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],N),t.TemplateLiteralTransformer=N},8539:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const i=r(2991),a=r(7678),s=r(9376),c=r(4134),d=r(8134),l=r(2361);let u=o=class{static getPropertyNodeKeyName(e){const t=e.key;return!c.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?c.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&c.NodeGuards.isLiteralNode(e.key)}extract(e,t){const r=e.parentNode;return r&&c.NodeGuards.isVariableDeclaratorNode(r)&&c.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const o=e.properties,[n,i]=this.extractPropertiesToExpressionStatements(o,t,r),s=d.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,i),a.NodeAppender.insertAfter(s,n,t),l.NodeUtils.parentizeAst(s),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const n=[],i=[];for(let a=e.length-1;a>=0;a--){const d=e[a];if(c.NodeGuards.isSpreadElementNode(d))break;if(o.isProhibitedPropertyNode(d))continue;const l=d.value;if(o.isProhibitedPattern(l))continue;const u=o.getPropertyNodeKeyName(d);if(!u)continue;const f=o.shouldCreateLiteralNode(d)?s.NodeFactory.literalNode(u):s.NodeFactory.identifierNode(u),p=s.NodeFactory.memberExpressionNode(r,f,!0),m=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",p,l));c.NodeGuards.isObjectExpressionNode(d.value)&&this.transformObjectExpressionNode(d.value,t,p),n.unshift(m),i.unshift(a)}return[n,i]}filterExtractedObjectExpressionProperties(e,t){e.properties=e.properties.filter(((e,r)=>!t.includes(r)))}};u=o=n([i.injectable()],u),t.BasePropertiesExtractor=u},7834:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const s=r(2991),c=r(5350),d=r(1878),l=r(9809),u=r(7678),f=r(4134),p=r(8134),m=r(2361),g=r(1534);let S=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const o=p.NodeStatementUtils.getScopeOfNode(t),n=f.NodeGuards.isNodeWithLexicalScope(o)?o:null!==(r=g.NodeLexicalScopeUtils.getLexicalScope(o))&&void 0!==r?r:null;if(!n)throw new Error("Cannot find lexical scope node for the host statement node");const i=e.properties,a=this.getObjectExpressionHostNode(n,i),s=[a];return u.NodeAppender.insertBefore(o,s,t),m.NodeUtils.parentizeAst(a),m.NodeUtils.parentizeNode(a,o),{nodeToReplace:this.getObjectExpressionIdentifierNode(a),objectExpressionHostStatement:a,objectExpressionNode:this.getObjectExpressionNode(a)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(l.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const o=r.getNode()[0];if(!o||!f.NodeGuards.isVariableDeclarationNode(o))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return o}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!f.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!f.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};S=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",["function"==typeof(o=void 0!==d.TObjectExpressionKeysTransformerCustomNodeFactory&&d.TObjectExpressionKeysTransformerCustomNodeFactory)?o:Object])],S),t.ObjectExpressionToVariableDeclarationExtractor=S},8043:function(e,t,r){var o,n,i,a,s,c=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&c(t,e,r);return d(t,e),t},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionTransformer=void 0;const m=r(2991),g=r(5350),S=u(r(4523)),y=r(7183),N=r(4482),h=r(1403),_=r(698),b=r(2620),I=r(4212),O=r(9945),E=r(8932),v=r(9173),C=r(9376),T=r(4134),R=r(8134),A=r(2361);let j=o=class extends v.AbstractNodeTransformer{constructor(e,t,r,o){super(r,o),this.deadCodeInjectionRootAstHostNodeSet=new Set,this.collectedBlockStatements=[],this.collectedBlockStatementsTotalLength=0,this.deadCodeInjectionCustomNodeFactory=e,this.transformersRunner=t}static isProhibitedNodeInsideCollectedBlockStatement(e){return T.NodeGuards.isFunctionDeclarationNode(e)||T.NodeGuards.isBreakStatementNode(e)||T.NodeGuards.isContinueStatementNode(e)||T.NodeGuards.isAwaitExpressionNode(e)||T.NodeGuards.isYieldExpressionNode(e)||T.NodeGuards.isSuperNode(e)||T.NodeGuards.isForOfStatementNode(e)&&e.await}static isScopeHoistingFunctionDeclaration(e){if(!T.NodeGuards.isFunctionDeclarationNode(e))return!1;const t=R.NodeStatementUtils.getScopeOfNode(e),r=T.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,o=r.indexOf(e);if(0===o)return!1;const n=r.slice(0,o),i=C.NodeFactory.blockStatementNode(n),a=e.id.name;let s=!1;return S.traverse(i,{enter:e=>{if(T.NodeGuards.isIdentifierNode(e)&&e.name===a)return s=!0,S.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return S.traverse(e,{enter:e=>{if(T.NodeGuards.isBlockStatementNode(e)&&t++,t>o.maxNestedBlockStatementsCount||o.isProhibitedNodeInsideCollectedBlockStatement(e)||o.isScopeHoistingFunctionDeclaration(e))return r=!1,S.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e){if(!e.body.length)return!1;let t=!0;return S.traverse(e,{enter:e=>{if(o.isScopeHoistingFunctionDeclaration(e))return t=!1,S.VisitorOption.Break}}),!!t&&R.NodeStatementUtils.getParentNodeWithStatements(e).type!==O.NodeType.Program}getVisitor(e){switch(e){case E.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&T.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&T.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case E.NodeTransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}prepareNode(e,t){S.traverse(e,{enter:e=>{if(!T.NodeGuards.isBlockStatementNode(e))return;const t=A.NodeUtils.clone(e);if(!o.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLength<o.minCollectedBlockStatementsCount)return S.VisitorOption.Break;if(this.randomGenerator.getMathRandom()>this.options.deadCodeInjectionThreshold||!o.isValidWrappedBlockStatementNode(e))return e;const r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),i=this.collectedBlockStatements.splice(n,1)[0];return i===e?e:this.replaceBlockStatementNode(e,i,t)}restoreNode(e,t){const r=e.body[0];if(!T.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){return T.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}makeClonedBlockStatementNodeUnique(e){const t=C.NodeFactory.programNode([C.NodeFactory.expressionStatementNode(C.NodeFactory.functionExpressionNode([],e))]);return A.NodeUtils.parentizeAst(t),A.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,o.transformersToRenameBlockScopeIdentifiers,E.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const n=C.NodeFactory.blockStatementNode([C.NodeFactory.functionDeclarationNode(o.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const i=this.deadCodeInjectionCustomNodeFactory(b.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);i.initialize(e,n);const a=i.getNode()[0];return A.NodeUtils.parentizeNode(a,r),a}};j.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",j.maxNestedBlockStatementsCount=4,j.minCollectedBlockStatementsCount=5,j.transformersToRenameBlockScopeIdentifiers=[I.NodeTransformer.LabeledStatementTransformer,I.NodeTransformer.ScopeIdentifiersTransformer,I.NodeTransformer.ScopeThroughIdentifiersTransformer],j=o=l([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),p(1,m.inject(g.ServiceIdentifiers.INodeTransformersRunner)),p(2,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p(3,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",["function"==typeof(n=void 0!==y.TDeadNodeInjectionCustomNodeFactory&&y.TDeadNodeInjectionCustomNodeFactory)?n:Object,"function"==typeof(i=void 0!==_.INodeTransformersRunner&&_.INodeTransformersRunner)?i:Object,"function"==typeof(a=void 0!==h.IRandomGenerator&&h.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==N.IOptions&&N.IOptions)?s:Object])],j),t.DeadCodeInjectionTransformer=j},4837:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceTransformer=void 0;const d=r(2991),l=r(5350),u=r(2747),f=r(4482),p=r(1403),m=r(8932),g=r(4212),S=r(9173),y=r(4134),N=r(8241),h=r(9376),_=r(2361);let b=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[g.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){switch(e){case m.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(y.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),o=h.NodeFactory.literalNode(r);return _.NodeUtils.parentizeNode(o,t),o}};b=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),c(2,d.inject(l.ServiceIdentifiers.IEscapeSequenceEncoder)),s("design:paramtypes",["function"==typeof(o=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IEscapeSequenceEncoder&&u.IEscapeSequenceEncoder)?i:Object])],b),t.EscapeSequenceTransformer=b},5289:function(e,t,r){var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTransformer=void 0;const f=r(2991),p=r(5350),m=d(r(4523)),g=r(4482),S=r(1403),y=r(8932),N=r(9173),h=r(6955),_=r(4134);let b=o=class extends N.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case y.NodeTransformationStage.Initializing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case y.NodeTransformationStage.Finalizing:return{leave:e=>{if(_.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){if(!(e=this.filterCommentsOnPrimaryTraverse(e)).comments||!e.comments.length)return e;const t=e.comments.reverse();if(0===t.length)return e;if(!e.body.length)return e.leadingComments=t,e;let r=!0;return m.traverse(e,{enter:o=>{if(o===e)return;const n=t.findIndex((e=>e.range&&o.range&&e.range[0]<o.range[0]));n>=0&&((r?e:o).leadingComments=t.splice(n,t.length-n).reverse()),r=!1}}),t.length>0&&(e.trailingComments=t.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!0))),e}filterCommentsOnFinalizingTraverse(e){return m.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter((e=>this.filterComment(e,!1)))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter((e=>this.filterComment(e,!1)))),e}}),e}filterComment(e,t){return!(!t||!h.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||o.preservedWords.some((t=>e.value.includes(t)))}};b.preservedWords=["@license","@preserve"],b=o=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(1,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(n=void 0!==S.IRandomGenerator&&S.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==g.IOptions&&g.IOptions)?i:Object])],b),t.CommentsTransformer=b},4996:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const f=r(2991),p=r(5350),m=r(6622),g=r(5603),S=r(4482),y=r(1403),N=r(5562),h=r(3499),_=r(4212),b=r(1093),I=r(8932),O=r(9173),E=r(4134);let v=class extends O.AbstractNodeTransformer{constructor(e,t,r,o,n,i){super(n,i),this.runAfter=[_.NodeTransformer.ParentificationTransformer,_.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.obfuscationEventEmitter=r,this.customCodeHelperGroupStorage=o}getVisitor(e){switch(e){case I.NodeTransformationStage.Preparing:return{leave:(e,t)=>{if(E.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesBeforeObfuscation(e,t),this.transformNode(e,t)}};case I.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{E.NodeGuards.isProgramNode(e)&&this.appendCustomNodesAfterObfuscation(e,t)}};default:return null}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesBeforeObfuscation(e,t){this.customCodeHelperGroupStorage.getStorage().forEach((e=>{e.initialize(),this.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendNodes.bind(e))})),this.obfuscationEventEmitter.emit(b.ObfuscationEvent.BeforeObfuscation,e,this.callsGraphData)}appendCustomNodesAfterObfuscation(e,t){this.obfuscationEventEmitter.emit(b.ObfuscationEvent.AfterObfuscation,e,this.callsGraphData)}};v=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.ICallsGraphAnalyzer)),u(1,f.inject(p.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),u(2,f.inject(p.ServiceIdentifiers.IObfuscationEventEmitter)),u(3,f.inject(p.ServiceIdentifiers.TCustomNodeGroupStorage)),u(4,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(5,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==N.ICallsGraphAnalyzer&&N.ICallsGraphAnalyzer)?o:Object,"function"==typeof(n=void 0!==h.IPrevailingKindOfVariablesAnalyzer&&h.IPrevailingKindOfVariablesAnalyzer)?n:Object,"function"==typeof(i=void 0!==g.IObfuscationEventEmitter&&g.IObfuscationEventEmitter)?i:Object,"function"==typeof(a=void 0!==m.TCustomCodeHelperGroupStorage&&m.TCustomCodeHelperGroupStorage)?a:Object,"function"==typeof(s=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?s:Object,"function"==typeof(c=void 0!==S.IOptions&&S.IOptions)?c:Object])],v),t.CustomCodeHelpersTransformer=v},3449:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(4212),m=r(8932),g=r(9173),S=r(9376),y=r(4134),N=r(2361),h=r(2161);let _=o=class extends g.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[p.NodeTransformer.EscapeSequenceTransformer,p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.VariablePreserveTransformer],this.evalRootAstHostNodeSet=new Set}static extractEvalStringFromCallExpressionArgument(e){return y.NodeGuards.isLiteralNode(e)?o.extractEvalStringFromLiteralNode(e):y.NodeGuards.isTemplateLiteralNode(e)?o.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){const t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}getVisitor(e){switch(e){case m.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return this.transformNode(e,t)}};case m.NodeTransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:(e,t)=>{if(t&&this.isEvalRootAstHostNode(e))return this.restoreNode(e,t)}}:null;default:return null}}transformNode(e,t){const r=e.arguments[0];if(!r)return e;const n=o.extractEvalStringFromCallExpressionArgument(r);if(!n)return e;let i;try{i=N.NodeUtils.convertCodeToStructure(n)}catch(t){return e}const a=S.NodeFactory.functionExpressionNode([],S.NodeFactory.blockStatementNode(i));return N.NodeUtils.parentizeAst(a),N.NodeUtils.parentizeNode(a,t),this.evalRootAstHostNodeSet.add(a),a}restoreNode(e,t){const r=e.body.body,o=N.NodeUtils.convertStructureToCode(r);return S.NodeFactory.callExpressionNode(S.NodeFactory.identifierNode("eval"),[S.NodeFactory.literalNode(h.StringUtils.escapeJsString(o))])}isEvalRootAstHostNode(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}};_=o=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],_),t.EvalCallExpressionTransformer=_},8049:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(4212),p=r(8932),m=r(9173),g=r(4134),S=r(739);let y=class extends m.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.ParentificationTransformer,f.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){switch(e){case p.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),g.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.MetadataTransformer=y},1581:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const l=r(2991),u=r(5350),f=r(805),p=r(4482),m=r(1403),g=r(4212),S=r(8932),y=r(4361),N=r(8608),h=r(9173),_=r(4134),b=r(739);let I=o=class extends h.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer,g.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=o.obfuscatingGuardsList.map(e)}getVisitor(e){switch(e){case S.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){const r=this.obfuscatingGuards.map((t=>t.check(e)));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,o=!1;t.every((e=>e===N.ObfuscatingGuardResult.Transform))||(r=t.some((e=>e===N.ObfuscatingGuardResult.ForceTransform)),o=!r&&t.some((e=>e===N.ObfuscatingGuardResult.Ignore))),b.NodeMetadata.set(e,{forceTransformNode:r&&!_.NodeGuards.isProgramNode(e),ignoredNode:o&&!_.NodeGuards.isProgramNode(e)})}};I.obfuscatingGuardsList=[y.ObfuscatingGuard.BlackListObfuscatingGuard,y.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,y.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,y.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,y.ObfuscatingGuard.ReservedStringObfuscatingGuard],I=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__INodeGuard)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TObfuscatingGuardFactory&&f.TObfuscatingGuardFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],I),t.ObfuscatingGuardsTransformer=I},774:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(9173),m=r(2361);let g=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Preparing:return{enter:(e,t)=>this.transformNode(e,t)};default:return null}}transformNode(e,t){return m.NodeUtils.parentizeNode(e,t)}};g=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],g),t.ParentificationTransformer=g},2616:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const l=r(2991),u=r(5167),f=r(4482),p=r(1403),m=r(5822),g=r(4212),S=r(5350),y=r(8932),N=r(9173),h=r(4134);let _=class extends N.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.runAfter=[g.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=o,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case y.NodeTransformationStage.Preparing:case y.NodeTransformationStage.Converting:case y.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&h.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:o,variableScope:n}=e;for(const e of o.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,n)}preserveIdentifierNameForRootLexicalScope(e){this.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=h.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};_=s([l.injectable(),d(0,l.inject(S.ServiceIdentifiers.IIdentifierReplacer)),d(1,l.inject(S.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(S.ServiceIdentifiers.IOptions)),d(3,l.inject(S.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==u.IIdentifierReplacer&&u.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==f.IOptions&&f.IOptions)?i:Object,"function"==typeof(a=void 0!==m.IScopeIdentifiersTraverser&&m.IScopeIdentifiersTraverser)?a:Object])],_),t.VariablePreserveTransformer=_},5878:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const a=r(2991),s=r(8608),c=r(4134);let d=o=class{constructor(){this.blackListGuardsLength=o.blackListGuards.length}check(e){for(let t=0;t<this.blackListGuardsLength;t++)if(o.blackListGuards[t](e))return s.ObfuscatingGuardResult.Ignore;return s.ObfuscatingGuardResult.Transform}};d.blackListGuards=[c.NodeGuards.isUseStrictOperator],d=o=n([a.injectable(),i("design:paramtypes",[])],d),t.BlackListObfuscatingGuard=d},6955:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const i=r(2991),a=r(8608),s=r(4134);let c=o=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return o.obfuscationEnableCommentRegExp.test(e.value)||o.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?a.ObfuscatingGuardResult.Transform:a.ObfuscatingGuardResult.Ignore}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let n=0;n<t;n++){const t=e[n];o.obfuscationEnableCommentRegExp.test(t.value)?r=!0:o.obfuscationDisableCommentRegExp.test(t.value)&&(r=!1)}return r}};c.obfuscationEnableCommentRegExp=new RegExp("javascript-obfuscator *: *enable"),c.obfuscationDisableCommentRegExp=new RegExp("javascript-obfuscator *: *disable"),c=o=n([i.injectable()],c),t.ConditionalCommentObfuscatingGuard=c},4935:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ForceTransformStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let f=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?d.ObfuscatingGuardResult.ForceTransform:d.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};f=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],f),t.ForceTransformStringObfuscatingGuard=f},147:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IgnoredRequireImportObfuscatingGuard=void 0;const s=r(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let f=class{constructor(e){this.options=e}check(e){return this.options.ignoreRequireImports&&u.NodeGuards.isCallExpressionNode(e)&&u.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name?d.ObfuscatingGuardResult.Ignore:d.ObfuscatingGuardResult.Transform}};f=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],f),t.IgnoredRequireImportObfuscatingGuard=f},7985:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const s=r(2991),c=r(4482),d=r(8608),l=r(5350),u=r(4134);let f=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?d.ObfuscatingGuardResult.Ignore:d.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some((t=>null!==new RegExp(t,"g").exec(e)))}};f=n([s.injectable(),a(0,s.inject(l.ServiceIdentifiers.IOptions)),i("design:paramtypes",["function"==typeof(o=void 0!==c.IOptions&&c.IOptions)?o:Object])],f),t.ReservedStringObfuscatingGuard=f},8869:function(e,t,r){var o,n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},d=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&a(t,e,r);return s(t,e),t},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LabeledStatementTransformer=void 0;const f=r(2991),p=r(5350),m=d(r(4523)),g=r(5167),S=r(4482),y=r(1403),N=r(8932),h=r(9173),_=r(4134),b=r(1534);let I=class extends h.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.identifierReplacer=e}getVisitor(e){switch(e){case N.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&_.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=b.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){m.replace(e,{enter:(e,r)=>{if(r&&_.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};I=c([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.IIdentifierReplacer)),u(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(2,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",["function"==typeof(o=void 0!==g.IIdentifierReplacer&&g.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==S.IOptions&&S.IOptions)?i:Object])],I),t.LabeledStatementTransformer=I},5806:function(e,t,r){var o,n,i,a,s=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),c=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return c(t,e),t},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTransformer=void 0;const p=r(2991),m=r(5350),g=l(r(4523)),S=r(5167),y=r(4482),N=r(1403),h=r(5822),_=r(8932),b=r(9173),I=r(4134),O=r(739);let E=class extends b.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.lexicalScopesWithObjectPatternWithoutDeclarationMap=new Map,this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case _.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&I.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,(e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:o}=e;(this.options.renameGlobals||!t||r.defs.every((e=>"ImportBinding"===e.type||"CatchClause"===e.type)))&&this.transformScopeVariableIdentifiers(r,o,t)})),e}transformScopeVariableIdentifiers(e,t,r){var o;const n=null!==(o=e.identifiers[0])&&void 0!==o?o:null;n&&this.isReplaceableIdentifierNode(n,t,e)&&(this.storeIdentifierName(n,t,r),this.replaceIdentifierName(n,t,e))}storeIdentifierName(e,t,r){r?this.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifiers.forEach((e=>{e.name=o.name})),r.references.forEach((t=>{t.identifier.name=e.name}))}isReplaceableIdentifierNode(e,t,r){const o=e.parentNode;return!(!o||O.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyIdentifierNode(e,o)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(e,o)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,o)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,o)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,o)||this.isProhibitedImportSpecifierNode(e,o)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||I.NodeGuards.isLabelIdentifierNode(e,o))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return I.NodeGuards.isClassDeclarationNode(e.scope.block)&&I.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return I.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&I.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return I.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&I.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return I.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&I.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&I.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return I.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return I.NodeGuards.isPropertyNode(t)&&!t.computed&&I.NodeGuards.isIdentifierNode(t.key)&&I.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return I.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&I.NodeGuards.isPropertyNode(t.parentNode)&&I.NodeGuards.isIdentifierNode(t.left)&&I.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let o=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===o)return!1;if(!e.defs.some((e=>"var"===e.kind)))return!1;let n=!1;return g.traverse(r,{enter:(e,r)=>{if(I.NodeGuards.isObjectPatternNode(e)&&r&&I.NodeGuards.isAssignmentExpressionNode(r)){o=!0;const r=e.properties;for(const e of r)if(I.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&I.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name)return n=!0,g.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=o&&o),n}};E=d([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.IIdentifierReplacer)),f(1,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(m.ServiceIdentifiers.IOptions)),f(3,p.inject(m.ServiceIdentifiers.IScopeIdentifiersTraverser)),u("design:paramtypes",["function"==typeof(o=void 0!==S.IIdentifierReplacer&&S.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==y.IOptions&&y.IOptions)?i:Object,"function"==typeof(a=void 0!==h.IScopeIdentifiersTraverser&&h.IScopeIdentifiersTraverser)?a:Object])],E),t.ScopeIdentifiersTransformer=E},7247:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeThroughIdentifiersTransformer=void 0;const l=r(2991),u=r(5350),f=r(5167),p=r(4482),m=r(1403),g=r(5822),S=r(8932),y=r(9173),N=r(4134);let h=class extends y.AbstractNodeTransformer{constructor(e,t,r,o){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=o}getVisitor(e){switch(e){case S.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&N.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,(e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)})),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const o=this.identifierReplacer.replace(e,t);r.identifier.name=o.name}};h=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IIdentifierReplacer)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),d(3,l.inject(u.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",["function"==typeof(o=void 0!==f.IIdentifierReplacer&&f.IIdentifierReplacer)?o:Object,"function"==typeof(n=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==p.IOptions&&p.IOptions)?i:Object,"function"==typeof(a=void 0!==g.IScopeIdentifiersTraverser&&g.IScopeIdentifiersTraverser)?a:Object])],h),t.ScopeThroughIdentifiersTransformer=h},6181:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierReplacer=void 0;const c=r(2991),d=r(5350),l=r(9416),u=r(4482),f=r(9376);let p=class{constructor(e,t){this.blockScopesMap=new Map,this.options=t,this.identifierNamesGenerator=e(t)}storeGlobalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForGlobalScope();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}storeLocalName(e,t){const r=e.name;if(this.isReservedName(r))return;const o=this.identifierNamesGenerator.generateForLexicalScope(t);this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new Map),this.blockScopesMap.get(t).set(r,o)}replace(e,t){let r=e.name;if(this.blockScopesMap.has(t)){const e=this.blockScopesMap.get(t);e.has(r)&&(r=e.get(r))}return f.NodeFactory.identifierNode(r)}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.TIdentifierNamesGeneratorFactory&&l.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==u.IOptions&&u.IOptions)?n:Object])],p),t.IdentifierReplacer=p},2143:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const l=r(2991),u=r(5350),f=r(5524),p=r(4482),m=r(1403),g=r(8932),S=r(9173),y=r(4134);let N=o=class extends S.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return(!y.NodeGuards.isIdentifierNode(t)||!e.computed)&&(y.NodeGuards.isIdentifierNode(t)||y.NodeGuards.isLiteralNode(t))}getVisitor(e){switch(e){case g.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return y.NodeGuards.isPropertyNode(e)?this.transformPropertyNode(e):y.NodeGuards.isMemberExpressionNode(e)?this.transformMemberExpressionNode(e):y.NodeGuards.isMethodDefinitionNode(e)?this.transformMethodDefinitionNode(e):e}transformPropertyNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t),e.shorthand=!1),e}transformMemberExpressionNode(e){const t=e.property;return o.isValidPropertyNode(e,t)&&(e.property=this.renamePropertiesReplacer.replace(t)),e}transformMethodDefinitionNode(e){const t=e.key;return o.isValidPropertyNode(e,t)&&(e.key=this.renamePropertiesReplacer.replace(t)),e}};N=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.IRenamePropertiesReplacer)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.IRenamePropertiesReplacer&&f.IRenamePropertiesReplacer)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],N),t.RenamePropertiesTransformer=N},7889:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const d=r(2991),l=r(5350),u=r(9416),f=r(4482),p=c(r(6856)),m=r(4134),g=r(9376);let S=class{constructor(e,t){this.propertyNamesMap=new Map,this.reservedDomPropertiesList=new Set(p.default),this.identifierNamesGenerator=e(t),this.options=t}replace(e){return m.NodeGuards.isIdentifierNode(e)?g.NodeFactory.identifierNode(this.replacePropertyName(e.name)):m.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?g.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t;if(this.isReservedName(e))return e;let r=null!==(t=this.propertyNamesMap.get(e))&&void 0!==t?t:null;return null!==r||(r=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,r)),r}isReservedName(e){return this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some((t=>null!==new RegExp(t,"g").exec(e)))}isReservedDomPropertyName(e){return this.reservedDomPropertiesList.has(e)}};S=i([d.injectable(),s(0,d.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s(1,d.inject(l.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.TIdentifierNamesGeneratorFactory&&u.TIdentifierNamesGeneratorFactory)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object])],S),t.RenamePropertiesReplacer=S},254:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStatementSimplifyTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(4212),p=r(9173),m=r(4134),g=r(9376);let S=class extends p.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.ExpressionStatementsMergeTransformer,f.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!m.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:o}=this.collectIteratedStatementsSimplifyData(e),n=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:n,trailingStatement:null,hasReturnStatement:o,hasSingleExpression:!1};const i=1===r.length,a=i?r[0]:g.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:n,trailingStatement:{statement:o?g.NodeFactory.returnStatementNode(a):g.NodeFactory.expressionStatementNode(a),expression:a},hasReturnStatement:o,hasSingleExpression:i}}collectIteratedStatementsSimplifyData(e){const t=[];let r=!1,o=null;for(let n=e.body.length-1;n>=0;n--){const i=e.body[n];if(m.NodeGuards.isExpressionStatementNode(i))m.NodeGuards.isSequenceExpressionNode(i.expression)?t.unshift(...i.expression.expressions):t.unshift(i.expression),o=n;else{if(!m.NodeGuards.isReturnStatementNode(i)||!i.argument)break;t.unshift(i.argument),r=!0,o=n}}return{startIndex:o,unwrappedExpressions:t,hasReturnStatement:r}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:g.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};S=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],S),t.AbstractStatementSimplifyTransformer=S},2838:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementSimplifyTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(4212),p=r(8932),m=r(254),g=r(4134),S=r(9376),y=r(2361);let N=class extends m.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[f.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){switch(e){case p.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&g.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const o=this.getPartialStatement(r),n=g.NodeGuards.isBlockStatementNode(o)?o:S.NodeFactory.blockStatementNode([o]);return y.NodeUtils.parentizeNode(n,t)}};N=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],N),t.BlockStatementSimplifyTransformer=N},1226:function(e,t,r){var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionStatementsMergeTransformer=void 0;const u=r(2991),f=r(5350),p=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),N=r(9376),h=r(4134),_=r(8134),b=r(2361);let I=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&h.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!h.NodeGuards.isNodeWithStatements(t))return e;const r=_.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&h.NodeGuards.isExpressionStatementNode(r)?(h.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),b.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=N.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),b.NodeUtils.parentizeAst(r.expression),b.NodeUtils.parentizeNode(r.expression,r)),p.VisitorOption.Remove):e}};I=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(1,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],I),t.ExpressionStatementsMergeTransformer=I},8821:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(8932),p=r(254),m=r(4134),g=r(9376),S=r(2361);let y=class extends p.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case f.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&m.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let o;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;o=this.getConsequentAndAlternateNode(e,r,t)}else o=this.getConsequentNode(e,r);return S.NodeUtils.parentizeNode(o,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?g.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?g.NodeFactory.returnStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?g.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):g.NodeFactory.expressionStatementNode(g.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return m.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return m.NodeGuards.isFunctionDeclarationNode(e)||m.NodeGuards.isIfStatementNode(e)||m.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};y=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],y),t.IfStatementSimplifyTransformer=y},3115:function(e,t,r){var o,n,i=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return a(t,e),t},d=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},l=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariableDeclarationsMergeTransformer=void 0;const u=r(2991),f=r(5350),p=c(r(4523)),m=r(4482),g=r(1403),S=r(8932),y=r(9173),N=r(4134),h=r(8134);let _=class extends y.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){switch(e){case S.NodeTransformationStage.Simplifying:return{leave:(e,t)=>{if(t&&N.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){if(!N.NodeGuards.isNodeWithStatements(t))return e;const r=h.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&N.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),p.VisitorOption.Remove):e}};_=s([u.injectable(),l(0,u.inject(f.ServiceIdentifiers.IRandomGenerator)),l(1,u.inject(f.ServiceIdentifiers.IOptions)),d("design:paramtypes",["function"==typeof(o=void 0!==g.IRandomGenerator&&g.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==m.IOptions&&m.IOptions)?n:Object])],_),t.VariableDeclarationsMergeTransformer=_},4123:function(e,t,r){var o,n,i,a,s,c,d,l=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},u=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},f=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperTransformer=void 0;const p=r(2991),m=r(5350),g=r(7070),S=r(4482),y=r(1403),N=r(870),h=r(8688),_=r(5683),b=r(3186),I=r(8932),O=r(294),E=r(9614),v=r(9173),C=r(7678),T=r(4134);let R=class extends v.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a){super(e,t),this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=o,this.stringArrayScopeCallsWrapperNamesDataStorage=n,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){if(!this.options.stringArrayWrappersCount)return null;switch(e){case I.NodeTransformationStage.StringArray:return{enter:(e,t)=>{t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&T.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}};default:return null}}transformNode(e){var t,r;const o=null!==(t=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==t?t:null,n=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(!o||!n)return e;const{callsWrappersParameterIndexesData:i}=n,a=Object.values(o);for(const t of a){if(!t)continue;const{names:r}=t;for(let o=r.length-1;o>=0;o--){const a=r[o],{name:s,index:c,parameterIndexesData:d}=this.getUpperStringArrayCallsWrapperData(t,n),l=this.getStringArrayScopeCallsWrapperNode(a,i,s,d,c);C.NodeAppender.prepend(e,l)}}return e}getRootStringArrayCallsWrapperData(e,t){const{encoding:r}=e,{resultShiftedIndex:o}=t;return{name:this.stringArrayStorage.getStorageCallsWrapperName(r),index:o,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e,t){var r,o,n,i,a,s;const{encoding:c}=e,{scopeShiftedIndex:d}=t,l=this.getRootStringArrayCallsWrapperData(e,t);if(!this.options.stringArrayWrappersChainedCalls)return l;const u=null!==(r=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==r?r:null;if(!u)return l;const f=null!==(o=this.stringArrayScopeCallsWrapperNamesDataStorage.get(u))&&void 0!==o?o:null,p=null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(u))&&void 0!==n?n:null,m=null!==(a=null===(i=null==f?void 0:f[c])||void 0===i?void 0:i.names)&&void 0!==a?a:null;return(null==m?void 0:m.length)?{name:this.randomGenerator.getRandomGenerator().pickone(m),index:d,parameterIndexesData:null!==(s=null==p?void 0:p.callsWrappersParameterIndexesData)&&void 0!==s?s:null}:l}getStringArrayScopeCallsWrapperNode(e,t,r,o,n){switch(this.options.stringArrayWrappersType){case E.StringArrayWrappersType.Function:return this.getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n);case E.StringArrayWrappersType.Variable:default:return this.getStringArrayScopeCallsWrapperVariableNode(e,r)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(O.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t,r,o,n){const i=this.stringArrayTransformerCustomNodeFactory(O.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return i.initialize(e,t,r,o,n),i.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};R=l([p.injectable(),f(0,p.inject(m.ServiceIdentifiers.IRandomGenerator)),f(1,p.inject(m.ServiceIdentifiers.IOptions)),f(2,p.inject(m.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),f(3,p.inject(m.ServiceIdentifiers.IStringArrayStorage)),f(4,p.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),f(5,p.inject(m.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),f(6,p.inject(m.ServiceIdentifiers.Factory__IStringArrayCustomNode)),u("design:paramtypes",["function"==typeof(o=void 0!==y.IRandomGenerator&&y.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==S.IOptions&&S.IOptions)?n:Object,"function"==typeof(i=void 0!==b.IVisitedLexicalScopeNodesStackStorage&&b.IVisitedLexicalScopeNodesStackStorage)?i:Object,"function"==typeof(a=void 0!==_.IStringArrayStorage&&_.IStringArrayStorage)?a:Object,"function"==typeof(s=void 0!==h.IStringArrayScopeCallsWrapperNamesDataStorage&&h.IStringArrayScopeCallsWrapperNamesDataStorage)?s:Object,"function"==typeof(c=void 0!==N.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&N.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?c:Object,"function"==typeof(d=void 0!==g.TStringArrayCustomNodeFactory&&g.TStringArrayCustomNodeFactory)?d:Object])],R),t.StringArrayScopeCallsWrapperTransformer=R},4940:function(e,t,r){var o,n,i,a,s,c,d,l,u,f,p,m=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},g=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},S=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTransformer=void 0;const y=r(2991),N=r(5350),h=r(9416),_=r(7070),b=r(2086),I=r(4482),O=r(1403),E=r(870),v=r(8688),C=r(5683),T=r(927),R=r(3186),A=r(8932),j=r(294),M=r(9614),F=r(9173),P=r(4134),D=r(8241),G=r(739),x=r(2361);let L=o=class extends F.AbstractNodeTransformer{constructor(e,t,r,o,n,i,a,s,c,d){super(e,t),this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=o,this.stringArrayStorage=n,this.stringArrayScopeCallsWrapperNamesDataStorage=i,this.stringArrayScopeCallsWrapperLexicalScopeDataStorage=a,this.stringArrayStorageAnalyzer=s,this.identifierNamesGenerator=c(t),this.stringArrayTransformerCustomNodeFactory=d}getVisitor(e){switch(e){case A.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(P.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&P.NodeGuards.isLiteralNode(e)&&!G.NodeMetadata.isReplacedLiteral(e))return this.transformNode(e,t)}};default:return null}}prepareNode(e){this.stringArrayStorageAnalyzer.analyze(e),this.options.shuffleStringArray&&this.stringArrayStorage.shuffleStorage(),this.options.rotateStringArray&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!D.NodeLiteralUtils.isStringLiteralNode(e)||D.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,o=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),n=this.literalNodesCacheStorage.buildKey(r,o);if(this.literalNodesCacheStorage.shouldUseCachedValue(n,o))return this.literalNodesCacheStorage.get(n);const i=o?this.getStringArrayCallNode(o):e;return this.literalNodesCacheStorage.set(n,i),x.NodeUtils.parentizeNode(i,t),i}getStringArrayCallNode(e){const{name:t,index:r,parameterIndexesData:o}=this.getStringArrayCallsWrapperData(e),{decodeKey:n}=e,i=this.stringArrayTransformerCustomNodeFactory(j.StringArrayCustomNode.StringArrayCallNode);i.initialize(t,o,r,this.stringArrayStorage.getIndexShiftAmount(),n);const a=i.getNode()[0];if(!P.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayCallsWrapperData(e):this.getRootStringArrayCallsWrapperData(e)}getRootStringArrayCallsWrapperData(e){const{encoding:t,index:r}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),parameterIndexesData:null,index:r}}getUpperStringArrayCallsWrapperData(e){var t,r,o,n;const{encoding:i,index:a}=e,s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null,c=null!==(r=this.visitedLexicalScopeNodesStackStorage.getPenultimateElement())&&void 0!==r?r:null;if(!s)throw new Error("Cannot find current lexical scope body node");const d=this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(s,e),l=this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(s,c),u=null!==(n=null===(o=d[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];return{name:this.randomGenerator.getRandomGenerator().pickone(u),index:l?l.resultShiftedIndex+a:a,parameterIndexesData:l.callsWrappersParameterIndexesData}}getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(e,t){var r,o,n;const{encoding:i}=t,a=null!==(r=this.stringArrayScopeCallsWrapperNamesDataStorage.get(e))&&void 0!==r?r:{},s=null!==(n=null===(o=a[i])||void 0===o?void 0:o.names)&&void 0!==n?n:[];if(s.length===this.options.stringArrayWrappersCount)return a;const c=P.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext();return a[i]={encoding:i,names:[...s,c]},this.stringArrayScopeCallsWrapperNamesDataStorage.set(e,a),a}getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(e,t){var r,n;const i=null!==(r=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(e))&&void 0!==r?r:null;if(i)return i;const a=t&&null!==(n=this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(t))&&void 0!==n?n:null,s=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.getStringArrayCallsWrapperParameterIndexesData():null,c=this.options.stringArrayWrappersType===M.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(o.minShiftedIndexValue,o.maxShiftedIndexValue):0,d={callsWrappersParameterIndexesData:s,parentLexicalScopeBodyNode:t,resultShiftedIndex:a?a.resultShiftedIndex+c:c,scopeShiftedIndex:c};return this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(e,d),d}getStringArrayCallsWrapperParameterIndexesData(){const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};L.minShiftedIndexValue=-1e3,L.maxShiftedIndexValue=1e3,L=o=m([y.injectable(),S(0,y.inject(N.ServiceIdentifiers.IRandomGenerator)),S(1,y.inject(N.ServiceIdentifiers.IOptions)),S(2,y.inject(N.ServiceIdentifiers.ILiteralNodesCacheStorage)),S(3,y.inject(N.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),S(4,y.inject(N.ServiceIdentifiers.IStringArrayStorage)),S(5,y.inject(N.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),S(6,y.inject(N.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),S(7,y.inject(N.ServiceIdentifiers.IStringArrayStorageAnalyzer)),S(8,y.inject(N.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),S(9,y.inject(N.ServiceIdentifiers.Factory__IStringArrayCustomNode)),g("design:paramtypes",["function"==typeof(n=void 0!==O.IRandomGenerator&&O.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==I.IOptions&&I.IOptions)?i:Object,"function"==typeof(a=void 0!==b.ILiteralNodesCacheStorage&&b.ILiteralNodesCacheStorage)?a:Object,"function"==typeof(s=void 0!==R.IVisitedLexicalScopeNodesStackStorage&&R.IVisitedLexicalScopeNodesStackStorage)?s:Object,"function"==typeof(c=void 0!==C.IStringArrayStorage&&C.IStringArrayStorage)?c:Object,"function"==typeof(d=void 0!==v.IStringArrayScopeCallsWrapperNamesDataStorage&&v.IStringArrayScopeCallsWrapperNamesDataStorage)?d:Object,"function"==typeof(l=void 0!==E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage&&E.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)?l:Object,"function"==typeof(u=void 0!==T.IStringArrayStorageAnalyzer&&T.IStringArrayStorageAnalyzer)?u:Object,"function"==typeof(f=void 0!==h.TIdentifierNamesGeneratorFactory&&h.TIdentifierNamesGeneratorFactory)?f:Object,"function"==typeof(p=void 0!==_.TStringArrayCustomNodeFactory&&_.TStringArrayCustomNodeFactory)?p:Object])],L),t.StringArrayTransformer=L},7678:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const o=r(4134);class n{static append(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e),...t])}static appendToOptimalBlockScope(e,t,r,o=0){const i=e.length?n.getOptimalBlockScope(e,o):t;n.prepend(i,r)}static getOptimalBlockScope(e,t,r=1/0){const o=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&o.callsGraph.length?n.getOptimalBlockScope(o.callsGraph,0,--r):o.callee}static insertBefore(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o)}static insertAfter(e,t,r){const o=n.getScopeStatements(e).indexOf(r);n.insertAtIndex(e,t,o+1)}static insertAtIndex(e,t,r){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...n.getScopeStatements(e).slice(0,r),...t,...n.getScopeStatements(e).slice(r)])}static prepend(e,t){t=n.parentizeScopeStatementsBeforeAppend(e,t),n.setScopeStatements(e,[...t,...n.getScopeStatements(e)])}static getScopeStatements(e){return o.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach((t=>{t.parentNode=e})),t}static setScopeStatements(e,t){o.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=n},9376:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFactory=void 0;const a=i(r(9385)),s=r(9945);class c{static programNode(e=[]){return{type:s.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}static arrayExpressionNode(e=[]){return{type:s.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}static arrowFunctionExpressionNode(e,t,r){return{type:s.NodeType.ArrowFunctionExpression,params:e,expression:t,body:r}}static assignmentExpressionNode(e,t,r){return{type:s.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static binaryExpressionNode(e,t,r){return{type:s.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static blockStatementNode(e=[]){return{type:s.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}static breakStatement(e){return{type:s.NodeType.BreakStatement,label:e,metadata:{ignoredNode:!1}}}static callExpressionNode(e,t=[],r=!1){return{type:s.NodeType.CallExpression,callee:e,optional:r,arguments:t,metadata:{ignoredNode:!1}}}static conditionalExpressionNode(e,t,r){return{type:s.NodeType.ConditionalExpression,test:e,consequent:t,alternate:r,metadata:{ignoredNode:!1}}}static continueStatement(e){return{type:s.NodeType.ContinueStatement,label:e,metadata:{ignoredNode:!1}}}static directiveNode(e,t){return{type:s.NodeType.ExpressionStatement,expression:e,directive:t,metadata:{ignoredNode:!1}}}static exportAllDeclarationNode(e){return{type:s.NodeType.ExportAllDeclaration,source:e,metadata:{ignoredNode:!1}}}static exportNamedDeclarationNode(e,t){return{type:s.NodeType.ExportNamedDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static expressionStatementNode(e){return{type:s.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}static functionDeclarationNode(e,t,r){return{type:s.NodeType.FunctionDeclaration,id:c.identifierNode(e),params:t,body:r,generator:!1,metadata:{ignoredNode:!1}}}static functionExpressionNode(e,t){return{type:s.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}static ifStatementNode(e,t,r){return Object.assign(Object.assign({type:s.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r}),{metadata:{ignoredNode:!1}})}static identifierNode(e){return{type:s.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}static importDeclarationNode(e,t){return{type:s.NodeType.ImportDeclaration,specifiers:e,source:t,metadata:{ignoredNode:!1}}}static literalNode(e,t){return t=void 0!==t?t:`'${e}'`,{type:s.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:a.Precedence.Primary},metadata:{ignoredNode:!1}}}static logicalExpressionNode(e,t,r){return{type:s.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}static memberExpressionNode(e,t,r=!1,o=!1){return{type:s.NodeType.MemberExpression,computed:r,object:e,optional:o,property:t,metadata:{ignoredNode:!1}}}static objectExpressionNode(e){return{type:s.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}static propertyNode(e,t,r=!1){return{type:s.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}static returnStatementNode(e){return{type:s.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}static sequenceExpressionNode(e){return{type:s.NodeType.SequenceExpression,expressions:e,metadata:{ignoredNode:!1}}}static switchStatementNode(e,t){return{type:s.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}static switchCaseNode(e,t){return{type:s.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}static unaryExpressionNode(e,t,r=!0){return{type:s.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}static updateExpressionNode(e,t){return{type:s.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}static templateElement(e,t){return{type:s.NodeType.TemplateElement,value:e,tail:t,metadata:{ignoredNode:!1}}}static templateLiteral(e,t){return{type:s.NodeType.TemplateLiteral,expressions:e,quasis:t,metadata:{ignoredNode:!1}}}static variableDeclarationNode(e=[],t="var"){return{type:s.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}static variableDeclaratorNode(e,t){return{type:s.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}static whileStatementNode(e,t){return{type:s.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}t.NodeFactory=c},4134:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const o=r(9945);class n{static isArrayPatternNode(e){return e.type===o.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===o.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===o.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===o.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===o.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return n.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===o.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===o.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===o.NodeType.CallExpression}static isClassDeclarationNode(e){return e.type===o.NodeType.ClassDeclaration&&null!==e.id}static isContinueStatementNode(e){return e.type===o.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===o.NodeType.ExpressionStatement&&"directive"in e}static isExportAllDeclarationNode(e){return e.type===o.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===o.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===o.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===o.NodeType.ExpressionStatement&&!("directive"in e)}static isForOfStatementNode(e){return e.type===o.NodeType.ForOfStatement}static isFunctionNode(e){return n.isFunctionDeclarationNode(e)||n.isFunctionExpressionNode(e)||n.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===o.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===o.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===o.NodeType.Identifier}static isIfStatementNode(e){return e.type===o.NodeType.IfStatement}static isImportDeclarationNode(e){return e.type===o.NodeType.ImportDeclaration}static isImportSpecifierNode(e){return e.type===o.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=n.isLabeledStatementNode(t)&&t.label===e,o=n.isContinueStatementNode(t)&&t.label===e,i=n.isBreakStatementNode(t)&&t.label===e;return r||o||i}static isLabeledStatementNode(e){return e.type===o.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===o.NodeType.Literal}static isMemberExpressionNode(e){return e.type===o.NodeType.MemberExpression}static isMethodDefinitionNode(e){return e.type===o.NodeType.MethodDefinition}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return n.isProgramNode(e)||n.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return n.isNodeWithLexicalScope(e)||n.isBlockStatementNode(e)}static isNodeWithLexicalScopeStatements(e,t){return n.isProgramNode(e)||n.isBlockStatementNode(e)&&n.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return n.isProgramNode(e)||n.isBlockStatementNode(e)||n.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===o.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===o.NodeType.ObjectExpression}static isProgramNode(e){return e.type===o.NodeType.Program}static isPropertyNode(e){return e.type===o.NodeType.Property}static isRestElementNode(e){return e.type===o.NodeType.RestElement}static isReturnStatementNode(e){return e.type===o.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===o.NodeType.SequenceExpression}static isSpreadElementNode(e){return e.type===o.NodeType.SpreadElement}static isSuperNode(e){return e.type===o.NodeType.Super}static isSwitchCaseNode(e){return e.type===o.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===o.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===o.NodeType.TemplateLiteral}static isUnaryExpressionNode(e){return e.type===o.NodeType.UnaryExpression}static isUseStrictOperator(e){return n.isDirectiveNode(e)&&"use strict"===e.directive}static isVariableDeclarationNode(e){return e.type===o.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===o.NodeType.VariableDeclarator}static isWhileStatementNode(e){return e.type===o.NodeType.WhileStatement}static isYieldExpressionNode(e){return e.type===o.NodeType.YieldExpression}}t.NodeGuards=n,n.nodesWithLexicalStatements=[o.NodeType.ArrowFunctionExpression,o.NodeType.FunctionDeclaration,o.NodeType.FunctionExpression,o.NodeType.MethodDefinition]},1534:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const o=r(4134);class n{static getLexicalScope(e){return n.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return n.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==a?n.getLexicalScopesRecursive(a,t,r,++i):r}}t.NodeLexicalScopeUtils=n},8241:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const o=r(4134);t.NodeLiteralUtils=class{static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!o.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||!!o.NodeGuards.isImportDeclarationNode(t)||!(!o.NodeGuards.isExportAllDeclarationNode(t)&&!o.NodeGuards.isExportNamedDeclarationNode(t))}}},739:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isReplacedLiteral(e){return!0===r.get(e,"replacedLiteral")}}t.NodeMetadata=r},8134:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const o=r(4134);class n{static getParentNodeWithStatements(e){return n.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return n.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return n.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return n.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(o.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?e:n.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return o.NodeGuards.isNodeWithStatements(t)?t:n.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],i=0){if(r.length>=t)return r;const a=e.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(o.NodeGuards.isProgramNode(e)||o.NodeGuards.isNodeWithLexicalScopeStatements(e,a)&&i>0)&&r.push(e),e!==a?n.getParentNodesWithStatementsRecursive(a,t,r,++i):r}static getSiblingStatementByOffset(e,t){const r=n.getScopeOfNode(e),i=o.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,a=i.indexOf(e);return i[a+t]||null}}t.NodeStatementUtils=n},2361:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeUtils=void 0;const a=i(r(9385)),s=i(r(4523)),c=r(4941),d=r(425),l=r(4134),u=r(739);class f{static addXVerbatimPropertyTo(e){return e["x-verbatim-property"]={content:e.raw,precedence:a.Precedence.Primary},e}static clone(e){return f.parentizeAst(f.cloneRecursive(e))}static convertCodeToStructure(e){const t=d.ASTParserFacade.parse(e,{ecmaVersion:c.ecmaVersion,sourceType:"script"});return s.replace(t,{enter:(e,t)=>(f.parentizeNode(e,t),l.NodeGuards.isLiteralNode(e)&&f.addXVerbatimPropertyTo(e),u.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce(((e,t)=>e+a.generate(t,{sourceMapWithCode:!0}).code),"")}static getUnaryExpressionArgumentNode(e){return l.NodeGuards.isUnaryExpressionNode(e.argument)?f.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return s.replace(e,{enter:f.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;const t={};return Object.keys(e).forEach((r=>{var o;if("parentNode"===r)return;const n=null!==(o=e[r])&&void 0!==o?o:null;let i;i=null===n||n instanceof RegExp?n:n instanceof Array?n.map(f.cloneRecursive):"object"==typeof n?f.cloneRecursive(n):n,t[r]=i})),t}}t.NodeUtils=f},2551:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const c=r(2991),d=r(5350),l=r(1588),u=r(4134);let f=o=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(o,o,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const o=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(o,o,r)}traverseScopeIdentifiersRecursive(e,t,r){const n=t.variableScope,i=u.NodeGuards.isNodeWithBlockLexicalScope(n.block)?n.block:null,a=o.globalScopeNames.includes(n.type);if(i){for(const s of t.variables)s.name!==o.argumentsVariableName&&r({isGlobalDeclaration:a,isBubblingDeclaration:s.identifiers.some((e=>e.parentNode&&u.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand)),rootScope:e,variable:s,variableScope:n,variableLexicalScopeNode:i});for(const o of t.childScopes)this.traverseScopeIdentifiersRecursive(e,o,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const o=t.variableScope,n=u.NodeGuards.isNodeWithBlockLexicalScope(o.block)?o.block:null;if(n){for(const e of t.through)r({reference:e,variableLexicalScopeNode:n});for(const o of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,o,r)}}};f.argumentsVariableName="arguments",f.globalScopeNames=["global","module"],f=o=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",["function"==typeof(n=void 0!==l.IScopeAnalyzer&&l.IScopeAnalyzer)?n:Object])],f),t.ScopeIdentifiersTraverser=f},8516:function(e,t,r){var o,n,i,a,s,c,d,l,u=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},p=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const m=r(2991),g=r(5350),S=r(516),y=r(2185),N=r(4364),h=r(3546),_=r(9651),b=r(68),I=r(3177),O=r(7370),E=r(6532),v=r(6086),C=r(6212),T=r(1137),R=r(9614),A=r(7170),j=r(8887),M=r(2662),F=r(7576),P=r(312),D=r(5558);let G=o=class{constructor(e,t){var r;const n=o.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:E.OptionsPreset.Default);Object.assign(this,n,e);const i=S.validateSync(this,o.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n"+P.ValidationErrorsFormatter.format(i));Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=o.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};G.optionPresetsMap=new Map([[E.OptionsPreset.Default,A.DEFAULT_PRESET],[E.OptionsPreset.LowObfuscation,j.LOW_OBFUSCATION_PRESET],[E.OptionsPreset.MediumObfuscation,M.MEDIUM_OBFUSCATION_PRESET],[E.OptionsPreset.HighObfuscation,F.HIGH_OBFUSCATION_PRESET]]),G.validatorOptions={validationError:{target:!1}},u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"compact",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"controlFlowFlattening",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),f("design:type",Number)],G.prototype,"controlFlowFlatteningThreshold",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"deadCodeInjection",void 0),u([S.IsNumber(),f("design:type",Number)],G.prototype,"deadCodeInjectionThreshold",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"debugProtection",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"debugProtectionInterval",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"disableConsoleOutput",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),D.IsAllowedForObfuscationTargets([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval]),f("design:type",Array)],G.prototype,"domainLock",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),f("design:type",Array)],G.prototype,"forceTransformStrings",void 0),u([S.IsIn([I.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,I.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,I.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,I.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),f("design:type","function"==typeof(n=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?n:Object)],G.prototype,"identifierNamesGenerator",void 0),u([S.IsString(),f("design:type",String)],G.prototype,"identifiersPrefix",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),S.ValidateIf((e=>e.identifierNamesGenerator===I.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator)),S.ArrayNotEmpty(),f("design:type",Array)],G.prototype,"identifiersDictionary",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"ignoreRequireImports",void 0),u([S.IsString(),f("design:type",String)],G.prototype,"inputFileName",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"log",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"numbersToExpressions",void 0),u([S.IsIn([E.OptionsPreset.Default,E.OptionsPreset.LowObfuscation,E.OptionsPreset.MediumObfuscation,E.OptionsPreset.HighObfuscation]),f("design:type","function"==typeof(i=void 0!==N.TOptionsPreset&&N.TOptionsPreset)?i:Object)],G.prototype,"optionsPreset",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"renameGlobals",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"renameProperties",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),f("design:type",Array)],G.prototype,"reservedNames",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsString({each:!0}),f("design:type",Array)],G.prototype,"reservedStrings",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"rotateStringArray",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"selfDefending",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"shuffleStringArray",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"simplify",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"sourceMap",void 0),u([S.IsString(),S.ValidateIf((e=>Boolean(e.sourceMapBaseUrl))),S.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),f("design:type",String)],G.prototype,"sourceMapBaseUrl",void 0),u([S.IsString(),f("design:type",String)],G.prototype,"sourceMapFileName",void 0),u([S.IsIn([v.SourceMapMode.Inline,v.SourceMapMode.Separate]),f("design:type","function"==typeof(a=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?a:Object)],G.prototype,"sourceMapMode",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"splitStrings",void 0),u([S.IsNumber(),S.ValidateIf((e=>Boolean(e.splitStrings))),S.Min(1),f("design:type",Number)],G.prototype,"splitStringsChunkLength",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"stringArray",void 0),u([S.IsArray(),S.ArrayUnique(),S.IsIn([T.StringArrayEncoding.None,T.StringArrayEncoding.Base64,T.StringArrayEncoding.Rc4],{each:!0}),f("design:type",Array)],G.prototype,"stringArrayEncoding",void 0),u([S.IsArray(),S.ArrayNotEmpty(),S.ArrayUnique(),S.IsIn([C.StringArrayIndexesType.HexadecimalNumber,C.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),f("design:type",Array)],G.prototype,"stringArrayIndexesType",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"stringArrayIndexShift",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"stringArrayWrappersChainedCalls",void 0),u([S.IsNumber(),S.Min(0),f("design:type",Number)],G.prototype,"stringArrayWrappersCount",void 0),u([S.IsNumber(),S.Min(2),f("design:type",Number)],G.prototype,"stringArrayWrappersParametersMaxCount",void 0),u([S.IsIn([R.StringArrayWrappersType.Variable,R.StringArrayWrappersType.Function]),f("design:type","function"==typeof(s=void 0!==h.TStringArrayWrappersType&&h.TStringArrayWrappersType)?s:Object)],G.prototype,"stringArrayWrappersType",void 0),u([S.IsNumber(),S.Min(0),S.Max(1),f("design:type",Number)],G.prototype,"stringArrayThreshold",void 0),u([S.IsIn([O.ObfuscationTarget.Browser,O.ObfuscationTarget.BrowserNoEval,O.ObfuscationTarget.Node]),f("design:type","function"==typeof(c=void 0!==_.TTypeFromEnum&&_.TTypeFromEnum)?c:Object)],G.prototype,"target",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"transformObjectKeys",void 0),u([S.IsBoolean(),f("design:type",Boolean)],G.prototype,"unicodeEscapeSequence",void 0),G=o=u([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.TInputOptions)),p(1,m.inject(g.ServiceIdentifiers.IOptionsNormalizer)),f("design:paramtypes",["function"==typeof(d=void 0!==y.TInputOptions&&y.TInputOptions)?d:Object,"function"==typeof(l=void 0!==b.IOptionsNormalizer&&b.IOptionsNormalizer)?l:Object])],G),t.Options=G},6248:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const i=r(2991),a=r(2938),s=r(3978),c=r(7226),d=r(4984),l=r(9062),u=r(1832),f=r(6896),p=r(3616),m=r(4073),g=r(2554),S=r(410),y=r(1589),N=r(3784);let h=o=class{normalize(e){let t=Object.assign({},e);for(const e of o.normalizerRules)t=e(t);return t}};h.normalizerRules=[a.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,c.DeadCodeInjectionThresholdRule,d.DomainLockRule,l.InputFileNameRule,u.SeedRule,f.SelfDefendingRule,p.SourceMapBaseUrlRule,m.SourceMapFileNameRule,g.SplitStringsChunkLengthRule,S.StringArrayRule,y.StringArrayEncodingRule,N.StringArrayWrappersChainedCallsRule],h=o=n([i.injectable()],h),t.OptionsNormalizer=h},312:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce(((e,t)=>[...e,r.formatWithNestedConstraints(t)]),[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;return t?`\`${e.property}\` errors:\n${Object.keys(t).map((e=>` - ${t[e]}\n`)).join()}`:`\`${e.property}\` error\n`}}t.ValidationErrorsFormatter=r},2938:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0,t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e=Object.assign(Object.assign({},e),{controlFlowFlattening:!1,controlFlowFlatteningThreshold:0})),e)},3978:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const o=r(7170);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e=Object.assign(Object.assign({},e),{deadCodeInjection:!0,stringArray:!0})).stringArrayThreshold||(e=Object.assign(Object.assign({},e),{stringArray:!0,stringArrayThreshold:o.DEFAULT_PRESET.stringArrayThreshold}))),e)},7226:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0,t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e=Object.assign(Object.assign({},e),{deadCodeInjection:!1,deadCodeInjectionThreshold:0})),e)},4984:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const o=r(4741);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(o.Utils.extractDomainFrom(r));e=Object.assign(Object.assign({},e),{domainLock:t})}return e}},9062:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const o=r(9965);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(o.StringSeparator.Dot).slice(0,-1).join(o.StringSeparator.Dot)||t,e=Object.assign(Object.assign({},e),{inputFileName:t+".js"})),e}},1832:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0,t.SeedRule=e=>e.seed?Object.assign(Object.assign({},e),{seed:e.seed}):Object.assign(Object.assign({},e),{seed:(0,999999999,Math.floor(1e9*Math.random()+0))})},6896:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0,t.SelfDefendingRule=e=>(e.selfDefending&&(e=Object.assign(Object.assign({},e),{compact:!0,selfDefending:!0})),e)},3616:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0,t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:t+"/"})),e):e=Object.assign(Object.assign({},e),{sourceMapBaseUrl:""})}},4073:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const o=r(9965);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(o.StringSeparator.Dot);const n=r.length,i=r[n-1];n>1&&i.length<=3&&(r=r.slice(0,-1)),t=r.join(o.StringSeparator.Dot),e=Object.assign(Object.assign({},e),{sourceMapFileName:t+".js.map"})}return e}},2554:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0,t.SplitStringsChunkLengthRule=e=>0===e.splitStringsChunkLength?Object.assign(Object.assign({},e),{splitStrings:!1,splitStringsChunkLength:0}):Object.assign(Object.assign({},e),{splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)})},1589:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const o=r(1137);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e=Object.assign(Object.assign({},e),{stringArrayEncoding:[o.StringArrayEncoding.None]})),e)},410:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const o=r(1137);t.StringArrayRule=e=>(e.stringArray||(e=Object.assign(Object.assign({},e),{rotateStringArray:!1,shuffleStringArray:!1,stringArray:!1,stringArrayEncoding:[o.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0})),e)},3784:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0,t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e=Object.assign(Object.assign({},e),{stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0})),e)},7170:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6532),a=r(6086),s=r(6212),c=r(1137),d=r(9614);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:i.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!0,seed:0,selfDefending:!1,shuffleStringArray:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayEncoding:[c.StringArrayEncoding.None],stringArrayIndexesType:[s.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:d.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},7576:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(2662);t.HIGH_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},i.MEDIUM_OBFUSCATION_PRESET),{controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:!0,optionsPreset:o.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayEncoding:[n.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1}))},8887:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(7170);t.LOW_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},n.DEFAULT_PRESET),{disableConsoleOutput:!0,optionsPreset:o.OptionsPreset.LowObfuscation,rotateStringArray:!0,selfDefending:!0,shuffleStringArray:!0,simplify:!0}))},2662:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const o=r(6532),n=r(1137),i=r(9614),a=r(8887);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze(Object.assign(Object.assign({},a.LOW_OBFUSCATION_PRESET),{controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:o.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayEncoding:[n.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:i.StringArrayWrappersType.Function,transformObjectKeys:!0}))},3685:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const o=r(3177),n=r(7370),i=r(6086),a=r(1137),s=r(9614),c=r(6212);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],forceTransformStrings:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreRequireImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,reservedNames:[],reservedStrings:[],rotateStringArray:!1,seed:0,selfDefending:!1,shuffleStringArray:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayEncoding:[a.StringArrayEncoding.None],stringArrayIndexesType:[c.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:s.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:n.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},5558:function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=void 0;const n=r(516),i=o(r(3142)),a=r(9965),s=r(7170);t.IsAllowedForObfuscationTargets=function(e,t){return(r,o)=>{n.registerDecorator({propertyName:o,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const n=r.object,a=s.DEFAULT_PRESET[o];return i.default(t,a)||e.includes(n.target)},defaultMessage:t=>"This option allowed only for obfuscation targets: "+e.join(a.StringSeparator.Comma+" ")}})}}},8072:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatedCode=void 0;const c=r(2991),d=r(5350),l=r(5591),u=r(5233),f=r(6086),p=r(4482);let m=class{constructor(e,t){this.cryptUtils=e,this.options=t}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getObfuscatedCode(){return this.correctObfuscatedCode()}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case f.SourceMapMode.Inline:t+="data:application/json;base64,"+this.cryptUtils.btoa(this.sourceMap);break;case f.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};i([u.initializable(),a("design:type",String)],m.prototype,"obfuscatedCode",void 0),i([u.initializable(),a("design:type",String)],m.prototype,"sourceMap",void 0),m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.ICryptUtils)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==l.ICryptUtils&&l.ICryptUtils)?o:Object,"function"==typeof(n=void 0!==p.IOptions&&p.IOptions)?n:Object])],m),t.ObfuscatedCode=m},8589:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0,t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},3901:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(5233);let p=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};i([f.initializable(),a("design:type",Array)],p.prototype,"storage",void 0),i([f.initializable(),a("design:type",String)],p.prototype,"storageId",void 0),i([c.postConstruct(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],p.prototype,"initialize",null),p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.ArrayStorage=p},2015:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const d=r(2991),l=r(5350),u=r(4482),f=r(1403),p=r(5233);let m=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};a([p.initializable(),s("design:type",String)],m.prototype,"storageId",void 0),a([p.initializable(),s("design:type","function"==typeof(o="undefined"!=typeof Map&&Map)?o:Object)],m.prototype,"storage",void 0),a([d.postConstruct(),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],m.prototype,"initialize",null),m=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),s("design:paramtypes",["function"==typeof(n=void 0!==f.IRandomGenerator&&f.IRandomGenerator)?n:Object,"function"==typeof(i=void 0!==u.IOptions&&u.IOptions)?i:Object])],m),t.MapStorage=m},1951:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const l=r(2991),u=r(5350),f=r(964),p=r(4482),m=r(1403),g=r(1806),S=r(2015);let y=o=class extends S.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),o.customCodeHelperGroupsList.forEach((e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)}))}};y.customCodeHelperGroupsList=[g.CustomCodeHelperGroup.ConsoleOutput,g.CustomCodeHelperGroup.DebugProtection,g.CustomCodeHelperGroup.DomainLock,g.CustomCodeHelperGroup.SelfDefending,g.CustomCodeHelperGroup.StringArray],s([l.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],y.prototype,"initialize",null),y=o=s([l.injectable(),d(0,l.inject(u.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),d(1,l.inject(u.ServiceIdentifiers.IRandomGenerator)),d(2,l.inject(u.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(n=void 0!==f.TCustomCodeHelperGroupFactory&&f.TCustomCodeHelperGroupFactory)?n:Object,"function"==typeof(i=void 0!==m.IRandomGenerator&&m.IRandomGenerator)?i:Object,"function"==typeof(a=void 0!==p.IOptions&&p.IOptions)?a:Object])],y),t.CustomCodeHelperGroupStorage=y},646:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(2015);let p=class extends f.MapStorage{constructor(e,t){super(e,t)}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.ControlFlowStorage=p},3464:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralNodesCacheStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(1137),p=r(2015);let m=class extends p.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==f.StringArrayEncoding.Rc4&&this.storage.has(e)}};m=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],m),t.LiteralNodesCacheStorage=m},1453:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(2015);let p=class extends f.MapStorage{constructor(e,t){super(e,t)}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.StringArrayScopeCallsWrapperLexicalScopeDataStorage=p},995:function(e,t,r){var o,n,i=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},s=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperNamesDataStorage=void 0;const c=r(2991),d=r(5350),l=r(4482),u=r(1403),f=r(2015);let p=class extends f.MapStorage{constructor(e,t){super(e,t)}};p=i([c.injectable(),s(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s(1,c.inject(d.ServiceIdentifiers.IOptions)),a("design:paramtypes",["function"==typeof(o=void 0!==u.IRandomGenerator&&u.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==l.IOptions&&l.IOptions)?n:Object])],p),t.StringArrayScopeCallsWrapperNamesDataStorage=p},1860:function(e,t,r){var o,n,i,a,s,c,d=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const f=r(2991),p=r(5350),m=r(9416),g=r(5768),S=r(9825),y=r(4482),N=r(1403),h=r(1137),_=r(2015);let b=o=class extends _.MapStorage{constructor(e,t,r,n,i){super(r,n),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(n),this.arrayUtils=t,this.cryptUtilsSwappedAlphabet=i,this.rc4Keys=this.randomGenerator.getRandomGenerator().n((()=>this.randomGenerator.getRandomGenerator().string({length:o.rc4KeyLength})),o.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(o.minimumIndexShiftAmount,o.maximumIndexShiftAmount):0,this.rotationAmount=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(o.minimumRotationAmount,o.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const n=this.identifierNamesGenerator.generateForGlobalScope(o.stringArrayNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,n),n}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map((([e,t],r)=>(t.index=r,[e,t]))).sort((([,e],[,t])=>e.index-t.index)))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:o}=this.getEncodedValue(e),n=this.storage.get(t);if(n)return n;const i={encodedValue:t,encoding:r,decodeKey:o,value:e,index:this.getLength()};return this.storage.set(t,i),i}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case h.StringArrayEncoding.Rc4:{const o=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),n=this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(e,o)),i=null!==(t=this.rc4EncodedValuesSourcesCache.get(n))&&void 0!==t?t:[];let a=i.length;return(!a||!i.includes(e))&&(i.push(e),a++),this.rc4EncodedValuesSourcesCache.set(n,i),a>1?this.getEncodedValue(e):{encodedValue:n,encoding:r,decodeKey:o}}case h.StringArrayEncoding.Base64:{const t=null;return{encodedValue:this.cryptUtilsSwappedAlphabet.btoa(e),encoding:r,decodeKey:t}}default:return{encodedValue:e,encoding:r,decodeKey:null}}}};b.minimumRotationAmount=100,b.maximumRotationAmount=500,b.minimumIndexShiftAmount=100,b.maximumIndexShiftAmount=500,b.rc4KeyLength=4,b.rc4KeysCount=50,b.stringArrayNameLength=4,d([f.postConstruct(),l("design:type",Function),l("design:paramtypes",[]),l("design:returntype",void 0)],b.prototype,"initialize",null),b=o=d([f.injectable(),u(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u(1,f.inject(p.ServiceIdentifiers.IArrayUtils)),u(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),u(3,f.inject(p.ServiceIdentifiers.IOptions)),u(4,f.inject(p.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),l("design:paramtypes",["function"==typeof(n=void 0!==m.TIdentifierNamesGeneratorFactory&&m.TIdentifierNamesGeneratorFactory)?n:Object,"function"==typeof(i=void 0!==g.IArrayUtils&&g.IArrayUtils)?i:Object,"function"==typeof(a=void 0!==N.IRandomGenerator&&N.IRandomGenerator)?a:Object,"function"==typeof(s=void 0!==y.IOptions&&y.IOptions)?s:Object,"function"==typeof(c=void 0!==S.ICryptUtilsSwappedAlphabet&&S.ICryptUtilsSwappedAlphabet)?c:Object])],b),t.StringArrayStorage=b},1891:function(e,t,r){var o,n,i,a=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VisitedLexicalScopeNodesStackStorage=void 0;const d=r(2991),l=r(5350),u=r(5768),f=r(4482),p=r(1403),m=r(3901);let g=class extends m.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){var e;const t=this.getLength();return null!==(e=this.get(t-2))&&void 0!==e?e:void 0}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};g=a([d.injectable(),c(0,d.inject(l.ServiceIdentifiers.IRandomGenerator)),c(1,d.inject(l.ServiceIdentifiers.IOptions)),c(2,d.inject(l.ServiceIdentifiers.IArrayUtils)),s("design:paramtypes",["function"==typeof(o=void 0!==p.IRandomGenerator&&p.IRandomGenerator)?o:Object,"function"==typeof(n=void 0!==f.IOptions&&f.IOptions)?n:Object,"function"==typeof(i=void 0!==u.IArrayUtils&&u.IArrayUtils)?i:Object])],g),t.VisitedLexicalScopeNodesStackStorage=g},8904:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},5127:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8820:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},964:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8749:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7183:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},1878:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7070:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7219:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9416:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9628:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3312:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},805:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2937:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2596:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},2185:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},4364:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3546:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},138:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6622:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},9651:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},7207:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const s=r(2991),c=r(5350),d=r(2569);let l=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const o of e){const e=t[o].runAfter;if(e&&e.length)for(const n of e)void 0===t[n]?r.push([o,null]):r.push([n,o]);else r.push([o,null])}return r}};l=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",["function"==typeof(o=void 0!==d.ILevelledTopologicalSorter&&d.ILevelledTopologicalSorter)?o:Object])],l),t.AbstractTransformerNamesGroupsBuilder=l},3087:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const s=r(2991),c=r(5350),d=r(1403);let l=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;r<e;r++)t.push(r);return t}fillWithRange(e,t){const r=[];for(let o=0;o<e;o++)r.push(t(o));return r}findMostOccurringElement(e){var t;if(!e.length)return null;const r={};let o=e[0],n=1;for(const i of e){const e=(null!==(t=r[i])&&void 0!==t?t:0)+1;e>n&&(o=i,n=e),r[i]=e}return o}getLastElement(e){var t;return null!==(t=e[e.length-1])&&void 0!==t?t:void 0}rotate(e,t){if(!e.length)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const r=e;let o;for(;t--;)o=r.pop(),o&&r.unshift(o);return r}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};l=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object])],l),t.ArrayUtils=l},5579:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const s=r(2991),c=r(5350),d=r(1403),l=r(6934),u=r(3697),f=r(4741);let p=class{constructor(e){this.base64Alphabet=l.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(parseInt(`${f.Utils.hexadecimalPrefix}${t}`,16))));for(let o,n,i=0,a=t;e.charAt(0|i)||(a="=",i%1);r+=a.charAt(63&o>>8-i%1*8)){if(n=e.charCodeAt(i+=3/4),n>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:u.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${o=e,o.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var o;const n=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(n),r=n.join(""),[((e,t)=>{let r=-1,o=-1,n="";for(;r<e.length||o<t.length;)this.randomGenerator.getMathRandom()<.5&&o<t.length?n+=t.charAt(++o):n+=e.charAt(++r);return n})(e,r),r]}rc4(e,t){const r=[];let o,n=0,i="";for(var a=0;a<256;a++)r[a]=a;for(a=0;a<256;a++)n=(n+r[a]+t.charCodeAt(a%t.length))%256,o=r[a],r[a]=r[n],r[n]=o;a=0,n=0;for(let t=0;t<e.length;t++)n=(n+r[a=(a+1)%256])%256,o=r[a],r[a]=r[n],r[n]=o,i+=String.fromCharCode(e.charCodeAt(t)^r[(r[a]+r[n])%256]);return i}};p=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object])],p),t.CryptUtils=p},6913:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtilsSwappedAlphabet=void 0;const s=r(2991),c=r(5350),d=r(1403),l=r(4497),u=r(5579);let f=class extends u.CryptUtils{constructor(e){super(e),this.base64Alphabet=l.base64alphabetSwapped}};f=n([s.injectable(),a(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",["function"==typeof(o=void 0!==d.IRandomGenerator&&d.IRandomGenerator)?o:Object])],f),t.CryptUtilsSwappedAlphabet=f},1622:function(e,t,r){var o,n=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;const i=r(2991);let a=o=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);const n=new RegExp("[\\s\\S]","g");let i,a;const s=e.replace(n,(e=>t||o.forceEscapeCharactersRegExp.test(e)?(o.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e));return this.stringsCache.set(r,s),this.stringsCache.set(`${s}-${String(t)}`,s),s}};a.ASCIICharactersRegExp=/[\x00-\x7F]/,a.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,a=o=n([i.injectable()],a),t.EscapeSequenceEncoder=a},7248:function(e,t,r){var o=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;const n=r(2991);let i=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const o of e)void 0===r[o]&&this.visit(t,r,o);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error("Unable to remove non-root node: "+e);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t)for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error("Unknown node: "+e);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const o=t[r];if("visiting"===o)throw new Error("Detected cycle involving node: "+r);if(o)return;t[r]="visiting";const n=this.getPrecedents(r);for(const r of n)this.visit(e,t,r);t[r]="ok",e.push(r)}};i=o([n.injectable()],i),t.LevelledTopologicalSorter=i},6543:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const o=r(4741);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):e.toString(16)+"n";return`${o.Utils.hexadecimalPrefix}${t}`}static isCeil(e){return"number"!=typeof e||e%1==0}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return e<Number.MIN_SAFE_INTEGER||e>Number.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),o=e%2==0?1:2;for(let n=1;n<=r;n+=o){if(e%n!=0)continue;t.push(-n,n);const r=e/n;r!==n&&t.push(-r,r)}return t.sort(((e,t)=>e-t))}}},3697:function(e,t,r){var o,n,i,a,s=this&&this.__decorate||function(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=this&&this.__param||function(e,t){return function(r,o){t(r,o,e)}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const u=r(2991),f=r(5350),p=l(r(204)),m=r(3434),g=r(4482),S=r(5164),y=r(5233),N=r(6366),h=r(2691);let _=o=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new m.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomIntegerExcluding(e,t,r){const o=[];for(let n=e;n<=t;n++)r.includes(n)||o.push(n);return this.randomGenerator.pickone(o)}getRandomString(e,t=o.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();return(""+e).split("|").length>1?e:`${e}|${p.default(this.sourceCode.getSourceCode())}`}};_.randomGeneratorPool=`${N.alphabetString}${h.alphabetStringUppercase}`,s([y.initializable(),c("design:type","function"==typeof(n=void 0!==m.Chance&&m.Chance.Chance)?n:Object)],_.prototype,"randomGenerator",void 0),s([u.postConstruct(),c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],_.prototype,"initialize",null),_=o=s([u.injectable(),d(0,u.inject(f.ServiceIdentifiers.ISourceCode)),d(1,u.inject(f.ServiceIdentifiers.IOptions)),c("design:paramtypes",["function"==typeof(i=void 0!==S.ISourceCode&&S.ISourceCode)?i:Object,"function"==typeof(a=void 0!==g.IOptions&&g.IOptions)?a:Object])],_),t.RandomGenerator=_},2161:function(e,t,r){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtils=void 0;const n=o(r(5667));t.StringUtils=class{static escapeJsString(e){return n.default(e)}}},4741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){return e&&t?`${e}_${new Date(parseInt(t,10)).toISOString()}`:"unknown"}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze(Object.assign({},e))}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},6856:e=>{e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALT_MASK","ALWAYS","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AddSearchProvider","AnalyserNode","AnimationEvent","AnonXMLHttpRequest","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioProcessingEvent","AudioStreamTrack","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BarProp","BaseHref","BatteryManager","BeforeLoadEvent","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Boolean","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSPageRule","CSSPrimitiveValue","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSSupportsRule","CSSUnknownRule","CSSValue","CSSValueList","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","CloseEvent","Collator","CommandEvent","Comment","CompositionEvent","Console","Controllers","ConvolverNode","Counter","Crypto","CryptoKey","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DST_ALPHA","DST_COLOR","DYNAMIC_DRAW","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DelayNode","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Document","DocumentFragment","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","Element","ElementQuery","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","Feed","FeedEntry","File","FileError","FileList","FileReader","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FormData","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadButton","GamepadEvent","GestureEvent","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","Image","ImageBitmap","ImageData","Infinity","InputEvent","InputMethodContext","InstallTrigger","Int16Array","Int32Array","Int8Array","Intent","InternalError","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","KeyboardEvent","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LocalMediaStream","Location","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_VALUE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MediaController","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackEvent","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBSOLETE","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","Option","OscillatorNode","OverflowEvent","PACK_ALIGNMENT","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","Path2D","Performance","PerformanceEntry","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceResourceTiming","PerformanceTiming","PeriodicWave","Plugin","PluginArray","PopStateEvent","PopupBlockedEvent","ProcessingInstruction","ProgressEvent","Promise","PropertyNodeList","Proxy","PushManager","PushSubscription","Q","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED_BITS","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RGB","RGB565","RGB5_A1","RGBA","RGBA4","RGBColor","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCDataChannelEvent","RTCIceCandidate","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","RTCStatsReport","RadioNodeList","Range","RangeError","RangeException","RecordErrorEvent","Rect","ReferenceError","RegExp","Request","Response","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","START_TO_END","START_TO_START","STATIC_DRAW","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedWorker","SimpleGestureEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","StopIteration","Storage","StorageEvent","String","StyleSheet","StyleSheetList","SubtleCrypto","Symbol","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Text","TextDecoder","TextEncoder","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransitionEvent","TreeWalker","TypeError","UIEvent","UNCACHED","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNSCHEDULED_STATE","UNSENT","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VTTCue","VTTRegion","ValidityState","VideoStreamTrack","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WaveShaperNode","WeakMap","WeakSet","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLRenderingContext","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArray","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WheelEvent","Window","Worker","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","add","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addWakeLockListener","addedNodes","additionalName","additiveSymbols","addons","adoptNode","adr","advance","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allowFullscreen","allowedDirections","alpha","alt","altGraphKey","altHtml","altKey","altLeft","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","angle","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","apply","applyElement","arc","arcTo","archive","areas","arguments","arrayBuffer","asin","asinh","assert","assign","async","atEnd","atan","atan2","atanh","atob","attachEvent","attachShader","attachShadow","attachments","attack","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributes","audioTracks","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","axes","axis","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","balance","baseFrequencyX","baseFrequencyY","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","beginElement","beginElementAt","beginPath","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","binaryType","bind","bindAttribLocation","bindBuffer","bindFramebuffer","bindRenderbuffer","bindTexture","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blob","blockDirection","blue","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderColorDark","borderColorLight","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","breakAfter","breakBefore","breakInside","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","c","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canPlayType","cancel","cancelAnimationFrame","cancelBubble","cancelScheduledValues","cancelable","candidate","canvas","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","characterData","characterDataOldValue","characterSet","charging","chargingTime","charset","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","classList","className","classid","clear","clearAttributes","clearColor","clearData","clearDepth","clearImmediate","clearInterval","clearMarks","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-interpolation","color-interpolation-filters","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commitPreferences","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","compatMode","compatible","compile","compileShader","complete","componentFromPoint","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexSubImage2D","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectStart","connected","connection","connectionSpeed","console","consolidate","constrictionActive","constructor","contactID","contains","containsNode","content","contentDocument","contentEditable","contentOverflow","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuous","control","controller","controls","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","cos","cosh","count","counter-increment","counter-reset","counterIncrement","counterReset","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTMLDocument","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPopup","createProcessingInstruction","createProgram","createRadialGradient","createRange","createRangeCollection","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createScriptProcessor","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTreeWalker","createWaveShaper","creationTime","crossOrigin","crypto","csi","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentNode","currentPage","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customError","cx","cy","d","data","dataFld","dataFormatAs","dataPageSize","dataSrc","dataTransfer","database","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPrevented","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","delayTime","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteRenderbuffer","deleteRow","deleteRule","deleteShader","deleteTFoot","deleteTHead","deleteTexture","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","depthFunc","depthMask","depthRange","deriveBits","deriveKey","description","deselectAll","designMode","destination","destinationURL","detach","detachEvent","detachShader","detail","detune","devicePixelRatio","deviceXDPI","deviceYDPI","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disableVertexAttribArray","disabled","dischargingTime","disconnect","dispatchEvent","display","distanceModel","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","download","dragDrop","draggable","drawArrays","drawArraysInstancedANGLE","drawCustomFocusRing","drawElements","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dump","duplicate","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effectAllowed","elapsedTime","elementFromPoint","elements","elevation","ellipse","email","embeds","empty","empty-cells","emptyCells","enable","enableBackground","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeURI","encodeURIComponent","encoding","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endTime","ended","endsWith","entities","entries","entryType","enumerate","enumerateEditable","error","errorCode","escape","eval","evaluate","event","eventPhase","every","exception","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPointerLock","exp","expand","expandEntityReferences","expando","expansion","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","f","face","factoryReset","fallback","familyName","farthestViewportElement","fastSeek","fatal","fetch","fetchStart","fftSize","fgColor","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","fill","fill-opacity","fill-rule","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","fireEvent","firstChild","firstElementChild","firstPage","fixed","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","fontcolor","fonts","fontsize","for","forEach","forceRedraw","form","formAction","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","fr","frame","frameBorder","frameElement","frameSpacing","framebufferRenderbuffer","framebufferTexture2D","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","frontFace","fround","fullScreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","genderIdentity","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getAdjacentText","getAll","getAllResponseHeaders","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","getAudioTracks","getBBox","getBattery","getBlob","getBookmark","getBoundingClientRect","getBufferParameter","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getChannelData","getCharNumAtPosition","getClientRect","getClientRects","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getConfiguration","getContext","getContextAttributes","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDestinationInsertionPoints","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getFeature","getFile","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHours","getImageData","getInt16","getInt32","getInt8","getIntersectionList","getItem","getItems","getKey","getLineDash","getLocalStreams","getMarks","getMatchedCSSRules","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNotifier","getNumberOfChars","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getPathSegAtLength","getPointAtLength","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyValue","getPrototypeOf","getRGBColorValue","getRandomValues","getRangeAt","getReceivers","getRectValue","getRegistration","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRotationOfChar","getSVGDocument","getScreenCTM","getSeconds","getSelection","getSenders","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getStats","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedExtensions","getTexParameter","getTime","getTimezoneOffset","getTotalLength","getTrackById","getTracks","getTransformToElement","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformLocation","getUserMedia","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getWakeLockState","getYear","givenName","global","globalAlpha","globalCompositeOperation","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","gradientTransform","gradientUnits","grammars","green","group","groupCollapsed","groupEnd","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasComposition","hasExtension","hasFeature","hasFocus","hasLayout","hasOwnProperty","hash","head","headers","heading","height","hidden","hide","hideFocus","high","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostname","href","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","hwTimestamp","hypot","iccId","iceConnectionState","iceGatheringState","icon","id","identifier","identity","ignoreBOM","ignoreCase","image-orientation","image-rendering","imageOrientation","imageRendering","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData","insertItemBefore","insertNode","insertRow","insertRule","instanceRoot","intercept","interimResults","internalSubset","intersectsNode","interval","invalidIteratorState","inverse","invertSelf","is","is2D","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isFinite","isFramebuffer","isFrozen","isGenerator","isId","isInjected","isInteger","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isRenderbuffer","isSafeInteger","isSameNode","isSealed","isShader","isSupported","isTextEdit","isTexture","isTrusted","isTypeSupported","isView","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","iterateNext","iterator","javaEnabled","jobTitle","join","json","justify-content","justifyContent","k1","k2","k3","k4","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keySystem","keyText","keyUsage","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftMargin","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearRampToValueAtTime","lineno","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTimes","loaded","localDescription","localName","localStorage","locale","localeCompare","location","locationbar","lock","lockedFile","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","manifest","map","mapping","margin","margin-bottom","margin-left","margin-right","margin-top","marginBottom","marginHeight","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-type","maskContentUnits","maskType","maskUnits","match","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-height","max-width","maxAlternatives","maxChannelCount","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxLength","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","metaKey","method","mimeType","mimeTypes","min","min-height","min-width","minDecibels","minHeight","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationStart","navigator","near","nearestViewportElement","negative","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextNode","nextPage","nextSibling","nickname","noHref","noResize","noShade","noValidate","noWrap","nodeName","nodeType","nodeValue","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","observe","of","offscreenBuffering","offset","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onactivate","onactive","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onblocked","onblur","onbounce","onboundary","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","oncompassneedscalibration","oncomplete","oncontextmenu","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceproximity","ondischargingtimechange","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onfullscreenchange","onfullscreenerror","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","oniceconnectionstatechange","oninactive","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onlayoutcomplete","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerup","onpopstate","onprogress","onpropertychange","onratechange","onreadystatechange","onremovestream","onremovetrack","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onseeked","onseeking","onselect","onselectionchange","onselectstart","onshow","onsignalingstatechange","onsoundend","onsoundstart","onspeechend","onspeechstart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","ontextinput","ontimeout","ontimeupdate","ontoggle","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontransitionend","onunload","onupdateready","onupgradeneeded","onuserproximity","onversionchange","onvoiceschanged","onvolumechange","onwaiting","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opener","opera","operationType","operator","opr","optimum","options","order","orderX","orderY","ordered","org","orient","orientAngle","orientType","orientation","origin","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","overflow","overflow-x","overflow-y","overflowX","overflowY","overrideMimeType","oversample","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","pad","padding","padding-bottom","padding-left","padding-right","padding-top","paddingBottom","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","palette","panningModel","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseFloat","parseFromString","parseInt","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","paused","pending","performance","permission","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phoneticFamilyName","phoneticGivenName","photo","ping","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","placeholder","platform","play","playbackRate","playbackState","playbackTime","played","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","position","positionAlign","postError","postMessage","poster","pow","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","previousElementSibling","previousNode","previousPage","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","privateKey","probablySupportsContext","process","processIceMessage","product","productSub","profile","profileEnd","profiles","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","pseudoClass","pseudoElement","publicId","publicKey","published","push","pushNotification","pushState","put","putImageData","quadraticCurveTo","qualifier","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","quote","quotes","r","r1","r2","race","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readOnly","readPixels","readReportRequested","readyState","reason","reboot","receiver","receivers","recordNumber","recordset","rect","red","redirectCount","redirectEnd","redirectStart","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referrer","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProtocolHandler","reject","rel","relList","relatedNode","relatedTarget","release","releaseCapture","releaseEvents","releasePointerCapture","releaseShaderCompiler","reliable","reload","remainingSpace","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removedNodes","renderbufferStorage","renderedBuffer","renderingMode","repeat","replace","replaceAdjacentText","replaceChild","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceTrack","replaceWholeText","reportValidity","requestAnimationFrame","requestAutocomplete","requestData","requestFullscreen","requestMediaKeySystemAccess","requestPermission","requestPointerLock","requestStart","requestingWindow","required","requiredExtensions","requiredFeatures","reset","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseStart","responseText","responseType","responseURL","responseXML","restore","result","resultType","resume","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightMargin","rolloffFactor","root","rootElement","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationRate","round","rowIndex","rowSpan","rows","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","safari","sampleCoverage","sampleRate","sandbox","save","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scripts","scroll","scroll-behavior","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMaxX","scrollMaxY","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbars","scrolling","sdp","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekable","seeking","select","selectAllChildren","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentTimestamp","separator","serializeToString","serviceWorker","sessionId","sessionStorage","set","setActive","setAlpha","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBingCurrentSearchDefault","setCapture","setColor","setCompositeOperation","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFullYear","setHours","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setLineCap","setLineDash","setLineJoin","setLineWidth","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setPeriodicWave","setPointerCapture","setPosition","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-rendering","shapeRendering","sheet","shift","shiftKey","shiftLeft","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signalingState","sin","singleNodeValue","sinh","size","sizeToContent","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","source","sourceBuffer","sourceBuffers","sourceIndex","spacing","span","speakAs","speaking","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","standalone","standby","start","startContainer","startIce","startOffset","startRendering","startTime","startsWith","state","status","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopOpacity","stopPropagation","storageArea","storageName","storageStatus","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","strike","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supports","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takeRecords","tan","tanh","target","targetElement","targetTouches","targetX","targetY","tel","terminate","test","texImage2D","texParameterf","texParameteri","texSubImage2D","text","text-align","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationStyle","textDecorationUnderline","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlinePosition","then","threadId","threshold","tiltX","tiltY","time","timeEnd","timeStamp","timeout","timestamp","timestampOffset","timing","title","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMethod","toPrecision","toSdp","toSource","toStaticHTML","toString","toStringTag","toTimeString","toUTCString","toUpperCase","toggle","toggleLongPressEnabled","tooLong","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touchAction","touches","trace","track","transaction","transactions","transform","transform-origin","transform-style","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","trim","trimLeft","trimRight","trueSpeed","trunc","truncate","type","typeDetail","typeMismatch","typeMustMatch","types","ubound","undefined","unescape","uneval","unicode-bidi","unicodeBidi","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","unique","uniqueID","uniqueNumber","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","update","updateCommands","updateIce","updateInterval","updateSettings","updated","updating","upload","upper","upperBound","upperOpen","uri","url","urn","urns","usages","useCurrentView","useMap","useProgram","usedSpace","userAgent","userLanguage","username","v8BreakIterator","vAlign","vLink","valid","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisorANGLE","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vibrate","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","visibility","visibilityState","visible","vlinkColor","voice","volume","vrml","vspace","w","wand","warn","wasClean","watch","watchPosition","webdriver","webkitAddKey","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitKeys","webkitLineDashOffset","webkitLockOrientation","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextSizeAdjust","webkitTransform","webkitTransformOrigin","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","wrap","wrapKey","write","writeln","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')},9385:e=>{e.exports=require("@javascript-obfuscator/escodegen")},6054:e=>{e.exports=require("acorn")},2242:e=>{e.exports=require("chalk")},3434:e=>{e.exports=require("chance")},516:e=>{e.exports=require("class-validator")},8:e=>{e.exports=require("eslint-scope")},4523:e=>{e.exports=require("estraverse")},9553:e=>{e.exports=require("eventemitter3")},3142:e=>{e.exports=require("fast-deep-equal")},2991:e=>{e.exports=require("inversify")},5667:e=>{e.exports=require("js-string-escape")},204:e=>{e.exports=require("md5")},9906:e=>{e.exports=require("reflect-metadata")},8655:e=>{e.exports=require("string-template")},6094:e=>{e.exports=require("stringz")}},t={};return function r(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return e[o].call(n.exports,n,n.exports,r),n.exports}(3254)})();
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/dist/index.js.LICENSE.txt b/src/node_modules/javascript-obfuscator/dist/index.js.LICENSE.txt
new file mode 100644
index 0000000..9f0e4a2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.js.LICENSE.txt
@@ -0,0 +1,23 @@
+/*!
+Copyright (C) 2016-2020 Timofey Kachalov <sanex3339@yandex.ru>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
diff --git a/src/node_modules/javascript-obfuscator/dist/index.js.map b/src/node_modules/javascript-obfuscator/dist/index.js.map
new file mode 100644
index 0000000..e127c6a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack://javascript-obfuscator/./index.ts","webpack://javascript-obfuscator/./src/ASTParserFacade.ts","webpack://javascript-obfuscator/./src/JavaScriptObfuscator.ts","webpack://javascript-obfuscator/./src/JavaScriptObfuscatorFacade.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/scope-analyzer/ScopeAnalyzer.ts","webpack://javascript-obfuscator/./src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts","webpack://javascript-obfuscator/./src/code-transformers/AbstractCodeTransformer.ts","webpack://javascript-obfuscator/./src/code-transformers/CodeTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/code-transformers/CodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts","webpack://javascript-obfuscator/./src/constants/AlphabetString.ts","webpack://javascript-obfuscator/./src/constants/AlphabetStringUppercase.ts","webpack://javascript-obfuscator/./src/constants/Base64Alphabet.ts","webpack://javascript-obfuscator/./src/constants/Base64AlphabetSwapped.ts","webpack://javascript-obfuscator/./src/constants/EcmaVersion.ts","webpack://javascript-obfuscator/./src/constants/NumbersString.ts","webpack://javascript-obfuscator/./src/container/InversifyContainerFacade.ts","webpack://javascript-obfuscator/./src/container/ServiceIdentifiers.ts","webpack://javascript-obfuscator/./src/container/modules/analyzers/AnalyzersModule.ts","webpack://javascript-obfuscator/./src/container/modules/code-transformers/CodeTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts","webpack://javascript-obfuscator/./src/container/modules/custom-nodes/CustomNodesModule.ts","webpack://javascript-obfuscator/./src/container/modules/generators/GeneratorsModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/ControlFlowTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/ConvertingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/FinalizingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/InitializingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/NodeTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/PreparingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/SimplifyingTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node-transformers/StringArrayTransformersModule.ts","webpack://javascript-obfuscator/./src/container/modules/node/NodeModule.ts","webpack://javascript-obfuscator/./src/container/modules/options/OptionsModule.ts","webpack://javascript-obfuscator/./src/container/modules/storages/StoragesModule.ts","webpack://javascript-obfuscator/./src/container/modules/utils/UtilsModule.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/AbstractCustomCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/CustomCodeHelperFormatter.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/CustomCodeHelperObfuscator.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts","webpack://javascript-obfuscator/./src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts","webpack://javascript-obfuscator/./src/custom-nodes/AbstractCustomNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayCallNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts","webpack://javascript-obfuscator/./src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts","webpack://javascript-obfuscator/./src/decorators/Initializable.ts","webpack://javascript-obfuscator/./src/enums/ObfuscationTarget.ts","webpack://javascript-obfuscator/./src/enums/StringSeparator.ts","webpack://javascript-obfuscator/./src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts","webpack://javascript-obfuscator/./src/enums/code-transformers/CodeTransformationStage.ts","webpack://javascript-obfuscator/./src/enums/code-transformers/CodeTransformer.ts","webpack://javascript-obfuscator/./src/enums/custom-code-helpers/CustomCodeHelper.ts","webpack://javascript-obfuscator/./src/enums/custom-code-helpers/CustomCodeHelperGroup.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/ControlFlowCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/StringArrayCustomNode.ts","webpack://javascript-obfuscator/./src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts","webpack://javascript-obfuscator/./src/enums/event-emitters/ObfuscationEvent.ts","webpack://javascript-obfuscator/./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/enums/logger/LoggingMessage.ts","webpack://javascript-obfuscator/./src/enums/logger/LoggingPrefix.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/NodeTransformationStage.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/NodeTransformer.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/VisitorDirection.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts","webpack://javascript-obfuscator/./src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts","webpack://javascript-obfuscator/./src/enums/node/NodeType.ts","webpack://javascript-obfuscator/./src/enums/node/ObfuscatingGuardResult.ts","webpack://javascript-obfuscator/./src/enums/options/presets/OptionsPreset.ts","webpack://javascript-obfuscator/./src/enums/source-map/SourceMapMode.ts","webpack://javascript-obfuscator/./src/event-emitters/ObfuscationEventEmitter.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts","webpack://javascript-obfuscator/./src/interfaces/code-transformers/ICodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts","webpack://javascript-obfuscator/./src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts","webpack://javascript-obfuscator/./src/interfaces/event-emitters/IObfuscationEventEmitter.ts","webpack://javascript-obfuscator/./src/interfaces/logger/ILogger.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/INodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts","webpack://javascript-obfuscator/./src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts","webpack://javascript-obfuscator/./src/interfaces/node/IScopeIdentifiersTraverser.ts","webpack://javascript-obfuscator/./src/interfaces/options/IOptions.ts","webpack://javascript-obfuscator/./src/interfaces/options/IOptionsNormalizer.ts","webpack://javascript-obfuscator/./src/interfaces/source-code/ISourceCode.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts","webpack://javascript-obfuscator/./src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IArrayUtils.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ICryptUtils.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IEscapeSequenceEncoder.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ILevelledTopologicalSorter.ts","webpack://javascript-obfuscator/./src/interfaces/utils/IRandomGenerator.ts","webpack://javascript-obfuscator/./src/interfaces/utils/ITransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/logger/Logger.ts","webpack://javascript-obfuscator/./src/node-transformers/AbstractNodeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/NodeTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/node-transformers/NodeTransformersRunner.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/NumberLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/SplitStringTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts","webpack://javascript-obfuscator/./src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts","webpack://javascript-obfuscator/./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/initializing-transformers/CommentsTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/MetadataTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/ParentificationTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts","webpack://javascript-obfuscator/./src/node-transformers/string-array-transformers/StringArrayTransformer.ts","webpack://javascript-obfuscator/./src/node/NodeAppender.ts","webpack://javascript-obfuscator/./src/node/NodeFactory.ts","webpack://javascript-obfuscator/./src/node/NodeGuards.ts","webpack://javascript-obfuscator/./src/node/NodeLexicalScopeUtils.ts","webpack://javascript-obfuscator/./src/node/NodeLiteralUtils.ts","webpack://javascript-obfuscator/./src/node/NodeMetadata.ts","webpack://javascript-obfuscator/./src/node/NodeStatementUtils.ts","webpack://javascript-obfuscator/./src/node/NodeUtils.ts","webpack://javascript-obfuscator/./src/node/ScopeIdentifiersTraverser.ts","webpack://javascript-obfuscator/./src/options/Options.ts","webpack://javascript-obfuscator/./src/options/OptionsNormalizer.ts","webpack://javascript-obfuscator/./src/options/ValidationErrorsFormatter.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DeadCodeInjectionRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/DomainLockRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/InputFileNameRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SeedRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SelfDefendingRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SourceMapBaseUrlRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SourceMapFileNameRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/SplitStringsChunkLengthRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayEncodingRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayRule.ts","webpack://javascript-obfuscator/./src/options/normalizer-rules/StringArrayWappersChainedCalls.ts","webpack://javascript-obfuscator/./src/options/presets/Default.ts","webpack://javascript-obfuscator/./src/options/presets/HighObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/LowObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/MediumObfuscation.ts","webpack://javascript-obfuscator/./src/options/presets/NoCustomNodes.ts","webpack://javascript-obfuscator/./src/options/validators/IsAllowedForObfuscationTargets.ts","webpack://javascript-obfuscator/./src/source-code/ObfuscatedCode.ts","webpack://javascript-obfuscator/./src/source-code/SourceCode.ts","webpack://javascript-obfuscator/./src/storages/ArrayStorage.ts","webpack://javascript-obfuscator/./src/storages/MapStorage.ts","webpack://javascript-obfuscator/./src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts","webpack://javascript-obfuscator/./src/storages/custom-nodes/ControlFlowStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/LiteralNodesCacheStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/StringArrayStorage.ts","webpack://javascript-obfuscator/./src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts","webpack://javascript-obfuscator/./src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts","webpack://javascript-obfuscator/./src/types/container/code-transformers/TCodeTransformerFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts","webpack://javascript-obfuscator/./src/types/container/generators/TIdentifierNamesGeneratorFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TControlFlowReplacerFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TControlFlowStorageFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TNodeTransformerFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TObfuscatingGuardFactory.ts","webpack://javascript-obfuscator/./src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts","webpack://javascript-obfuscator/./src/types/container/source-code/TObfuscatedCodeFactory.ts","webpack://javascript-obfuscator/./src/types/options/TInputOptions.ts","webpack://javascript-obfuscator/./src/types/options/TOptionsPreset.ts","webpack://javascript-obfuscator/./src/types/options/TStringArrayWrappersType.ts","webpack://javascript-obfuscator/./src/types/storages/TControlFlowStorage.ts","webpack://javascript-obfuscator/./src/types/storages/TCustomCodeHelperGroupStorage.ts","webpack://javascript-obfuscator/./src/types/utils/TTypeFromEnum.ts","webpack://javascript-obfuscator/./src/utils/AbstractTransformerNamesGroupsBuilder.ts","webpack://javascript-obfuscator/./src/utils/ArrayUtils.ts","webpack://javascript-obfuscator/./src/utils/CryptUtils.ts","webpack://javascript-obfuscator/./src/utils/CryptUtilsSwappedAlphabet.ts","webpack://javascript-obfuscator/./src/utils/EscapeSequenceEncoder.ts","webpack://javascript-obfuscator/./src/utils/LevelledTopologicalSorter.ts","webpack://javascript-obfuscator/./src/utils/NumberUtils.ts","webpack://javascript-obfuscator/./src/utils/RandomGenerator.ts","webpack://javascript-obfuscator/./src/utils/StringUtils.ts","webpack://javascript-obfuscator/./src/utils/Utils.ts","webpack://javascript-obfuscator/external \"@javascript-obfuscator/escodegen\"","webpack://javascript-obfuscator/external \"acorn\"","webpack://javascript-obfuscator/external \"chalk\"","webpack://javascript-obfuscator/external \"chance\"","webpack://javascript-obfuscator/external \"class-validator\"","webpack://javascript-obfuscator/external \"eslint-scope\"","webpack://javascript-obfuscator/external \"estraverse\"","webpack://javascript-obfuscator/external \"eventemitter3\"","webpack://javascript-obfuscator/external \"fast-deep-equal\"","webpack://javascript-obfuscator/external \"inversify\"","webpack://javascript-obfuscator/external \"js-string-escape\"","webpack://javascript-obfuscator/external \"md5\"","webpack://javascript-obfuscator/external \"reflect-metadata\"","webpack://javascript-obfuscator/external \"string-template\"","webpack://javascript-obfuscator/external \"stringz\"","webpack://javascript-obfuscator/webpack/bootstrap","webpack://javascript-obfuscator/webpack/startup"],"names":["Object","defineProperty","exports","value","JavaScriptObfuscatorFacade_1","module","JavaScriptObfuscator","__createBinding","this","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","prototype","hasOwnProperty","call","__importDefault","ASTParserFacade","acorn","chalk_1","sourceCode","config","sourceTypeLength","sourceTypes","length","i","parseType","error","Error","processParsingError","message","loc","inputConfig","sourceType","comments","assign","onComment","program","parse","errorMessage","position","line","column","errorLine","split","startErrorIndex","Math","max","nearestSymbolsCount","endErrorIndex","min","formattedPointer","colorError","formattedCodeSlice","slice","replace","default","red","JavaScriptObfuscator_1","_a","_b","_c","_d","_e","_f","__decorate","decorators","target","key","desc","d","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","__metadata","metadata","__param","paramIndex","decorator","inversify_1","ServiceIdentifiers_1","escodegen","TObfuscatedCodeFactory_1","ICodeTransformersRunner_1","ILogger_1","IOptions_1","IRandomGenerator_1","INodeTransformersRunner_1","CodeTransformer_1","CodeTransformationStage_1","LoggingMessage_1","NodeTransformer_1","NodeTransformationStage_1","EcmaVersion_1","ASTParserFacade_1","NodeGuards_1","Utils_1","codeTransformersRunner","nodeTransformersRunner","randomGenerator","obfuscatedCodeFactory","logger","options","timeStart","Date","now","info","LoggingMessage","Version","Utils","buildVersionMessage","ObfuscationStarted","RandomGeneratorSeed","getInputSeed","runCodeTransformationStage","CodeTransformationStage","PreparingTransformers","astTree","parseCode","obfuscatedAstTree","transformAstTree","generatorOutput","generateCode","code","FinalizingTransformers","obfuscationTime","success","ObfuscationCompleted","getObfuscatedCode","parseOptions","runNodeTransformationStage","NodeTransformationStage","Initializing","NodeGuards","isProgramNode","body","leadingComments","trailingComments","Preparing","deadCodeInjection","DeadCodeInjection","controlFlowFlattening","ControlFlowFlattening","renameProperties","RenameProperties","Converting","RenameIdentifiers","StringArray","simplify","Simplifying","Finalizing","warn","EmptySourceCode","escodegenParams","sourceMap","inputFileName","sourceContent","generate","format","compact","map","toString","codeTransformationStage","transform","codeTransformersList","nodeTransformationStage","nodeTransformersList","ecmaVersion","allowHashBang","allowImportExportEverywhere","allowReturnOutsideFunction","locations","ranges","comment","verbatim","sourceMapWithCode","CodeTransformer","HashbangOperatorTransformer","NodeTransformer","BooleanLiteralTransformer","BlockStatementControlFlowTransformer","BlockStatementSimplifyTransformer","CommentsTransformer","CustomCodeHelpersTransformer","DeadCodeInjectionTransformer","EscapeSequenceTransformer","EvalCallExpressionTransformer","ExportSpecifierTransformer","ExpressionStatementsMergeTransformer","FunctionControlFlowTransformer","IfStatementSimplifyTransformer","LabeledStatementTransformer","RenamePropertiesTransformer","MemberExpressionTransformer","MetadataTransformer","MethodDefinitionTransformer","NumberLiteralTransformer","NumberToNumericalExpressionTransformer","ObfuscatingGuardsTransformer","ObjectExpressionKeysTransformer","ObjectExpressionTransformer","ObjectPatternPropertiesTransformer","ParentificationTransformer","ScopeIdentifiersTransformer","SplitStringTransformer","StringArrayScopeCallsWrapperTransformer","StringArrayTransformer","TemplateLiteralTransformer","VariableDeclarationsMergeTransformer","VariablePreserveTransformer","injectable","inject","ServiceIdentifiers","ICodeTransformersRunner","INodeTransformersRunner","IRandomGenerator","Factory__IObfuscatedCode","ILogger","IOptions","TObfuscatedCodeFactory","InversifyContainerFacade_1","Options_1","JavaScriptObfuscatorFacade","inputOptions","inversifyContainerFacade","InversifyContainerFacade","load","obfuscatedCode","IJavaScriptObfuscator","obfuscate","unload","sourceCodesObject","keys","reduce","acc","sourceCodeIdentifier","index","identifiersPrefix","getIdentifiersPrefixForMultipleSources","sourceCodeOptions","optionsPreset","Options","getOptionsByPreset","version","CallsGraphAnalyzer_1","CallsGraphAnalyzer","estraverse","TCalleeDataExtractorFactory_1","CalleeDataExtractor_1","NodeStatementUtils_1","calleeDataExtractorFactory","blockScopeBodyLength","lastIndex","limitThresholdActivationIndex","limitThresholdActivationLength","limitIndex","round","limitThreshold","analyzeRecursive","blockScopeBody","getLimitIndex","callsGraphData","blockScopeBodyNode","traverse","enter","node","isCallExpressionNode","parentNode","NodeStatementUtils","getParentNodeWithStatements","VisitorOption","Skip","analyzeCallExpressionNode","callExpressionNode","calleeDataExtractorsList","forEach","calleeDataExtractorName","calleeData","extract","callee","push","callsGraph","CalleeDataExtractor","FunctionDeclarationCalleeDataExtractor","FunctionExpressionCalleeDataExtractor","ObjectExpressionCalleeDataExtractor","Factory__ICalleeDataExtractor","TCalleeDataExtractorFactory","AbstractCalleeDataExtractor","AbstractCalleeDataExtractor_1","isIdentifierNode","calleeBlockStatement","getCalleeBlockStatement","name","targetNode","isFunctionDeclarationNode","id","Break","calleeName","isFunctionExpressionNode","isVariableDeclaratorNode","ObjectExpressionCalleeDataExtractor_1","propertyNode","nextItemInCallsChain","isTargetPropertyNodeWithIdentifierKey","isTargetPropertyNodeWithLiteralKey","isLiteralNode","Boolean","isMemberExpressionNode","objectMembersCallsChain","createObjectMembersCallsChain","functionExpressionName","currentChain","memberExpression","property","computed","unshift","object","objectName","shift","init","isObjectExpressionNode","findCalleeBlockStatement","properties","objectExpressionProperties","isPropertyNode","isValidTargetPropertyNode","NumberNumericalExpressionAnalyzer_1","NumberNumericalExpressionAnalyzer","NumberUtils_1","numberFactorsMap","Map","number","isNaN","NumberUtils","isUnsafeNumber","generateAdditionParts","addition","mixWithMultiplyParts","additionParts","upperNumberLimit","abs","Number","MAX_SAFE_INTEGER","from","to","temporarySum","additionalParts","getRandomInteger","combination","getMathRandom","factors","getFactors","set","factor","PrevailingKindOfVariablesAnalyzer_1","PrevailingKindOfVariablesAnalyzer","IArrayUtils_1","arrayUtils","prevailingKindOfVariables","defaultKindOfVariables","variableKinds","isVariableDeclarationNode","kind","findMostOccurringElement","IArrayUtils","ScopeAnalyzer_1","ScopeAnalyzer","eslintScope","scopeManager","range","emptyRangeValue","attachMissingRanges","analyze","eslintScopeOptions","scope","acquire","isRootNode","sanitizeScopes","childScopes","childScope","type","upper","variables","classNameVariable","upperVariable","find","variable","defs","some","definition","references","optimistic","StringArrayStorageAnalyzer_1","StringArrayStorageAnalyzer","IStringArrayStorage_1","NodeLiteralUtils_1","NodeMetadata_1","stringArrayStorage","stringArrayStorageData","stringArray","NodeMetadata","isIgnoredNode","analyzeLiteralNode","literalNode","NodeLiteralUtils","isStringLiteralNode","isProhibitedLiteralNode","shouldAddValueToStringArray","getOrThrow","isForceTransformNode","minimumLengthForStringArray","stringArrayThreshold","IStringArrayStorage","AbstractCodeTransformer","CodeTransformerNamesGroupsBuilder","AbstractTransformerNamesGroupsBuilder_1","AbstractTransformerNamesGroupsBuilder","CodeTransformersRunner","TCodeTransformerFactory_1","ITransformerNamesGroupsBuilder_1","codeTransformerFactory","codeTransformerNamesGroupsBuilder","codeTransformerNames","normalizedCodeTransformers","buildNormalizedCodeTransformers","codeTransformerNamesGroups","build","nodeTransformerNamesGroup","nodeTransformerName","transformCode","codeTransformerName","codeTransformer","Factory__ICodeTransformer","ICodeTransformerNamesGroupsBuilder","TCodeTransformerFactory","ITransformerNamesGroupsBuilder","AbstractCodeTransformer_1","super","hashbangOperatorLine","removeAndSaveHashbangOperatorLine","appendSavedHashbangOperatorLine","substring","trim","alphabetString","alphabetStringUppercase","AlphabetString_1","toUpperCase","base64alphabet","AlphabetStringUppercase_1","NumbersString_1","numbersString","base64alphabetSwapped","AnalyzersModule_1","CodeTransformersModule_1","ControlFlowTransformersModule_1","ConvertingTransformersModule_1","CustomCodeHelpersModule_1","CustomNodesModule_1","DeadCodeInjectionTransformersModule_1","FinalizingTransformersModule_1","GeneratorsModule_1","InitializingTransformersModule_1","NodeModule_1","NodeTransformersModule_1","OptionsModule_1","PreparingTransformersModule_1","RenameIdentifiersTransformersModule_1","RenamePropertiesTransformersModule_1","SimplifyingTransformersModule_1","StoragesModule_1","StringArrayTransformersModule_1","UtilsModule_1","CodeTransformersRunner_1","Logger_1","NodeTransformersRunner_1","ObfuscationEventEmitter_1","ObfuscatedCode_1","SourceCode_1","container","Container","serviceIdentifier","context","bindingName","getNamed","cache","has","dependencies","cachedDependencies","dependency","constructor","named","bind","ISourceCode","toDynamicValue","SourceCode","inSingletonScope","TInputOptions","Logger","NodeTransformersRunner","IObfuscatedCode","ObfuscatedCode","toFactory","obfuscatedCodeAsString","sourceMapAsString","initialize","IObfuscationEventEmitter","ObfuscationEventEmitter","analyzersModule","codeTransformersModule","controlFlowTransformersModule","convertingTransformersModule","customCodeHelpersModule","customNodesModule","deadCodeInjectionTransformersModule","finalizingTransformersModule","generatorsModule","initializingTransformersModule","nodeModule","nodeTransformersModule","optionsModule","preparingTransformersModule","renameIdentifiersTransformersModule","renamePropertiesTransformersModule","simplifyingTransformersModule","storagesModule","stringArrayTransformersModule","utilsModule","unbindAll","FunctionDeclarationCalleeDataExtractor_1","FunctionExpressionCalleeDataExtractor_1","ContainerModule","ICallsGraphAnalyzer","INumberNumericalExpressionAnalyzer","IPrevailingKindOfVariablesAnalyzer","IScopeAnalyzer","IStringArrayStorageAnalyzer","ICalleeDataExtractor","whenTargetNamed","getCacheFactory","CodeTransformerNamesGroupsBuilder_1","HashbangOperatorTransformer_1","ICodeTransformer","CustomCodeHelper_1","CustomCodeHelperGroup_1","ConsoleOutputCodeHelperGroup_1","DebugProtectionCodeHelperGroup_1","DomainLockCustomCodeHelperGroup_1","SelfDefendingCodeHelperGroup_1","StringArrayCodeHelperGroup_1","ConsoleOutputDisableCodeHelper_1","CustomCodeHelperFormatter_1","CustomCodeHelperObfuscator_1","DebugProtectionFunctionCallCodeHelper_1","DebugProtectionFunctionIntervalCodeHelper_1","DebugProtectionFunctionCodeHelper_1","DomainLockCodeHelper_1","CallsControllerFunctionCodeHelper_1","SelfDefendingUnicodeCodeHelper_1","StringArrayCallsWrapperCodeHelper_1","StringArrayCallsWrapperBase64CodeHelper_1","StringArrayCallsWrapperRc4CodeHelper_1","StringArrayCodeHelper_1","StringArrayRotateFunctionCodeHelper_1","ICustomCodeHelper","ConsoleOutputDisableCodeHelper","CustomCodeHelper","ConsoleOutputDisable","DebugProtectionFunctionCallCodeHelper","DebugProtectionFunctionCall","DebugProtectionFunctionIntervalCodeHelper","DebugProtectionFunctionInterval","DebugProtectionFunctionCodeHelper","DebugProtectionFunction","DomainLockCodeHelper","DomainLock","CallsControllerFunctionCodeHelper","CallsControllerFunction","SelfDefendingUnicodeCodeHelper","SelfDefendingUnicode","StringArrayCallsWrapperCodeHelper","StringArrayCallsWrapper","StringArrayCallsWrapperBase64CodeHelper","StringArrayCallsWrapperBase64","StringArrayCallsWrapperRc4CodeHelper","StringArrayCallsWrapperRc4","StringArrayCodeHelper","StringArrayRotateFunctionCodeHelper","StringArrayRotateFunction","ICustomCodeHelperGroup","ConsoleOutputCodeHelperGroup","CustomCodeHelperGroup","ConsoleOutput","DebugProtectionCodeHelperGroup","DebugProtection","DomainLockCustomCodeHelperGroup","SelfDefendingCodeHelperGroup","SelfDefending","StringArrayCodeHelperGroup","Factory__ICustomCodeHelper","getFactory","Factory__ICustomCodeHelperGroup","ICustomCodeHelperFormatter","CustomCodeHelperFormatter","ICustomCodeHelperObfuscator","CustomCodeHelperObfuscator","ControlFlowCustomNode_1","DeadCodeInjectionCustomNode_1","ObjectExpressionKeysTransformerCustomNode_1","StringArrayCustomNode_1","BinaryExpressionFunctionNode_1","BlockStatementControlFlowFlatteningNode_1","BlockStatementDeadCodeInjectionNode_1","CallExpressionControlFlowStorageCallNode_1","CallExpressionFunctionNode_1","ControlFlowStorageNode_1","ExpressionWithOperatorControlFlowStorageCallNode_1","LogicalExpressionFunctionNode_1","ObjectExpressionVariableDeclarationHostNode_1","StringArrayCallNode_1","StringArrayHexadecimalNumberIndexNode_1","StringArrayHexadecimalNumericStringIndexNode_1","StringArrayIndexNode_1","StringArrayScopeCallsWrapperFunctionNode_1","StringArrayScopeCallsWrapperVariableNode_1","StringLiteralControlFlowStorageCallNode_1","StringLiteralNode_1","Newable__ICustomNode","toConstructor","BinaryExpressionFunctionNode","ControlFlowCustomNode","BlockStatementControlFlowFlatteningNode","CallExpressionControlFlowStorageCallNode","CallExpressionFunctionNode","ControlFlowStorageNode","ExpressionWithOperatorControlFlowStorageCallNode","LogicalExpressionFunctionNode","StringLiteralNode","StringLiteralControlFlowStorageCallNode","BlockStatementDeadCodeInjectionNode","DeadCodeInjectionCustomNode","ObjectExpressionVariableDeclarationHostNode","ObjectExpressionKeysTransformerCustomNode","StringArrayCallNode","StringArrayCustomNode","StringArrayScopeCallsWrapperFunctionNode","StringArrayScopeCallsWrapperVariableNode","IStringArrayIndexNode","StringArrayHexadecimalNumberIndexNode","StringArrayIndexNode","StringArrayHexadecimalNumericStringIndexNode","Factory__IControlFlowCustomNode","getConstructorFactory","Factory__IIdentifierNamesGenerator","Factory__IDeadCodeInjectionCustomNode","Factory__IObjectExpressionKeysTransformerCustomNode","Factory__IStringArrayCustomNode","Factory__IStringArrayIndexNode","IdentifierNamesGenerator_1","DictionaryIdentifierNamesGenerator_1","HexadecimalIdentifierNamesGenerator_1","MangledIdentifierNamesGenerator_1","MangledShuffledIdentifierNamesGenerator_1","IIdentifierNamesGenerator","DictionaryIdentifierNamesGenerator","IdentifierNamesGenerator","HexadecimalIdentifierNamesGenerator","MangledIdentifierNamesGenerator","MangledShuffledIdentifierNamesGenerator","cachedIdentifierNamesGenerator","identifierNamesGenerator","identifierNameGeneratorFactory","ControlFlowReplacer_1","BinaryExpressionControlFlowReplacer_1","BlockStatementControlFlowTransformer_1","CallExpressionControlFlowReplacer_1","FunctionControlFlowTransformer_1","LogicalExpressionControlFlowReplacer_1","StringLiteralControlFlowReplacer_1","INodeTransformer","IControlFlowReplacer","BinaryExpressionControlFlowReplacer","ControlFlowReplacer","CallExpressionControlFlowReplacer","LogicalExpressionControlFlowReplacer","StringLiteralControlFlowReplacer","Factory__IControlFlowReplacer","ObjectExpressionExtractor_1","BasePropertiesExtractor_1","BooleanLiteralTransformer_1","ExportSpecifierTransformer_1","MemberExpressionTransformer_1","MethodDefinitionTransformer_1","NumberLiteralTransformer_1","NumberToNumericalExpressionTransformer_1","ObjectExpressionKeysTransformer_1","ObjectExpressionToVariableDeclarationExtractor_1","ObjectExpressionTransformer_1","ObjectPatternPropertiesTransformer_1","SplitStringTransformer_1","TemplateLiteralTransformer_1","IObjectExpressionExtractor","ObjectExpressionToVariableDeclarationExtractor","ObjectExpressionExtractor","BasePropertiesExtractor","Factory__IObjectExpressionExtractor","DeadCodeInjectionTransformer_1","EscapeSequenceTransformer_1","CommentsTransformer_1","NodeTransformerNamesGroupsBuilder_1","Factory__INodeTransformer","INodeTransformerNamesGroupsBuilder","NodeTransformerNamesGroupsBuilder","ObfuscatingGuard_1","BlackListObfuscatingGuard_1","ConditionalCommentObfuscatingGuard_1","CustomCodeHelpersTransformer_1","EvalCallExpressionTransformer_1","ForceTransformStringObfuscatingGuard_1","IgnoredRequireImportObfuscatingGuard_1","MetadataTransformer_1","ObfuscatingGuardsTransformer_1","ParentificationTransformer_1","ReservedStringObfuscatingGuard_1","VariablePreserveTransformer_1","INodeGuard","BlackListObfuscatingGuard","ObfuscatingGuard","ConditionalCommentObfuscatingGuard","ForceTransformStringObfuscatingGuard","IgnoredRequireImportObfuscatingGuard","ReservedStringObfuscatingGuard","Factory__INodeGuard","IdentifierReplacer_1","LabeledStatementTransformer_1","ScopeIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer_1","ScopeThroughIdentifiersTransformer","IIdentifierReplacer","IdentifierReplacer","RenamePropertiesReplacer_1","RenamePropertiesTransformer_1","IRenamePropertiesReplacer","RenamePropertiesReplacer","BlockStatementSimplifyTransformer_1","ExpressionStatementsMergeTransformer_1","IfStatementSimplifyTransformer_1","VariableDeclarationsMergeTransformer_1","StringArrayScopeCallsWrapperTransformer_1","StringArrayTransformer_1","ScopeIdentifiersTraverser_1","IScopeIdentifiersTraverser","ScopeIdentifiersTraverser","OptionsNormalizer_1","IOptionsNormalizer","OptionsNormalizer","ControlFlowStorage_1","CustomCodeHelperGroupStorage_1","LiteralNodesCacheStorage_1","StringArrayScopeCallsWrapperLexicalScopeDataStorage_1","StringArrayScopeCallsWrapperNamesDataStorage_1","StringArrayStorage_1","VisitedLexicalScopeNodesStackStorage_1","TCustomNodeGroupStorage","CustomCodeHelperGroupStorage","ILiteralNodesCacheStorage","LiteralNodesCacheStorage","StringArrayStorage","IStringArrayScopeCallsWrapperLexicalScopeDataStorage","StringArrayScopeCallsWrapperLexicalScopeDataStorage","IStringArrayScopeCallsWrapperNamesDataStorage","StringArrayScopeCallsWrapperNamesDataStorage","IVisitedLexicalScopeNodesStackStorage","VisitedLexicalScopeNodesStackStorage","Newable__TControlFlowStorage","ControlFlowStorage","Factory__TControlFlowStorage","storage","ArrayUtils_1","CryptUtils_1","CryptUtilsSwappedAlphabet_1","EscapeSequenceEncoder_1","LevelledTopologicalSorter_1","RandomGenerator_1","ArrayUtils","RandomGenerator","ICryptUtils","CryptUtils","ICryptUtilsSwappedAlphabet","CryptUtilsSwappedAlphabet","IEscapeSequenceEncoder","EscapeSequenceEncoder","ILevelledTopologicalSorter","LevelledTopologicalSorter","AbstractCustomCodeHelper_1","AbstractCustomCodeHelper","TIdentifierNamesGeneratorFactory_1","ICustomCodeHelperFormatter_1","ICustomCodeHelperObfuscator_1","GlobalVariableTemplate1_1","GlobalVariableTemplate2_1","identifierNamesGeneratorFactory","customCodeHelperFormatter","customCodeHelperObfuscator","cachedNode","codeHelperTemplate","getCodeHelperTemplate","formatStructure","getNodeStructure","getRandomGenerator","pickone","globalVariableTemplateFunctions","GlobalVariableTemplate1","GlobalVariableTemplate2","TIdentifierNamesGeneratorFactory","AbstractCustomCodeHelperGroup","appendEvent","customCodeHelpers","customCodeHelperName","callback","customCodeHelper","callsGraphLength","string_template_1","IPrevailingKindOfVariablesAnalyzer_1","prevailingKindOfVariablesAnalyzer","getPrevailingKind","template","mapping","statements","statement","NoCustomNodes_1","additionalOptions","NO_ADDITIONAL_NODES_PRESET","identifiersDictionary","numbersToExpressions","seed","getRawSeed","ObfuscationEvent_1","Initializable_1","SingleCallControllerTemplate_1","NodeUtils_1","callsControllerFunctionName","NodeUtils","convertCodeToStructure","ObfuscationEvent","AfterObfuscation","obfuscateTemplate","formatTemplate","SingleCallControllerTemplate","callControllerFunctionName","initializable","String","GlobalVariableNoEvalTemplate","ObfuscationTarget_1","ConsoleOutputDisableTemplate_1","GlobalVariableNoEvalTemplate_1","consoleOutputDisableFunctionName","globalVariableTemplate","ObfuscationTarget","BrowserNoEval","getGlobalVariableTemplate","ConsoleOutputDisableTemplate","consoleLogDisableFunctionName","TCustomCodeHelperFactory_1","AbstractCustomCodeHelperGroup_1","NodeAppender_1","NodeLexicalScopeUtils_1","customCodeHelperFactory","BeforeObfuscation","nodeWithStatements","disableConsoleOutput","randomCallsGraphIndex","getRandomCallsGraphIndex","consoleOutputDisableHostNode","NodeAppender","getOptimalBlockScope","callsControllerHostNode","consoleOutputDisableLexicalScopeNode","NodeLexicalScopeUtils","getLexicalScope","generateNext","appendCustomNodeIfExist","prepend","getNode","consoleOutputDisableExpressionCodeHelper","callsControllerFunctionCodeHelper","TCustomCodeHelperFactory","DebugProtectionFunctionCallTemplate_1","debugProtectionFunctionName","DebugProtectionFunctionCallTemplate","DebuggerTemplate_1","DebuggerTemplateNoEval_1","DebugProtectionFunctionTemplate_1","debuggerTemplate","DebuggerTemplate","DebuggerTemplateNoEval","DebugProtectionFunctionTemplate","DebugProtectionFunctionIntervalTemplate_1","DebugProtectionFunctionIntervalTemplate","debugProtection","debugProtectionFunctionCallHostNode","debugProtectionFunctionCallScopeNode","append","programBodyLength","isSwitchCaseNode","consequent","randomIndex","insertAtIndex","debugProtectionFunctionCodeHelper","debugProtectionFunctionCallCodeHelper","debugProtectionFunctionIntervalCodeHelper","debugProtectionInterval","ICryptUtils_1","DomainLockTemplate_1","cryptUtils","domainLockFunctionName","domainsString","domainLock","join","hiddenDomainsString","diff","hideString","DomainLockTemplate","domains","domainLockFunctionHostNode","domainLockFunctionLexicalScopeNode","domainLockCodeHelper","SelfDefendingTemplate_1","SelfDefendingNoEvalTemplate_1","selfDefendingFunctionName","selfDefendingTemplate","SelfDefendingTemplate","SelfDefendingNoEvalTemplate","selfDefending","selfDefendingFunctionHostNode","selfDefendingFunctionLexicalScopeNode","selfDefendingUnicodeCodeHelper","AtobTemplate_1","StringArrayBase64DecodeTemplate_1","atobFunctionName","getRandomString","atobPolyfill","AtobTemplate","selfDefendingCode","getSelfDefendingTemplate","StringArrayBase64DecodeTemplate","stringArrayCallsWrapperName","IEscapeSequenceEncoder_1","StringArrayCallsWrapperTemplate_1","escapeSequenceEncoder","stringArrayName","indexShiftAmount","decodeCodeHelperTemplate","getDecodeStringArrayTemplate","preservedNames","StringArrayCallsWrapperTemplate","reservedNames","Rc4Template_1","StringArrayRC4DecodeTemplate_1","rc4Polyfill","Rc4Template","StringArrayRC4DecodeTemplate","StringArrayTemplate_1","StringUtils_1","StringArrayTemplate","stringArrayStorageItems","getEncodedStringArrayStorageItems","Array","getStorage","values","stringArrayStorageItemData","StringUtils","escapeJsString","encodedValue","StringArrayRotateFunctionTemplate_1","stringArrayRotationAmount","timesName","whileFunctionName","StringArrayRotateFunctionTemplate","toHex","StringArrayEncoding_1","getLength","stringArrayEncodingsLength","stringArrayEncoding","stringArrayCallsWrapperCodeHelperName","getStringArrayCallsWrapperCodeHelperName","stringArrayCodeHelper","getStorageName","stringArrayCallsWrapperCodeHelper","getStorageCallsWrapperName","getIndexShiftAmount","stringArrayRotateFunctionCodeHelper","getRotationAmount","rotateStringArray","stringArrayCallsWrapperCodeHelperMap","StringArrayEncoding","None","Base64","Rc4","Base64AlphabetSwapped_1","rc4BytesIdentifier","statesIdentifier","newStateIdentifier","firstStateIdentifier","secondStateIdentifier","checkStateIdentifier","runStateIdentifier","getStateIdentifier","stateResultIdentifier","encode","initializedIdentifier","base64DecodeFunctionIdentifier","dataIdentifier","rc4Identifier","onceIdentifier","AbstractCustomNode","AbstractCustomNode_1","NodeFactory_1","operator","structure","NodeFactory","expressionStatementNode","functionExpressionNode","identifierNode","blockStatementNode","returnStatementNode","binaryExpressionNode","parentizeAst","StringSeparator_1","blockStatementBody","shuffledKeys","originalKeysIndexesInShuffledArray","controllerIdentifierName","indexIdentifierName","variableDeclarationNode","variableDeclaratorNode","memberExpressionNode","StringSeparator","VerticalLine","whileStatementNode","switchStatementNode","updateExpressionNode","isReturnStatementNode","continueStatement","switchCaseNode","breakStatement","expressionArguments","calleeIdentifier","params","argumentsLength","logicalExpressionNode","literalValue","controlFlowStorageName","controlFlowStorageKey","ESTree","Expression","TControlFlowStorage_1","controlFlowStorage","propertyNodes","isExpressionStatementNode","expression","getStorageId","objectExpressionNode","TControlFlowStorage","leftValue","rightValue","deadCodeInjectionRootAstHostNode","random1","random2","leftString","rightString","alternate","ifStatementNode","lexicalScopeNode","variableDeclarationName","generateForGlobalScope","generateForLexicalScope","AbstractStringArrayCallNode_1","_g","AbstractStringArrayCallNode","TStringArrayIndexNodeFactory_1","StringArrayIndexesType_1","stringArrayIndexNodeFactory","isPositive","normalizedIndex","stringArrayCallsIndexType","stringArrayIndexesType","stringArrayIndexNodeName","stringArrayIndexNodesMap","stringArrayCallIndexNode","replacedLiteral","hexadecimalNode","unaryExpressionNode","decodeKey","rc4KeyLiteralNode","stringArrayRootCallsWrapperParametersCount","StringArrayIndexesType","HexadecimalNumber","HexadecimalNumericString","TStringArrayIndexNodeFactory","_h","stringArrayCallsWrapperParameterIndexesData","resultIndex","indexNode","getStringArrayIndexNode","getRc4KeyLiteralNode","callExpressionArgs","fillWithRange","stringArrayWrappersParametersMaxCount","getFakeStringArrayIndexNode","splice","valueIndexParameterIndex","decodeKeyParameterIndex","actualIndex","getFakeStringArrayIndex","fakeIndexOffset","minimumIndex","maximumIndex","_j","stringArrayScopeCallsWrapperName","stringArrayScopeCallsWrapperParameterIndexesData","upperStringArrayCallsWrapperName","upperStringArrayCallsWrapperParameterIndexesData","shiftedIndex","stringArrayCallIdentifierNode","decodeKeyIdentifierNode","stringArrayCallNode","getUpperStringArrayCallNode","parameters","getFakeParameterNode","getFakeUpperStringArrayIndexNode","parameter","indexParameterIdentifierNode","indexShiftNode","AbstractStringArrayIndexNode","AbstractStringArrayIndexNode_1","hexadecimalIndex","defaultDescriptor","configurable","initializedTargetMetadataKey","initializablePropertiesSetMetadataKey","wrappedMethodsSetMetadataKey","initializeTargetMetadata","metadataKey","metadataValue","hasMetadata","defineMetadata","initializeMethodName","decoratorName","propertyKey","initializeMethod","Set","ownPropertyNames","getOwnPropertyNames","prohibitedPropertyNames","propertyName","initializablePropertiesSet","getMetadata","wrappedMethodsSet","methodDescriptor","originalMethod","apply","add","wrapTargetMethodsInInitializedCheck","wrapInitializeMethodInInitializeCheck","initializablePropertyMetadataKey","propertyDescriptor","newVal","wrapInitializableProperty","makeEnum","Browser","Node","LoggingPrefix","VisitorDirection","StringArrayWrappersType","Variable","Function","NodeType","ObfuscatingGuardResult","OptionsPreset","Default","LowObfuscation","MediumObfuscation","HighObfuscation","SourceMapMode","Inline","Separate","eventemitter3_1","AbstractIdentifierNamesGenerator","preservedNamesSet","lexicalScopesPreservedNamesMap","nameLength","preservedNamesForLexicalScopeSet","notReservedName","lexicalScopeNodes","isValidIdentifierName","lexicalScope","reservedName","RegExp","exec","AbstractIdentifierNamesGenerator_1","identifierNamesSet","getInitialIdentifierNames","identifiersIterator","identifierName","newIdentifierName","isSuccess","character","toLowerCase","generateNewDictionaryName","preserveName","identifierNameWithPrefix","lexicalScopes","getLexicalScopes","isValidIdentifierNameInLexicalScopes","preserveNameForLexicalScope","size","iteratorResult","next","done","getIncrementedIdentifierNames","identifierNames","formattedIdentifierNames","filter","shuffle","incrementIdentifierName","randomInteger","hexadecimalNumber","prefixLength","hexadecimalPrefix","baseNameLength","baseIdentifierNameLength","previousMangledName","initMangledNameCharacter","generateNewMangledName","updatePreviousMangledName","prefix","getLastMangledNameForScopes","lastMangledNameInScopeMap","nextName","prevName","nextNameLength","prevNameLength","nameSequence","getNameSequence","nextNameCharacter","prevNameCharacter","indexOf","mangledName","reservedNamesSet","isIncrementedMangledName","newMangledName","nameSequenceLength","zeroSequence","num","repeat","indexInSequence","lastMangledName","WeakMap","initializeNameSequence","shuffledNameSequence","postConstruct","LoggingPrefix_1","loggingLevelColor","loggingPrefix","loggingMessage","processedMessage","console","log","colorInfo","Base","colorSuccess","colorWarn","cyan","green","yellow","AbstractNodeTransformer","TNodeTransformerFactory_1","VisitorDirection_1","nodeTransformerFactory","nodeTransformerNamesGroupsBuilder","nodeTransformerNames","normalizedNodeTransformers","buildNormalizedNodeTransformers","nodeTransformerNamesGroups","enterVisitors","leaveVisitors","visitor","getVisitor","leave","mergeVisitorsForDirection","Enter","Leave","nodeTransformer","visitors","direction","visitorsLength","visitorFunction","visitorResult","isNode","TNodeTransformerFactory","TControlFlowCustomNodeFactory_1","AbstractNodeTransformer_1","controlFlowCustomNodeFactory","isBreakOrContinueStatement","isBreakStatementNode","isContinueStatementNode","isVariableDeclarationWithLetOrConstKind","isClassDeclaration","isClassDeclarationNode","canTransform","isWhileStatementNode","isProhibitedStatementNode","isBlockStatementNode","transformNode","controlFlowFlatteningThreshold","canTransformBlockStatementNode","originalKeys","createWithRange","blockStatementControlFlowFlatteningCustomNode","newBlockStatementNode","parentizeNode","TControlFlowCustomNodeFactory","TControlFlowReplacerFactory_1","TControlFlowStorageFactory_1","NodeType_1","controlFlowStorageFactory","controlFlowReplacerFactory","controlFlowData","visitedFunctionNodes","hostNodesWithControlFlowNode","isArrowFunctionExpressionNode","functionNode","hostNode","getHostNode","getControlFlowStorage","transformFunctionBody","controlFlowStorageCustomNode","hostControlFlowStorage","mergeWith","functionNodeBody","blockScopesOfNode","getParentNodesWithStatements","pop","hostNodeSearchMinDepth","hostNodeSearchMaxDepth","isVisitedFunctionNode","controlFlowReplacersMap","controlFlowReplacerName","BinaryExpression","CallExpression","LogicalExpression","Literal","TControlFlowStorageFactory","TControlFlowReplacerFactory","AbstractControlFlowReplacer_1","AbstractControlFlowReplacer","replacerDataByControlFlowStorageId","identifierDataByControlFlowStorageId","controlFlowStorageId","storageKeysById","customNode","replacerId","usingExistingIdentifierChance","getStorageKeysByIdForCurrentStorage","storageKeysForCurrentId","generateStorageKey","storageKey","ExpressionWithOperatorControlFlowReplacer_1","ExpressionWithOperatorControlFlowReplacer","binaryExpressionFunctionCustomNode","insertCustomNodeToControlFlowStorage","getControlFlowStorageCallNode","left","right","callExpressionFunctionCustomNode","controlFlowStorageCallCustomNode","statementNode","leftExpression","rightExpression","checkForProhibitedExpressions","logicalExpressionFunctionCustomNode","expressionNode","nodeForCheck","isUnaryExpressionNode","getUnaryExpressionArgumentNode","literalFunctionCustomNode","getTrueUnaryExpressionNode","getFalseUnaryExpressionNode","arrayExpressionNode","isExportSpecifierNode","exportSpecifierNode","local","exported","clone","isMethodDefinitionNode","methodDefinitionNode","replaceIdentifierKey","replaceLiteralKey","keyNode","ignoredNames","includes","runAfter","numberLiteralCache","rawValue","isCeil","INumberNumericalExpressionAnalyzer_1","numberNumericalExpressionAnalyzer","numberNumericalExpressionData","convertNumericalExpressionDataToNode","numberNumericalExpressionDataLength","leftParts","rightParts","convertPartsToBinaryExpression","firstLeftPartOrNumber","isArray","convertPartOrNumberToLiteralNode","rightPartOrNumber","partOrNumber","isPositiveNumber","TObjectExpressionExtractorFactory_1","objectExpressionExtractorFactory","objectExpressionParentNode","objectExpressionHostStatement","isReferencedIdentifierName","isProhibitedArrowFunctionExpression","isProhibitedSequenceExpression","objectExpressionHostNode","isCurrentNode","objectExpressionNodeParentNode","isSequenceExpressionNode","expressions","isSuperNode","transformObjectKeys","hostStatement","getRootStatementOfNode","isProhibitedObjectExpressionNode","applyObjectExpressionKeysExtractorsRecursive","objectExpressionExtractorNames","newObjectExpressionExtractorNames","objectExpressionExtractor","nodeToReplace","newObjectExpressionHostStatement","newObjectExpressionNode","TObjectExpressionExtractorFactory","transformComputedProperty","transformBaseProperty","shorthand","isObjectPatternNode","renameGlobals","stringz","string","stringLength","chunkSize","chunksCount","ceil","chunks","nextChunkStartIndex","chunkIndex","substr","splitStrings","firstPassChunksNode","transformLiteralNodeByChunkLength","firstPassChunkLength","splitStringsChunkLength","chunkLength","valueLength","stringChunks","chunkString","transformStringChunksToBinaryExpressionNode","firstChunk","secondChunk","initialBinaryExpressionNode","chunk","chunkLiteralNode","isTemplateLiteralNode","templateLiteralNode","isTaggedTemplateExpressionNode","transformTemplateLiteralNode","templateLiteralExpressions","transformedNode","nodes","quasis","templateElement","cooked","isLiteralNodeWithStringValue","root","propertyKeyNode","isArrayPatternNode","isAssignmentPatternNode","isRestElementNode","transformObjectExpressionNode","memberExpressionHostNode","expressionStatements","removablePropertyIds","extractPropertiesToExpressionStatements","hostNodeWithStatements","getScopeOfNode","filterExtractedObjectExpressionProperties","insertAfter","isSpreadElementNode","isProhibitedPropertyNode","propertyValue","isProhibitedPattern","propertyKeyName","getPropertyNodeKeyName","memberExpressionProperty","shouldCreateLiteralNode","assignmentExpressionNode","TObjectExpressionKeysTransformerCustomNodeFactory_1","objectExpressionKeysTransformerCustomNodeFactory","transformObjectExpressionToVariableDeclaration","isNodeWithLexicalScope","getObjectExpressionHostNode","statementsToInsert","insertBefore","getObjectExpressionIdentifierNode","getObjectExpressionNode","variableDeclarationHostNodeCustomNode","newObjectExpressionIdentifierNode","declarations","TObjectExpressionKeysTransformerCustomNodeFactory","TDeadNodeInjectionCustomNodeFactory_1","deadCodeInjectionCustomNodeFactory","transformersRunner","deadCodeInjectionRootAstHostNodeSet","collectedBlockStatements","collectedBlockStatementsTotalLength","isAwaitExpressionNode","isYieldExpressionNode","isForOfStatementNode","await","scopeNode","scopeBody","indexInScope","slicedBody","hostBlockStatementNode","functionDeclarationName","isScopeHoistedFunctionDeclaration","nestedBlockStatementsCount","isValidBlockStatementNode","maxNestedBlockStatementsCount","isProhibitedNodeInsideCollectedBlockStatement","isScopeHoistingFunctionDeclaration","Program","prepareNode","isDeadCodeInjectionRootAstHostNode","restoreNode","programNode","clonedBlockStatementNode","isValidCollectedBlockStatementNode","transformedBlockStatementNode","makeClonedBlockStatementNodeUnique","minCollectedBlockStatementsCount","deadCodeInjectionThreshold","isValidWrappedBlockStatementNode","maxInteger","randomBlockStatementNode","replaceBlockStatementNode","hostNodeFirstStatement","transformersToRenameBlockScopeIdentifiers","functionDeclarationNode","deadCodeInjectionRootAstHostNodeName","blockStatementDeadCodeInjectionCustomNode","TDeadNodeInjectionCustomNodeFactory","unicodeEscapeSequence","newLiteralNode","filterCommentsOnFinalizingTraverse","rootNode","filterCommentsOnPrimaryTraverse","reverse","isFirstNode","commentIdx","findIndex","filterComment","keepConditionalComment","isConditionalComment","preservedWords","preservedWord","TCustomCodeHelperGroupStorage_1","IObfuscationEventEmitter_1","ICallsGraphAnalyzer_1","callsGraphAnalyzer","obfuscationEventEmitter","customCodeHelperGroupStorage","appendCustomNodesBeforeObfuscation","appendCustomNodesAfterObfuscation","customCodeHelperGroup","once","getAppendEvent","appendNodes","emit","TCustomCodeHelperGroupStorage","evalRootAstHostNodeSet","extractEvalStringFromLiteralNode","extractEvalStringFromTemplateLiteralNode","isEvalRootAstHostNode","callExpressionFirstArgument","evalString","extractEvalStringFromCallExpressionArgument","ast","evalRootAstHostNode","targetAst","convertStructureToCode","ignoredNode","TObfuscatingGuardFactory_1","ObfuscatingGuardResult_1","obfuscatingGuardFactory","obfuscatingGuards","obfuscatingGuardsList","obfuscatingGuardResults","obfuscatingGuard","check","setNodeMetadata","every","obfuscatingGuardResult","Transform","ForceTransform","Ignore","forceTransformNode","TObfuscatingGuardFactory","IIdentifierReplacer_1","IScopeIdentifiersTraverser_1","identifierReplacer","scopeIdentifiersTraverser","preserveScopeVariableIdentifiers","traverseScopeIdentifiers","data","isGlobalDeclaration","isBubblingDeclaration","variableScope","identifier","identifiers","preserveIdentifierNameForRootLexicalScope","preserveIdentifierNameForLexicalScope","block","blackListGuardsLength","blackListGuards","isUseStrictOperator","obfuscationAllowed","obfuscationEnableCommentRegExp","test","obfuscationDisableCommentRegExp","isNodeWithComments","checkComments","commentsLength","forceTransformStrings","isForceTransformString","forceTransformString","ignoreRequireImports","reservedStrings","isReservedString","reservedString","isLabeledStatementNode","labeledStatementNode","storeLabeledStatementName","replaceLabeledStatementName","storeLocalName","label","isLabelIdentifierNode","newIdentifier","lexicalScopesWithObjectPatternWithoutDeclarationMap","variableLexicalScopeNode","transformScopeVariableIdentifiers","firstIdentifier","isReplaceableIdentifierNode","storeIdentifierName","replaceIdentifierName","storeGlobalName","reference","isProhibitedPropertyIdentifierNode","isProhibitedPropertyAssignmentPatternIdentifierNode","isProhibitedClassDeclarationNameIdentifierNode","isProhibitedExportNamedClassDeclarationIdentifierNode","isProhibitedExportNamedFunctionDeclarationIdentifierNode","isProhibitedExportNamedVariableDeclarationIdentifierNode","isProhibitedImportSpecifierNode","isProhibitedVariableNameUsedInObjectPatternNode","isExportNamedDeclarationNode","isImportSpecifierNode","imported","isLexicalScopeHasObjectPatternWithoutDeclaration","isProhibitedVariableDeclaration","isAssignmentExpressionNode","traverseScopeThroughIdentifiers","transformScopeThroughIdentifiers","resolved","blockScopesMap","isReservedName","namesMap","IRenamePropertiesReplacer_1","renamePropertiesReplacer","transformPropertyNode","transformMemberExpressionNode","transformMethodDefinitionNode","isValidPropertyNode","ReservedDomProperties_json_1","propertyNamesMap","reservedDomPropertiesList","replacePropertyName","renamedPropertyName","isReservedOptionName","isReservedDomPropertyName","AbstractStatementSimplifyTransformer","leadingStatements","trailingStatement","hasReturnStatement","hasSingleExpression","startIndex","unwrappedExpressions","collectIteratedStatementsSimplifyData","getLeadingStatements","sequenceExpressionNode","statementBodyStatementNode","argument","statementSimplifyData","AbstractStatementSimplifyTransformer_1","simplifyData","getStatementSimplifyData","partialStatementNode","getPartialStatement","isNodeWithStatements","prevStatement","getPreviousSiblingStatement","Remove","isIfStatementNode","consequentSimplifyData","alternateSimplifyData","getConsequentAndAlternateNode","getConsequentNode","conditionalExpressionNode","partialStatement","isProhibitedSingleStatementForIfStatementBranch","TStringArrayCustomNodeFactory_1","IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1","IStringArrayScopeCallsWrapperNamesDataStorage_1","IVisitedLexicalScopeNodesStackStorage_1","StringArrayWrappersType_1","visitedLexicalScopeNodesStackStorage","stringArrayScopeCallsWrapperNamesDataStorage","stringArrayScopeCallsWrapperLexicalScopeDataStorage","stringArrayTransformerCustomNodeFactory","stringArrayWrappersCount","isNodeWithLexicalScopeStatements","onLexicalScopeNodeEnter","onLexicalScopeNodeLeave","lexicalScopeBodyNode","stringArrayScopeCallsWrapperNamesDataByEncoding","stringArrayScopeCallsWrapperLexicalScopeData","callsWrappersParameterIndexesData","stringArrayScopeCallsWrapperParameterIndexes","stringArrayScopeCallsWrapperNamesDataList","stringArrayScopeCallsWrapperNamesData","names","upperStringArrayCallsWrapperShiftedIndex","parameterIndexesData","upperStringArrayCallsWrapperParameterIndexes","getUpperStringArrayCallsWrapperData","stringArrayScopeCallsWrapperNode","getStringArrayScopeCallsWrapperNode","encoding","resultShiftedIndex","scopeShiftedIndex","rootStringArrayCallsWrapperData","getRootStringArrayCallsWrapperData","stringArrayWrappersChainedCalls","parentLexicalScopeBodyNode","getLastElement","parentLexicalScopeNamesDataByEncoding","parentScopeCallsWrapperLexicalScopeData","parentLexicalScopeNames","stringArrayScopeCallsWrapperShiftedIndex","stringArrayWrappersType","getStringArrayScopeCallsWrapperFunctionNode","getStringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperVariableNode","stringArrayScopeCallsWrapperFunctionNode","TStringArrayCustomNodeFactory","_k","ILiteralNodesCacheStorage_1","IStringArrayStorageAnalyzer_1","literalNodesCacheStorage","stringArrayStorageAnalyzer","isReplacedLiteral","shuffleStringArray","shuffleStorage","rotateStorage","getItemDataForLiteralNode","cacheKey","buildKey","shouldUseCachedValue","resultNode","getStringArrayCallNode","getStringArrayCallsWrapperData","stringArrayCallCustomNode","currentLexicalScopeBodyNode","getPenultimateElement","getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding","getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData","stringArrayScopeCallsWrapperNames","nextScopeCallsWrapperName","storedLexicalScopeData","parentLexicalScopeData","getStringArrayCallsWrapperParameterIndexesData","minShiftedIndexValue","maxShiftedIndexValue","lexicalScopeData","maxIndexValue","getRandomIntegerExcluding","parentizeScopeStatementsBeforeAppend","setScopeStatements","getScopeStatements","bodyStatements","targetBlockScope","deep","Infinity","firstCall","indexInScopeStatement","elements","ArrayExpression","ArrowFunctionExpression","AssignmentExpression","BlockStatement","BreakStatement","args","optional","ConditionalExpression","ContinueStatement","directive","ExpressionStatement","source","ExportAllDeclaration","specifiers","ExportNamedDeclaration","functionName","FunctionDeclaration","generator","FunctionExpression","IfStatement","Identifier","ImportDeclaration","raw","content","precedence","Precedence","Primary","MemberExpression","ObjectExpression","Property","method","ReturnStatement","SequenceExpression","discriminant","cases","SwitchStatement","SwitchCase","UnaryExpression","argumentExpr","UpdateExpression","tail","TemplateElement","TemplateLiteral","VariableDeclaration","VariableDeclarator","WhileStatement","ArrayPattern","AssignmentPattern","AwaitExpression","bigint","ClassDeclaration","ExportSpecifier","ForOfStatement","ImportSpecifier","parentNodeIsLabeledStatementNode","parentNodeIsContinueStatementNode","parentNodeIsBreakStatementNode","LabeledStatement","MethodDefinition","isFunctionNode","nodesWithLexicalStatements","ObjectPattern","RestElement","SpreadElement","Super","TaggedTemplateExpression","isDirectiveNode","YieldExpression","getLexicalScopesRecursive","maxSize","nodesWithLexicalScope","depth","ReferenceError","isImportDeclarationNode","isExportAllDeclarationNode","getParentNodesWithStatementsRecursive","getSiblingStatementByOffset","nodesWithStatements","offset","cloneRecursive","addXVerbatimPropertyTo","copy","clonedValue","IScopeAnalyzer_1","scopeAnalyzer","globalScope","acquireScope","traverseScopeIdentifiersRecursive","traverseScopeThroughIdentifiersRecursive","rootScope","currentScope","isNodeWithBlockLexicalScope","globalScopeNames","argumentsVariableName","through","class_validator_1","TInputOptions_1","TOptionsPreset_1","TStringArrayWrappersType_1","TTypeFromEnum_1","IOptionsNormalizer_1","OptionsPreset_1","SourceMapMode_1","Default_1","LowObfuscation_1","MediumObfuscation_1","HighObfuscation_1","ValidationErrorsFormatter_1","IsAllowedForObfuscationTargets_1","optionsNormalizer","errors","validateSync","validatorOptions","ValidationErrorsFormatter","normalize","optionPresetsMap","DEFAULT_PRESET","LOW_OBFUSCATION_PRESET","MEDIUM_OBFUSCATION_PRESET","HIGH_OBFUSCATION_PRESET","validationError","IsBoolean","IsNumber","Min","Max","IsArray","ArrayUnique","IsString","each","IsAllowedForObfuscationTargets","IsIn","TTypeFromEnum","ValidateIf","ArrayNotEmpty","TOptionsPreset","sourceMapBaseUrl","IsUrl","require_protocol","require_tld","require_valid_protocol","TStringArrayWrappersType","ControlFlowFlatteningThresholdRule_1","DeadCodeInjectionRule_1","DeadCodeInjectionThresholdRule_1","DomainLockRule_1","InputFileNameRule_1","SeedRule_1","SelfDefendingRule_1","SourceMapBaseUrlRule_1","SourceMapFileNameRule_1","SplitStringsChunkLengthRule_1","StringArrayRule_1","StringArrayEncodingRule_1","StringArrayWappersChainedCalls_1","normalizedOptions","normalizerRule","normalizerRules","ControlFlowFlatteningThresholdRule","DeadCodeInjectionRule","DeadCodeInjectionThresholdRule","DomainLockRule","InputFileNameRule","SeedRule","SelfDefendingRule","SourceMapBaseUrlRule","SourceMapFileNameRule","SplitStringsChunkLengthRule","StringArrayRule","StringArrayEncodingRule","StringArrayWrappersChainedCallsRule","errorMessages","formatWithNestedConstraints","constraints","constraint","normalizedDomains","domain","extractDomainFrom","Dot","floor","random","sourceMapFileName","endsWith","sourceMapFileNameParts","sourceMapFileNamePartsCount","lastPart","stringArrayIndexShift","freeze","exclude","sourceMapMode","fast_deep_equal_1","obfuscationTargets","validationOptions","optionsObject","registerDecorator","validator","validationArguments","defaultValue","defaultMessage","Comma","correctObfuscatedCode","sourceMapUrl","sourceMappingUrl","btoa","ArrayStorage","storageLength","storageId","deletedElement","mergeId","MapStorage","storageValue","TCustomCodeHelperGroupFactory_1","MapStorage_1","customCodeHelperGroupFactory","customCodeHelperGroupsList","customCodeHelperGroupName","TCustomCodeHelperGroupFactory","ICryptUtilsSwappedAlphabet_1","cryptUtilsSwappedAlphabet","rc4EncodedValuesSourcesCache","rotationAmount","stringArrayStorageCallsWrapperNamesMap","rc4Keys","n","rc4KeyLength","rc4KeysCount","minimumIndexShiftAmount","maximumIndexShiftAmount","minimumRotationAmount","maximumRotationAmount","getOrSetIfDoesNotExist","stringArrayStorageName","stringArrayNameLength","storageCallsWrapperName","newStorageCallsWrapperName","rotate","entries","sort","stringArrayStorageItemDataA","stringArrayStorageItemDataB","getEncodedValue","storedStringArrayStorageItemData","rc4","encodedValueSources","encodedValueSourcesLength","ArrayStorage_1","nodeWithLexicalScopeStatements","delete","ILevelledTopologicalSorter_1","levelledTopologicalSorter","normalizedTransformers","transformerNames","relationEdges","buildTransformersRelationEdges","precedent","sortByGroups","transformerName","runAfterRelations","runAfterRelation","valueFunction","array","elementsMap","mostOccurringElement","mostOccurringElementCount","element","updatedElementCount","times","newArray","temp","shuffledArray","j","Base64Alphabet_1","base64Alphabet","chars","output","encodeURIComponent","match","p1","fromCharCode","parseInt","charCode","idx","charAt","charCodeAt","str","randomStringDiff","pool","randomGeneratorPool","s","randomStringDiffArray","s1","s2","i1","i2","randomMerge","x","y","stringsCache","encodeAllSymbols","replaceRegExp","forceEscapeCharactersRegExp","ASCIICharactersRegExp","graph","link","register","consequents","results","marks","visit","resultItemsGroups","hasNodes","rootNodes","findRootNodes","getPrecedents","precedentsGroups","precedentsGroup","hasPrecedents","precedents","mark","basePart","POSITIVE_INFINITY","MIN_SAFE_INTEGER","sqrt","incrementValue","currentFactor","compliment","a","b","md5_1","chance_1","ISourceCode_1","Chance","integer","valuesToExclude","valuesToPickArray","inputSeed","getSourceCode","js_string_escape_1","buildTimestamp","toISOString","url","sourceCodeIndex","baseMultipleSourcesIdentifiersPrefix","enumLikeObject","require","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__"],"mappings":"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","file":"index.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst JavaScriptObfuscatorFacade_1 = require(\"./src/JavaScriptObfuscatorFacade\");\nmodule.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASTParserFacade = void 0;\nconst acorn = __importStar(require(\"acorn\"));\nconst chalk_1 = __importDefault(require(\"chalk\"));\nclass ASTParserFacade {\n static parse(sourceCode, config) {\n const sourceTypeLength = ASTParserFacade.sourceTypes.length;\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(ASTParserFacade.processParsingError(sourceCode, error.message, error.loc));\n }\n }\n throw new Error('Acorn parsing error');\n }\n static parseType(sourceCode, inputConfig, sourceType) {\n const comments = [];\n const config = Object.assign(Object.assign({}, inputConfig), { onComment: comments, sourceType });\n const program = acorn\n .parse(sourceCode, config);\n if (comments.length) {\n program.comments = comments;\n }\n return program;\n }\n static processParsingError(sourceCode, errorMessage, position) {\n if (!position || !position.line || !position.column) {\n throw new Error(errorMessage);\n }\n const sourceCodeLines = sourceCode.split(/\\r?\\n/);\n const errorLine = sourceCodeLines[position.line - 1];\n if (!errorLine) {\n throw new Error(errorMessage);\n }\n const startErrorIndex = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);\n const endErrorIndex = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);\n const formattedPointer = ASTParserFacade.colorError('>');\n const formattedCodeSlice = `...${errorLine.slice(startErrorIndex, endErrorIndex).replace(/^\\s+/, '')}...`;\n throw new Error(`ERROR at line ${position.line}: ${errorMessage}\\n${formattedPointer} ${formattedCodeSlice}`);\n }\n}\nexports.ASTParserFacade = ASTParserFacade;\nASTParserFacade.colorError = chalk_1.default.red;\nASTParserFacade.nearestSymbolsCount = 15;\nASTParserFacade.sourceTypes = [\n 'script',\n 'module'\n];\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar JavaScriptObfuscator_1, _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst TObfuscatedCodeFactory_1 = require(\"./types/container/source-code/TObfuscatedCodeFactory\");\nconst ICodeTransformersRunner_1 = require(\"./interfaces/code-transformers/ICodeTransformersRunner\");\nconst ILogger_1 = require(\"./interfaces/logger/ILogger\");\nconst IOptions_1 = require(\"./interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"./interfaces/utils/IRandomGenerator\");\nconst INodeTransformersRunner_1 = require(\"./interfaces/node-transformers/INodeTransformersRunner\");\nconst CodeTransformer_1 = require(\"./enums/code-transformers/CodeTransformer\");\nconst CodeTransformationStage_1 = require(\"./enums/code-transformers/CodeTransformationStage\");\nconst LoggingMessage_1 = require(\"./enums/logger/LoggingMessage\");\nconst NodeTransformer_1 = require(\"./enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"./enums/node-transformers/NodeTransformationStage\");\nconst EcmaVersion_1 = require(\"./constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"./ASTParserFacade\");\nconst NodeGuards_1 = require(\"./node/NodeGuards\");\nconst Utils_1 = require(\"./utils/Utils\");\nlet JavaScriptObfuscator = JavaScriptObfuscator_1 = class JavaScriptObfuscator {\n constructor(codeTransformersRunner, nodeTransformersRunner, randomGenerator, obfuscatedCodeFactory, logger, options) {\n this.codeTransformersRunner = codeTransformersRunner;\n this.nodeTransformersRunner = nodeTransformersRunner;\n this.randomGenerator = randomGenerator;\n this.obfuscatedCodeFactory = obfuscatedCodeFactory;\n this.logger = logger;\n this.options = options;\n }\n obfuscate(sourceCode) {\n if (typeof sourceCode !== 'string') {\n sourceCode = '';\n }\n const timeStart = Date.now();\n this.logger.info(LoggingMessage_1.LoggingMessage.Version, Utils_1.Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP));\n this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted);\n this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());\n sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers);\n const astTree = this.parseCode(sourceCode);\n const obfuscatedAstTree = this.transformAstTree(astTree);\n const generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree);\n generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers);\n const obfuscationTime = (Date.now() - timeStart) / 1000;\n this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime);\n return this.getObfuscatedCode(generatorOutput);\n }\n parseCode(sourceCode) {\n return ASTParserFacade_1.ASTParserFacade.parse(sourceCode, JavaScriptObfuscator_1.parseOptions);\n }\n transformAstTree(astTree) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Initializing);\n const isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree)\n && !astTree.body.length\n && !astTree.leadingComments\n && !astTree.trailingComments;\n if (isEmptyAstTree) {\n this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode);\n return astTree;\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Preparing);\n if (this.options.deadCodeInjection) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection);\n }\n if (this.options.controlFlowFlattening) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening);\n }\n if (this.options.renameProperties) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameProperties);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Converting);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.StringArray);\n if (this.options.simplify) {\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Simplifying);\n }\n astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage_1.NodeTransformationStage.Finalizing);\n return astTree;\n }\n generateCode(sourceCode, astTree) {\n const escodegenParams = Object.assign({}, JavaScriptObfuscator_1.escodegenParams);\n if (this.options.sourceMap) {\n escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';\n escodegenParams.sourceContent = sourceCode;\n }\n const generatorOutput = escodegen.generate(astTree, Object.assign(Object.assign({}, escodegenParams), { format: {\n compact: this.options.compact\n } }));\n generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';\n return generatorOutput;\n }\n getObfuscatedCode(generatorOutput) {\n return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);\n }\n runCodeTransformationStage(code, codeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.CodeTransformationStage, codeTransformationStage);\n return this.codeTransformersRunner.transform(code, JavaScriptObfuscator_1.codeTransformersList, codeTransformationStage);\n }\n runNodeTransformationStage(astTree, nodeTransformationStage) {\n this.logger.info(LoggingMessage_1.LoggingMessage.NodeTransformationStage, nodeTransformationStage);\n return this.nodeTransformersRunner.transform(astTree, JavaScriptObfuscator_1.nodeTransformersList, nodeTransformationStage);\n }\n};\nJavaScriptObfuscator.parseOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n allowHashBang: true,\n allowImportExportEverywhere: true,\n allowReturnOutsideFunction: true,\n locations: true,\n ranges: true\n};\nJavaScriptObfuscator.escodegenParams = {\n comment: true,\n verbatim: 'x-verbatim-property',\n sourceMapWithCode: true\n};\nJavaScriptObfuscator.codeTransformersList = [\n CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer\n];\nJavaScriptObfuscator.nodeTransformersList = [\n NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.CommentsTransformer,\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer,\n NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer,\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer,\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer,\n NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer,\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer,\n NodeTransformer_1.NodeTransformer.MemberExpressionTransformer,\n NodeTransformer_1.NodeTransformer.MetadataTransformer,\n NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer,\n NodeTransformer_1.NodeTransformer.NumberLiteralTransformer,\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer,\n NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.SplitStringTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer,\n NodeTransformer_1.NodeTransformer.StringArrayTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n];\nJavaScriptObfuscator = JavaScriptObfuscator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICodeTransformersRunner_1.ICodeTransformersRunner !== \"undefined\" && ICodeTransformersRunner_1.ICodeTransformersRunner) === \"function\" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== \"undefined\" && INodeTransformersRunner_1.INodeTransformersRunner) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof TObfuscatedCodeFactory_1.TObfuscatedCodeFactory !== \"undefined\" && TObfuscatedCodeFactory_1.TObfuscatedCodeFactory) === \"function\" ? _d : Object, typeof (_e = typeof ILogger_1.ILogger !== \"undefined\" && ILogger_1.ILogger) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], JavaScriptObfuscator);\nexports.JavaScriptObfuscator = JavaScriptObfuscator;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JavaScriptObfuscator = void 0;\nrequire(\"reflect-metadata\");\nconst ServiceIdentifiers_1 = require(\"./container/ServiceIdentifiers\");\nconst InversifyContainerFacade_1 = require(\"./container/InversifyContainerFacade\");\nconst Options_1 = require(\"./options/Options\");\nconst Utils_1 = require(\"./utils/Utils\");\nclass JavaScriptObfuscatorFacade {\n static obfuscate(sourceCode, inputOptions = {}) {\n const inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade();\n inversifyContainerFacade.load(sourceCode, '', inputOptions);\n const javaScriptObfuscator = inversifyContainerFacade\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator);\n const obfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);\n inversifyContainerFacade.unload();\n return obfuscatedCode;\n }\n static obfuscateMultiple(sourceCodesObject, inputOptions = {}) {\n if (typeof sourceCodesObject !== 'object') {\n throw new Error('Source codes object should be a plain object');\n }\n return Object\n .keys(sourceCodesObject)\n .reduce((acc, sourceCodeIdentifier, index) => {\n const identifiersPrefix = Utils_1.Utils.getIdentifiersPrefixForMultipleSources(inputOptions.identifiersPrefix, index);\n const sourceCode = sourceCodesObject[sourceCodeIdentifier];\n const sourceCodeOptions = Object.assign(Object.assign({}, inputOptions), { identifiersPrefix });\n return Object.assign(Object.assign({}, acc), { [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions) });\n }, {});\n }\n static getOptionsByPreset(optionsPreset) {\n return Options_1.Options.getOptionsByPreset(optionsPreset);\n }\n}\nexports.JavaScriptObfuscator = JavaScriptObfuscatorFacade;\nJavaScriptObfuscatorFacade.version = (_a = process.env.VERSION) !== null && _a !== void 0 ? _a : 'unknown';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallsGraphAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsGraphAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TCalleeDataExtractorFactory_1 = require(\"../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory\");\nconst CalleeDataExtractor_1 = require(\"../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet CallsGraphAnalyzer = CallsGraphAnalyzer_1 = class CallsGraphAnalyzer {\n constructor(calleeDataExtractorFactory) {\n this.calleeDataExtractorFactory = calleeDataExtractorFactory;\n }\n static getLimitIndex(blockScopeBodyLength) {\n const lastIndex = blockScopeBodyLength - 1;\n const limitThresholdActivationIndex = CallsGraphAnalyzer_1.limitThresholdActivationLength - 1;\n let limitIndex = lastIndex;\n if (lastIndex > limitThresholdActivationIndex) {\n limitIndex = Math.round(limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer_1.limitThreshold));\n if (limitIndex > lastIndex) {\n limitIndex = lastIndex;\n }\n }\n return limitIndex;\n }\n analyze(astTree) {\n return this.analyzeRecursive(astTree.body);\n }\n analyzeRecursive(blockScopeBody) {\n const limitIndex = CallsGraphAnalyzer_1.getLimitIndex(blockScopeBody.length);\n const callsGraphData = [];\n const blockScopeBodyLength = blockScopeBody.length;\n for (let index = 0; index < blockScopeBodyLength; index++) {\n if (index > limitIndex) {\n break;\n }\n const blockScopeBodyNode = blockScopeBody[index];\n estraverse.traverse(blockScopeBodyNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) {\n return;\n }\n if (blockScopeBodyNode.parentNode !== NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(node)) {\n return estraverse.VisitorOption.Skip;\n }\n this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);\n }\n });\n }\n return callsGraphData;\n }\n analyzeCallExpressionNode(callsGraphData, blockScopeBody, callExpressionNode) {\n CallsGraphAnalyzer_1.calleeDataExtractorsList.forEach((calleeDataExtractorName) => {\n const calleeData = this.calleeDataExtractorFactory(calleeDataExtractorName)\n .extract(blockScopeBody, callExpressionNode.callee);\n if (!calleeData) {\n return;\n }\n callsGraphData.push(Object.assign(Object.assign({}, calleeData), { callsGraph: this.analyzeRecursive(calleeData.callee.body) }));\n });\n }\n};\nCallsGraphAnalyzer.calleeDataExtractorsList = [\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,\n CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor\n];\nCallsGraphAnalyzer.limitThresholdActivationLength = 25;\nCallsGraphAnalyzer.limitThreshold = 0.002;\nCallsGraphAnalyzer = CallsGraphAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory !== \"undefined\" && TCalleeDataExtractorFactory_1.TCalleeDataExtractorFactory) === \"function\" ? _a : Object])\n], CallsGraphAnalyzer);\nexports.CallsGraphAnalyzer = CallsGraphAnalyzer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nlet AbstractCalleeDataExtractor = class AbstractCalleeDataExtractor {\n};\nAbstractCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], AbstractCalleeDataExtractor);\nexports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionDeclarationCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionDeclarationCalleeDataExtractor = class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return null;\n }\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: callee.name\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionDeclarationCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionDeclarationCalleeDataExtractor);\nexports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet FunctionExpressionCalleeDataExtractor = class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n extract(blockScopeBody, callee) {\n let calleeName = null;\n let calleeBlockStatement = null;\n if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n calleeName = callee.name;\n calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), callee.name);\n }\n else if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) {\n calleeName = null;\n calleeBlockStatement = callee.body;\n }\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: calleeName\n };\n }\n getCalleeBlockStatement(targetNode, name) {\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) &&\n parentNode &&\n NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) &&\n parentNode.id.name === name) {\n calleeBlockStatement = node.body;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n};\nFunctionExpressionCalleeDataExtractor = __decorate([\n inversify_1.injectable()\n], FunctionExpressionCalleeDataExtractor);\nexports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ObjectExpressionCalleeDataExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionCalleeDataExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst AbstractCalleeDataExtractor_1 = require(\"./AbstractCalleeDataExtractor\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nlet ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor {\n static isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) {\n if (!propertyNode.key) {\n return false;\n }\n const isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;\n const isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) &&\n Boolean(propertyNode.key.value) &&\n propertyNode.key.value === nextItemInCallsChain;\n return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;\n }\n extract(blockScopeBody, callee) {\n if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) {\n return null;\n }\n const objectMembersCallsChain = this.createObjectMembersCallsChain([], callee);\n if (!objectMembersCallsChain.length) {\n return null;\n }\n const functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1];\n const calleeBlockStatement = this.getCalleeBlockStatement(NodeStatementUtils_1.NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]), objectMembersCallsChain);\n if (!calleeBlockStatement) {\n return null;\n }\n return {\n callee: calleeBlockStatement,\n name: functionExpressionName\n };\n }\n createObjectMembersCallsChain(currentChain, memberExpression) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {\n currentChain.unshift(memberExpression.property.name);\n }\n else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) &&\n (typeof memberExpression.property.value === 'string' ||\n typeof memberExpression.property.value === 'number')) {\n currentChain.unshift(memberExpression.property.value);\n }\n else {\n return currentChain;\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) {\n return this.createObjectMembersCallsChain(currentChain, memberExpression.object);\n }\n else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) {\n currentChain.unshift(memberExpression.object.name);\n }\n return currentChain;\n }\n getCalleeBlockStatement(targetNode, objectMembersCallsChain) {\n const objectName = objectMembersCallsChain.shift();\n if (!objectName) {\n return null;\n }\n let calleeBlockStatement = null;\n estraverse.traverse(targetNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) &&\n NodeGuards_1.NodeGuards.isIdentifierNode(node.id) &&\n node.init &&\n NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) &&\n node.id.name === objectName) {\n calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return calleeBlockStatement;\n }\n findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) {\n const nextItemInCallsChain = objectMembersCallsChain.shift();\n if (!nextItemInCallsChain) {\n return null;\n }\n for (const propertyNode of objectExpressionProperties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(propertyNode)) {\n continue;\n }\n if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {\n continue;\n }\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) {\n return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);\n }\n if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) {\n return propertyNode.value.body;\n }\n }\n return null;\n }\n};\nObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = __decorate([\n inversify_1.injectable()\n], ObjectExpressionCalleeDataExtractor);\nexports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar NumberNumericalExpressionAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberNumericalExpressionAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = class NumberNumericalExpressionAnalyzer {\n constructor(randomGenerator) {\n this.numberFactorsMap = new Map();\n this.randomGenerator = randomGenerator;\n }\n analyze(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (NumberUtils_1.NumberUtils.isUnsafeNumber(number)) {\n return [number];\n }\n const additionParts = this.generateAdditionParts(number);\n return additionParts.map((addition) => this.mixWithMultiplyParts(addition));\n }\n generateAdditionParts(number) {\n const additionParts = [];\n const upperNumberLimit = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER);\n const from = Math.min(-10000, -upperNumberLimit);\n const to = Math.max(10000, upperNumberLimit);\n let temporarySum = 0;\n for (let i = 0; i < NumberNumericalExpressionAnalyzer_1.additionalParts; i++) {\n if (i < NumberNumericalExpressionAnalyzer_1.additionalParts - 1) {\n let addition = this.randomGenerator.getRandomInteger(from, to);\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(temporarySum + addition);\n if (isUnsafeCombination) {\n addition = -addition;\n }\n additionParts.push(addition);\n temporarySum += addition;\n }\n else {\n const combination = number - temporarySum;\n const isUnsafeCombination = NumberUtils_1.NumberUtils.isUnsafeNumber(combination);\n if (isUnsafeCombination) {\n additionParts.push(0 - temporarySum);\n additionParts.push(number);\n }\n else {\n additionParts.push(combination);\n }\n }\n }\n return additionParts;\n }\n mixWithMultiplyParts(number) {\n var _a;\n const shouldMixWithMultiplyParts = this.randomGenerator.getMathRandom() > 0.5;\n if (!shouldMixWithMultiplyParts || number === 0) {\n return number;\n }\n let factors = (_a = this.numberFactorsMap.get(number)) !== null && _a !== void 0 ? _a : null;\n if (!factors) {\n factors = NumberUtils_1.NumberUtils.getFactors(number);\n this.numberFactorsMap.set(number, factors);\n }\n if (!factors.length) {\n return number;\n }\n const factor = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)];\n return [factor, number / factor];\n }\n};\nNumberNumericalExpressionAnalyzer.additionalParts = 3;\nNumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], NumberNumericalExpressionAnalyzer);\nexports.NumberNumericalExpressionAnalyzer = NumberNumericalExpressionAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PrevailingKindOfVariablesAnalyzer_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrevailingKindOfVariablesAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = class PrevailingKindOfVariablesAnalyzer {\n constructor(arrayUtils) {\n this.prevailingKindOfVariables = PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n this.arrayUtils = arrayUtils;\n }\n analyze(astTree) {\n var _a;\n const variableKinds = [];\n estraverse.traverse(astTree, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n variableKinds.push(node.kind);\n }\n });\n this.prevailingKindOfVariables = (_a = this.arrayUtils.findMostOccurringElement(variableKinds)) !== null && _a !== void 0 ? _a : PrevailingKindOfVariablesAnalyzer_1.defaultKindOfVariables;\n }\n getPrevailingKind() {\n return this.prevailingKindOfVariables;\n }\n};\nPrevailingKindOfVariablesAnalyzer.defaultKindOfVariables = 'var';\nPrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _a : Object])\n], PrevailingKindOfVariablesAnalyzer);\nexports.PrevailingKindOfVariablesAnalyzer = PrevailingKindOfVariablesAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar ScopeAnalyzer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eslintScope = __importStar(require(\"eslint-scope\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../../constants/EcmaVersion\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeAnalyzer = ScopeAnalyzer_1 = class ScopeAnalyzer {\n constructor() {\n this.scopeManager = null;\n }\n static attachMissingRanges(astTree) {\n estraverse.replace(astTree, {\n enter: (node, parentNode) => {\n var _a, _b, _c, _d;\n if (!node.range) {\n node.range = [\n (_b = (_a = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : ScopeAnalyzer_1.emptyRangeValue,\n (_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.range) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ScopeAnalyzer_1.emptyRangeValue\n ];\n }\n return node;\n }\n });\n }\n static isRootNode(node) {\n return NodeGuards_1.NodeGuards.isProgramNode(node) || node.parentNode === node;\n }\n analyze(astTree) {\n const sourceTypeLength = ScopeAnalyzer_1.sourceTypes.length;\n ScopeAnalyzer_1.attachMissingRanges(astTree);\n for (let i = 0; i < sourceTypeLength; i++) {\n try {\n this.scopeManager = eslintScope.analyze(astTree, Object.assign(Object.assign({}, ScopeAnalyzer_1.eslintScopeOptions), { sourceType: ScopeAnalyzer_1.sourceTypes[i] }));\n return;\n }\n catch (error) {\n if (i < sourceTypeLength - 1) {\n continue;\n }\n throw new Error(error);\n }\n }\n throw new Error('Scope analyzing error');\n }\n acquireScope(node) {\n if (!this.scopeManager) {\n throw new Error('Scope manager is not defined');\n }\n const scope = this.scopeManager.acquire(node, ScopeAnalyzer_1.isRootNode(node));\n if (!scope) {\n throw new Error('Cannot acquire scope for node');\n }\n this.sanitizeScopes(scope);\n return scope;\n }\n sanitizeScopes(scope) {\n scope.childScopes.forEach((childScope) => {\n if (childScope.type === 'class' && childScope.upper) {\n if (!childScope.variables.length) {\n return;\n }\n const classNameVariable = childScope.variables[0];\n const upperVariable = childScope.upper.variables\n .find((variable) => {\n const isValidClassNameVariable = classNameVariable.defs\n .some((definition) => definition.type === 'ClassName');\n return isValidClassNameVariable && variable.name === classNameVariable.name;\n });\n upperVariable === null || upperVariable === void 0 ? void 0 : upperVariable.references.push(...childScope.variables[0].references);\n }\n });\n for (const childScope of scope.childScopes) {\n this.sanitizeScopes(childScope);\n }\n }\n};\nScopeAnalyzer.eslintScopeOptions = {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n optimistic: true\n};\nScopeAnalyzer.sourceTypes = [\n 'script',\n 'module'\n];\nScopeAnalyzer.emptyRangeValue = 0;\nScopeAnalyzer = ScopeAnalyzer_1 = __decorate([\n inversify_1.injectable()\n], ScopeAnalyzer);\nexports.ScopeAnalyzer = ScopeAnalyzer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorageAnalyzer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorageAnalyzer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet StringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = class StringArrayStorageAnalyzer {\n constructor(stringArrayStorage, randomGenerator, options) {\n this.stringArrayStorageData = new Map();\n this.stringArrayStorage = stringArrayStorage;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n analyze(astTree) {\n if (!this.options.stringArray) {\n return;\n }\n estraverse.traverse(astTree, {\n enter: (node, parentNode) => {\n if (!parentNode) {\n return;\n }\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (!NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return;\n }\n this.analyzeLiteralNode(node, parentNode);\n }\n });\n }\n getItemDataForLiteralNode(literalNode) {\n return this.stringArrayStorageData.get(literalNode);\n }\n analyzeLiteralNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return;\n }\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return;\n }\n if (!this.shouldAddValueToStringArray(literalNode)) {\n return;\n }\n this.stringArrayStorageData.set(literalNode, this.stringArrayStorage.getOrThrow(literalNode.value));\n }\n shouldAddValueToStringArray(literalNode) {\n const isForceTransformNode = NodeMetadata_1.NodeMetadata.isForceTransformNode(literalNode);\n if (isForceTransformNode) {\n return true;\n }\n return literalNode.value.length >= StringArrayStorageAnalyzer_1.minimumLengthForStringArray\n && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;\n }\n};\nStringArrayStorageAnalyzer.minimumLengthForStringArray = 3;\nStringArrayStorageAnalyzer = StringArrayStorageAnalyzer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], StringArrayStorageAnalyzer);\nexports.StringArrayStorageAnalyzer = StringArrayStorageAnalyzer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCodeTransformer = class AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractCodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractCodeTransformer);\nexports.AbstractCodeTransformer = AbstractCodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet CodeTransformerNamesGroupsBuilder = class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nCodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], CodeTransformerNamesGroupsBuilder);\nexports.CodeTransformerNamesGroupsBuilder = CodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TCodeTransformerFactory_1 = require(\"../types/container/code-transformers/TCodeTransformerFactory\");\nconst ITransformerNamesGroupsBuilder_1 = require(\"../interfaces/utils/ITransformerNamesGroupsBuilder\");\nlet CodeTransformersRunner = class CodeTransformersRunner {\n constructor(codeTransformerFactory, codeTransformerNamesGroupsBuilder) {\n this.codeTransformerFactory = codeTransformerFactory;\n this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;\n }\n transform(code, codeTransformerNames, codeTransformationStage) {\n if (!codeTransformerNames.length) {\n return code;\n }\n const normalizedCodeTransformers = this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);\n const codeTransformerNamesGroups = this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);\n for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const codeTransformer = normalizedCodeTransformers[nodeTransformerName];\n code = codeTransformer.transformCode(code, codeTransformationStage);\n }\n }\n return code;\n }\n buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage) {\n return codeTransformerNames\n .reduce((acc, codeTransformerName) => {\n const codeTransformer = this.codeTransformerFactory(codeTransformerName);\n return Object.assign(Object.assign({}, acc), { [codeTransformerName]: codeTransformer });\n }, {});\n }\n};\nCodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCodeTransformerFactory_1.TCodeTransformerFactory !== \"undefined\" && TCodeTransformerFactory_1.TCodeTransformerFactory) === \"function\" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== \"undefined\" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === \"function\" ? _b : Object])\n], CodeTransformersRunner);\nexports.CodeTransformersRunner = CodeTransformersRunner;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashbangOperatorTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst CodeTransformationStage_1 = require(\"../../enums/code-transformers/CodeTransformationStage\");\nconst AbstractCodeTransformer_1 = require(\"../AbstractCodeTransformer\");\nlet HashbangOperatorTransformer = class HashbangOperatorTransformer extends AbstractCodeTransformer_1.AbstractCodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.hashbangOperatorLine = null;\n }\n transformCode(code, codeTransformationStage) {\n switch (codeTransformationStage) {\n case CodeTransformationStage_1.CodeTransformationStage.PreparingTransformers:\n return this.removeAndSaveHashbangOperatorLine(code);\n case CodeTransformationStage_1.CodeTransformationStage.FinalizingTransformers:\n return this.appendSavedHashbangOperatorLine(code);\n default:\n return code;\n }\n }\n removeAndSaveHashbangOperatorLine(code) {\n return code\n .replace(/^#!.*$(\\r?\\n)*/m, (substring) => {\n if (substring) {\n this.hashbangOperatorLine = substring;\n }\n return '';\n })\n .trim();\n }\n appendSavedHashbangOperatorLine(code) {\n var _a;\n return `${(_a = this.hashbangOperatorLine) !== null && _a !== void 0 ? _a : ''}${code}`;\n }\n};\nHashbangOperatorTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], HashbangOperatorTransformer);\nexports.HashbangOperatorTransformer = HashbangOperatorTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetString = void 0;\nexports.alphabetString = 'abcdefghijklmnopqrstuvwxyz';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.alphabetStringUppercase = void 0;\nconst AlphabetString_1 = require(\"./AlphabetString\");\nexports.alphabetStringUppercase = AlphabetString_1.alphabetString.toUpperCase();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabet = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabet = `${AlphabetStringUppercase_1.alphabetStringUppercase}${AlphabetString_1.alphabetString}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64alphabetSwapped = void 0;\nconst AlphabetStringUppercase_1 = require(\"./AlphabetStringUppercase\");\nconst AlphabetString_1 = require(\"./AlphabetString\");\nconst NumbersString_1 = require(\"./NumbersString\");\nexports.base64alphabetSwapped = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}${NumbersString_1.numbersString}+/=`;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecmaVersion = void 0;\nexports.ecmaVersion = 12;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numbersString = void 0;\nexports.numbersString = '0123456789';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InversifyContainerFacade = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"./ServiceIdentifiers\");\nconst AnalyzersModule_1 = require(\"./modules/analyzers/AnalyzersModule\");\nconst CodeTransformersModule_1 = require(\"./modules/code-transformers/CodeTransformersModule\");\nconst ControlFlowTransformersModule_1 = require(\"./modules/node-transformers/ControlFlowTransformersModule\");\nconst ConvertingTransformersModule_1 = require(\"./modules/node-transformers/ConvertingTransformersModule\");\nconst CustomCodeHelpersModule_1 = require(\"./modules/custom-code-helpers/CustomCodeHelpersModule\");\nconst CustomNodesModule_1 = require(\"./modules/custom-nodes/CustomNodesModule\");\nconst DeadCodeInjectionTransformersModule_1 = require(\"./modules/node-transformers/DeadCodeInjectionTransformersModule\");\nconst FinalizingTransformersModule_1 = require(\"./modules/node-transformers/FinalizingTransformersModule\");\nconst GeneratorsModule_1 = require(\"./modules/generators/GeneratorsModule\");\nconst InitializingTransformersModule_1 = require(\"./modules/node-transformers/InitializingTransformersModule\");\nconst NodeModule_1 = require(\"./modules/node/NodeModule\");\nconst NodeTransformersModule_1 = require(\"./modules/node-transformers/NodeTransformersModule\");\nconst OptionsModule_1 = require(\"./modules/options/OptionsModule\");\nconst PreparingTransformersModule_1 = require(\"./modules/node-transformers/PreparingTransformersModule\");\nconst RenameIdentifiersTransformersModule_1 = require(\"./modules/node-transformers/RenameIdentifiersTransformersModule\");\nconst RenamePropertiesTransformersModule_1 = require(\"./modules/node-transformers/RenamePropertiesTransformersModule\");\nconst SimplifyingTransformersModule_1 = require(\"./modules/node-transformers/SimplifyingTransformersModule\");\nconst StoragesModule_1 = require(\"./modules/storages/StoragesModule\");\nconst StringArrayTransformersModule_1 = require(\"./modules/node-transformers/StringArrayTransformersModule\");\nconst UtilsModule_1 = require(\"./modules/utils/UtilsModule\");\nconst CodeTransformersRunner_1 = require(\"../code-transformers/CodeTransformersRunner\");\nconst JavaScriptObfuscator_1 = require(\"../JavaScriptObfuscator\");\nconst Logger_1 = require(\"../logger/Logger\");\nconst NodeTransformersRunner_1 = require(\"../node-transformers/NodeTransformersRunner\");\nconst ObfuscationEventEmitter_1 = require(\"../event-emitters/ObfuscationEventEmitter\");\nconst ObfuscatedCode_1 = require(\"../source-code/ObfuscatedCode\");\nconst SourceCode_1 = require(\"../source-code/SourceCode\");\nclass InversifyContainerFacade {\n constructor() {\n this.container = new inversify_1.Container();\n }\n static getFactory(serviceIdentifier) {\n return (context) => {\n return (bindingName) => {\n return context.container.getNamed(serviceIdentifier, bindingName);\n };\n };\n }\n static getCacheFactory(serviceIdentifier) {\n return (context) => {\n const cache = new Map();\n return (bindingName) => {\n if (cache.has(bindingName)) {\n return cache.get(bindingName);\n }\n const object = context.container.getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, object);\n return object;\n };\n };\n }\n static getConstructorFactory(serviceIdentifier, ...dependencies) {\n return (context) => {\n const cache = new Map();\n const cachedDependencies = [];\n return (bindingName) => {\n dependencies.forEach((dependency, index) => {\n if (!cachedDependencies[index]) {\n cachedDependencies[index] = context.container.get(dependency);\n }\n });\n if (cache.has(bindingName)) {\n return new (cache.get(bindingName))(...cachedDependencies);\n }\n const constructor = context.container\n .getNamed(serviceIdentifier, bindingName);\n cache.set(bindingName, constructor);\n return new constructor(...cachedDependencies);\n };\n };\n }\n get(serviceIdentifier) {\n return this.container.get(serviceIdentifier);\n }\n getNamed(serviceIdentifier, named) {\n return this.container.getNamed(serviceIdentifier, named);\n }\n load(sourceCode, sourceMap, options) {\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)\n .toDynamicValue(() => new SourceCode_1.SourceCode(sourceCode, sourceMap))\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)\n .toDynamicValue(() => options)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)\n .to(Logger_1.Logger)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator)\n .to(JavaScriptObfuscator_1.JavaScriptObfuscator)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformersRunner)\n .to(CodeTransformersRunner_1.CodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)\n .to(NodeTransformersRunner_1.NodeTransformersRunner)\n .inSingletonScope();\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode)\n .to(ObfuscatedCode_1.ObfuscatedCode);\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatedCode)\n .toFactory((context) => {\n return (obfuscatedCodeAsString, sourceMapAsString) => {\n const obfuscatedCode = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatedCode);\n obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);\n return obfuscatedCode;\n };\n });\n this.container\n .bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)\n .to(ObfuscationEventEmitter_1.ObfuscationEventEmitter)\n .inSingletonScope();\n this.container.load(AnalyzersModule_1.analyzersModule);\n this.container.load(CodeTransformersModule_1.codeTransformersModule);\n this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule);\n this.container.load(ConvertingTransformersModule_1.convertingTransformersModule);\n this.container.load(CustomCodeHelpersModule_1.customCodeHelpersModule);\n this.container.load(CustomNodesModule_1.customNodesModule);\n this.container.load(DeadCodeInjectionTransformersModule_1.deadCodeInjectionTransformersModule);\n this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule);\n this.container.load(GeneratorsModule_1.generatorsModule);\n this.container.load(InitializingTransformersModule_1.initializingTransformersModule);\n this.container.load(NodeModule_1.nodeModule);\n this.container.load(NodeTransformersModule_1.nodeTransformersModule);\n this.container.load(OptionsModule_1.optionsModule);\n this.container.load(PreparingTransformersModule_1.preparingTransformersModule);\n this.container.load(RenameIdentifiersTransformersModule_1.renameIdentifiersTransformersModule);\n this.container.load(RenamePropertiesTransformersModule_1.renamePropertiesTransformersModule);\n this.container.load(SimplifyingTransformersModule_1.simplifyingTransformersModule);\n this.container.load(StoragesModule_1.storagesModule);\n this.container.load(StringArrayTransformersModule_1.stringArrayTransformersModule);\n this.container.load(UtilsModule_1.utilsModule);\n }\n unload() {\n this.container.unbindAll();\n }\n}\nexports.InversifyContainerFacade = InversifyContainerFacade;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceIdentifiers = void 0;\nvar ServiceIdentifiers;\n(function (ServiceIdentifiers) {\n ServiceIdentifiers[\"Factory__ICalleeDataExtractor\"] = \"Factory<ICalleeDataExtractor>\";\n ServiceIdentifiers[\"Factory__ICodeTransformer\"] = \"Factory<ICodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IControlFlowCustomNode\"] = \"Factory<IControlFlowCustomNode>\";\n ServiceIdentifiers[\"Factory__IControlFlowReplacer\"] = \"Factory<IControlFlowReplacer>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelper\"] = \"Factory<ICustomCodeHelper>\";\n ServiceIdentifiers[\"Factory__ICustomCodeHelperGroup\"] = \"Factory<ICustomCodeHelperGroup>\";\n ServiceIdentifiers[\"Factory__IDeadCodeInjectionCustomNode\"] = \"Factory<IDeadCodeInjectionCustomNode>\";\n ServiceIdentifiers[\"Factory__IIdentifierNamesGenerator\"] = \"Factory<IIdentifierNamesGenerator>\";\n ServiceIdentifiers[\"Factory__INodeGuard\"] = \"Factory<INodeGuard>\";\n ServiceIdentifiers[\"Factory__INodeTransformer\"] = \"Factory<INodeTransformer[]>\";\n ServiceIdentifiers[\"Factory__IObfuscatedCode\"] = \"Factory<IObfuscatedCode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionKeysTransformerCustomNode\"] = \"Factory<IObjectExpressionKeysTransformerCustomNode>\";\n ServiceIdentifiers[\"Factory__IObjectExpressionExtractor\"] = \"Factory<IObjectExpressionExtractor>\";\n ServiceIdentifiers[\"Factory__IStringArrayCustomNode\"] = \"Factory<IStringArrayCustomNode>\";\n ServiceIdentifiers[\"Factory__IStringArrayIndexNode\"] = \"Factory<IStringArrayIndexNode>\";\n ServiceIdentifiers[\"Factory__TControlFlowStorage\"] = \"Factory<TControlFlowStorage>\";\n ServiceIdentifiers[\"IArrayUtils\"] = \"IArrayUtils\";\n ServiceIdentifiers[\"ICalleeDataExtractor\"] = \"ICalleeDataExtractor\";\n ServiceIdentifiers[\"ICallsGraphAnalyzer\"] = \"ICallsGraphAnalyzer\";\n ServiceIdentifiers[\"ICodeTransformer\"] = \"ICodeTransformer\";\n ServiceIdentifiers[\"ICodeTransformerNamesGroupsBuilder\"] = \"ICodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"ICodeTransformersRunner\"] = \"ICodeTransformersRunner\";\n ServiceIdentifiers[\"ICryptUtils\"] = \"ICryptUtils\";\n ServiceIdentifiers[\"ICryptUtilsSwappedAlphabet\"] = \"ICryptUtilsSwappedAlphabet\";\n ServiceIdentifiers[\"ICustomCodeHelper\"] = \"ICustomCodeHelper\";\n ServiceIdentifiers[\"ICustomCodeHelperGroup\"] = \"ICustomCodeHelperGroup\";\n ServiceIdentifiers[\"IControlFlowReplacer\"] = \"IControlFlowReplacer\";\n ServiceIdentifiers[\"ICustomCodeHelperFormatter\"] = \"ICustomCodeHelperFormatter\";\n ServiceIdentifiers[\"ICustomCodeHelperObfuscator\"] = \"ICustomCodeHelperObfuscator\";\n ServiceIdentifiers[\"IEscapeSequenceEncoder\"] = \"IEscapeSequenceEncoder\";\n ServiceIdentifiers[\"IIdentifierNamesGenerator\"] = \"IIdentifierNamesGenerator\";\n ServiceIdentifiers[\"IIdentifierReplacer\"] = \"IIdentifierReplacer\";\n ServiceIdentifiers[\"IJavaScriptObfuscator\"] = \"IJavaScriptObfuscator\";\n ServiceIdentifiers[\"ILevelledTopologicalSorter\"] = \"ILevelledTopologicalSorter\";\n ServiceIdentifiers[\"ILiteralNodesCacheStorage\"] = \"ILiteralNodesCacheStorage\";\n ServiceIdentifiers[\"ILogger\"] = \"ILogger\";\n ServiceIdentifiers[\"INodeGuard\"] = \"INodeGuard\";\n ServiceIdentifiers[\"INodeTransformer\"] = \"INodeTransformer\";\n ServiceIdentifiers[\"INodeTransformerNamesGroupsBuilder\"] = \"INodeTransformerNamesGroupsBuilder\";\n ServiceIdentifiers[\"INodeTransformersRunner\"] = \"INodeTransformersRunner\";\n ServiceIdentifiers[\"INumberNumericalExpressionAnalyzer\"] = \"INumberNumericalExpressionAnalyzer\";\n ServiceIdentifiers[\"IObfuscationEventEmitter\"] = \"IObfuscationEventEmitter\";\n ServiceIdentifiers[\"IObfuscatedCode\"] = \"IObfuscatedCode\";\n ServiceIdentifiers[\"IOptions\"] = \"IOptions\";\n ServiceIdentifiers[\"IOptionsNormalizer\"] = \"IOptionsNormalizer\";\n ServiceIdentifiers[\"IPrevailingKindOfVariablesAnalyzer\"] = \"IPrevailingKindOfVariablesAnalyzer\";\n ServiceIdentifiers[\"IObjectExpressionExtractor\"] = \"IObjectExpressionExtractor\";\n ServiceIdentifiers[\"IRandomGenerator\"] = \"IRandomGenerator\";\n ServiceIdentifiers[\"IRenamePropertiesReplacer\"] = \"IRenamePropertiesReplacer\";\n ServiceIdentifiers[\"IScopeIdentifiersTraverser\"] = \"IScopeIdentifiersTraverser\";\n ServiceIdentifiers[\"ISourceCode\"] = \"ISourceCode\";\n ServiceIdentifiers[\"IScopeAnalyzer\"] = \"IScopeAnalyzer\";\n ServiceIdentifiers[\"IStringArrayIndexNode\"] = \"IStringArrayIndexNode\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\"] = \"IStringArrayScopeCallsWrapperLexicalScopeDataStorage\";\n ServiceIdentifiers[\"IStringArrayScopeCallsWrapperNamesDataStorage\"] = \"IStringArrayScopeCallsWrapperNamesDataStorage\";\n ServiceIdentifiers[\"IStringArrayStorage\"] = \"IStringArrayStorage\";\n ServiceIdentifiers[\"IStringArrayStorageAnalyzer\"] = \"IStringArrayStorageAnalyzer\";\n ServiceIdentifiers[\"IVisitedLexicalScopeNodesStackStorage\"] = \"IVisitedLexicalScopeNodesStackStorage\";\n ServiceIdentifiers[\"Newable__ICustomNode\"] = \"Newable<ICustomNode>\";\n ServiceIdentifiers[\"Newable__TControlFlowStorage\"] = \"Newable<TControlFlowStorage>\";\n ServiceIdentifiers[\"TCustomNodeGroupStorage\"] = \"TCustomNodeGroupStorage\";\n ServiceIdentifiers[\"TInputOptions\"] = \"TInputOptions\";\n})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.analyzersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CalleeDataExtractor_1 = require(\"../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor\");\nconst CallsGraphAnalyzer_1 = require(\"../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer\");\nconst FunctionDeclarationCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor\");\nconst FunctionExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor\");\nconst NumberNumericalExpressionAnalyzer_1 = require(\"../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer\");\nconst ObjectExpressionCalleeDataExtractor_1 = require(\"../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor\");\nconst PrevailingKindOfVariablesAnalyzer_1 = require(\"../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer\");\nconst ScopeAnalyzer_1 = require(\"../../../analyzers/scope-analyzer/ScopeAnalyzer\");\nconst StringArrayStorageAnalyzer_1 = require(\"../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer\");\nexports.analyzersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)\n .to(CallsGraphAnalyzer_1.CallsGraphAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)\n .to(NumberNumericalExpressionAnalyzer_1.NumberNumericalExpressionAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)\n .to(PrevailingKindOfVariablesAnalyzer_1.PrevailingKindOfVariablesAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)\n .to(ScopeAnalyzer_1.ScopeAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)\n .to(StringArrayStorageAnalyzer_1.StringArrayStorageAnalyzer)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)\n .to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor)\n .whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.codeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CodeTransformer_1 = require(\"../../../enums/code-transformers/CodeTransformer\");\nconst CodeTransformerNamesGroupsBuilder_1 = require(\"../../../code-transformers/CodeTransformerNamesGroupsBuilder\");\nconst HashbangOperatorTransformer_1 = require(\"../../../code-transformers/preparing-transformers/HashbangOperatorTransformer\");\nexports.codeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)\n .to(CodeTransformerNamesGroupsBuilder_1.CodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICodeTransformer)\n .to(HashbangOperatorTransformer_1.HashbangOperatorTransformer)\n .whenTargetNamed(CodeTransformer_1.CodeTransformer.HashbangOperatorTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customCodeHelpersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst CustomCodeHelperGroup_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst ConsoleOutputCodeHelperGroup_1 = require(\"../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup\");\nconst DebugProtectionCodeHelperGroup_1 = require(\"../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup\");\nconst DomainLockCustomCodeHelperGroup_1 = require(\"../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup\");\nconst SelfDefendingCodeHelperGroup_1 = require(\"../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup\");\nconst StringArrayCodeHelperGroup_1 = require(\"../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup\");\nconst ConsoleOutputDisableCodeHelper_1 = require(\"../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper\");\nconst CustomCodeHelperFormatter_1 = require(\"../../../custom-code-helpers/CustomCodeHelperFormatter\");\nconst CustomCodeHelperObfuscator_1 = require(\"../../../custom-code-helpers/CustomCodeHelperObfuscator\");\nconst DebugProtectionFunctionCallCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper\");\nconst DebugProtectionFunctionIntervalCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper\");\nconst DebugProtectionFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper\");\nconst DomainLockCodeHelper_1 = require(\"../../../custom-code-helpers/domain-lock/DomainLockCodeHelper\");\nconst CallsControllerFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper\");\nconst SelfDefendingUnicodeCodeHelper_1 = require(\"../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper\");\nconst StringArrayCallsWrapperBase64CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper\");\nconst StringArrayCallsWrapperRc4CodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper\");\nconst StringArrayCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayCodeHelper\");\nconst StringArrayRotateFunctionCodeHelper_1 = require(\"../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper\");\nexports.customCodeHelpersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(ConsoleOutputDisableCodeHelper_1.ConsoleOutputDisableCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCallCodeHelper_1.DebugProtectionFunctionCallCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionIntervalCodeHelper_1.DebugProtectionFunctionIntervalCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DebugProtectionFunctionCodeHelper_1.DebugProtectionFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(DomainLockCodeHelper_1.DomainLockCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(CallsControllerFunctionCodeHelper_1.CallsControllerFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(SelfDefendingUnicodeCodeHelper_1.SelfDefendingUnicodeCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperBase64CodeHelper_1.StringArrayCallsWrapperBase64CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCallsWrapperRc4CodeHelper_1.StringArrayCallsWrapperRc4CodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayCodeHelper_1.StringArrayCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper)\n .to(StringArrayRotateFunctionCodeHelper_1.StringArrayRotateFunctionCodeHelper)\n .whenTargetNamed(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(ConsoleOutputCodeHelperGroup_1.ConsoleOutputCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DebugProtectionCodeHelperGroup_1.DebugProtectionCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(DomainLockCustomCodeHelperGroup_1.DomainLockCustomCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(SelfDefendingCodeHelperGroup_1.SelfDefendingCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup)\n .to(StringArrayCodeHelperGroup_1.StringArrayCodeHelperGroup)\n .whenTargetNamed(CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelper));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperGroup));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)\n .to(CustomCodeHelperFormatter_1.CustomCodeHelperFormatter)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)\n .to(CustomCodeHelperObfuscator_1.CustomCodeHelperObfuscator)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customNodesModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst DeadCodeInjectionCustomNode_1 = require(\"../../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst StringArrayCustomNode_1 = require(\"../../../enums/custom-nodes/StringArrayCustomNode\");\nconst BinaryExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode\");\nconst BlockStatementControlFlowFlatteningNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode\");\nconst BlockStatementDeadCodeInjectionNode_1 = require(\"../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode\");\nconst CallExpressionControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode\");\nconst CallExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode\");\nconst ControlFlowStorageNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode\");\nconst ExpressionWithOperatorControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode\");\nconst LogicalExpressionFunctionNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode\");\nconst ObjectExpressionVariableDeclarationHostNode_1 = require(\"../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode\");\nconst StringArrayCallNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayCallNode\");\nconst StringArrayHexadecimalNumberIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode\");\nconst StringArrayHexadecimalNumericStringIndexNode_1 = require(\"../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode\");\nconst StringArrayIndexNode_1 = require(\"../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst StringArrayScopeCallsWrapperFunctionNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode\");\nconst StringArrayScopeCallsWrapperVariableNode_1 = require(\"../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode\");\nconst StringLiteralControlFlowStorageCallNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode\");\nconst StringLiteralNode_1 = require(\"../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode\");\nexports.customNodesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralNode_1.StringLiteralNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode)\n .whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode)\n .whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(ObjectExpressionVariableDeclarationHostNode_1.ObjectExpressionVariableDeclarationHostNode)\n .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayCallNode_1.StringArrayCallNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperFunctionNode_1.StringArrayScopeCallsWrapperFunctionNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode)\n .toConstructor(StringArrayScopeCallsWrapperVariableNode_1.StringArrayScopeCallsWrapperVariableNode)\n .whenTargetNamed(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumberIndexNode_1.StringArrayHexadecimalNumberIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode)\n .to(StringArrayHexadecimalNumericStringIndexNode_1.StringArrayHexadecimalNumericStringIndexNode)\n .inSingletonScope()\n .whenTargetNamed(StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode, ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter, ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage, ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayIndexNode));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generatorsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst IdentifierNamesGenerator_1 = require(\"../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst DictionaryIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator\");\nconst HexadecimalIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator\");\nconst MangledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator\");\nconst MangledShuffledIdentifierNamesGenerator_1 = require(\"../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator\");\nexports.generatorsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(DictionaryIdentifierNamesGenerator_1.DictionaryIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator)\n .to(MangledShuffledIdentifierNamesGenerator_1.MangledShuffledIdentifierNamesGenerator)\n .inSingletonScope()\n .whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n function identifierNameGeneratorFactory() {\n let cachedIdentifierNamesGenerator = null;\n return (context) => (options) => {\n if (cachedIdentifierNamesGenerator) {\n return cachedIdentifierNamesGenerator;\n }\n let identifierNamesGenerator;\n switch (options.identifierNamesGenerator) {\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);\n break;\n case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:\n default:\n identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);\n }\n cachedIdentifierNamesGenerator = identifierNamesGenerator;\n return identifierNamesGenerator;\n };\n }\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)\n .toFactory(identifierNameGeneratorFactory());\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.controlFlowTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowReplacer_1 = require(\"../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BinaryExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer\");\nconst BlockStatementControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer\");\nconst CallExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer\");\nconst FunctionControlFlowTransformer_1 = require(\"../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer\");\nconst LogicalExpressionControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer\");\nconst StringLiteralControlFlowReplacer_1 = require(\"../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer\");\nexports.controlFlowTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)\n .to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer)\n .whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObjectExpressionExtractor_1 = require(\"../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst BasePropertiesExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor\");\nconst BooleanLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/BooleanLiteralTransformer\");\nconst ExportSpecifierTransformer_1 = require(\"../../../node-transformers/converting-transformers/ExportSpecifierTransformer\");\nconst MemberExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MemberExpressionTransformer\");\nconst MethodDefinitionTransformer_1 = require(\"../../../node-transformers/converting-transformers/MethodDefinitionTransformer\");\nconst NumberLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberLiteralTransformer\");\nconst NumberToNumericalExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer\");\nconst ObjectExpressionKeysTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer\");\nconst ObjectExpressionToVariableDeclarationExtractor_1 = require(\"../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor\");\nconst ObjectExpressionTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectExpressionTransformer\");\nconst ObjectPatternPropertiesTransformer_1 = require(\"../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer\");\nconst SplitStringTransformer_1 = require(\"../../../node-transformers/converting-transformers/SplitStringTransformer\");\nconst TemplateLiteralTransformer_1 = require(\"../../../node-transformers/converting-transformers/TemplateLiteralTransformer\");\nexports.convertingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BooleanLiteralTransformer_1.BooleanLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BooleanLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExportSpecifierTransformer_1.ExportSpecifierTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExportSpecifierTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MemberExpressionTransformer_1.MemberExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MethodDefinitionTransformer_1.MethodDefinitionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberLiteralTransformer_1.NumberLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(NumberToNumericalExpressionTransformer_1.NumberToNumericalExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectExpressionTransformer_1.ObjectExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObjectPatternPropertiesTransformer_1.ObjectPatternPropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectPatternPropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(SplitStringTransformer_1.SplitStringTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.SplitStringTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(TemplateLiteralTransformer_1.TemplateLiteralTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(ObjectExpressionToVariableDeclarationExtractor_1.ObjectExpressionToVariableDeclarationExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor)\n .to(BasePropertiesExtractor_1.BasePropertiesExtractor)\n .whenTargetNamed(ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObjectExpressionExtractor));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deadCodeInjectionTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst DeadCodeInjectionTransformer_1 = require(\"../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer\");\nexports.deadCodeInjectionTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.finalizingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst EscapeSequenceTransformer_1 = require(\"../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer\");\nexports.finalizingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EscapeSequenceTransformer_1.EscapeSequenceTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst CommentsTransformer_1 = require(\"../../../node-transformers/initializing-transformers/CommentsTransformer\");\nexports.initializingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CommentsTransformer_1.CommentsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformerNamesGroupsBuilder_1 = require(\"../../../node-transformers/NodeTransformerNamesGroupsBuilder\");\nexports.nodeTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer));\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)\n .to(NodeTransformerNamesGroupsBuilder_1.NodeTransformerNamesGroupsBuilder)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.preparingTransformersModule = void 0;\nconst InversifyContainerFacade_1 = require(\"../../InversifyContainerFacade\");\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst ObfuscatingGuard_1 = require(\"../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst BlackListObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst CustomCodeHelpersTransformer_1 = require(\"../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer\");\nconst EvalCallExpressionTransformer_1 = require(\"../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer\");\nconst ForceTransformStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard\");\nconst IgnoredRequireImportObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard\");\nconst MetadataTransformer_1 = require(\"../../../node-transformers/preparing-transformers/MetadataTransformer\");\nconst ObfuscatingGuardsTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer\");\nconst ParentificationTransformer_1 = require(\"../../../node-transformers/preparing-transformers/ParentificationTransformer\");\nconst ReservedStringObfuscatingGuard_1 = require(\"../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard\");\nconst VariablePreserveTransformer_1 = require(\"../../../node-transformers/preparing-transformers/VariablePreserveTransformer\");\nexports.preparingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(CustomCodeHelpersTransformer_1.CustomCodeHelpersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(EvalCallExpressionTransformer_1.EvalCallExpressionTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(MetadataTransformer_1.MetadataTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ParentificationTransformer_1.ParentificationTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariablePreserveTransformer_1.VariablePreserveTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariablePreserveTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ForceTransformStringObfuscatingGuard_1.ForceTransformStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(IgnoredRequireImportObfuscatingGuard_1.IgnoredRequireImportObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)\n .to(ReservedStringObfuscatingGuard_1.ReservedStringObfuscatingGuard)\n .inSingletonScope()\n .whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)\n .toFactory(InversifyContainerFacade_1.InversifyContainerFacade\n .getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard));\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renameIdentifiersTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst IdentifierReplacer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer\");\nconst LabeledStatementTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer\");\nconst ScopeIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer\");\nconst ScopeThroughIdentifiersTransformer_1 = require(\"../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer\");\nexports.renameIdentifiersTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(LabeledStatementTransformer_1.LabeledStatementTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeIdentifiersTransformer_1.ScopeIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ScopeThroughIdentifiersTransformer_1.ScopeThroughIdentifiersTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)\n .to(IdentifierReplacer_1.IdentifierReplacer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.renamePropertiesTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst RenamePropertiesReplacer_1 = require(\"../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer\");\nconst RenamePropertiesTransformer_1 = require(\"../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer\");\nexports.renamePropertiesTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(RenamePropertiesTransformer_1.RenamePropertiesTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.RenamePropertiesTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)\n .to(RenamePropertiesReplacer_1.RenamePropertiesReplacer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.simplifyingTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst BlockStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer\");\nconst ExpressionStatementsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer\");\nconst IfStatementSimplifyTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer\");\nconst VariableDeclarationsMergeTransformer_1 = require(\"../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer\");\nexports.simplifyingTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(BlockStatementSimplifyTransformer_1.BlockStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(ExpressionStatementsMergeTransformer_1.ExpressionStatementsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(IfStatementSimplifyTransformer_1.IfStatementSimplifyTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.IfStatementSimplifyTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(VariableDeclarationsMergeTransformer_1.VariableDeclarationsMergeTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringArrayTransformersModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst NodeTransformer_1 = require(\"../../../enums/node-transformers/NodeTransformer\");\nconst StringArrayScopeCallsWrapperTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer\");\nconst StringArrayTransformer_1 = require(\"../../../node-transformers/string-array-transformers/StringArrayTransformer\");\nexports.stringArrayTransformersModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayScopeCallsWrapperTransformer_1.StringArrayScopeCallsWrapperTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayScopeCallsWrapperTransformer);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)\n .to(StringArrayTransformer_1.StringArrayTransformer)\n .whenTargetNamed(NodeTransformer_1.NodeTransformer.StringArrayTransformer);\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ScopeIdentifiersTraverser_1 = require(\"../../../node/ScopeIdentifiersTraverser\");\nexports.nodeModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)\n .to(ScopeIdentifiersTraverser_1.ScopeIdentifiersTraverser)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst Options_1 = require(\"../../../options/Options\");\nconst OptionsNormalizer_1 = require(\"../../../options/OptionsNormalizer\");\nexports.optionsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)\n .to(Options_1.Options)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)\n .to(OptionsNormalizer_1.OptionsNormalizer)\n .inSingletonScope();\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storagesModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ControlFlowStorage_1 = require(\"../../../storages/custom-nodes/ControlFlowStorage\");\nconst CustomCodeHelperGroupStorage_1 = require(\"../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage\");\nconst LiteralNodesCacheStorage_1 = require(\"../../../storages/string-array-transformers/LiteralNodesCacheStorage\");\nconst StringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst StringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage\");\nconst StringArrayStorage_1 = require(\"../../../storages/string-array-transformers/StringArrayStorage\");\nconst VisitedLexicalScopeNodesStackStorage_1 = require(\"../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage\");\nexports.storagesModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)\n .to(CustomCodeHelperGroupStorage_1.CustomCodeHelperGroupStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)\n .to(LiteralNodesCacheStorage_1.LiteralNodesCacheStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)\n .to(StringArrayStorage_1.StringArrayStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage_1.StringArrayScopeCallsWrapperLexicalScopeDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)\n .to(StringArrayScopeCallsWrapperNamesDataStorage_1.StringArrayScopeCallsWrapperNamesDataStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)\n .to(VisitedLexicalScopeNodesStackStorage_1.VisitedLexicalScopeNodesStackStorage)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage)\n .toConstructor(ControlFlowStorage_1.ControlFlowStorage);\n bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)\n .toFactory((context) => {\n return () => {\n const constructor = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage);\n const randomGenerator = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator);\n const options = context.container\n .get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions);\n const storage = new constructor(randomGenerator, options);\n storage.initialize();\n return storage;\n };\n });\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utilsModule = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../ServiceIdentifiers\");\nconst ArrayUtils_1 = require(\"../../../utils/ArrayUtils\");\nconst CryptUtils_1 = require(\"../../../utils/CryptUtils\");\nconst CryptUtilsSwappedAlphabet_1 = require(\"../../../utils/CryptUtilsSwappedAlphabet\");\nconst EscapeSequenceEncoder_1 = require(\"../../../utils/EscapeSequenceEncoder\");\nconst LevelledTopologicalSorter_1 = require(\"../../../utils/LevelledTopologicalSorter\");\nconst RandomGenerator_1 = require(\"../../../utils/RandomGenerator\");\nexports.utilsModule = new inversify_1.ContainerModule((bind) => {\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)\n .to(ArrayUtils_1.ArrayUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)\n .to(RandomGenerator_1.RandomGenerator)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)\n .to(CryptUtils_1.CryptUtils)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)\n .to(CryptUtilsSwappedAlphabet_1.CryptUtilsSwappedAlphabet)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)\n .to(EscapeSequenceEncoder_1.EscapeSequenceEncoder)\n .inSingletonScope();\n bind(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)\n .to(LevelledTopologicalSorter_1.LevelledTopologicalSorter);\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractCustomCodeHelper_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst GlobalVariableTemplate1_1 = require(\"./common/templates/GlobalVariableTemplate1\");\nconst GlobalVariableTemplate2_1 = require(\"./common/templates/GlobalVariableTemplate2\");\nlet AbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = class AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.customCodeHelperObfuscator = customCodeHelperObfuscator;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n const codeHelperTemplate = this.getCodeHelperTemplate();\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(codeHelperTemplate));\n }\n return this.cachedNode;\n }\n getGlobalVariableTemplate() {\n return this.randomGenerator\n .getRandomGenerator()\n .pickone(AbstractCustomCodeHelper_1.globalVariableTemplateFunctions);\n }\n getCodeHelperTemplate() {\n return '';\n }\n};\nAbstractCustomCodeHelper.globalVariableTemplateFunctions = [\n GlobalVariableTemplate1_1.GlobalVariableTemplate1(),\n GlobalVariableTemplate2_1.GlobalVariableTemplate2()\n];\nAbstractCustomCodeHelper = AbstractCustomCodeHelper_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], AbstractCustomCodeHelper);\nexports.AbstractCustomCodeHelper = AbstractCustomCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCustomCodeHelperGroup = class AbstractCustomCodeHelperGroup {\n constructor(identifierNamesGeneratorFactory, randomGenerator, options) {\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getAppendEvent() {\n return this.appendEvent;\n }\n getCustomCodeHelpers() {\n return this.customCodeHelpers;\n }\n appendCustomNodeIfExist(customCodeHelperName, callback) {\n const customCodeHelper = this.customCodeHelpers.get(customCodeHelperName);\n if (!customCodeHelper) {\n return;\n }\n callback(customCodeHelper);\n }\n getRandomCallsGraphIndex(callsGraphLength) {\n return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));\n }\n};\nAbstractCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], AbstractCustomCodeHelperGroup);\nexports.AbstractCustomCodeHelperGroup = AbstractCustomCodeHelperGroup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperFormatter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst string_template_1 = __importDefault(require(\"string-template\"));\nconst IPrevailingKindOfVariablesAnalyzer_1 = require(\"../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer\");\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nlet CustomCodeHelperFormatter = class CustomCodeHelperFormatter {\n constructor(prevailingKindOfVariablesAnalyzer) {\n this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();\n }\n formatTemplate(template, mapping) {\n return string_template_1.default(template, mapping);\n }\n formatStructure(statements) {\n for (const statement of statements) {\n estraverse.replace(statement, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return;\n }\n if (this.prevailingKindOfVariables === 'var') {\n node.kind = 'var';\n }\n return node;\n }\n });\n }\n return statements;\n }\n};\nCustomCodeHelperFormatter = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== \"undefined\" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === \"function\" ? _a : Object])\n], CustomCodeHelperFormatter);\nexports.CustomCodeHelperFormatter = CustomCodeHelperFormatter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperObfuscator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst NoCustomNodes_1 = require(\"../options/presets/NoCustomNodes\");\nconst JavaScriptObfuscatorFacade_1 = require(\"../JavaScriptObfuscatorFacade\");\nlet CustomCodeHelperObfuscator = class CustomCodeHelperObfuscator {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n obfuscateTemplate(template, additionalOptions = {}) {\n return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(template, Object.assign(Object.assign(Object.assign({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET), { identifierNamesGenerator: this.options.identifierNamesGenerator, identifiersDictionary: this.options.identifiersDictionary, numbersToExpressions: this.options.numbersToExpressions, simplify: this.options.simplify, seed: this.randomGenerator.getRawSeed() }), additionalOptions)).getObfuscatedCode();\n }\n};\nCustomCodeHelperObfuscator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], CustomCodeHelperObfuscator);\nexports.CustomCodeHelperObfuscator = CustomCodeHelperObfuscator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallsControllerFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SingleCallControllerTemplate_1 = require(\"../common/templates/SingleCallControllerTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallsControllerFunctionCodeHelper = class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(appendEvent, callsControllerFunctionName) {\n this.appendEvent = appendEvent;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) {\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n }));\n }\n return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate_1.SingleCallControllerTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallsControllerFunctionCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof ObfuscationEvent_1.ObfuscationEvent !== \"undefined\" && ObfuscationEvent_1.ObfuscationEvent) === \"function\" ? _a : Object)\n], CallsControllerFunctionCodeHelper.prototype, \"appendEvent\", void 0);\nCallsControllerFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], CallsControllerFunctionCodeHelper);\nexports.CallsControllerFunctionCodeHelper = CallsControllerFunctionCodeHelper;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableNoEvalTemplate = void 0;\nfunction GlobalVariableNoEvalTemplate() {\n return `\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n `;\n}\nexports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate1 = void 0;\nfunction GlobalVariableTemplate1() {\n return `\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n `;\n}\nexports.GlobalVariableTemplate1 = GlobalVariableTemplate1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalVariableTemplate2 = void 0;\nfunction GlobalVariableTemplate2() {\n return `\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n `;\n}\nexports.GlobalVariableTemplate2 = GlobalVariableTemplate2;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingleCallControllerTemplate = void 0;\nfunction SingleCallControllerTemplate() {\n return `\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n `;\n}\nexports.SingleCallControllerTemplate = SingleCallControllerTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst ConsoleOutputDisableTemplate_1 = require(\"./templates/ConsoleOutputDisableTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ConsoleOutputDisableCodeHelper = class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, consoleOutputDisableFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableTemplate_1.ConsoleOutputDisableTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ConsoleOutputDisableCodeHelper.prototype, \"consoleOutputDisableFunctionName\", void 0);\nConsoleOutputDisableCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ConsoleOutputDisableCodeHelper);\nexports.ConsoleOutputDisableCodeHelper = ConsoleOutputDisableCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ConsoleOutputCodeHelperGroup = class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const consoleOutputDisableHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const consoleOutputDisableLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(consoleOutputDisableHostNode)) !== null && _a !== void 0 ? _a : null;\n const consoleOutputDisableFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = consoleOutputDisableLexicalScopeNode\n ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);\n NodeAppender_1.NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.disableConsoleOutput) {\n return;\n }\n const consoleOutputDisableExpressionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], ConsoleOutputCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nConsoleOutputCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ConsoleOutputCodeHelperGroup);\nexports.ConsoleOutputCodeHelperGroup = ConsoleOutputCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleOutputDisableTemplate = void 0;\nfunction ConsoleOutputDisableTemplate() {\n return `\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n `;\n}\nexports.ConsoleOutputDisableTemplate = ConsoleOutputDisableTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionCallTemplate_1 = require(\"./templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCallCodeHelper = class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName, callsControllerFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n this.callsControllerFunctionName = callsControllerFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName,\n callControllerFunctionName: this.callsControllerFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCallCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCallCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionCallCodeHelper);\nexports.DebugProtectionFunctionCallCodeHelper = DebugProtectionFunctionCallCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebuggerTemplate_1 = require(\"./templates/debug-protection-function/DebuggerTemplate\");\nconst DebuggerTemplateNoEval_1 = require(\"./templates/debug-protection-function/DebuggerTemplateNoEval\");\nconst DebugProtectionFunctionTemplate_1 = require(\"./templates/debug-protection-function/DebugProtectionFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionCodeHelper = class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? DebuggerTemplate_1.DebuggerTemplate()\n : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval();\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), {\n debuggerTemplate,\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionCodeHelper);\nexports.DebugProtectionFunctionCodeHelper = DebugProtectionFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DebugProtectionFunctionIntervalTemplate_1 = require(\"./templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DebugProtectionFunctionIntervalCodeHelper = class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(debugProtectionFunctionName) {\n this.debugProtectionFunctionName = debugProtectionFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), {\n debugProtectionFunctionName: this.debugProtectionFunctionName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DebugProtectionFunctionIntervalCodeHelper.prototype, \"debugProtectionFunctionName\", void 0);\nDebugProtectionFunctionIntervalCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionFunctionIntervalCodeHelper);\nexports.DebugProtectionFunctionIntervalCodeHelper = DebugProtectionFunctionIntervalCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DebugProtectionCodeHelperGroup = class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.debugProtection) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const debugProtectionFunctionCallHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const debugProtectionFunctionCallScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(debugProtectionFunctionCallHostNode)) !== null && _a !== void 0 ? _a : null;\n const debugProtectionFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = debugProtectionFunctionCallScopeNode\n ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, (customCodeHelper) => {\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, (customCodeHelper) => {\n const programBodyLength = NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)\n ? nodeWithStatements.consequent.length\n : nodeWithStatements.body.length;\n const randomIndex = this.randomGenerator.getRandomInteger(0, programBodyLength);\n customCodeHelper.initialize(debugProtectionFunctionName);\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.debugProtection) {\n return;\n }\n const debugProtectionFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction);\n const debugProtectionFunctionCallCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall);\n const debugProtectionFunctionIntervalCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);\n if (this.options.debugProtectionInterval) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);\n }\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], DebugProtectionCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDebugProtectionCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DebugProtectionCodeHelperGroup);\nexports.DebugProtectionCodeHelperGroup = DebugProtectionCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionCallTemplate = void 0;\nfunction DebugProtectionFunctionCallTemplate() {\n return `\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\\\\\( *\\\\\\\\)');\n const regExp2 = new RegExp('\\\\\\\\+\\\\\\\\+ *\\\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n `;\n}\nexports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionIntervalTemplate = void 0;\nfunction DebugProtectionFunctionIntervalTemplate() {\n return `\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n `;\n}\nexports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebugProtectionFunctionTemplate = void 0;\nfunction DebugProtectionFunctionTemplate() {\n return `\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n `;\n}\nexports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplate = void 0;\nfunction DebuggerTemplate() {\n return `\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n `;\n}\nexports.DebuggerTemplate = DebuggerTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DebuggerTemplateNoEval = void 0;\nfunction DebuggerTemplateNoEval() {\n return `\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n `;\n}\nexports.DebuggerTemplateNoEval = DebuggerTemplateNoEval;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst ICryptUtils_1 = require(\"../../interfaces/utils/ICryptUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst DomainLockTemplate_1 = require(\"./templates/DomainLockTemplate\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DomainLockCodeHelper = class DomainLockCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, cryptUtils) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.cryptUtils = cryptUtils;\n }\n initialize(callsControllerFunctionName, domainLockFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.domainLockFunctionName = domainLockFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const domainsString = this.options.domainLock.join(';');\n const [hiddenDomainsString, diff] = this.cryptUtils.hideString(domainsString, domainsString.length * 3);\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate_1.DomainLockTemplate(), {\n callControllerFunctionName: this.callsControllerFunctionName,\n domainLockFunctionName: this.domainLockFunctionName,\n diff,\n domains: hiddenDomainsString,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], DomainLockCodeHelper.prototype, \"domainLockFunctionName\", void 0);\nDomainLockCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof ICryptUtils_1.ICryptUtils !== \"undefined\" && ICryptUtils_1.ICryptUtils) === \"function\" ? _f : Object])\n], DomainLockCodeHelper);\nexports.DomainLockCodeHelper = DomainLockCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockCustomCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet DomainLockCustomCodeHelperGroup = class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.domainLock.length) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const domainLockFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const domainLockFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(domainLockFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const domainLockFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = domainLockFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.DomainLock, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);\n NodeAppender_1.NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.domainLock.length) {\n return;\n }\n const domainLockCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.DomainLock);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.DomainLock, domainLockCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], DomainLockCustomCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nDomainLockCustomCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], DomainLockCustomCodeHelperGroup);\nexports.DomainLockCustomCodeHelperGroup = DomainLockCustomCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockTemplate = void 0;\nfunction DomainLockTemplate() {\n return `\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (let i = 0; i < 1000; i--) {\n const isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n const regExp = new RegExp(\"[{diff}]\", \"g\");\n const domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n let document;\n let domain;\n let location;\n let hostname;\n\n for (let d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (let d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (let d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n `;\n}\nexports.DomainLockTemplate = DomainLockTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingUnicodeCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/SelfDefendingTemplate\");\nconst SelfDefendingNoEvalTemplate_1 = require(\"./templates/SelfDefendingNoEvalTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst GlobalVariableNoEvalTemplate_1 = require(\"../common/templates/GlobalVariableNoEvalTemplate\");\nlet SelfDefendingUnicodeCodeHelper = class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(callsControllerFunctionName, selfDefendingFunctionName) {\n this.callsControllerFunctionName = callsControllerFunctionName;\n this.selfDefendingFunctionName = selfDefendingFunctionName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? this.getGlobalVariableTemplate()\n : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate();\n const selfDefendingTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval\n ? SelfDefendingTemplate_1.SelfDefendingTemplate()\n : SelfDefendingNoEvalTemplate_1.SelfDefendingNoEvalTemplate();\n return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {\n callControllerFunctionName: this.callsControllerFunctionName,\n selfDefendingFunctionName: this.selfDefendingFunctionName,\n globalVariableTemplate\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"callsControllerFunctionName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], SelfDefendingUnicodeCodeHelper.prototype, \"selfDefendingFunctionName\", void 0);\nSelfDefendingUnicodeCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], SelfDefendingUnicodeCodeHelper);\nexports.SelfDefendingUnicodeCodeHelper = SelfDefendingUnicodeCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet SelfDefendingCodeHelperGroup = class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n var _a;\n if (!this.options.selfDefending) {\n return;\n }\n const randomCallsGraphIndex = this.getRandomCallsGraphIndex(callsGraphData.length);\n const selfDefendingFunctionHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)\n : nodeWithStatements;\n const callsControllerHostNode = callsGraphData.length\n ? NodeAppender_1.NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)\n : nodeWithStatements;\n const selfDefendingFunctionLexicalScopeNode = (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils\n .getLexicalScope(selfDefendingFunctionHostNode)) !== null && _a !== void 0 ? _a : null;\n const selfDefendingFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n const callsControllerFunctionName = selfDefendingFunctionLexicalScopeNode\n ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)\n : this.identifierNamesGenerator.generateNext();\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, (customCodeHelper) => {\n customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);\n NodeAppender_1.NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());\n });\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, (customCodeHelper) => {\n customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);\n NodeAppender_1.NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.selfDefending) {\n return;\n }\n const selfDefendingUnicodeCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode);\n const callsControllerFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], SelfDefendingCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nSelfDefendingCodeHelperGroup = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], SelfDefendingCodeHelperGroup);\nexports.SelfDefendingCodeHelperGroup = SelfDefendingCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingNoEvalTemplate = void 0;\nfunction SelfDefendingNoEvalTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n \n const test = function () {\n const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingNoEvalTemplate = SelfDefendingNoEvalTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate() {\n return `\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n const test = function () {\n const regExp = test\n .constructor('return /\" + this + \"/')()\n .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');\n \n return !regExp.test({selfDefendingFunctionName});\n };\n \n return test();\n });\n \n {selfDefendingFunctionName}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperBase64CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst StringArrayBase64DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperBase64CodeHelper = class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName: atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayBase64DecodeTemplate_1.StringArrayBase64DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n atobFunctionName,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperBase64CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperBase64CodeHelper);\nexports.StringArrayCallsWrapperBase64CodeHelper = StringArrayCallsWrapperBase64CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-calls-wrapper/SelfDefendingTemplate\");\nconst StringArrayCallsWrapperTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallsWrapperCodeHelper = class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayCallsWrapperName, indexShiftAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.indexShiftAmount = indexShiftAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const decodeCodeHelperTemplate = this.getDecodeStringArrayTemplate();\n const preservedNames = [`^${this.stringArrayName}$`];\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), {\n decodeCodeHelperTemplate,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName,\n indexShiftAmount: this.indexShiftAmount\n }), {\n reservedNames: preservedNames\n });\n }\n getDecodeStringArrayTemplate() {\n return '';\n }\n getSelfDefendingTemplate() {\n if (!this.options.selfDefending) {\n return '';\n }\n return this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), {\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,\n stringArrayName: this.stringArrayName\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallsWrapperCodeHelper.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallsWrapperCodeHelper.prototype, \"stringArrayCallsWrapperName\", void 0);\nStringArrayCallsWrapperCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _f : Object])\n], StringArrayCallsWrapperCodeHelper);\nexports.StringArrayCallsWrapperCodeHelper = StringArrayCallsWrapperCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperRc4CodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AtobTemplate_1 = require(\"./templates/string-array-calls-wrapper/AtobTemplate\");\nconst Rc4Template_1 = require(\"./templates/string-array-calls-wrapper/Rc4Template\");\nconst StringArrayRC4DecodeTemplate_1 = require(\"./templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate\");\nconst StringArrayCallsWrapperCodeHelper_1 = require(\"./StringArrayCallsWrapperCodeHelper\");\nlet StringArrayCallsWrapperRc4CodeHelper = class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper_1.StringArrayCallsWrapperCodeHelper {\n getDecodeStringArrayTemplate() {\n const atobFunctionName = this.randomGenerator.getRandomString(6);\n const atobPolyfill = this.customCodeHelperFormatter.formatTemplate(AtobTemplate_1.AtobTemplate(), {\n atobFunctionName\n });\n const rc4Polyfill = this.customCodeHelperFormatter.formatTemplate(Rc4Template_1.Rc4Template(), {\n atobFunctionName\n });\n const selfDefendingCode = this.getSelfDefendingTemplate();\n return this.customCodeHelperFormatter.formatTemplate(StringArrayRC4DecodeTemplate_1.StringArrayRC4DecodeTemplate(this.randomGenerator), {\n atobPolyfill,\n rc4Polyfill,\n selfDefendingCode,\n stringArrayCallsWrapperName: this.stringArrayCallsWrapperName\n });\n }\n};\nStringArrayCallsWrapperRc4CodeHelper = __decorate([\n inversify_1.injectable()\n], StringArrayCallsWrapperRc4CodeHelper);\nexports.StringArrayCallsWrapperRc4CodeHelper = StringArrayCallsWrapperRc4CodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst StringArrayTemplate_1 = require(\"./templates/string-array/StringArrayTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet StringArrayCodeHelper = class StringArrayCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n }\n initialize(stringArrayStorage, stringArrayName) {\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayName = stringArrayName;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate_1.StringArrayTemplate(), {\n stringArrayName: this.stringArrayName,\n stringArrayStorageItems: this.getEncodedStringArrayStorageItems()\n });\n }\n getEncodedStringArrayStorageItems() {\n return Array\n .from(this.stringArrayStorage.getStorage().values())\n .map((stringArrayStorageItemData) => {\n const escapedEncodedValue = StringUtils_1.StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue);\n return `'${escapedEncodedValue}'`;\n })\n .toString();\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _a : Object)\n], StringArrayCodeHelper.prototype, \"stringArrayStorage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCodeHelper.prototype, \"stringArrayName\", void 0);\nStringArrayCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], StringArrayCodeHelper);\nexports.StringArrayCodeHelper = StringArrayCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionCodeHelper = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst ICustomCodeHelperObfuscator_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst SelfDefendingTemplate_1 = require(\"./templates/string-array-rotate-function/SelfDefendingTemplate\");\nconst StringArrayRotateFunctionTemplate_1 = require(\"./templates/string-array-rotate-function/StringArrayRotateFunctionTemplate\");\nconst AbstractCustomCodeHelper_1 = require(\"../AbstractCustomCodeHelper\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet StringArrayRotateFunctionCodeHelper = class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper_1.AbstractCustomCodeHelper {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options, escapeSequenceEncoder) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, customCodeHelperObfuscator, randomGenerator, options);\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n initialize(stringArrayName, stringArrayRotationAmount) {\n this.stringArrayName = stringArrayName;\n this.stringArrayRotationAmount = stringArrayRotationAmount;\n }\n getNodeStructure(codeHelperTemplate) {\n return NodeUtils_1.NodeUtils.convertCodeToStructure(codeHelperTemplate);\n }\n getCodeHelperTemplate() {\n const timesName = this.identifierNamesGenerator.generateNext();\n const whileFunctionName = this.identifierNamesGenerator.generateNext();\n const preservedNames = [`^${this.stringArrayName}$`];\n let code = '';\n if (this.options.selfDefending) {\n code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), {\n timesName,\n whileFunctionName\n });\n }\n else {\n code = `${whileFunctionName}(++${timesName})`;\n }\n return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), {\n code,\n timesName,\n whileFunctionName,\n stringArrayName: this.stringArrayName,\n stringArrayRotationAmount: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotationAmount)\n }), {\n reservedNames: preservedNames\n });\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayRotateFunctionCodeHelper.prototype, \"stringArrayRotationAmount\", void 0);\nStringArrayRotateFunctionCodeHelper = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperObfuscator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator !== \"undefined\" && ICustomCodeHelperObfuscator_1.ICustomCodeHelperObfuscator) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object, typeof (_f = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _f : Object])\n], StringArrayRotateFunctionCodeHelper);\nexports.StringArrayRotateFunctionCodeHelper = StringArrayRotateFunctionCodeHelper;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayCodeHelperGroup_1, _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCodeHelperGroup = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperFactory_1 = require(\"../../../types/container/custom-code-helpers/TCustomCodeHelperFactory\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst CustomCodeHelper_1 = require(\"../../../enums/custom-code-helpers/CustomCodeHelper\");\nconst ObfuscationEvent_1 = require(\"../../../enums/event-emitters/ObfuscationEvent\");\nconst StringArrayEncoding_1 = require(\"../../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst AbstractCustomCodeHelperGroup_1 = require(\"../../AbstractCustomCodeHelperGroup\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nlet StringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup_1.AbstractCustomCodeHelperGroup {\n constructor(customCodeHelperFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, randomGenerator, options);\n this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation;\n this.customCodeHelperFactory = customCodeHelperFactory;\n this.stringArrayStorage = stringArrayStorage;\n }\n appendNodes(nodeWithStatements, callsGraphData) {\n if (!this.stringArrayStorage.getLength()) {\n return;\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArray, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());\n });\n const stringArrayEncodingsLength = this.options.stringArrayEncoding.length;\n for (let i = 0; i < stringArrayEncodingsLength; i++) {\n const stringArrayEncoding = this.options.stringArrayEncoding[i];\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n this.appendCustomNodeIfExist(stringArrayCallsWrapperCodeHelperName, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1);\n });\n }\n this.appendCustomNodeIfExist(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, (customCodeHelper) => {\n NodeAppender_1.NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);\n });\n }\n initialize() {\n this.customCodeHelpers = new Map();\n if (!this.options.stringArray) {\n return;\n }\n const stringArrayCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArray);\n const stringArrayName = this.stringArrayStorage.getStorageName();\n stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArray, stringArrayCodeHelper);\n for (const stringArrayEncoding of this.options.stringArrayEncoding) {\n const stringArrayCallsWrapperCodeHelperName = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);\n const stringArrayCallsWrapperCodeHelper = this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);\n const stringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);\n stringArrayCallsWrapperCodeHelper.initialize(stringArrayName, stringArrayCallsWrapperName, this.stringArrayStorage.getIndexShiftAmount());\n this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);\n }\n const stringArrayRotateFunctionCodeHelper = this.customCodeHelperFactory(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction);\n stringArrayRotateFunctionCodeHelper.initialize(stringArrayName, this.stringArrayStorage.getRotationAmount());\n if (this.options.rotateStringArray) {\n this.customCodeHelpers.set(CustomCodeHelper_1.CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper);\n }\n }\n getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding) {\n var _a;\n return (_a = StringArrayCodeHelperGroup_1\n .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper;\n }\n};\nStringArrayCodeHelperGroup.stringArrayCallsWrapperCodeHelperMap = new Map([\n [StringArrayEncoding_1.StringArrayEncoding.None, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapper],\n [StringArrayEncoding_1.StringArrayEncoding.Base64, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperBase64],\n [StringArrayEncoding_1.StringArrayEncoding.Rc4, CustomCodeHelper_1.CustomCodeHelper.StringArrayCallsWrapperRc4]\n]);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], StringArrayCodeHelperGroup.prototype, \"customCodeHelpers\", void 0);\nStringArrayCodeHelperGroup = StringArrayCodeHelperGroup_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelper)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TCustomCodeHelperFactory_1.TCustomCodeHelperFactory !== \"undefined\" && TCustomCodeHelperFactory_1.TCustomCodeHelperFactory) === \"function\" ? _b : Object, typeof (_c = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _c : Object, typeof (_d = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], StringArrayCodeHelperGroup);\nexports.StringArrayCodeHelperGroup = StringArrayCodeHelperGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AtobTemplate = void 0;\nconst Base64AlphabetSwapped_1 = require(\"../../../../constants/Base64AlphabetSwapped\");\nfunction AtobTemplate() {\n return `\n var {atobFunctionName} = function (input) {\n const chars = '${Base64AlphabetSwapped_1.base64alphabetSwapped}';\n\n const str = String(input).replace(/=+$/, '');\n let output = '';\n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n };\n `;\n}\nexports.AtobTemplate = AtobTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rc4Template = void 0;\nfunction Rc4Template() {\n return `\n const rc4 = function (str, key) {\n let s = [], j = 0, x, res = '', newStr = '';\n \n str = {atobFunctionName}(str);\n \n for (let k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n `;\n}\nexports.Rc4Template = Rc4Template;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) {\n const identifierLength = 6;\n const rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength);\n const statesIdentifier = randomGenerator.getRandomString(identifierLength);\n const newStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const firstStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const secondStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const checkStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const runStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const getStateIdentifier = randomGenerator.getRandomString(identifierLength);\n const stateResultIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n const StatesClass = function (${rc4BytesIdentifier}) {\n this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};\n this.${statesIdentifier} = [1, 0, 0];\n this.${newStateIdentifier} = function(){return 'newState';};\n this.${firstStateIdentifier} = '${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *', true)}';\n this.${secondStateIdentifier} = '${escapeSequenceEncoder.encode('[\\'|\"].+[\\'|\"];? *}', true)}';\n };\n \n StatesClass.prototype.${checkStateIdentifier} = function () {\n const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});\n const expression = regExp.test(this.${newStateIdentifier}.toString())\n ? --this.${statesIdentifier}[1]\n : --this.${statesIdentifier}[0];\n \n return this.${runStateIdentifier}(expression);\n };\n \n StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {\n if (!Boolean(~${stateResultIdentifier})) {\n return ${stateResultIdentifier};\n }\n \n return this.${getStateIdentifier}(this.${rc4BytesIdentifier});\n };\n\n StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {\n for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {\n this.${statesIdentifier}.push(Math.round(Math.random()));\n len = this.${statesIdentifier}.length;\n }\n \n return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayBase64DecodeTemplate = void 0;\nfunction StringArrayBase64DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {\n const string = {atobFunctionName}(str);\n let newStringChars = [];\n \n for (let i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayBase64DecodeTemplate = StringArrayBase64DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallsWrapperTemplate = void 0;\nfunction StringArrayCallsWrapperTemplate() {\n return `\n const {stringArrayCallsWrapperName} = function (index, key) {\n index = index - {indexShiftAmount};\n \n let value = {stringArrayName}[index];\n \n {decodeCodeHelperTemplate}\n \n return value;\n };\n `;\n}\nexports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRC4DecodeTemplate = void 0;\nfunction StringArrayRC4DecodeTemplate(randomGenerator) {\n const identifierLength = 6;\n const initializedIdentifier = randomGenerator.getRandomString(identifierLength);\n const rc4Identifier = randomGenerator.getRandomString(identifierLength);\n const dataIdentifier = randomGenerator.getRandomString(identifierLength);\n const onceIdentifier = randomGenerator.getRandomString(identifierLength);\n return `\n if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;\n \n {stringArrayCallsWrapperName}.${dataIdentifier} = {};\n \n {stringArrayCallsWrapperName}.${initializedIdentifier} = true;\n }\n \n const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${onceIdentifier} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);\n {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;\n } else {\n value = cachedValue;\n }\n `;\n}\nexports.StringArrayRC4DecodeTemplate = StringArrayRC4DecodeTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingTemplate = void 0;\nfunction SelfDefendingTemplate(escapeSequenceEncoder) {\n return `\n const selfDefendingFunc = function () {\n const object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n let updatedCookie = name + \"=\" + value;\n let i = 0;\n \n for (let i = 0, len = options.length; i < len; i++) {\n const propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n const propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n const matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n \n const func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n const test1 = function () {\n const regExp = new RegExp('${escapeSequenceEncoder.encode('\\\\w+ *\\\\(\\\\) *{\\\\w+ *[\\'|\"].+[\\'|\"];? *}', true)}');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n let cookie = '';\n const result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n `;\n}\nexports.SelfDefendingTemplate = SelfDefendingTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRotateFunctionTemplate = void 0;\nfunction StringArrayRotateFunctionTemplate() {\n return `\n (function (array, {timesName}) {\n const {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, {stringArrayRotationAmount});\n `;\n}\nexports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTemplate = void 0;\nfunction StringArrayTemplate() {\n return `\n const {stringArrayName} = [{stringArrayStorageItems}];\n `;\n}\nexports.StringArrayTemplate = StringArrayTemplate;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractCustomNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractCustomNode = class AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n this.cachedNode = null;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.customCodeHelperFormatter = customCodeHelperFormatter;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n getNode() {\n if (!this.cachedNode) {\n this.cachedNode = this.customCodeHelperFormatter.formatStructure(this.getNodeStructure());\n }\n return this.cachedNode;\n }\n};\nAbstractCustomNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], AbstractCustomNode);\nexports.AbstractCustomNode = AbstractCustomNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BinaryExpressionFunctionNode = class BinaryExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBinaryExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BinaryExpressionFunctionNode);\nexports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowFlatteningNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowFlatteningNode = class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) {\n this.blockStatementBody = blockStatementBody;\n this.shuffledKeys = shuffledKeys;\n this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;\n }\n getNodeStructure() {\n const controllerIdentifierName = this.randomGenerator.getRandomString(6);\n const indexIdentifierName = this.randomGenerator.getRandomString(6);\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(StringSeparator_1.StringSeparator.VerticalLine)), NodeFactory_1.NodeFactory.identifierNode('split')), [\n NodeFactory_1.NodeFactory.literalNode(StringSeparator_1.StringSeparator.VerticalLine)\n ]))\n ], 'const'),\n NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))\n ], 'let'),\n NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map((key, index) => {\n const statement = this.blockStatementBody[key];\n const consequent = [statement];\n if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) {\n consequent.push(NodeFactory_1.NodeFactory.continueStatement());\n }\n return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent);\n })),\n NodeFactory_1.NodeFactory.breakStatement()\n ]))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"blockStatementBody\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"originalKeysIndexesInShuffledArray\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], BlockStatementControlFlowFlatteningNode.prototype, \"shuffledKeys\", void 0);\nBlockStatementControlFlowFlatteningNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementControlFlowFlatteningNode);\nexports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet CallExpressionFunctionNode = class CallExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(expressionArguments) {\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee');\n const params = [];\n const argumentsLength = this.expressionArguments.length;\n for (let i = 0; i < argumentsLength; i++) {\n params.push(NodeFactory_1.NodeFactory.identifierNode(`param${i + 1}`));\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n calleeIdentifier,\n ...params\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionFunctionNode.prototype, \"expressionArguments\", void 0);\nCallExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], CallExpressionFunctionNode);\nexports.CallExpressionFunctionNode = CallExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet LogicalExpressionFunctionNode = class LogicalExpressionFunctionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(operator) {\n this.operator = operator;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([\n NodeFactory_1.NodeFactory.identifierNode('x'),\n NodeFactory_1.NodeFactory.identifierNode('y')\n ], NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))\n ])));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nLogicalExpressionFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], LogicalExpressionFunctionNode);\nexports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet StringLiteralNode = class StringLiteralNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(literalValue) {\n this.literalValue = literalValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue));\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralNode.prototype, \"literalValue\", void 0);\nStringLiteralNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], StringLiteralNode);\nexports.StringLiteralNode = StringLiteralNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet CallExpressionControlFlowStorageCallNode = class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.callee = callee;\n this.expressionArguments = expressionArguments;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.callee,\n ...this.expressionArguments\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof ESTree !== \"undefined\" && ESTree.Expression) === \"function\" ? _a : Object)\n], CallExpressionControlFlowStorageCallNode.prototype, \"callee\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], CallExpressionControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], CallExpressionControlFlowStorageCallNode.prototype, \"expressionArguments\", void 0);\nCallExpressionControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], CallExpressionControlFlowStorageCallNode);\nexports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorageNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowStorage_1 = require(\"../../../types/storages/TControlFlowStorage\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ControlFlowStorageNode = class ControlFlowStorageNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorage) {\n this.controlFlowStorage = controlFlowStorage;\n }\n getNodeStructure() {\n const propertyNodes = Array\n .from(this.controlFlowStorage.getStorage())\n .map(([key, value]) => {\n const node = value.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');\n }\n return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression);\n });\n let structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))\n ], 'const');\n structure = NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof TControlFlowStorage_1.TControlFlowStorage !== \"undefined\" && TControlFlowStorage_1.TControlFlowStorage) === \"function\" ? _a : Object)\n], ControlFlowStorageNode.prototype, \"controlFlowStorage\", void 0);\nControlFlowStorageNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], ControlFlowStorageNode);\nexports.ControlFlowStorageNode = ControlFlowStorageNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet ExpressionWithOperatorControlFlowStorageCallNode = class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n this.leftValue = leftValue;\n this.rightValue = rightValue;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [\n this.leftValue,\n this.rightValue\n ]));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ExpressionWithOperatorControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nExpressionWithOperatorControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], ExpressionWithOperatorControlFlowStorageCallNode);\nexports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowStorageCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../../../decorators/Initializable\");\nconst AbstractCustomNode_1 = require(\"../../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet StringLiteralControlFlowStorageCallNode = class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(controlFlowStorageName, controlFlowStorageKey) {\n this.controlFlowStorageName = controlFlowStorageName;\n this.controlFlowStorageKey = controlFlowStorageKey;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringLiteralControlFlowStorageCallNode.prototype, \"controlFlowStorageName\", void 0);\nStringLiteralControlFlowStorageCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], StringLiteralControlFlowStorageCallNode);\nexports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementDeadCodeInjectionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementDeadCodeInjectionNode = class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) {\n this.blockStatementNode = blockStatementNode;\n this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;\n }\n getNode() {\n return this.getNodeStructure();\n }\n getNodeStructure() {\n const random1 = this.randomGenerator.getMathRandom() > 0.5;\n const random2 = this.randomGenerator.getMathRandom() > 0.5;\n const operator = random1 ? '===' : '!==';\n const leftString = this.randomGenerator.getRandomString(5);\n const rightString = random2 ? leftString : this.randomGenerator.getRandomString(5);\n const [consequent, alternate] = random1 === random2\n ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]\n : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];\n const structure = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\nBlockStatementDeadCodeInjectionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementDeadCodeInjectionNode);\nexports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionVariableDeclarationHostNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionVariableDeclarationHostNode = class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n }\n initialize(lexicalScopeNode, properties) {\n this.lexicalScopeNode = lexicalScopeNode;\n this.properties = properties;\n }\n getNodeStructure() {\n const variableDeclarationName = NodeGuards_1.NodeGuards.isProgramNode(this.lexicalScopeNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(variableDeclarationName), NodeFactory_1.NodeFactory.objectExpressionNode(this.properties))\n ], 'const');\n return [structure];\n }\n};\nObjectExpressionVariableDeclarationHostNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], ObjectExpressionVariableDeclarationHostNode);\nexports.ObjectExpressionVariableDeclarationHostNode = ObjectExpressionVariableDeclarationHostNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractStringArrayCallNode_1, _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayIndexNode_1 = require(\"../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode\");\nconst AbstractCustomNode_1 = require(\"../AbstractCustomNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nlet AbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = class AbstractStringArrayCallNode extends AbstractCustomNode_1.AbstractCustomNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, customCodeHelperFormatter, randomGenerator, options);\n this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory;\n this.stringArrayStorage = stringArrayStorage;\n this.arrayUtils = arrayUtils;\n }\n getStringArrayIndexNode(index) {\n var _a;\n const isPositive = index >= 0;\n const normalizedIndex = Math.abs(index);\n const stringArrayCallsIndexType = this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayIndexesType);\n const stringArrayIndexNodeName = (_a = AbstractStringArrayCallNode_1.stringArrayIndexNodesMap.get(stringArrayCallsIndexType)) !== null && _a !== void 0 ? _a : null;\n if (!stringArrayIndexNodeName) {\n throw new Error('Invalid string array index node name');\n }\n const stringArrayCallIndexNode = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName)\n .getNode(normalizedIndex);\n NodeMetadata_1.NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true });\n const hexadecimalNode = isPositive\n ? stringArrayCallIndexNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', stringArrayCallIndexNode);\n NodeUtils_1.NodeUtils.parentizeAst(hexadecimalNode);\n return hexadecimalNode;\n }\n getRc4KeyLiteralNode(decodeKey) {\n const rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(decodeKey);\n NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });\n return rc4KeyLiteralNode;\n }\n};\nAbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount = 2;\nAbstractStringArrayCallNode.stringArrayIndexNodesMap = new Map([\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],\n [StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode_1.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]\n]);\nAbstractStringArrayCallNode = AbstractStringArrayCallNode_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _g : Object])\n], AbstractStringArrayCallNode);\nexports.AbstractStringArrayCallNode = AbstractStringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g, _h;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCallNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayCallNode = class StringArrayCallNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayCallsWrapperName, stringArrayCallsWrapperParameterIndexesData, index, indexShiftAmount, decodeKey) {\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData;\n this.index = index;\n this.indexShiftAmount = indexShiftAmount;\n this.decodeKey = decodeKey;\n }\n getNodeStructure() {\n var _a, _b;\n const resultIndex = this.indexShiftAmount + this.index;\n const indexNode = this.getStringArrayIndexNode(resultIndex);\n const rc4KeyLiteralNode = this.decodeKey\n ? this.getRc4KeyLiteralNode(this.decodeKey)\n : null;\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.stringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeStringArrayIndexNode(resultIndex));\n callExpressionArgs.splice((_b = (_a = this.stringArrayCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, indexNode);\n if (this.stringArrayCallsWrapperParameterIndexesData) {\n callExpressionArgs.splice(this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex, 1, rc4KeyLiteralNode !== null && rc4KeyLiteralNode !== void 0 ? rc4KeyLiteralNode : this.getFakeStringArrayIndexNode(resultIndex));\n }\n else if (rc4KeyLiteralNode) {\n callExpressionArgs.splice(1, 1, rc4KeyLiteralNode);\n }\n else {\n callExpressionArgs.splice(1, 1);\n }\n const structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName), callExpressionArgs));\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n getFakeStringArrayIndexNode(actualIndex) {\n return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex));\n }\n getFakeStringArrayIndex(actualIndex) {\n const stringArrayStorageLength = this.stringArrayStorage.getLength();\n const fakeIndexOffset = stringArrayStorageLength / 2;\n const minimumIndex = actualIndex - fakeIndexOffset;\n const maximumIndex = actualIndex + fakeIndexOffset;\n return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"decodeKey\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"index\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayCallNode.prototype, \"indexShiftAmount\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayCallNode.prototype, \"stringArrayCallsWrapperParameterIndexesData\", void 0);\nStringArrayCallNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _b : Object, typeof (_c = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _c : Object, typeof (_d = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _e : Object, typeof (_f = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _f : Object, typeof (_g = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _g : Object, typeof (_h = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _h : Object])\n], StringArrayCallNode);\nexports.StringArrayCallNode = StringArrayCallNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g, _h, _j;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperFunctionNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperFunctionNode = class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexesData, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexesData, shiftedIndex) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData;\n this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName;\n this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData;\n this.shiftedIndex = shiftedIndex;\n }\n getNodeStructure() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const stringArrayCallIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const decodeKeyIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n const stringArrayCallNode = this.getUpperStringArrayCallNode(stringArrayCallIdentifierNode, this.getStringArrayIndexNode(this.shiftedIndex));\n const parameters = this.arrayUtils.fillWithRange(!this.stringArrayScopeCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, () => this.getFakeParameterNode());\n parameters.splice((_b = (_a = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _a === void 0 ? void 0 : _a.valueIndexParameterIndex) !== null && _b !== void 0 ? _b : 0, 1, stringArrayCallIdentifierNode);\n parameters.splice((_d = (_c = this.stringArrayScopeCallsWrapperParameterIndexesData) === null || _c === void 0 ? void 0 : _c.decodeKeyParameterIndex) !== null && _d !== void 0 ? _d : 1, 1, decodeKeyIdentifierNode);\n const callExpressionArgs = this.arrayUtils.fillWithRange(!this.upperStringArrayCallsWrapperParameterIndexesData\n ? AbstractStringArrayCallNode_1.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount\n : this.options.stringArrayWrappersParametersMaxCount, (index) => this.getUpperStringArrayCallNode(parameters[index], this.getFakeUpperStringArrayIndexNode()));\n callExpressionArgs.splice((_f = (_e = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _e === void 0 ? void 0 : _e.valueIndexParameterIndex) !== null && _f !== void 0 ? _f : 0, 1, stringArrayCallNode);\n callExpressionArgs.splice((_h = (_g = this.upperStringArrayCallsWrapperParameterIndexesData) === null || _g === void 0 ? void 0 : _g.decodeKeyParameterIndex) !== null && _h !== void 0 ? _h : 1, 1, decodeKeyIdentifierNode);\n const functionExpressionNode = NodeFactory_1.NodeFactory.functionExpressionNode(parameters, NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName), callExpressionArgs))\n ]));\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), functionExpressionNode)\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n for (const parameter of parameters) {\n parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode);\n }\n return [structure];\n }\n getUpperStringArrayCallNode(indexParameterIdentifierNode, indexShiftNode) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode('-', indexParameterIdentifierNode, indexShiftNode);\n }\n getFakeParameterNode() {\n return NodeFactory_1.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));\n }\n getFakeUpperStringArrayIndexNode() {\n return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500));\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Number)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"shiftedIndex\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"upperStringArrayCallsWrapperParameterIndexesData\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Object)\n], StringArrayScopeCallsWrapperFunctionNode.prototype, \"stringArrayScopeCallsWrapperParameterIndexesData\", void 0);\nStringArrayScopeCallsWrapperFunctionNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_c = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _c : Object, typeof (_d = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _d : Object, typeof (_e = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _f : Object, typeof (_g = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _g : Object, typeof (_h = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _h : Object, typeof (_j = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _j : Object])\n], StringArrayScopeCallsWrapperFunctionNode);\nexports.StringArrayScopeCallsWrapperFunctionNode = StringArrayScopeCallsWrapperFunctionNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperVariableNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayIndexNodeFactory_1 = require(\"../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICustomCodeHelperFormatter_1 = require(\"../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst Initializable_1 = require(\"../../decorators/Initializable\");\nconst AbstractStringArrayCallNode_1 = require(\"./AbstractStringArrayCallNode\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayScopeCallsWrapperVariableNode = class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode_1.AbstractStringArrayCallNode {\n constructor(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options) {\n super(identifierNamesGeneratorFactory, stringArrayIndexNodeFactory, customCodeHelperFormatter, stringArrayStorage, arrayUtils, randomGenerator, options);\n }\n initialize(stringArrayScopeCallsWrapperName, stringArrayCallsWrapperName) {\n this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;\n this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;\n }\n getNodeStructure() {\n const structure = NodeFactory_1.NodeFactory.variableDeclarationNode([\n NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName), NodeFactory_1.NodeFactory.identifierNode(this.stringArrayCallsWrapperName))\n ], 'const');\n NodeUtils_1.NodeUtils.parentizeAst(structure);\n return [structure];\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayCallsWrapperName\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], StringArrayScopeCallsWrapperVariableNode.prototype, \"stringArrayScopeCallsWrapperName\", void 0);\nStringArrayScopeCallsWrapperVariableNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayIndexNode)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICustomCodeHelperFormatter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory !== \"undefined\" && TStringArrayIndexNodeFactory_1.TStringArrayIndexNodeFactory) === \"function\" ? _b : Object, typeof (_c = typeof ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter !== \"undefined\" && ICustomCodeHelperFormatter_1.ICustomCodeHelperFormatter) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _e : Object, typeof (_f = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _f : Object, typeof (_g = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _g : Object])\n], StringArrayScopeCallsWrapperVariableNode);\nexports.StringArrayScopeCallsWrapperVariableNode = StringArrayScopeCallsWrapperVariableNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStringArrayIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nlet AbstractStringArrayIndexNode = class AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractStringArrayIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractStringArrayIndexNode);\nexports.AbstractStringArrayIndexNode = AbstractStringArrayIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumberIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumberIndexNode = class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(index, hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumberIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayHexadecimalNumberIndexNode);\nexports.StringArrayHexadecimalNumberIndexNode = StringArrayHexadecimalNumberIndexNode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayHexadecimalNumericStringIndexNode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst AbstractStringArrayIndexNode_1 = require(\"./AbstractStringArrayIndexNode\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../../utils/NumberUtils\");\nlet StringArrayHexadecimalNumericStringIndexNode = class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode_1.AbstractStringArrayIndexNode {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getNode(index) {\n const hexadecimalIndex = NumberUtils_1.NumberUtils.toHex(index);\n return NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex);\n }\n};\nStringArrayHexadecimalNumericStringIndexNode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayHexadecimalNumericStringIndexNode);\nexports.StringArrayHexadecimalNumericStringIndexNode = StringArrayHexadecimalNumericStringIndexNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializable = void 0;\nconst defaultDescriptor = {\n configurable: true,\n enumerable: true\n};\nconst initializedTargetMetadataKey = '_initialized';\nconst initializablePropertiesSetMetadataKey = '_initializablePropertiesSet';\nconst wrappedMethodsSetMetadataKey = '_wrappedMethodsSet';\nconst constructorMethodName = 'constructor';\nfunction initializable(initializeMethodName = 'initialize') {\n const decoratorName = Object.keys(this)[0];\n return (target, propertyKey) => {\n const initializeMethod = target[initializeMethodName];\n if (!initializeMethod || typeof initializeMethod !== 'function') {\n throw new Error(`\\`${initializeMethodName}\\` method with initialization logic not ` +\n `found. \\`@${decoratorName}\\` decorator requires \\`${initializeMethodName}\\` method`);\n }\n initializeTargetMetadata(initializedTargetMetadataKey, false, target);\n initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);\n initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);\n wrapTargetMethodsInInitializedCheck(target, initializeMethodName);\n wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);\n return wrapInitializableProperty(target, propertyKey);\n };\n}\nexports.initializable = initializable;\nfunction initializeTargetMetadata(metadataKey, metadataValue, target) {\n const hasInitializedMetadata = Reflect.hasMetadata(metadataKey, target);\n if (!hasInitializedMetadata) {\n Reflect.defineMetadata(metadataKey, metadataValue, target);\n }\n}\nfunction wrapTargetMethodsInInitializedCheck(target, initializeMethodName) {\n const ownPropertyNames = Object.getOwnPropertyNames(target);\n const prohibitedPropertyNames = new Set([initializeMethodName, constructorMethodName]);\n ownPropertyNames.forEach((propertyName) => {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n const wrappedMethodsSet = Reflect\n .getMetadata(wrappedMethodsSetMetadataKey, target);\n const isProhibitedPropertyName = prohibitedPropertyNames.has(propertyName)\n || initializablePropertiesSet.has(propertyName)\n || wrappedMethodsSet.has(propertyName);\n if (isProhibitedPropertyName) {\n return;\n }\n const targetProperty = target[propertyName];\n if (typeof targetProperty !== 'function') {\n return;\n }\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, propertyName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, propertyName, Object.assign(Object.assign({}, methodDescriptor), { value() {\n if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {\n throw new Error(`Class should be initialized with \\`${initializeMethodName}()\\` method`);\n }\n return originalMethod.apply(this, arguments);\n } }));\n wrappedMethodsSet.add(propertyName);\n });\n}\nfunction wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) {\n var _a;\n const methodDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializeMethodName)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n const originalMethod = methodDescriptor.value;\n Object.defineProperty(target, initializeMethodName, Object.assign(Object.assign({}, methodDescriptor), { value: function () {\n Reflect.defineMetadata(initializedTargetMetadataKey, true, this);\n const result = originalMethod.apply(this, arguments);\n if (this[propertyKey]) { }\n return result;\n } }));\n}\nfunction wrapInitializableProperty(target, propertyKey) {\n var _a;\n const initializablePropertiesSet = Reflect\n .getMetadata(initializablePropertiesSetMetadataKey, target);\n initializablePropertiesSet.add(propertyKey);\n const initializablePropertyMetadataKey = `_${propertyKey.toString()}`;\n const propertyDescriptor = (_a = Object\n .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey)) !== null && _a !== void 0 ? _a : defaultDescriptor;\n Object.defineProperty(target, propertyKey, Object.assign(Object.assign({}, propertyDescriptor), { get: function () {\n if (this[initializablePropertyMetadataKey] === undefined) {\n throw new Error(`Property \\`${propertyKey.toString()}\\` is not initialized! Initialize it first!`);\n }\n return this[initializablePropertyMetadataKey];\n }, set: function (newVal) {\n this[initializablePropertyMetadataKey] = newVal;\n } }));\n return propertyDescriptor;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationTarget = void 0;\nconst Utils_1 = require(\"../utils/Utils\");\nexports.ObfuscationTarget = Utils_1.Utils.makeEnum({\n Browser: 'browser',\n BrowserNoEval: 'browser-no-eval',\n Node: 'node'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringSeparator = void 0;\nvar StringSeparator;\n(function (StringSeparator) {\n StringSeparator[\"Comma\"] = \",\";\n StringSeparator[\"Dot\"] = \".\";\n StringSeparator[\"VerticalLine\"] = \"|\";\n})(StringSeparator = exports.StringSeparator || (exports.StringSeparator = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalleeDataExtractor = void 0;\nvar CalleeDataExtractor;\n(function (CalleeDataExtractor) {\n CalleeDataExtractor[\"FunctionDeclarationCalleeDataExtractor\"] = \"FunctionDeclarationCalleeDataExtractor\";\n CalleeDataExtractor[\"FunctionExpressionCalleeDataExtractor\"] = \"FunctionExpressionCalleeDataExtractor\";\n CalleeDataExtractor[\"ObjectExpressionCalleeDataExtractor\"] = \"ObjectExpressionCalleeDataExtractor\";\n})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformationStage = void 0;\nvar CodeTransformationStage;\n(function (CodeTransformationStage) {\n CodeTransformationStage[\"PreparingTransformers\"] = \"PreparingTransformers\";\n CodeTransformationStage[\"FinalizingTransformers\"] = \"FinalizingTransformers\";\n})(CodeTransformationStage = exports.CodeTransformationStage || (exports.CodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeTransformer = void 0;\nvar CodeTransformer;\n(function (CodeTransformer) {\n CodeTransformer[\"HashbangOperatorTransformer\"] = \"HashbangOperatorTransformer\";\n})(CodeTransformer = exports.CodeTransformer || (exports.CodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelper = void 0;\nvar CustomCodeHelper;\n(function (CustomCodeHelper) {\n CustomCodeHelper[\"CallsControllerFunction\"] = \"CallsControllerFunction\";\n CustomCodeHelper[\"ConsoleOutputDisable\"] = \"ConsoleOutputDisable\";\n CustomCodeHelper[\"DebugProtectionFunctionCall\"] = \"DebugProtectionFunctionCall\";\n CustomCodeHelper[\"DebugProtectionFunctionInterval\"] = \"DebugProtectionFunctionInterval\";\n CustomCodeHelper[\"DebugProtectionFunction\"] = \"DebugProtectionFunction\";\n CustomCodeHelper[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelper[\"SelfDefendingUnicode\"] = \"SelfDefendingUnicode\";\n CustomCodeHelper[\"StringArray\"] = \"StringArray\";\n CustomCodeHelper[\"StringArrayCallsWrapper\"] = \"StringArrayCallsWrapper\";\n CustomCodeHelper[\"StringArrayCallsWrapperBase64\"] = \"StringArrayCallsWrapperBase64\";\n CustomCodeHelper[\"StringArrayCallsWrapperRc4\"] = \"StringArrayCallsWrapperRc4\";\n CustomCodeHelper[\"StringArrayRotateFunction\"] = \"StringArrayRotateFunction\";\n})(CustomCodeHelper = exports.CustomCodeHelper || (exports.CustomCodeHelper = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroup = void 0;\nvar CustomCodeHelperGroup;\n(function (CustomCodeHelperGroup) {\n CustomCodeHelperGroup[\"ConsoleOutput\"] = \"ConsoleOutput\";\n CustomCodeHelperGroup[\"DebugProtection\"] = \"DebugProtection\";\n CustomCodeHelperGroup[\"DomainLock\"] = \"DomainLock\";\n CustomCodeHelperGroup[\"SelfDefending\"] = \"SelfDefending\";\n CustomCodeHelperGroup[\"StringArray\"] = \"StringArray\";\n})(CustomCodeHelperGroup = exports.CustomCodeHelperGroup || (exports.CustomCodeHelperGroup = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowCustomNode = void 0;\nvar ControlFlowCustomNode;\n(function (ControlFlowCustomNode) {\n ControlFlowCustomNode[\"BinaryExpressionFunctionNode\"] = \"BinaryExpressionFunctionNode\";\n ControlFlowCustomNode[\"BlockStatementControlFlowFlatteningNode\"] = \"BlockStatementControlFlowFlatteningNode\";\n ControlFlowCustomNode[\"CallExpressionControlFlowStorageCallNode\"] = \"CallExpressionControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"CallExpressionFunctionNode\"] = \"CallExpressionFunctionNode\";\n ControlFlowCustomNode[\"ControlFlowStorageNode\"] = \"ControlFlowStorageNode\";\n ControlFlowCustomNode[\"ExpressionWithOperatorControlFlowStorageCallNode\"] = \"ExpressionWithOperatorControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"LogicalExpressionFunctionNode\"] = \"LogicalExpressionFunctionNode\";\n ControlFlowCustomNode[\"StringLiteralControlFlowStorageCallNode\"] = \"StringLiteralControlFlowStorageCallNode\";\n ControlFlowCustomNode[\"StringLiteralNode\"] = \"StringLiteralNode\";\n})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionCustomNode = void 0;\nvar DeadCodeInjectionCustomNode;\n(function (DeadCodeInjectionCustomNode) {\n DeadCodeInjectionCustomNode[\"BlockStatementDeadCodeInjectionNode\"] = \"BlockStatementDeadCodeInjectionNode\";\n})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformerCustomNode = void 0;\nvar ObjectExpressionKeysTransformerCustomNode;\n(function (ObjectExpressionKeysTransformerCustomNode) {\n ObjectExpressionKeysTransformerCustomNode[\"ObjectExpressionVariableDeclarationHostNode\"] = \"ObjectExpressionVariableDeclarationHostNode\";\n})(ObjectExpressionKeysTransformerCustomNode = exports.ObjectExpressionKeysTransformerCustomNode || (exports.ObjectExpressionKeysTransformerCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayCustomNode = void 0;\nvar StringArrayCustomNode;\n(function (StringArrayCustomNode) {\n StringArrayCustomNode[\"StringArrayCallNode\"] = \"StringArrayCallNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperFunctionNode\"] = \"StringArrayScopeCallsWrapperFunctionNode\";\n StringArrayCustomNode[\"StringArrayScopeCallsWrapperVariableNode\"] = \"StringArrayScopeCallsWrapperVariableNode\";\n})(StringArrayCustomNode = exports.StringArrayCustomNode || (exports.StringArrayCustomNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexNode = void 0;\nvar StringArrayIndexNode;\n(function (StringArrayIndexNode) {\n StringArrayIndexNode[\"StringArrayHexadecimalNumberIndexNode\"] = \"StringArrayHexadecimalNumberIndexNode\";\n StringArrayIndexNode[\"StringArrayHexadecimalNumericStringIndexNode\"] = \"StringArrayHexadecimalNumericStringIndexNode\";\n})(StringArrayIndexNode = exports.StringArrayIndexNode || (exports.StringArrayIndexNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEvent = void 0;\nvar ObfuscationEvent;\n(function (ObfuscationEvent) {\n ObfuscationEvent[\"AfterObfuscation\"] = \"afterObfuscation\";\n ObfuscationEvent[\"BeforeObfuscation\"] = \"beforeObfuscation\";\n})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierNamesGenerator = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.IdentifierNamesGenerator = Utils_1.Utils.makeEnum({\n DictionaryIdentifierNamesGenerator: 'dictionary',\n HexadecimalIdentifierNamesGenerator: 'hexadecimal',\n MangledIdentifierNamesGenerator: 'mangled',\n MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingMessage = void 0;\nvar LoggingMessage;\n(function (LoggingMessage) {\n LoggingMessage[\"EmptySourceCode\"] = \"Empty source code. Obfuscation canceled...\";\n LoggingMessage[\"ObfuscationCompleted\"] = \"Obfuscation completed. Total time: %s sec.\";\n LoggingMessage[\"ObfuscationStarted\"] = \"Obfuscation started...\";\n LoggingMessage[\"RandomGeneratorSeed\"] = \"Random generator seed: %s...\";\n LoggingMessage[\"CodeTransformationStage\"] = \"Code transformation stage: %s...\";\n LoggingMessage[\"NodeTransformationStage\"] = \"AST transformation stage: %s...\";\n LoggingMessage[\"Version\"] = \"Version: %s\";\n})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingPrefix = void 0;\nvar LoggingPrefix;\n(function (LoggingPrefix) {\n LoggingPrefix[\"Base\"] = \"[javascript-obfuscator]\";\n LoggingPrefix[\"CLI\"] = \"[javascript-obfuscator-cli]\";\n})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformationStage = void 0;\nvar NodeTransformationStage;\n(function (NodeTransformationStage) {\n NodeTransformationStage[\"ControlFlowFlattening\"] = \"ControlFlowFlattening\";\n NodeTransformationStage[\"Converting\"] = \"Converting\";\n NodeTransformationStage[\"DeadCodeInjection\"] = \"DeadCodeInjection\";\n NodeTransformationStage[\"Finalizing\"] = \"Finalizing\";\n NodeTransformationStage[\"Initializing\"] = \"Initializing\";\n NodeTransformationStage[\"Preparing\"] = \"Preparing\";\n NodeTransformationStage[\"RenameIdentifiers\"] = \"RenameIdentifiers\";\n NodeTransformationStage[\"RenameProperties\"] = \"RenameProperties\";\n NodeTransformationStage[\"Simplifying\"] = \"Simplifying\";\n NodeTransformationStage[\"StringArray\"] = \"StringArray\";\n})(NodeTransformationStage = exports.NodeTransformationStage || (exports.NodeTransformationStage = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformer = void 0;\nvar NodeTransformer;\n(function (NodeTransformer) {\n NodeTransformer[\"BooleanLiteralTransformer\"] = \"BooleanLiteralTransformer\";\n NodeTransformer[\"BlockStatementControlFlowTransformer\"] = \"BlockStatementControlFlowTransformer\";\n NodeTransformer[\"BlockStatementSimplifyTransformer\"] = \"BlockStatementSimplifyTransformer\";\n NodeTransformer[\"CommentsTransformer\"] = \"CommentsTransformer\";\n NodeTransformer[\"CustomCodeHelpersTransformer\"] = \"CustomCodeHelpersTransformer\";\n NodeTransformer[\"DeadCodeInjectionTransformer\"] = \"DeadCodeInjectionTransformer\";\n NodeTransformer[\"EscapeSequenceTransformer\"] = \"EscapeSequenceTransformer\";\n NodeTransformer[\"EvalCallExpressionTransformer\"] = \"EvalCallExpressionTransformer\";\n NodeTransformer[\"ExportSpecifierTransformer\"] = \"ExportSpecifierTransformer\";\n NodeTransformer[\"ExpressionStatementsMergeTransformer\"] = \"ExpressionStatementsMergeTransformer\";\n NodeTransformer[\"FunctionControlFlowTransformer\"] = \"FunctionControlFlowTransformer\";\n NodeTransformer[\"IfStatementSimplifyTransformer\"] = \"IfStatementSimplifyTransformer\";\n NodeTransformer[\"LabeledStatementTransformer\"] = \"LabeledStatementTransformer\";\n NodeTransformer[\"MemberExpressionTransformer\"] = \"MemberExpressionTransformer\";\n NodeTransformer[\"MetadataTransformer\"] = \"MetadataTransformer\";\n NodeTransformer[\"MethodDefinitionTransformer\"] = \"MethodDefinitionTransformer\";\n NodeTransformer[\"NumberLiteralTransformer\"] = \"NumberLiteralTransformer\";\n NodeTransformer[\"NumberToNumericalExpressionTransformer\"] = \"NumberToNumericalExpressionTransformer\";\n NodeTransformer[\"ObfuscatingGuardsTransformer\"] = \"ObfuscatingGuardsTransformer\";\n NodeTransformer[\"ObjectExpressionKeysTransformer\"] = \"ObjectExpressionKeysTransformer\";\n NodeTransformer[\"ObjectExpressionTransformer\"] = \"ObjectExpressionTransformer\";\n NodeTransformer[\"ObjectPatternPropertiesTransformer\"] = \"ObjectPatternPropertiesTransformer\";\n NodeTransformer[\"ParentificationTransformer\"] = \"ParentificationTransformer\";\n NodeTransformer[\"RenamePropertiesTransformer\"] = \"RenamePropertiesTransformer\";\n NodeTransformer[\"ScopeIdentifiersTransformer\"] = \"ScopeIdentifiersTransformer\";\n NodeTransformer[\"ScopeThroughIdentifiersTransformer\"] = \"ScopeThroughIdentifiersTransformer\";\n NodeTransformer[\"SplitStringTransformer\"] = \"SplitStringTransformer\";\n NodeTransformer[\"StringArrayTransformer\"] = \"StringArrayTransformer\";\n NodeTransformer[\"StringArrayScopeCallsWrapperTransformer\"] = \"StringArrayScopeCallsWrapperTransformer\";\n NodeTransformer[\"TemplateLiteralTransformer\"] = \"TemplateLiteralTransformer\";\n NodeTransformer[\"VariableDeclarationsMergeTransformer\"] = \"VariableDeclarationsMergeTransformer\";\n NodeTransformer[\"VariablePreserveTransformer\"] = \"VariablePreserveTransformer\";\n})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitorDirection = void 0;\nvar VisitorDirection;\n(function (VisitorDirection) {\n VisitorDirection[\"Enter\"] = \"enter\";\n VisitorDirection[\"Leave\"] = \"leave\";\n})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowReplacer = void 0;\nvar ControlFlowReplacer;\n(function (ControlFlowReplacer) {\n ControlFlowReplacer[\"BinaryExpressionControlFlowReplacer\"] = \"BinaryExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"CallExpressionControlFlowReplacer\"] = \"CallExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"LogicalExpressionControlFlowReplacer\"] = \"LogicalExpressionControlFlowReplacer\";\n ControlFlowReplacer[\"StringLiteralControlFlowReplacer\"] = \"StringLiteralControlFlowReplacer\";\n})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionExtractor = void 0;\nvar ObjectExpressionExtractor;\n(function (ObjectExpressionExtractor) {\n ObjectExpressionExtractor[\"BasePropertiesExtractor\"] = \"BasePropertiesExtractor\";\n ObjectExpressionExtractor[\"ObjectExpressionToVariableDeclarationExtractor\"] = \"ObjectExpressionToVariableDeclarationExtractor\";\n})(ObjectExpressionExtractor = exports.ObjectExpressionExtractor || (exports.ObjectExpressionExtractor = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuard = void 0;\nvar ObfuscatingGuard;\n(function (ObfuscatingGuard) {\n ObfuscatingGuard[\"BlackListObfuscatingGuard\"] = \"BlackListObfuscatingGuard\";\n ObfuscatingGuard[\"ConditionalCommentObfuscatingGuard\"] = \"ConditionalCommentObfuscatingGuard\";\n ObfuscatingGuard[\"ForceTransformStringObfuscatingGuard\"] = \"ForceTransformStringObfuscatingGuard\";\n ObfuscatingGuard[\"IgnoredRequireImportObfuscatingGuard\"] = \"IgnoredRequireImportObfuscatingGuard\";\n ObfuscatingGuard[\"ReservedStringObfuscatingGuard\"] = \"ReservedStringObfuscatingGuard\";\n})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncoding = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayEncoding = Utils_1.Utils.makeEnum({\n None: 'none',\n Base64: 'base64',\n Rc4: 'rc4'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayIndexesType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayIndexesType = Utils_1.Utils.makeEnum({\n HexadecimalNumber: 'hexadecimal-number',\n HexadecimalNumericString: 'hexadecimal-numeric-string'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersType = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.StringArrayWrappersType = Utils_1.Utils.makeEnum({\n Variable: 'variable',\n Function: 'function',\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = void 0;\nvar NodeType;\n(function (NodeType) {\n NodeType[\"ArrayExpression\"] = \"ArrayExpression\";\n NodeType[\"ArrayPattern\"] = \"ArrayPattern\";\n NodeType[\"ArrowFunctionExpression\"] = \"ArrowFunctionExpression\";\n NodeType[\"AssignmentExpression\"] = \"AssignmentExpression\";\n NodeType[\"AssignmentPattern\"] = \"AssignmentPattern\";\n NodeType[\"AwaitExpression\"] = \"AwaitExpression\";\n NodeType[\"BinaryExpression\"] = \"BinaryExpression\";\n NodeType[\"BlockStatement\"] = \"BlockStatement\";\n NodeType[\"BreakStatement\"] = \"BreakStatement\";\n NodeType[\"CallExpression\"] = \"CallExpression\";\n NodeType[\"CatchClause\"] = \"CatchClause\";\n NodeType[\"ChainExpression\"] = \"ChainExpression\";\n NodeType[\"ClassDeclaration\"] = \"ClassDeclaration\";\n NodeType[\"ConditionalExpression\"] = \"ConditionalExpression\";\n NodeType[\"ContinueStatement\"] = \"ContinueStatement\";\n NodeType[\"ExportAllDeclaration\"] = \"ExportAllDeclaration\";\n NodeType[\"ExportNamedDeclaration\"] = \"ExportNamedDeclaration\";\n NodeType[\"ExportSpecifier\"] = \"ExportSpecifier\";\n NodeType[\"ExpressionStatement\"] = \"ExpressionStatement\";\n NodeType[\"ForStatement\"] = \"ForStatement\";\n NodeType[\"ForInStatement\"] = \"ForInStatement\";\n NodeType[\"ForOfStatement\"] = \"ForOfStatement\";\n NodeType[\"FunctionDeclaration\"] = \"FunctionDeclaration\";\n NodeType[\"FunctionExpression\"] = \"FunctionExpression\";\n NodeType[\"Identifier\"] = \"Identifier\";\n NodeType[\"IfStatement\"] = \"IfStatement\";\n NodeType[\"ImportDeclaration\"] = \"ImportDeclaration\";\n NodeType[\"ImportDefaultSpecifier\"] = \"ImportDefaultSpecifier\";\n NodeType[\"ImportNamespaceSpecifier\"] = \"ImportNamespaceSpecifier\";\n NodeType[\"ImportSpecifier\"] = \"ImportSpecifier\";\n NodeType[\"LabeledStatement\"] = \"LabeledStatement\";\n NodeType[\"Literal\"] = \"Literal\";\n NodeType[\"LogicalExpression\"] = \"LogicalExpression\";\n NodeType[\"MemberExpression\"] = \"MemberExpression\";\n NodeType[\"MethodDefinition\"] = \"MethodDefinition\";\n NodeType[\"ObjectExpression\"] = \"ObjectExpression\";\n NodeType[\"ObjectPattern\"] = \"ObjectPattern\";\n NodeType[\"Program\"] = \"Program\";\n NodeType[\"Property\"] = \"Property\";\n NodeType[\"RestElement\"] = \"RestElement\";\n NodeType[\"ReturnStatement\"] = \"ReturnStatement\";\n NodeType[\"SequenceExpression\"] = \"SequenceExpression\";\n NodeType[\"SpreadElement\"] = \"SpreadElement\";\n NodeType[\"Super\"] = \"Super\";\n NodeType[\"SwitchCase\"] = \"SwitchCase\";\n NodeType[\"SwitchStatement\"] = \"SwitchStatement\";\n NodeType[\"TaggedTemplateExpression\"] = \"TaggedTemplateExpression\";\n NodeType[\"TemplateElement\"] = \"TemplateElement\";\n NodeType[\"TemplateLiteral\"] = \"TemplateLiteral\";\n NodeType[\"ThrowStatement\"] = \"ThrowStatement\";\n NodeType[\"TryStatement\"] = \"TryStatement\";\n NodeType[\"UnaryExpression\"] = \"UnaryExpression\";\n NodeType[\"UpdateExpression\"] = \"UpdateExpression\";\n NodeType[\"VariableDeclaration\"] = \"VariableDeclaration\";\n NodeType[\"VariableDeclarator\"] = \"VariableDeclarator\";\n NodeType[\"WhileStatement\"] = \"WhileStatement\";\n NodeType[\"YieldExpression\"] = \"YieldExpression\";\n})(NodeType = exports.NodeType || (exports.NodeType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardResult = void 0;\nvar ObfuscatingGuardResult;\n(function (ObfuscatingGuardResult) {\n ObfuscatingGuardResult[\"ForceTransform\"] = \"ForceTransform\";\n ObfuscatingGuardResult[\"Ignore\"] = \"Ignore\";\n ObfuscatingGuardResult[\"Transform\"] = \"Transform\";\n})(ObfuscatingGuardResult = exports.ObfuscatingGuardResult || (exports.ObfuscatingGuardResult = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsPreset = void 0;\nconst Utils_1 = require(\"../../../utils/Utils\");\nexports.OptionsPreset = Utils_1.Utils.makeEnum({\n Default: 'default',\n LowObfuscation: 'low-obfuscation',\n MediumObfuscation: 'medium-obfuscation',\n HighObfuscation: 'high-obfuscation'\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapMode = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nexports.SourceMapMode = Utils_1.Utils.makeEnum({\n Inline: 'inline',\n Separate: 'separate'\n});\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscationEventEmitter = void 0;\nconst inversify_1 = require(\"inversify\");\nconst eventemitter3_1 = __importDefault(require(\"eventemitter3\"));\ninversify_1.decorate(inversify_1.injectable(), eventemitter3_1.default);\nlet ObfuscationEventEmitter = class ObfuscationEventEmitter extends eventemitter3_1.default {\n};\nObfuscationEventEmitter = __decorate([\n inversify_1.injectable()\n], ObfuscationEventEmitter);\nexports.ObfuscationEventEmitter = ObfuscationEventEmitter;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet AbstractIdentifierNamesGenerator = class AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n this.preservedNamesSet = new Set();\n this.lexicalScopesPreservedNamesMap = new Map();\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n generate(lexicalScopeNode, nameLength) {\n return NodeGuards_1.NodeGuards.isProgramNode(lexicalScopeNode)\n ? this.generateForGlobalScope()\n : this.generateForLexicalScope(lexicalScopeNode);\n }\n preserveName(name) {\n this.preservedNamesSet.add(name);\n }\n preserveNameForLexicalScope(name, lexicalScopeNode) {\n var _a;\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode)) !== null && _a !== void 0 ? _a : new Set();\n preservedNamesForLexicalScopeSet.add(name);\n this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);\n }\n isValidIdentifierName(name) {\n return this.notReservedName(name) && !this.preservedNamesSet.has(name);\n }\n isValidIdentifierNameInLexicalScopes(name, lexicalScopeNodes) {\n var _a;\n if (!this.isValidIdentifierName(name)) {\n return false;\n }\n for (const lexicalScope of lexicalScopeNodes) {\n const preservedNamesForLexicalScopeSet = (_a = this.lexicalScopesPreservedNamesMap.get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!preservedNamesForLexicalScopeSet) {\n continue;\n }\n if (preservedNamesForLexicalScopeSet.has(name)) {\n return false;\n }\n }\n return true;\n }\n notReservedName(name) {\n return this.options.reservedNames.length\n ? !this.options.reservedNames.some((reservedName) => new RegExp(reservedName, 'g').exec(name) !== null)\n : true;\n }\n};\nAbstractIdentifierNamesGenerator = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractIdentifierNamesGenerator);\nexports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DictionaryIdentifierNamesGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DictionaryIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));\n this.identifiersIterator = this.identifierNamesSet.values();\n }\n static incrementIdentifierName(identifierName) {\n let newIdentifierName = '';\n let isSuccess = false;\n for (const character of identifierName) {\n if (!isSuccess && character === character.toUpperCase()) {\n newIdentifierName += character.toLowerCase();\n }\n else if (!isSuccess && character === character.toLowerCase()) {\n newIdentifierName += character.toUpperCase();\n isSuccess = true;\n }\n else {\n newIdentifierName += character;\n }\n }\n if (isSuccess) {\n return newIdentifierName;\n }\n return null;\n }\n generateNext() {\n const identifierName = this.generateNewDictionaryName();\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope() {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewDictionaryName();\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope();\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const identifierName = this.generateNewDictionaryName();\n if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {\n return this.generateForLexicalScope(lexicalScopeNode);\n }\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n generateNewDictionaryName() {\n if (!this.identifierNamesSet.size) {\n throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');\n }\n const iteratorResult = this.identifiersIterator.next();\n if (!iteratorResult.done) {\n const identifierName = iteratorResult.value;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNewDictionaryName();\n }\n return iteratorResult.value;\n }\n this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));\n this.identifiersIterator = this.identifierNamesSet.values();\n return this.generateNewDictionaryName();\n }\n getInitialIdentifierNames(identifierNames) {\n const formattedIdentifierNames = identifierNames\n .filter(Boolean)\n .map((identifierName) => identifierName.toLowerCase());\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n getIncrementedIdentifierNames(identifierNames) {\n const formattedIdentifierNames = [];\n for (const identifierName of identifierNames) {\n const newIdentifierName = DictionaryIdentifierNamesGenerator_1\n .incrementIdentifierName(identifierName);\n if (newIdentifierName) {\n formattedIdentifierNames.push(newIdentifierName);\n }\n }\n return this.arrayUtils.shuffle(formattedIdentifierNames);\n }\n};\nDictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _c : Object])\n], DictionaryIdentifierNamesGenerator);\nexports.DictionaryIdentifierNamesGenerator = DictionaryIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HexadecimalIdentifierNamesGenerator_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HexadecimalIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nconst Utils_1 = require(\"../../utils/Utils\");\nlet HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n generateNext(nameLength) {\n const rangeMinInteger = 10000;\n const rangeMaxInteger = 99999999;\n const randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);\n const hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger);\n const prefixLength = Utils_1.Utils.hexadecimalPrefix.length;\n const baseNameLength = (nameLength !== null && nameLength !== void 0 ? nameLength : HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength)\n + prefixLength;\n const baseIdentifierName = hexadecimalNumber.slice(0, baseNameLength);\n const identifierName = `_${baseIdentifierName}`;\n if (!this.isValidIdentifierName(identifierName)) {\n return this.generateNext(nameLength);\n }\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const identifierName = this.generateNext(nameLength);\n return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n return this.generateNext(nameLength);\n }\n};\nHexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6;\nHexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], HexadecimalIdentifierNamesGenerator);\nexports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledIdentifierNamesGenerator_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst AbstractIdentifierNamesGenerator_1 = require(\"./AbstractIdentifierNamesGenerator\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n generateNext(nameLength) {\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n this.updatePreviousMangledName(identifierName);\n this.preserveName(identifierName);\n return identifierName;\n }\n generateForGlobalScope(nameLength) {\n const prefix = this.options.identifiersPrefix ?\n `${this.options.identifiersPrefix}`\n : '';\n const identifierName = this.generateNewMangledName(this.previousMangledName);\n const identifierNameWithPrefix = `${prefix}${identifierName}`;\n this.updatePreviousMangledName(identifierName);\n if (!this.isValidIdentifierName(identifierNameWithPrefix)) {\n return this.generateForGlobalScope(nameLength);\n }\n this.preserveName(identifierNameWithPrefix);\n return identifierNameWithPrefix;\n }\n generateForLexicalScope(lexicalScopeNode, nameLength) {\n const lexicalScopes = [\n lexicalScopeNode,\n ...NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)\n ];\n const lastMangledNameForScope = this.getLastMangledNameForScopes(lexicalScopes);\n let identifierName = lastMangledNameForScope;\n do {\n identifierName = this.generateNewMangledName(identifierName);\n } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));\n MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);\n this.updatePreviousMangledName(identifierName);\n this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);\n return identifierName;\n }\n isIncrementedMangledName(nextName, prevName) {\n if (nextName === prevName) {\n return false;\n }\n const nextNameLength = nextName.length;\n const prevNameLength = prevName.length;\n if (nextNameLength !== prevNameLength) {\n return nextNameLength > prevNameLength;\n }\n const nameSequence = this.getNameSequence();\n for (let i = 0; i < nextNameLength; i++) {\n const nextNameCharacter = nextName[i];\n const prevNameCharacter = prevName[i];\n if (nextNameCharacter === prevNameCharacter) {\n continue;\n }\n const indexOfNextNameCharacter = nameSequence.indexOf(nextNameCharacter);\n const indexOfPrevNameCharacter = nameSequence.indexOf(prevNameCharacter);\n return indexOfNextNameCharacter > indexOfPrevNameCharacter;\n }\n throw new Error('Something goes wrong during comparison of mangled names');\n }\n isValidIdentifierName(mangledName) {\n return super.isValidIdentifierName(mangledName)\n && !MangledIdentifierNamesGenerator_1.reservedNamesSet.has(mangledName);\n }\n getNameSequence() {\n return MangledIdentifierNamesGenerator_1.nameSequence;\n }\n updatePreviousMangledName(name) {\n if (!this.isIncrementedMangledName(name, this.previousMangledName)) {\n return;\n }\n this.previousMangledName = name;\n }\n generateNewMangledName(previousMangledName) {\n const generateNewMangledName = (name) => {\n const nameSequence = this.getNameSequence();\n const nameSequenceLength = nameSequence.length;\n const nameLength = name.length;\n const zeroSequence = (num) => {\n return '0'.repeat(num);\n };\n let index = nameLength - 1;\n do {\n const character = name[index];\n const indexInSequence = nameSequence.indexOf(character);\n const lastNameSequenceIndex = nameSequenceLength - 1;\n if (indexInSequence !== lastNameSequenceIndex) {\n const previousNamePart = name.slice(0, index);\n const nextCharacter = nameSequence[indexInSequence + 1];\n const zeroSequenceLength = nameLength - (index + 1);\n const zeroSequenceCharacters = zeroSequence(zeroSequenceLength);\n return previousNamePart + nextCharacter + zeroSequenceCharacters;\n }\n --index;\n } while (index >= 0);\n const firstLetterCharacter = nameSequence[NumbersString_1.numbersString.length];\n return `${firstLetterCharacter}${zeroSequence(nameLength)}`;\n };\n let newMangledName = generateNewMangledName(previousMangledName);\n if (!this.isValidIdentifierName(newMangledName)) {\n newMangledName = this.generateNewMangledName(newMangledName);\n }\n return newMangledName;\n }\n getLastMangledNameForScopes(lexicalScopeNodes) {\n var _a;\n for (const lexicalScope of lexicalScopeNodes) {\n const lastMangledName = (_a = MangledIdentifierNamesGenerator_1.lastMangledNameInScopeMap\n .get(lexicalScope)) !== null && _a !== void 0 ? _a : null;\n if (!lastMangledName) {\n continue;\n }\n return lastMangledName;\n }\n return MangledIdentifierNamesGenerator_1.initMangledNameCharacter;\n }\n};\nMangledIdentifierNamesGenerator.initMangledNameCharacter = '9';\nMangledIdentifierNamesGenerator.lastMangledNameInScopeMap = new WeakMap();\nMangledIdentifierNamesGenerator.nameSequence = [\n ...`${NumbersString_1.numbersString}${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`\n];\nMangledIdentifierNamesGenerator.reservedNamesSet = new Set([\n 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto',\n 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try',\n 'var', 'void', 'with'\n]);\nMangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MangledIdentifierNamesGenerator);\nexports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MangledShuffledIdentifierNamesGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MangledShuffledIdentifierNamesGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NumbersString_1 = require(\"../../constants/NumbersString\");\nconst AlphabetString_1 = require(\"../../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../../constants/AlphabetStringUppercase\");\nconst MangledIdentifierNamesGenerator_1 = require(\"./MangledIdentifierNamesGenerator\");\nlet MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator {\n constructor(arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n initialize() {\n this.initializeNameSequence([\n ...`${NumbersString_1.numbersString}`,\n ...this.arrayUtils.shuffle([...`${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`])\n ]);\n }\n initializeNameSequence(nameSequence) {\n if (!this.getNameSequence()) {\n MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence = nameSequence;\n }\n }\n getNameSequence() {\n return MangledShuffledIdentifierNamesGenerator_1.shuffledNameSequence;\n }\n generateNewMangledName(previousMangledName) {\n return super.generateNewMangledName(previousMangledName);\n }\n};\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MangledShuffledIdentifierNamesGenerator.prototype, \"initialize\", null);\nMangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], MangledShuffledIdentifierNamesGenerator);\nexports.MangledShuffledIdentifierNamesGenerator = MangledShuffledIdentifierNamesGenerator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar Logger_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst chalk_1 = __importDefault(require(\"chalk\"));\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst LoggingPrefix_1 = require(\"../enums/logger/LoggingPrefix\");\nlet Logger = Logger_1 = class Logger {\n constructor(options) {\n this.options = options;\n }\n static log(loggingLevelColor, loggingPrefix, loggingMessage, value) {\n const processedMessage = loggingLevelColor(`\\n${loggingPrefix} ${loggingMessage}`);\n console.log(processedMessage, value !== null && value !== void 0 ? value : '');\n }\n info(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n success(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n warn(loggingMessage, value) {\n if (!this.options.log) {\n return;\n }\n Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value);\n }\n};\nLogger.colorInfo = chalk_1.default.cyan;\nLogger.colorSuccess = chalk_1.default.green;\nLogger.colorWarn = chalk_1.default.yellow;\nLogger = Logger_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], Logger);\nexports.Logger = Logger;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractNodeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet AbstractNodeTransformer = class AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n};\nAbstractNodeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractNodeTransformer);\nexports.AbstractNodeTransformer = AbstractNodeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst AbstractTransformerNamesGroupsBuilder_1 = require(\"../utils/AbstractTransformerNamesGroupsBuilder\");\nlet NodeTransformerNamesGroupsBuilder = class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder_1.AbstractTransformerNamesGroupsBuilder {\n};\nNodeTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable()\n], NodeTransformerNamesGroupsBuilder);\nexports.NodeTransformerNamesGroupsBuilder = NodeTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeTransformersRunner = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TNodeTransformerFactory_1 = require(\"../types/container/node-transformers/TNodeTransformerFactory\");\nconst ITransformerNamesGroupsBuilder_1 = require(\"../interfaces/utils/ITransformerNamesGroupsBuilder\");\nconst VisitorDirection_1 = require(\"../enums/node-transformers/VisitorDirection\");\nconst NodeGuards_1 = require(\"../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../node/NodeMetadata\");\nlet NodeTransformersRunner = class NodeTransformersRunner {\n constructor(nodeTransformerFactory, nodeTransformerNamesGroupsBuilder) {\n this.nodeTransformerFactory = nodeTransformerFactory;\n this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;\n }\n transform(astTree, nodeTransformerNames, nodeTransformationStage) {\n if (!nodeTransformerNames.length) {\n return astTree;\n }\n const normalizedNodeTransformers = this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);\n const nodeTransformerNamesGroups = this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);\n for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {\n const enterVisitors = [];\n const leaveVisitors = [];\n for (const nodeTransformerName of nodeTransformerNamesGroup) {\n const nodeTransformer = normalizedNodeTransformers[nodeTransformerName];\n const visitor = nodeTransformer.getVisitor(nodeTransformationStage);\n if (!visitor) {\n continue;\n }\n if (visitor.enter) {\n enterVisitors.push({ enter: visitor.enter });\n }\n if (visitor.leave) {\n leaveVisitors.push({ leave: visitor.leave });\n }\n }\n if (!enterVisitors.length && !leaveVisitors.length) {\n continue;\n }\n estraverse.replace(astTree, {\n enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter),\n leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave)\n });\n }\n return astTree;\n }\n buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage) {\n return nodeTransformerNames\n .reduce((acc, nodeTransformerName) => {\n const nodeTransformer = this.nodeTransformerFactory(nodeTransformerName);\n if (!nodeTransformer.getVisitor(nodeTransformationStage)) {\n return acc;\n }\n return Object.assign(Object.assign({}, acc), { [nodeTransformerName]: nodeTransformer });\n }, {});\n }\n mergeVisitorsForDirection(visitors, direction) {\n const visitorsLength = visitors.length;\n if (!visitorsLength) {\n return (node, parentNode) => node;\n }\n return (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n for (let i = 0; i < visitorsLength; i++) {\n const visitorFunction = visitors[i][direction];\n if (!visitorFunction) {\n continue;\n }\n const visitorResult = visitorFunction(node, parentNode);\n if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) {\n continue;\n }\n node = visitorResult;\n }\n return node;\n };\n }\n};\nNodeTransformersRunner = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TNodeTransformerFactory_1.TNodeTransformerFactory !== \"undefined\" && TNodeTransformerFactory_1.TNodeTransformerFactory) === \"function\" ? _a : Object, typeof (_b = typeof ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder !== \"undefined\" && ITransformerNamesGroupsBuilder_1.ITransformerNamesGroupsBuilder) === \"function\" ? _b : Object])\n], NodeTransformersRunner);\nexports.NodeTransformersRunner = NodeTransformersRunner;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BlockStatementControlFlowTransformer_1, _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TControlFlowCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = class BlockStatementControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.arrayUtils = arrayUtils;\n }\n static isProhibitedStatementNode(node) {\n const isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(node)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(node);\n const isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)\n && (node.kind === 'const' || node.kind === 'let');\n const isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(node);\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node)\n || isBreakOrContinueStatement\n || isVariableDeclarationWithLetOrConstKind\n || isClassDeclaration;\n }\n static canTransformBlockStatementNode(blockStatementNode) {\n let canTransform = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (BlockStatementControlFlowTransformer_1.isProhibitedStatementNode(node)) {\n canTransform = false;\n }\n }\n });\n if (blockStatementNode.body.length <= 4) {\n canTransform = false;\n }\n return canTransform;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(blockStatementNode, parentNode) {\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||\n !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const blockStatementBody = blockStatementNode.body;\n const originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length);\n const shuffledKeys = this.arrayUtils.shuffle(originalKeys);\n const originalKeysIndexesInShuffledArray = originalKeys.map((key) => shuffledKeys.indexOf(key));\n const blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);\n blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray);\n const newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nBlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], BlockStatementControlFlowTransformer);\nexports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FunctionControlFlowTransformer_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FunctionControlFlowTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TControlFlowCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst TControlFlowReplacerFactory_1 = require(\"../../types/container/node-transformers/TControlFlowReplacerFactory\");\nconst TControlFlowStorageFactory_1 = require(\"../../types/container/node-transformers/TControlFlowStorageFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ControlFlowReplacer_1 = require(\"../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = class FunctionControlFlowTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.controlFlowData = new Map();\n this.visitedFunctionNodes = new Set();\n this.hostNodesWithControlFlowNode = new Set();\n this.controlFlowStorageFactory = controlFlowStorageFactory;\n this.controlFlowReplacerFactory = controlFlowReplacerFactory;\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.ControlFlowFlattening:\n return {\n leave: (node, parentNode) => {\n if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(functionNode, parentNode) {\n this.visitedFunctionNodes.add(functionNode);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) {\n return functionNode;\n }\n const hostNode = this.getHostNode(functionNode.body);\n const controlFlowStorage = this.getControlFlowStorage(hostNode);\n this.controlFlowData.set(hostNode, controlFlowStorage);\n this.transformFunctionBody(functionNode.body, controlFlowStorage);\n if (!controlFlowStorage.getLength()) {\n return functionNode;\n }\n const controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode);\n controlFlowStorageCustomNode.initialize(controlFlowStorage);\n NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());\n this.hostNodesWithControlFlowNode.add(hostNode);\n NodeUtils_1.NodeUtils.parentizeAst(functionNode);\n return functionNode;\n }\n getControlFlowStorage(hostNode) {\n const controlFlowStorage = this.controlFlowStorageFactory();\n if (this.controlFlowData.has(hostNode)) {\n if (this.hostNodesWithControlFlowNode.has(hostNode)) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(hostNode)) {\n hostNode.consequent.shift();\n }\n else {\n hostNode.body.shift();\n }\n }\n const hostControlFlowStorage = this.controlFlowData.get(hostNode);\n controlFlowStorage.mergeWith(hostControlFlowStorage, true);\n }\n return controlFlowStorage;\n }\n getHostNode(functionNodeBody) {\n const blockScopesOfNode = NodeStatementUtils_1.NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);\n if (blockScopesOfNode.length === 1) {\n return functionNodeBody;\n }\n else {\n blockScopesOfNode.pop();\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) {\n blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth);\n }\n if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) {\n blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth;\n }\n return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);\n }\n isVisitedFunctionNode(node) {\n return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node);\n }\n transformFunctionBody(functionNodeBody, controlFlowStorage) {\n estraverse.replace(functionNodeBody, {\n enter: (node, parentNode) => {\n if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) {\n return estraverse.VisitorOption.Skip;\n }\n if (this.isVisitedFunctionNode(node) || !parentNode) {\n return estraverse.VisitorOption.Skip;\n }\n if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) {\n return node;\n }\n if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {\n return node;\n }\n const controlFlowReplacerName = FunctionControlFlowTransformer_1\n .controlFlowReplacersMap.get(node.type);\n if (controlFlowReplacerName === undefined) {\n return node;\n }\n return Object.assign(Object.assign({}, this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage)), { parentNode });\n }\n });\n }\n};\nFunctionControlFlowTransformer.controlFlowReplacersMap = new Map([\n [NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],\n [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer],\n [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],\n [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]\n]);\nFunctionControlFlowTransformer.hostNodeSearchMinDepth = 0;\nFunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2;\nFunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowStorageFactory_1.TControlFlowStorageFactory !== \"undefined\" && TControlFlowStorageFactory_1.TControlFlowStorageFactory) === \"function\" ? _a : Object, typeof (_b = typeof TControlFlowReplacerFactory_1.TControlFlowReplacerFactory !== \"undefined\" && TControlFlowReplacerFactory_1.TControlFlowReplacerFactory) === \"function\" ? _b : Object, typeof (_c = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _c : Object, typeof (_d = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _d : Object, typeof (_e = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _e : Object])\n], FunctionControlFlowTransformer);\nexports.FunctionControlFlowTransformer = FunctionControlFlowTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AbstractControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nlet AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = class AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n this.replacerDataByControlFlowStorageId = new Map();\n this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n static getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) {\n let storageKeysById;\n if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {\n storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId);\n }\n else {\n storageKeysById = new Map();\n }\n return storageKeysById;\n }\n insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) {\n const controlFlowStorageId = controlFlowStorage.getStorageId();\n const storageKeysById = AbstractControlFlowReplacer_1\n .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);\n const storageKeysForCurrentId = storageKeysById.get(replacerId);\n if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&\n storageKeysForCurrentId &&\n storageKeysForCurrentId.length) {\n return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);\n }\n const generateStorageKey = (length) => {\n const key = this.randomGenerator.getRandomString(length);\n if (controlFlowStorage.getStorage().has(key)) {\n return generateStorageKey(length);\n }\n return key;\n };\n const storageKey = generateStorageKey(5);\n storageKeysById.set(replacerId, [storageKey]);\n this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);\n controlFlowStorage.set(storageKey, customNode);\n return storageKey;\n }\n};\nAbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], AbstractControlFlowReplacer);\nexports.AbstractControlFlowReplacer = AbstractControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar BinaryExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinaryExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nlet BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(binaryExpressionNode, parentNode, controlFlowStorage) {\n const operator = binaryExpressionNode.operator;\n const binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode);\n binaryExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, operator, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right);\n }\n};\nBinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nBinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], BinaryExpressionControlFlowReplacer);\nexports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CallExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CallExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(callExpressionNode, parentNode, controlFlowStorage) {\n const callee = callExpressionNode.callee;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) {\n return callExpressionNode;\n }\n const replacerId = String(callExpressionNode.arguments.length);\n const callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode);\n const expressionArguments = callExpressionNode.arguments;\n callExpressionFunctionCustomNode.initialize(expressionArguments);\n const storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nCallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nCallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], CallExpressionControlFlowReplacer);\nexports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionWithOperatorControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ExpressionWithOperatorControlFlowReplacer = class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nExpressionWithOperatorControlFlowReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ExpressionWithOperatorControlFlowReplacer);\nexports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LogicalExpressionControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogicalExpressionControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst ExpressionWithOperatorControlFlowReplacer_1 = require(\"./ExpressionWithOperatorControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(logicalExpressionNode, parentNode, controlFlowStorage) {\n if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {\n return logicalExpressionNode;\n }\n const operator = logicalExpressionNode.operator;\n const logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode);\n logicalExpressionFunctionCustomNode.initialize(operator);\n const storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, operator, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right);\n }\n checkForProhibitedExpressions(leftExpression, rightExpression) {\n return [leftExpression, rightExpression].some((expressionNode) => {\n let nodeForCheck;\n if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) {\n nodeForCheck = expressionNode;\n }\n else {\n nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode);\n }\n return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) &&\n !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck);\n });\n }\n};\nLogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5;\nLogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], LogicalExpressionControlFlowReplacer);\nexports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringLiteralControlFlowReplacer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringLiteralControlFlowReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TControlFlowCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TControlFlowCustomNodeFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../../interfaces/utils/IRandomGenerator\");\nconst ControlFlowCustomNode_1 = require(\"../../../enums/custom-nodes/ControlFlowCustomNode\");\nconst AbstractControlFlowReplacer_1 = require(\"./AbstractControlFlowReplacer\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../../node/NodeLiteralUtils\");\nlet StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer_1.AbstractControlFlowReplacer {\n constructor(controlFlowCustomNodeFactory, randomGenerator, options) {\n super(controlFlowCustomNodeFactory, randomGenerator, options);\n }\n replace(literalNode, parentNode, controlFlowStorage) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {\n return literalNode;\n }\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode) || literalNode.value.length < 3) {\n return literalNode;\n }\n const replacerId = String(literalNode.value);\n const literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode);\n literalFunctionCustomNode.initialize(literalNode.value);\n const storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance);\n return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);\n }\n getControlFlowStorageCallNode(controlFlowStorageId, storageKey) {\n const controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);\n controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);\n const statementNode = controlFlowStorageCallCustomNode.getNode()[0];\n if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n};\nStringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1;\nStringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory !== \"undefined\" && TControlFlowCustomNodeFactory_1.TControlFlowCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], StringLiteralControlFlowReplacer);\nexports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet BooleanLiteralTransformer = class BooleanLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'boolean') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const unaryExpressionNode = literalValue\n ? this.getTrueUnaryExpressionNode()\n : this.getFalseUnaryExpressionNode();\n NodeUtils_1.NodeUtils.parentizeNode(unaryExpressionNode, parentNode);\n return unaryExpressionNode;\n }\n getTrueUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', this.getFalseUnaryExpressionNode());\n }\n getFalseUnaryExpressionNode() {\n return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode());\n }\n};\nBooleanLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], BooleanLiteralTransformer);\nexports.BooleanLiteralTransformer = BooleanLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportSpecifierTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExportSpecifierTransformer = class ExportSpecifierTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExportSpecifierNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(exportSpecifierNode, parentNode) {\n if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) {\n exportSpecifierNode.exported = NodeUtils_1.NodeUtils.clone(exportSpecifierNode.local);\n }\n return exportSpecifierNode;\n }\n};\nExportSpecifierTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ExportSpecifierTransformer);\nexports.ExportSpecifierTransformer = ExportSpecifierTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MemberExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MemberExpressionTransformer = class MemberExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(memberExpressionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) {\n if (memberExpressionNode.computed) {\n return memberExpressionNode;\n }\n memberExpressionNode.computed = true;\n memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name);\n }\n return memberExpressionNode;\n }\n};\nMemberExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MemberExpressionTransformer);\nexports.MemberExpressionTransformer = MemberExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MethodDefinitionTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MethodDefinitionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet MethodDefinitionTransformer = MethodDefinitionTransformer_1 = class MethodDefinitionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(methodDefinitionNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key)) {\n return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(methodDefinitionNode.key)) {\n return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key);\n }\n return methodDefinitionNode;\n }\n replaceIdentifierKey(methodDefinitionNode, keyNode) {\n if (!MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.name)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(keyNode.name);\n }\n return methodDefinitionNode;\n }\n replaceLiteralKey(methodDefinitionNode, keyNode) {\n if (typeof keyNode.value === 'string'\n && !MethodDefinitionTransformer_1.ignoredNames.includes(keyNode.value)\n && !methodDefinitionNode.computed) {\n methodDefinitionNode.computed = true;\n }\n return methodDefinitionNode;\n }\n};\nMethodDefinitionTransformer.ignoredNames = ['constructor'];\nMethodDefinitionTransformer = MethodDefinitionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MethodDefinitionTransformer);\nexports.MethodDefinitionTransformer = MethodDefinitionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberLiteralTransformer = class NumberLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.NumberToNumericalExpressionTransformer\n ];\n this.numberLiteralCache = new Map();\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') {\n return literalNode;\n }\n const literalValue = literalNode.value;\n let rawValue;\n if (this.numberLiteralCache.has(literalValue)) {\n rawValue = this.numberLiteralCache.get(literalValue);\n }\n else {\n if (NumberUtils_1.NumberUtils.isCeil(literalValue)) {\n rawValue = NumberUtils_1.NumberUtils.toHex(literalValue);\n }\n else {\n rawValue = String(literalValue);\n }\n this.numberLiteralCache.set(literalValue, rawValue);\n }\n return NodeFactory_1.NodeFactory.literalNode(literalValue, rawValue);\n }\n};\nNumberLiteralTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], NumberLiteralTransformer);\nexports.NumberLiteralTransformer = NumberLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberToNumericalExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst INumberNumericalExpressionAnalyzer_1 = require(\"../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NumberUtils_1 = require(\"../../utils/NumberUtils\");\nlet NumberToNumericalExpressionTransformer = class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(numberNumericalExpressionAnalyzer, randomGenerator, options) {\n super(randomGenerator, options);\n this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.numbersToExpressions) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (typeof literalNode.value !== 'number') {\n return literalNode;\n }\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) {\n return literalNode;\n }\n const numberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value);\n return this.convertNumericalExpressionDataToNode(numberNumericalExpressionData);\n }\n convertNumericalExpressionDataToNode(numberNumericalExpressionData, operator = '+') {\n var _a;\n const numberNumericalExpressionDataLength = numberNumericalExpressionData.length;\n const leftParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1)\n : [numberNumericalExpressionData[0]];\n const rightParts = numberNumericalExpressionDataLength > 1\n ? numberNumericalExpressionData.slice(-1)\n : [];\n if (rightParts.length) {\n return this.convertPartsToBinaryExpression(operator, leftParts, rightParts);\n }\n const firstLeftPartOrNumber = (_a = leftParts[0]) !== null && _a !== void 0 ? _a : null;\n return Array.isArray(firstLeftPartOrNumber)\n ? this.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, '*')\n : this.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber);\n }\n convertPartsToBinaryExpression(operator, leftParts, rightParts) {\n const rightPartOrNumber = rightParts[0];\n if (Array.isArray(rightPartOrNumber)) {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertNumericalExpressionDataToNode(rightPartOrNumber, '*'));\n }\n else {\n return NodeFactory_1.NodeFactory.binaryExpressionNode(operator, this.convertNumericalExpressionDataToNode(leftParts), this.convertPartOrNumberToLiteralNode(rightPartOrNumber));\n }\n }\n convertPartOrNumberToLiteralNode(partOrNumber) {\n const number = Array.isArray(partOrNumber)\n ? partOrNumber[0]\n : partOrNumber;\n const isPositiveNumber = NumberUtils_1.NumberUtils.isPositive(number);\n const literalNode = NodeFactory_1.NodeFactory.literalNode(Math.abs(number));\n return isPositiveNumber\n ? literalNode\n : NodeFactory_1.NodeFactory.unaryExpressionNode('-', literalNode);\n }\n};\nNumberToNumericalExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer !== \"undefined\" && INumberNumericalExpressionAnalyzer_1.INumberNumericalExpressionAnalyzer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], NumberToNumericalExpressionTransformer);\nexports.NumberToNumericalExpressionTransformer = NumberToNumericalExpressionTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObjectExpressionKeysTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionKeysTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TObjectExpressionExtractorFactory_1 = require(\"../../types/container/node-transformers/TObjectExpressionExtractorFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObjectExpressionExtractor_1 = require(\"../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = class ObjectExpressionKeysTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(objectExpressionExtractorFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;\n }\n static isProhibitedObjectExpressionNode(objectExpressionNode, objectExpressionParentNode, objectExpressionHostStatement) {\n return ObjectExpressionKeysTransformer_1.isReferencedIdentifierName(objectExpressionNode, objectExpressionHostStatement)\n || ObjectExpressionKeysTransformer_1.isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionParentNode)\n || ObjectExpressionKeysTransformer_1.isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostStatement);\n }\n static isReferencedIdentifierName(objectExpressionNode, objectExpressionHostNode) {\n const identifierNamesSet = [];\n let isReferencedIdentifierName = false;\n let isCurrentNode = false;\n estraverse.traverse(objectExpressionHostNode, {\n enter: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = true;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return;\n }\n if (!isCurrentNode) {\n identifierNamesSet.push(node.name);\n return;\n }\n if (identifierNamesSet.includes(node.name)) {\n isReferencedIdentifierName = true;\n }\n },\n leave: (node) => {\n if (node === objectExpressionNode) {\n isCurrentNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isReferencedIdentifierName;\n }\n static isProhibitedArrowFunctionExpression(objectExpressionNode, objectExpressionNodeParentNode) {\n return NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)\n && objectExpressionNodeParentNode.body === objectExpressionNode;\n }\n static isProhibitedSequenceExpression(objectExpressionNode, objectExpressionHostNode) {\n return NodeGuards_1.NodeGuards.isExpressionStatementNode(objectExpressionHostNode)\n && NodeGuards_1.NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)\n && objectExpressionHostNode.expression.expressions.some((expressionNode) => NodeGuards_1.NodeGuards.isCallExpressionNode(expressionNode)\n && NodeGuards_1.NodeGuards.isSuperNode(expressionNode.callee));\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.transformObjectKeys) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n leave: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n if (!objectExpressionNode.properties.length) {\n return objectExpressionNode;\n }\n const hostStatement = NodeStatementUtils_1.NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);\n if (ObjectExpressionKeysTransformer_1.isProhibitedObjectExpressionNode(objectExpressionNode, parentNode, hostStatement)) {\n return objectExpressionNode;\n }\n return this.applyObjectExpressionKeysExtractorsRecursive(ObjectExpressionKeysTransformer_1.objectExpressionExtractorNames, objectExpressionNode, hostStatement);\n }\n applyObjectExpressionKeysExtractorsRecursive(objectExpressionExtractorNames, objectExpressionNode, hostStatement) {\n const newObjectExpressionExtractorNames = [...objectExpressionExtractorNames];\n const objectExpressionExtractor = newObjectExpressionExtractorNames.shift();\n if (!objectExpressionExtractor) {\n return objectExpressionNode;\n }\n const { nodeToReplace, objectExpressionHostStatement: newObjectExpressionHostStatement, objectExpressionNode: newObjectExpressionNode } = this.objectExpressionExtractorFactory(objectExpressionExtractor)\n .extract(objectExpressionNode, hostStatement);\n this.applyObjectExpressionKeysExtractorsRecursive(newObjectExpressionExtractorNames, newObjectExpressionNode, newObjectExpressionHostStatement);\n return nodeToReplace;\n }\n};\nObjectExpressionKeysTransformer.objectExpressionExtractorNames = [\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,\n ObjectExpressionExtractor_1.ObjectExpressionExtractor.BasePropertiesExtractor\n];\nObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory !== \"undefined\" && TObjectExpressionExtractorFactory_1.TObjectExpressionExtractorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ObjectExpressionKeysTransformer);\nexports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ObjectExpressionTransformer = class ObjectExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(objectExpressionNode, parentNode) {\n objectExpressionNode.properties\n .forEach((property) => {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n return;\n }\n if (!property.key) {\n return;\n }\n if (property.computed) {\n this.transformComputedProperty(property);\n }\n else {\n this.transformBaseProperty(property);\n }\n });\n return objectExpressionNode;\n }\n transformComputedProperty(property) {\n if (!NodeGuards_1.NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.value);\n }\n transformBaseProperty(property) {\n if (property.shorthand) {\n property.shorthand = false;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n return;\n }\n property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name);\n }\n};\nObjectExpressionTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObjectExpressionTransformer);\nexports.ObjectExpressionTransformer = ObjectExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectPatternPropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ObjectPatternPropertiesTransformer = class ObjectPatternPropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(propertyNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) {\n return propertyNode;\n }\n if (!this.options.renameGlobals) {\n const lexicalScope = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(propertyNode);\n const shouldNotTransformGlobalPropertyNode = !!lexicalScope && NodeGuards_1.NodeGuards.isProgramNode(lexicalScope);\n if (shouldNotTransformGlobalPropertyNode) {\n return propertyNode;\n }\n }\n propertyNode.shorthand = false;\n propertyNode.value = NodeUtils_1.NodeUtils.clone(propertyNode.value);\n NodeUtils_1.NodeUtils.parentizeNode(propertyNode.value, propertyNode);\n return propertyNode;\n }\n};\nObjectPatternPropertiesTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObjectPatternPropertiesTransformer);\nexports.ObjectPatternPropertiesTransformer = ObjectPatternPropertiesTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SplitStringTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst stringz = __importStar(require(\"stringz\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet SplitStringTransformer = SplitStringTransformer_1 = class SplitStringTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer,\n NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer\n ];\n }\n static chunkString(string, stringLength, chunkSize) {\n const chunksCount = Math.ceil(stringLength / chunkSize);\n const chunks = [];\n let nextChunkStartIndex = 0;\n for (let chunkIndex = 0; chunkIndex < chunksCount; ++chunkIndex, nextChunkStartIndex += chunkSize) {\n chunks[chunkIndex] = stringz.substr(string, nextChunkStartIndex, chunkSize);\n }\n return chunks;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (!this.options.splitStrings) {\n return;\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const firstPassChunksNode = this.transformLiteralNodeByChunkLength(literalNode, parentNode, SplitStringTransformer_1.firstPassChunkLength);\n const secondPassChunksNode = estraverse.replace(firstPassChunksNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformLiteralNodeByChunkLength(node, parentNode, this.options.splitStringsChunkLength);\n }\n }\n });\n return secondPassChunksNode;\n }\n transformLiteralNodeByChunkLength(literalNode, parentNode, chunkLength) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const valueLength = stringz.length(literalNode.value);\n if (chunkLength >= valueLength) {\n return literalNode;\n }\n const stringChunks = SplitStringTransformer_1.chunkString(literalNode.value, valueLength, chunkLength);\n const binaryExpressionNode = this.transformStringChunksToBinaryExpressionNode(stringChunks);\n NodeUtils_1.NodeUtils.parentizeAst(binaryExpressionNode);\n NodeUtils_1.NodeUtils.parentizeNode(binaryExpressionNode, parentNode);\n return binaryExpressionNode;\n }\n transformStringChunksToBinaryExpressionNode(chunks) {\n const firstChunk = chunks.shift();\n const secondChunk = chunks.shift();\n if (!firstChunk || !secondChunk) {\n throw new Error('First and second chunks values should not be empty');\n }\n const initialBinaryExpressionNode = NodeFactory_1.NodeFactory.binaryExpressionNode('+', NodeFactory_1.NodeFactory.literalNode(firstChunk), NodeFactory_1.NodeFactory.literalNode(secondChunk));\n return chunks.reduce((binaryExpressionNode, chunk) => {\n const chunkLiteralNode = NodeFactory_1.NodeFactory.literalNode(chunk);\n return NodeFactory_1.NodeFactory.binaryExpressionNode('+', binaryExpressionNode, chunkLiteralNode);\n }, initialBinaryExpressionNode);\n }\n};\nSplitStringTransformer.firstPassChunkLength = 1000;\nSplitStringTransformer = SplitStringTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], SplitStringTransformer);\nexports.SplitStringTransformer = SplitStringTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar TemplateLiteralTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplateLiteralTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet TemplateLiteralTransformer = TemplateLiteralTransformer_1 = class TemplateLiteralTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n static isLiteralNodeWithStringValue(node) {\n return !!node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string';\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(templateLiteralNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode)) {\n return templateLiteralNode;\n }\n return this.transformTemplateLiteralNode(templateLiteralNode, parentNode);\n }\n transformTemplateLiteralNode(templateLiteralNode, parentNode) {\n const templateLiteralExpressions = templateLiteralNode.expressions;\n let nodes = [];\n templateLiteralNode.quasis.forEach((templateElement) => {\n nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked));\n const expression = templateLiteralExpressions.shift();\n if (!expression) {\n return;\n }\n nodes.push(expression);\n });\n nodes = nodes.filter((node) => {\n return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === '');\n });\n if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) &&\n !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) {\n nodes.unshift(NodeFactory_1.NodeFactory.literalNode(''));\n }\n let transformedNode;\n if (nodes.length > 1) {\n let root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift());\n nodes.forEach((node) => {\n root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node);\n });\n transformedNode = root;\n }\n else {\n transformedNode = nodes[0];\n }\n NodeUtils_1.NodeUtils.parentizeAst(transformedNode);\n NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n return transformedNode;\n }\n};\nTemplateLiteralTransformer = TemplateLiteralTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], TemplateLiteralTransformer);\nexports.TemplateLiteralTransformer = TemplateLiteralTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BasePropertiesExtractor_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePropertiesExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nlet BasePropertiesExtractor = BasePropertiesExtractor_1 = class BasePropertiesExtractor {\n static getPropertyNodeKeyName(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode)\n && (typeof propertyKeyNode.value === 'string'\n || typeof propertyKeyNode.value === 'number')) {\n return propertyKeyNode.value.toString();\n }\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) {\n return propertyKeyNode.name;\n }\n return null;\n }\n static isProhibitedPropertyNode(node) {\n return node.kind !== 'init';\n }\n static isProhibitedPattern(node) {\n return !node\n || NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n || NodeGuards_1.NodeGuards.isArrayPatternNode(node)\n || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node)\n || NodeGuards_1.NodeGuards.isRestElementNode(node);\n }\n static shouldCreateLiteralNode(property) {\n return !property.computed\n || (property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key));\n }\n extract(objectExpressionNode, hostStatement) {\n const hostNode = objectExpressionNode.parentNode;\n if (hostNode\n && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(hostNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id)) {\n return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);\n }\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n transformObjectExpressionNode(objectExpressionNode, hostStatement, memberExpressionHostNode) {\n const properties = objectExpressionNode.properties;\n const [expressionStatements, removablePropertyIds] = this\n .extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode);\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);\n NodeAppender_1.NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(hostNodeWithStatements);\n return {\n nodeToReplace: objectExpressionNode,\n objectExpressionHostStatement: hostStatement,\n objectExpressionNode: objectExpressionNode\n };\n }\n extractPropertiesToExpressionStatements(properties, hostStatement, memberExpressionHostNode) {\n const propertiesLength = properties.length;\n const expressionStatements = [];\n const removablePropertyIds = [];\n for (let i = propertiesLength - 1; i >= 0; i--) {\n const property = properties[i];\n if (NodeGuards_1.NodeGuards.isSpreadElementNode(property)) {\n break;\n }\n if (BasePropertiesExtractor_1.isProhibitedPropertyNode(property)) {\n continue;\n }\n const propertyValue = property.value;\n if (BasePropertiesExtractor_1.isProhibitedPattern(propertyValue)) {\n continue;\n }\n const propertyKeyName = BasePropertiesExtractor_1.getPropertyNodeKeyName(property);\n if (!propertyKeyName) {\n continue;\n }\n const shouldCreateLiteralNode = BasePropertiesExtractor_1.shouldCreateLiteralNode(property);\n const memberExpressionProperty = shouldCreateLiteralNode\n ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName)\n : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName);\n const memberExpressionNode = NodeFactory_1.NodeFactory\n .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);\n const expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue));\n if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) {\n this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);\n }\n expressionStatements.unshift(expressionStatementNode);\n removablePropertyIds.unshift(i);\n }\n return [expressionStatements, removablePropertyIds];\n }\n filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) {\n objectExpressionNode.properties = objectExpressionNode.properties\n .filter((property, index) => !removablePropertyIds.includes(index));\n }\n};\nBasePropertiesExtractor = BasePropertiesExtractor_1 = __decorate([\n inversify_1.injectable()\n], BasePropertiesExtractor);\nexports.BasePropertiesExtractor = BasePropertiesExtractor;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectExpressionToVariableDeclarationExtractor = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TObjectExpressionKeysTransformerCustomNodeFactory_1 = require(\"../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory\");\nconst ObjectExpressionKeysTransformerCustomNode_1 = require(\"../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode\");\nconst NodeAppender_1 = require(\"../../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../../node/NodeUtils\");\nconst NodeLexicalScopeUtils_1 = require(\"../../../node/NodeLexicalScopeUtils\");\nlet ObjectExpressionToVariableDeclarationExtractor = class ObjectExpressionToVariableDeclarationExtractor {\n constructor(objectExpressionKeysTransformerCustomNodeFactory) {\n this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;\n }\n extract(objectExpressionNode, hostStatement) {\n return this.transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement);\n }\n transformObjectExpressionToVariableDeclaration(objectExpressionNode, hostStatement) {\n var _a;\n const hostNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(hostStatement);\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)\n ? hostNodeWithStatements\n : (_a = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements)) !== null && _a !== void 0 ? _a : null;\n if (!lexicalScopeNode) {\n throw new Error('Cannot find lexical scope node for the host statement node');\n }\n const properties = objectExpressionNode.properties;\n const newObjectExpressionHostStatement = this.getObjectExpressionHostNode(lexicalScopeNode, properties);\n const statementsToInsert = [newObjectExpressionHostStatement];\n NodeAppender_1.NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);\n NodeUtils_1.NodeUtils.parentizeAst(newObjectExpressionHostStatement);\n NodeUtils_1.NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);\n const newObjectExpressionIdentifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);\n const newObjectExpressionNode = this.getObjectExpressionNode(newObjectExpressionHostStatement);\n return {\n nodeToReplace: newObjectExpressionIdentifier,\n objectExpressionHostStatement: newObjectExpressionHostStatement,\n objectExpressionNode: newObjectExpressionNode\n };\n }\n getObjectExpressionHostNode(lexicalScopeNode, properties) {\n const variableDeclarationHostNodeCustomNode = this.objectExpressionKeysTransformerCustomNodeFactory(ObjectExpressionKeysTransformerCustomNode_1.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);\n variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);\n const statementNode = variableDeclarationHostNodeCustomNode.getNode()[0];\n if (!statementNode\n || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(statementNode)) {\n throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');\n }\n return statementNode;\n }\n getObjectExpressionIdentifierNode(objectExpressionHostNode) {\n const newObjectExpressionIdentifierNode = objectExpressionHostNode.declarations[0].id;\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');\n }\n return newObjectExpressionIdentifierNode;\n }\n getObjectExpressionNode(objectExpressionHostNode) {\n var _a;\n const newObjectExpressionNode = (_a = objectExpressionHostNode.declarations[0].init) !== null && _a !== void 0 ? _a : null;\n if (!newObjectExpressionNode || !NodeGuards_1.NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {\n throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');\n }\n return newObjectExpressionNode;\n }\n};\nObjectExpressionToVariableDeclarationExtractor = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory !== \"undefined\" && TObjectExpressionKeysTransformerCustomNodeFactory_1.TObjectExpressionKeysTransformerCustomNodeFactory) === \"function\" ? _a : Object])\n], ObjectExpressionToVariableDeclarationExtractor);\nexports.ObjectExpressionToVariableDeclarationExtractor = ObjectExpressionToVariableDeclarationExtractor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DeadCodeInjectionTransformer_1, _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst TDeadNodeInjectionCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst INodeTransformersRunner_1 = require(\"../../interfaces/node-transformers/INodeTransformersRunner\");\nconst DeadCodeInjectionCustomNode_1 = require(\"../../enums/custom-nodes/DeadCodeInjectionCustomNode\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeType_1 = require(\"../../enums/node/NodeType\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = class DeadCodeInjectionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) {\n super(randomGenerator, options);\n this.deadCodeInjectionRootAstHostNodeSet = new Set();\n this.collectedBlockStatements = [];\n this.collectedBlockStatementsTotalLength = 0;\n this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;\n this.transformersRunner = transformersRunner;\n }\n static isProhibitedNodeInsideCollectedBlockStatement(targetNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)\n || NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode)\n || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isYieldExpressionNode(targetNode)\n || NodeGuards_1.NodeGuards.isSuperNode(targetNode)\n || (NodeGuards_1.NodeGuards.isForOfStatementNode(targetNode) && targetNode.await);\n }\n static isScopeHoistingFunctionDeclaration(targetNode) {\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) {\n return false;\n }\n const scopeNode = NodeStatementUtils_1.NodeStatementUtils.getScopeOfNode(targetNode);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(targetNode);\n if (indexInScope === 0) {\n return false;\n }\n const slicedBody = scopeBody.slice(0, indexInScope);\n const hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody);\n const functionDeclarationName = targetNode.id.name;\n let isScopeHoistedFunctionDeclaration = false;\n estraverse.traverse(hostBlockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {\n isScopeHoistedFunctionDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isScopeHoistedFunctionDeclaration;\n }\n static isValidCollectedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let nestedBlockStatementsCount = 0;\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n nestedBlockStatementsCount++;\n }\n if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount\n || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node)\n || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n return isValidBlockStatementNode;\n }\n static isValidWrappedBlockStatementNode(blockStatementNode) {\n if (!blockStatementNode.body.length) {\n return false;\n }\n let isValidBlockStatementNode = true;\n estraverse.traverse(blockStatementNode, {\n enter: (node) => {\n if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) {\n isValidBlockStatementNode = false;\n return estraverse.VisitorOption.Break;\n }\n }\n });\n if (!isValidBlockStatementNode) {\n return false;\n }\n const parentNodeWithStatements = NodeStatementUtils_1.NodeStatementUtils\n .getParentNodeWithStatements(blockStatementNode);\n return parentNodeWithStatements.type !== NodeType_1.NodeType.Program;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.DeadCodeInjection:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n return node;\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.deadCodeInjectionRootAstHostNodeSet.size) {\n return null;\n }\n return {\n enter: (node, parentNode) => {\n if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode, parentNode) {\n estraverse.traverse(programNode, {\n enter: (node) => {\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return;\n }\n const clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node);\n if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {\n return;\n }\n const transformedBlockStatementNode = this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);\n this.collectedBlockStatements.push(transformedBlockStatementNode);\n }\n });\n this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;\n }\n transformNode(blockStatementNode, parentNode) {\n const canBreakTraverse = !this.collectedBlockStatements.length\n || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount;\n if (canBreakTraverse) {\n return estraverse.VisitorOption.Break;\n }\n if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold\n || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) {\n return blockStatementNode;\n }\n const minInteger = 0;\n const maxInteger = this.collectedBlockStatements.length - 1;\n const randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger);\n const randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0];\n const isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode;\n if (isDuplicateBlockStatementNodes) {\n return blockStatementNode;\n }\n return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);\n }\n restoreNode(deadCodeInjectionRootAstHostNode, parentNode) {\n const hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0];\n if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {\n throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');\n }\n return hostNodeFirstStatement.body;\n }\n isDeadCodeInjectionRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);\n }\n makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) {\n const hostNode = NodeFactory_1.NodeFactory.programNode([\n NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([], clonedBlockStatementNode))\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(hostNode);\n NodeUtils_1.NodeUtils.parentizeNode(hostNode, hostNode);\n this.transformersRunner.transform(hostNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers);\n return clonedBlockStatementNode;\n }\n replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) {\n const deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([\n NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)\n ]);\n this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);\n const blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);\n blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);\n const newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0];\n NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode);\n return newBlockStatementNode;\n }\n};\nDeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode';\nDeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4;\nDeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5;\nDeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [\n NodeTransformer_1.NodeTransformer.LabeledStatementTransformer,\n NodeTransformer_1.NodeTransformer.ScopeIdentifiersTransformer,\n NodeTransformer_1.NodeTransformer.ScopeThroughIdentifiersTransformer\n];\nDeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformersRunner)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory !== \"undefined\" && TDeadNodeInjectionCustomNodeFactory_1.TDeadNodeInjectionCustomNodeFactory) === \"function\" ? _a : Object, typeof (_b = typeof INodeTransformersRunner_1.INodeTransformersRunner !== \"undefined\" && INodeTransformersRunner_1.INodeTransformersRunner) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object])\n], DeadCodeInjectionTransformer);\nexports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IEscapeSequenceEncoder_1 = require(\"../../interfaces/utils/IEscapeSequenceEncoder\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet EscapeSequenceTransformer = class EscapeSequenceTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, escapeSequenceEncoder) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.CustomCodeHelpersTransformer\n ];\n this.escapeSequenceEncoder = escapeSequenceEncoder;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)) {\n return literalNode;\n }\n const encodedValue = this.escapeSequenceEncoder.encode(literalNode.value, this.options.unicodeEscapeSequence);\n const newLiteralNode = NodeFactory_1.NodeFactory.literalNode(encodedValue);\n NodeUtils_1.NodeUtils.parentizeNode(newLiteralNode, parentNode);\n return newLiteralNode;\n }\n};\nEscapeSequenceTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IEscapeSequenceEncoder_1.IEscapeSequenceEncoder !== \"undefined\" && IEscapeSequenceEncoder_1.IEscapeSequenceEncoder) === \"function\" ? _c : Object])\n], EscapeSequenceTransformer);\nexports.EscapeSequenceTransformer = EscapeSequenceTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CommentsTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommentsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst ConditionalCommentObfuscatingGuard_1 = require(\"../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CommentsTransformer = CommentsTransformer_1 = class CommentsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Initializing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.filterCommentsOnFinalizingTraverse(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(rootNode) {\n rootNode = this.filterCommentsOnPrimaryTraverse(rootNode);\n if (!rootNode.comments || !rootNode.comments.length) {\n return rootNode;\n }\n const comments = rootNode.comments.reverse();\n if (comments.length === 0) {\n return rootNode;\n }\n if (!rootNode.body.length) {\n rootNode.leadingComments = comments;\n return rootNode;\n }\n let isFirstNode = true;\n estraverse.traverse(rootNode, {\n enter: (node) => {\n if (node === rootNode) {\n return;\n }\n const commentIdx = comments.findIndex((comment) => comment.range && node.range && comment.range[0] < node.range[0]);\n if (commentIdx >= 0) {\n (isFirstNode ? rootNode : node).leadingComments =\n comments.splice(commentIdx, comments.length - commentIdx).reverse();\n }\n isFirstNode = false;\n }\n });\n if (comments.length > 0) {\n rootNode.trailingComments = comments.reverse();\n }\n return rootNode;\n }\n filterCommentsOnPrimaryTraverse(rootNode) {\n var _a;\n rootNode.comments = (_a = rootNode.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, true));\n return rootNode;\n }\n filterCommentsOnFinalizingTraverse(rootNode) {\n estraverse.replace(rootNode, {\n enter: (node) => {\n var _a, _b;\n if (node.leadingComments) {\n node.leadingComments = (_a = node.leadingComments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.filterComment(comment, false));\n }\n if (node.trailingComments) {\n node.trailingComments = (_b = node.trailingComments) === null || _b === void 0 ? void 0 : _b.filter((comment) => this.filterComment(comment, false));\n }\n return node;\n }\n });\n return rootNode;\n }\n filterComment(comment, keepConditionalComment) {\n if (keepConditionalComment && ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) {\n return true;\n }\n return CommentsTransformer_1.preservedWords\n .some((preservedWord) => comment.value.includes(preservedWord));\n }\n};\nCommentsTransformer.preservedWords = [\n '@license',\n '@preserve'\n];\nCommentsTransformer = CommentsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], CommentsTransformer);\nexports.CommentsTransformer = CommentsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelpersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperGroupStorage_1 = require(\"../../types/storages/TCustomCodeHelperGroupStorage\");\nconst IObfuscationEventEmitter_1 = require(\"../../interfaces/event-emitters/IObfuscationEventEmitter\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ICallsGraphAnalyzer_1 = require(\"../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer\");\nconst IPrevailingKindOfVariablesAnalyzer_1 = require(\"../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ObfuscationEvent_1 = require(\"../../enums/event-emitters/ObfuscationEvent\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet CustomCodeHelpersTransformer = class CustomCodeHelpersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(callsGraphAnalyzer, prevailingKindOfVariablesAnalyzer, obfuscationEventEmitter, customCodeHelperGroupStorage, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.callsGraphData = [];\n this.callsGraphAnalyzer = callsGraphAnalyzer;\n this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;\n this.obfuscationEventEmitter = obfuscationEventEmitter;\n this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node, parentNode);\n this.appendCustomNodesBeforeObfuscation(node, parentNode);\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n return {\n leave: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.appendCustomNodesAfterObfuscation(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(node, parentNode) {\n this.callsGraphData = this.callsGraphAnalyzer.analyze(node);\n this.prevailingKindOfVariablesAnalyzer.analyze(node);\n }\n transformNode(node, parentNode) {\n return node;\n }\n appendCustomNodesBeforeObfuscation(node, parentNode) {\n this.customCodeHelperGroupStorage\n .getStorage()\n .forEach((customCodeHelperGroup) => {\n customCodeHelperGroup.initialize();\n this.obfuscationEventEmitter.once(customCodeHelperGroup.getAppendEvent(), customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup));\n });\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData);\n }\n appendCustomNodesAfterObfuscation(node, parentNode) {\n this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.callsGraphData);\n }\n};\nCustomCodeHelpersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICallsGraphAnalyzer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICallsGraphAnalyzer_1.ICallsGraphAnalyzer !== \"undefined\" && ICallsGraphAnalyzer_1.ICallsGraphAnalyzer) === \"function\" ? _a : Object, typeof (_b = typeof IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer !== \"undefined\" && IPrevailingKindOfVariablesAnalyzer_1.IPrevailingKindOfVariablesAnalyzer) === \"function\" ? _b : Object, typeof (_c = typeof IObfuscationEventEmitter_1.IObfuscationEventEmitter !== \"undefined\" && IObfuscationEventEmitter_1.IObfuscationEventEmitter) === \"function\" ? _c : Object, typeof (_d = typeof TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage !== \"undefined\" && TCustomCodeHelperGroupStorage_1.TCustomCodeHelperGroupStorage) === \"function\" ? _d : Object, typeof (_e = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _e : Object, typeof (_f = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _f : Object])\n], CustomCodeHelpersTransformer);\nexports.CustomCodeHelpersTransformer = CustomCodeHelpersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EvalCallExpressionTransformer_1, _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvalCallExpressionTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nconst StringUtils_1 = require(\"../../utils/StringUtils\");\nlet EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = class EvalCallExpressionTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.EscapeSequenceTransformer,\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.evalRootAstHostNodeSet = new Set();\n }\n static extractEvalStringFromCallExpressionArgument(node) {\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromLiteralNode(node);\n }\n if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) {\n return EvalCallExpressionTransformer_1\n .extractEvalStringFromTemplateLiteralNode(node);\n }\n return null;\n }\n static extractEvalStringFromLiteralNode(node) {\n return typeof node.value === 'string' ? node.value : null;\n }\n static extractEvalStringFromTemplateLiteralNode(node) {\n const quasis = node.quasis;\n const allowedQuasisLength = 1;\n if (quasis.length !== allowedQuasisLength || node.expressions.length) {\n return null;\n }\n return quasis[0].value.cooked;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n if (parentNode\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'eval') {\n return this.transformNode(node, parentNode);\n }\n }\n };\n case NodeTransformationStage_1.NodeTransformationStage.Finalizing:\n if (!this.evalRootAstHostNodeSet.size) {\n return null;\n }\n return {\n leave: (node, parentNode) => {\n if (parentNode && this.isEvalRootAstHostNode(node)) {\n return this.restoreNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(callExpressionNode, parentNode) {\n const callExpressionFirstArgument = callExpressionNode.arguments[0];\n if (!callExpressionFirstArgument) {\n return callExpressionNode;\n }\n const evalString = EvalCallExpressionTransformer_1\n .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);\n if (!evalString) {\n return callExpressionNode;\n }\n let ast;\n try {\n ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString);\n }\n catch (_a) {\n return callExpressionNode;\n }\n const evalRootAstHostNode = NodeFactory_1.NodeFactory\n .functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast));\n NodeUtils_1.NodeUtils.parentizeAst(evalRootAstHostNode);\n NodeUtils_1.NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);\n this.evalRootAstHostNodeSet.add(evalRootAstHostNode);\n return evalRootAstHostNode;\n }\n restoreNode(evalRootAstHostNode, parentNode) {\n const targetAst = evalRootAstHostNode.body.body;\n const obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst);\n return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [\n NodeFactory_1.NodeFactory.literalNode(StringUtils_1.StringUtils.escapeJsString(obfuscatedCode))\n ]);\n }\n isEvalRootAstHostNode(node) {\n return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);\n }\n};\nEvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], EvalCallExpressionTransformer);\nexports.EvalCallExpressionTransformer = EvalCallExpressionTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetadataTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet MetadataTransformer = class MetadataTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeMetadata_1.NodeMetadata.set(node, { replacedLiteral: false });\n }\n return node;\n }\n};\nMetadataTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], MetadataTransformer);\nexports.MetadataTransformer = MetadataTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ObfuscatingGuardsTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatingGuardsTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TObfuscatingGuardFactory_1 = require(\"../../types/container/node-transformers/TObfuscatingGuardFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst ObfuscatingGuard_1 = require(\"../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard\");\nconst ObfuscatingGuardResult_1 = require(\"../../enums/node/ObfuscatingGuardResult\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = class ObfuscatingGuardsTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(obfuscatingGuardFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer,\n NodeTransformer_1.NodeTransformer.VariablePreserveTransformer\n ];\n this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n const obfuscatingGuardResults = this.obfuscatingGuards\n .map((obfuscatingGuard) => obfuscatingGuard.check(node));\n this.setNodeMetadata(node, obfuscatingGuardResults);\n return node;\n }\n setNodeMetadata(node, obfuscatingGuardResults) {\n const isTransformNode = obfuscatingGuardResults\n .every((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform);\n let isForceTransformNode = false;\n let isIgnoredNode = false;\n if (!isTransformNode) {\n isForceTransformNode = obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform);\n isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults\n .some((obfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore);\n }\n NodeMetadata_1.NodeMetadata.set(node, {\n forceTransformNode: isForceTransformNode && !NodeGuards_1.NodeGuards.isProgramNode(node),\n ignoredNode: isIgnoredNode && !NodeGuards_1.NodeGuards.isProgramNode(node)\n });\n }\n};\nObfuscatingGuardsTransformer.obfuscatingGuardsList = [\n ObfuscatingGuard_1.ObfuscatingGuard.BlackListObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,\n ObfuscatingGuard_1.ObfuscatingGuard.ReservedStringObfuscatingGuard\n];\nObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TObfuscatingGuardFactory_1.TObfuscatingGuardFactory !== \"undefined\" && TObfuscatingGuardFactory_1.TObfuscatingGuardFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], ObfuscatingGuardsTransformer);\nexports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParentificationTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ParentificationTransformer = class ParentificationTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n return {\n enter: (node, parentNode) => {\n return this.transformNode(node, parentNode);\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode);\n }\n};\nParentificationTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ParentificationTransformer);\nexports.ParentificationTransformer = ParentificationTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariablePreserveTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet VariablePreserveTransformer = class VariablePreserveTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ParentificationTransformer\n ];\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Preparing:\n case NodeTransformationStage_1.NodeTransformationStage.Converting:\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, this.preserveScopeVariableIdentifiers);\n return programNode;\n }\n preserveScopeVariableIdentifiers(data) {\n const { isGlobalDeclaration, isBubblingDeclaration, variable, variableScope } = data;\n for (const identifier of variable.identifiers) {\n if (isGlobalDeclaration || isBubblingDeclaration) {\n this.preserveIdentifierNameForRootLexicalScope(identifier);\n }\n else {\n this.preserveIdentifierNameForLexicalScope(identifier, variableScope);\n }\n }\n }\n preserveIdentifierNameForRootLexicalScope(identifierNode) {\n this.identifierReplacer.preserveName(identifierNode);\n }\n preserveIdentifierNameForLexicalScope(identifierNode, variableScope) {\n const lexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!lexicalScopeNode) {\n return;\n }\n this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);\n }\n};\nVariablePreserveTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], VariablePreserveTransformer);\nexports.VariablePreserveTransformer = VariablePreserveTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar BlackListObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlackListObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = class BlackListObfuscatingGuard {\n constructor() {\n this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length;\n }\n check(node) {\n for (let i = 0; i < this.blackListGuardsLength; i++) {\n if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nBlackListObfuscatingGuard.blackListGuards = [\n NodeGuards_1.NodeGuards.isUseStrictOperator\n];\nBlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = __decorate([\n inversify_1.injectable(),\n __metadata(\"design:paramtypes\", [])\n], BlackListObfuscatingGuard);\nexports.BlackListObfuscatingGuard = BlackListObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionalCommentObfuscatingGuard_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConditionalCommentObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = class ConditionalCommentObfuscatingGuard {\n constructor() {\n this.obfuscationAllowed = true;\n }\n static isConditionalComment(comment) {\n return ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value) ||\n ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value);\n }\n check(node) {\n if (NodeGuards_1.NodeGuards.isNodeWithComments(node)) {\n const leadingComments = node.leadingComments;\n if (leadingComments) {\n this.obfuscationAllowed = this.checkComments(leadingComments);\n }\n }\n return this.obfuscationAllowed\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n checkComments(comments) {\n const commentsLength = comments.length;\n let obfuscationAllowed = this.obfuscationAllowed;\n for (let i = 0; i < commentsLength; i++) {\n const comment = comments[i];\n if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = true;\n continue;\n }\n if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) {\n obfuscationAllowed = false;\n }\n }\n return obfuscationAllowed;\n }\n};\nConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable');\nConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable');\nConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = __decorate([\n inversify_1.injectable()\n], ConditionalCommentObfuscatingGuard);\nexports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ForceTransformStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ForceTransformStringObfuscatingGuard = class ForceTransformStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.forceTransformStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isForceTransformString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.ForceTransform;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isForceTransformString(value) {\n return this.options.forceTransformStrings\n .some((forceTransformString) => {\n return new RegExp(forceTransformString, 'g').exec(value) !== null;\n });\n }\n};\nForceTransformStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], ForceTransformStringObfuscatingGuard);\nexports.ForceTransformStringObfuscatingGuard = ForceTransformStringObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IgnoredRequireImportObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet IgnoredRequireImportObfuscatingGuard = class IgnoredRequireImportObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.ignoreRequireImports\n && NodeGuards_1.NodeGuards.isCallExpressionNode(node)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee)\n && node.callee.name === 'require') {\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n};\nIgnoredRequireImportObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], IgnoredRequireImportObfuscatingGuard);\nexports.IgnoredRequireImportObfuscatingGuard = IgnoredRequireImportObfuscatingGuard;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReservedStringObfuscatingGuard = void 0;\nconst inversify_1 = require(\"inversify\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ObfuscatingGuardResult_1 = require(\"../../../enums/node/ObfuscatingGuardResult\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nlet ReservedStringObfuscatingGuard = class ReservedStringObfuscatingGuard {\n constructor(options) {\n this.options = options;\n }\n check(node) {\n if (this.options.reservedStrings.length\n && NodeGuards_1.NodeGuards.isLiteralNode(node)\n && typeof node.value === 'string') {\n return !this.isReservedString(node.value)\n ? ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform\n : ObfuscatingGuardResult_1.ObfuscatingGuardResult.Ignore;\n }\n return ObfuscatingGuardResult_1.ObfuscatingGuardResult.Transform;\n }\n isReservedString(value) {\n return this.options.reservedStrings\n .some((reservedString) => {\n return new RegExp(reservedString, 'g').exec(value) !== null;\n });\n }\n};\nReservedStringObfuscatingGuard = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _a : Object])\n], ReservedStringObfuscatingGuard);\nexports.ReservedStringObfuscatingGuard = ReservedStringObfuscatingGuard;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabeledStatementTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLexicalScopeUtils_1 = require(\"../../node/NodeLexicalScopeUtils\");\nlet LabeledStatementTransformer = class LabeledStatementTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(labeledStatementNode, parentNode) {\n const lexicalScopeNode = NodeLexicalScopeUtils_1.NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);\n if (!lexicalScopeNode) {\n return labeledStatementNode;\n }\n this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);\n return labeledStatementNode;\n }\n storeLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);\n }\n replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode) {\n estraverse.replace(labeledStatementNode, {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) {\n const newIdentifier = this.identifierReplacer\n .replace(node, lexicalScopeNode);\n node.name = newIdentifier.name;\n }\n }\n });\n }\n};\nLabeledStatementTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], LabeledStatementTransformer);\nexports.LabeledStatementTransformer = LabeledStatementTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nlet ScopeIdentifiersTransformer = class ScopeIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap = new Map();\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeIdentifiers(programNode, parentNode, (data) => {\n const { isGlobalDeclaration, variable, variableLexicalScopeNode } = data;\n if (!this.options.renameGlobals && isGlobalDeclaration) {\n const isImportBindingOrCatchClauseIdentifier = variable.defs\n .every((definition) => definition.type === 'ImportBinding'\n || definition.type === 'CatchClause');\n if (!isImportBindingOrCatchClauseIdentifier) {\n return;\n }\n }\n this.transformScopeVariableIdentifiers(variable, variableLexicalScopeNode, isGlobalDeclaration);\n });\n return programNode;\n }\n transformScopeVariableIdentifiers(variable, lexicalScopeNode, isGlobalDeclaration) {\n var _a;\n const firstIdentifier = (_a = variable.identifiers[0]) !== null && _a !== void 0 ? _a : null;\n if (!firstIdentifier) {\n return;\n }\n if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {\n return;\n }\n this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);\n this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode, isGlobalDeclaration) {\n if (isGlobalDeclaration) {\n this.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode);\n }\n else {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, variable) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n variable.identifiers.forEach((identifier) => {\n identifier.name = newIdentifier.name;\n });\n variable.references.forEach((reference) => {\n reference.identifier.name = identifierNode.name;\n });\n }\n isReplaceableIdentifierNode(identifierNode, lexicalScopeNode, variable) {\n const parentNode = identifierNode.parentNode;\n return !!parentNode\n && !NodeMetadata_1.NodeMetadata.isIgnoredNode(identifierNode)\n && !this.isProhibitedPropertyIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)\n && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)\n && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)\n && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)\n && !NodeGuards_1.NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);\n }\n isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(variable.scope.block)\n && NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode;\n }\n isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isClassDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);\n }\n isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)\n && parentNode.id === identifierNode\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode.parentNode)\n && !!parentNode.parentNode.parentNode\n && NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);\n }\n isProhibitedImportSpecifierNode(identifierNode, parentNode) {\n return NodeGuards_1.NodeGuards.isImportSpecifierNode(parentNode)\n && parentNode.imported.name === parentNode.local.name;\n }\n isProhibitedPropertyIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isPropertyNode(parentNode)\n && !parentNode.computed\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.key)\n && NodeGuards_1.NodeGuards.isIdentifierNode(node)\n && parentNode.shorthand\n && parentNode.key.name === node.name;\n }\n isProhibitedPropertyAssignmentPatternIdentifierNode(node, parentNode) {\n return NodeGuards_1.NodeGuards.isAssignmentPatternNode(parentNode)\n && parentNode.left === node\n && !!parentNode.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(parentNode.parentNode)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.left)\n && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.parentNode.key)\n && parentNode.left.name === parentNode.parentNode.key.name;\n }\n isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode) {\n let isLexicalScopeHasObjectPatternWithoutDeclaration = this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);\n if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {\n return false;\n }\n const hasVarDefinitions = variable.defs.some((definition) => definition.kind === 'var');\n if (!hasVarDefinitions) {\n return false;\n }\n let isProhibitedVariableDeclaration = false;\n estraverse.traverse(lexicalScopeNode, {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isObjectPatternNode(node)\n && parentNode\n && NodeGuards_1.NodeGuards.isAssignmentExpressionNode(parentNode)) {\n isLexicalScopeHasObjectPatternWithoutDeclaration = true;\n const properties = node.properties;\n for (const property of properties) {\n if (!NodeGuards_1.NodeGuards.isPropertyNode(property)) {\n continue;\n }\n if (property.computed || !property.shorthand) {\n continue;\n }\n if (!NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) {\n continue;\n }\n if (identifierNode.name !== property.key.name) {\n continue;\n }\n isProhibitedVariableDeclaration = true;\n return estraverse.VisitorOption.Break;\n }\n }\n }\n });\n this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(lexicalScopeNode, isLexicalScopeHasObjectPatternWithoutDeclaration !== null && isLexicalScopeHasObjectPatternWithoutDeclaration !== void 0 ? isLexicalScopeHasObjectPatternWithoutDeclaration : false);\n return isProhibitedVariableDeclaration;\n }\n};\nScopeIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], ScopeIdentifiersTransformer);\nexports.ScopeIdentifiersTransformer = ScopeIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeThroughIdentifiersTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IIdentifierReplacer_1 = require(\"../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IScopeIdentifiersTraverser_1 = require(\"../../interfaces/node/IScopeIdentifiersTraverser\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet ScopeThroughIdentifiersTransformer = class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(identifierReplacer, randomGenerator, options, scopeIdentifiersTraverser) {\n super(randomGenerator, options);\n this.identifierReplacer = identifierReplacer;\n this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameIdentifiers:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(programNode, parentNode) {\n this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(programNode, parentNode, (data) => {\n const { reference, variableLexicalScopeNode } = data;\n this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);\n });\n return programNode;\n }\n transformScopeThroughIdentifiers(reference, lexicalScopeNode) {\n if (reference.resolved) {\n return;\n }\n const identifier = reference.identifier;\n this.storeIdentifierName(identifier, lexicalScopeNode);\n this.replaceIdentifierName(identifier, lexicalScopeNode, reference);\n }\n storeIdentifierName(identifierNode, lexicalScopeNode) {\n this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);\n }\n replaceIdentifierName(identifierNode, lexicalScopeNode, reference) {\n const newIdentifier = this.identifierReplacer\n .replace(identifierNode, lexicalScopeNode);\n reference.identifier.name = newIdentifier.name;\n }\n};\nScopeThroughIdentifiersTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeIdentifiersTraverser)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IIdentifierReplacer_1.IIdentifierReplacer !== \"undefined\" && IIdentifierReplacer_1.IIdentifierReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object, typeof (_d = typeof IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser !== \"undefined\" && IScopeIdentifiersTraverser_1.IScopeIdentifiersTraverser) === \"function\" ? _d : Object])\n], ScopeThroughIdentifiersTransformer);\nexports.ScopeThroughIdentifiersTransformer = ScopeThroughIdentifiersTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentifierReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet IdentifierReplacer = class IdentifierReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.blockScopesMap = new Map();\n this.options = options;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n }\n storeGlobalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForGlobalScope();\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n storeLocalName(identifierNode, lexicalScopeNode) {\n const identifierName = identifierNode.name;\n if (this.isReservedName(identifierName)) {\n return;\n }\n const newIdentifierName = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);\n if (!this.blockScopesMap.has(lexicalScopeNode)) {\n this.blockScopesMap.set(lexicalScopeNode, new Map());\n }\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n namesMap.set(identifierName, newIdentifierName);\n }\n replace(identifierNode, lexicalScopeNode) {\n let identifierName = identifierNode.name;\n if (this.blockScopesMap.has(lexicalScopeNode)) {\n const namesMap = this.blockScopesMap.get(lexicalScopeNode);\n if (namesMap.has(identifierName)) {\n identifierName = namesMap.get(identifierName);\n }\n }\n return NodeFactory_1.NodeFactory.identifierNode(identifierName);\n }\n preserveName(identifierNode) {\n this.identifierNamesGenerator.preserveName(identifierNode.name);\n }\n preserveNameForLexicalScope(identifierNode, lexicalScopeNode) {\n this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);\n }\n isReservedName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n};\nIdentifierReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], IdentifierReplacer);\nexports.IdentifierReplacer = IdentifierReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RenamePropertiesTransformer_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IRenamePropertiesReplacer_1 = require(\"../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet RenamePropertiesTransformer = RenamePropertiesTransformer_1 = class RenamePropertiesTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(renamePropertiesReplacer, randomGenerator, options) {\n super(randomGenerator, options);\n this.renamePropertiesReplacer = renamePropertiesReplacer;\n }\n static isValidPropertyNode(propertyNode, propertyKeyNode) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {\n return false;\n }\n return NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.RenameProperties:\n return {\n enter: (node, parentNode) => {\n if (parentNode) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(node, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(node)) {\n return this.transformPropertyNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) {\n return this.transformMemberExpressionNode(node);\n }\n if (NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) {\n return this.transformMethodDefinitionNode(node);\n }\n return node;\n }\n transformPropertyNode(propertyNode) {\n const propertyKeyNode = propertyNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(propertyNode, propertyKeyNode)) {\n propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n propertyNode.shorthand = false;\n }\n return propertyNode;\n }\n transformMemberExpressionNode(memberExpressionNode) {\n const propertyKeyNode = memberExpressionNode.property;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {\n memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return memberExpressionNode;\n }\n transformMethodDefinitionNode(methodDefinitionNode) {\n const propertyKeyNode = methodDefinitionNode.key;\n if (RenamePropertiesTransformer_1.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {\n methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);\n }\n return methodDefinitionNode;\n }\n};\nRenamePropertiesTransformer = RenamePropertiesTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRenamePropertiesReplacer)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRenamePropertiesReplacer_1.IRenamePropertiesReplacer !== \"undefined\" && IRenamePropertiesReplacer_1.IRenamePropertiesReplacer) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], RenamePropertiesTransformer);\nexports.RenamePropertiesTransformer = RenamePropertiesTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RenamePropertiesReplacer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IOptions_1 = require(\"../../../interfaces/options/IOptions\");\nconst ReservedDomProperties_json_1 = __importDefault(require(\"./ReservedDomProperties.json\"));\nconst NodeGuards_1 = require(\"../../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../../node/NodeFactory\");\nlet RenamePropertiesReplacer = class RenamePropertiesReplacer {\n constructor(identifierNamesGeneratorFactory, options) {\n this.propertyNamesMap = new Map();\n this.reservedDomPropertiesList = new Set(ReservedDomProperties_json_1.default);\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.options = options;\n }\n replace(node) {\n if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) {\n return NodeFactory_1.NodeFactory.identifierNode(this.replacePropertyName(node.name));\n }\n if (NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {\n return NodeFactory_1.NodeFactory.literalNode(this.replacePropertyName(node.value));\n }\n return node;\n }\n replacePropertyName(propertyName) {\n var _a;\n if (this.isReservedName(propertyName)) {\n return propertyName;\n }\n let renamedPropertyName = (_a = this.propertyNamesMap.get(propertyName)) !== null && _a !== void 0 ? _a : null;\n if (renamedPropertyName !== null) {\n return renamedPropertyName;\n }\n renamedPropertyName = this.identifierNamesGenerator.generateNext();\n this.propertyNamesMap.set(propertyName, renamedPropertyName);\n return renamedPropertyName;\n }\n isReservedName(name) {\n return this.isReservedOptionName(name)\n || this.isReservedDomPropertyName(name);\n }\n isReservedOptionName(name) {\n if (!this.options.reservedNames.length) {\n return false;\n }\n return this.options.reservedNames\n .some((reservedName) => {\n return new RegExp(reservedName, 'g').exec(name) !== null;\n });\n }\n isReservedDomPropertyName(name) {\n return this.reservedDomPropertiesList.has(name);\n }\n};\nRenamePropertiesReplacer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], RenamePropertiesReplacer);\nexports.RenamePropertiesReplacer = RenamePropertiesReplacer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nlet AbstractStatementSimplifyTransformer = class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.ExpressionStatementsMergeTransformer,\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getStatementSimplifyData(statementNode) {\n if (!statementNode) {\n return null;\n }\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(statementNode)) {\n return {\n leadingStatements: [statementNode],\n trailingStatement: null,\n hasReturnStatement: false,\n hasSingleExpression: false\n };\n }\n const { startIndex, unwrappedExpressions, hasReturnStatement } = this.collectIteratedStatementsSimplifyData(statementNode);\n const leadingStatements = this.getLeadingStatements(statementNode, startIndex);\n if (!unwrappedExpressions.length) {\n return {\n leadingStatements,\n trailingStatement: null,\n hasReturnStatement,\n hasSingleExpression: false\n };\n }\n const hasSingleExpression = unwrappedExpressions.length === 1;\n const expression = hasSingleExpression\n ? unwrappedExpressions[0]\n : NodeFactory_1.NodeFactory.sequenceExpressionNode(unwrappedExpressions);\n const statement = hasReturnStatement\n ? NodeFactory_1.NodeFactory.returnStatementNode(expression)\n : NodeFactory_1.NodeFactory.expressionStatementNode(expression);\n return {\n leadingStatements,\n trailingStatement: {\n statement,\n expression\n },\n hasReturnStatement,\n hasSingleExpression\n };\n }\n collectIteratedStatementsSimplifyData(statementNode) {\n const statementNodeBodyLength = statementNode.body.length;\n const unwrappedExpressions = [];\n let hasReturnStatement = false;\n let startIndex = null;\n for (let i = statementNodeBodyLength - 1; i >= 0; i--) {\n const statementBodyStatementNode = statementNode.body[i];\n if (NodeGuards_1.NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) {\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) {\n unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions);\n }\n else {\n unwrappedExpressions.unshift(statementBodyStatementNode.expression);\n }\n startIndex = i;\n continue;\n }\n if (NodeGuards_1.NodeGuards.isReturnStatementNode(statementBodyStatementNode)\n && statementBodyStatementNode.argument) {\n unwrappedExpressions.unshift(statementBodyStatementNode.argument);\n hasReturnStatement = true;\n startIndex = i;\n continue;\n }\n break;\n }\n return {\n startIndex,\n unwrappedExpressions,\n hasReturnStatement\n };\n }\n getLeadingStatements(statementNode, startIndex) {\n if (startIndex === null) {\n return statementNode.body;\n }\n return startIndex === 0\n ? []\n : statementNode.body.slice(0, startIndex);\n }\n getPartialStatement(statementSimplifyData) {\n if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) {\n return statementSimplifyData.trailingStatement.statement;\n }\n return NodeFactory_1.NodeFactory.blockStatementNode([\n ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [],\n ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : []\n ]);\n }\n};\nAbstractStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], AbstractStatementSimplifyTransformer);\nexports.AbstractStatementSimplifyTransformer = AbstractStatementSimplifyTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformer_1 = require(\"../../enums/node-transformers/NodeTransformer\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet BlockStatementSimplifyTransformer = class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n this.runAfter = [\n NodeTransformer_1.NodeTransformer.VariableDeclarationsMergeTransformer\n ];\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(statementNode, parentNode) {\n const simplifyData = this.getStatementSimplifyData(statementNode);\n if (!simplifyData) {\n return statementNode;\n }\n const partialStatementNode = this.getPartialStatement(simplifyData);\n const transformedNode = NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatementNode)\n ? partialStatementNode\n : NodeFactory_1.NodeFactory.blockStatementNode([partialStatementNode]);\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n};\nBlockStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], BlockStatementSimplifyTransformer);\nexports.BlockStatementSimplifyTransformer = BlockStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionStatementsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet ExpressionStatementsMergeTransformer = class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(expressionStatementNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return expressionStatementNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isExpressionStatementNode(prevStatement)) {\n return expressionStatementNode;\n }\n if (NodeGuards_1.NodeGuards.isSequenceExpressionNode(prevStatement.expression)) {\n prevStatement.expression.expressions.push(expressionStatementNode.expression);\n NodeUtils_1.NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression);\n }\n else {\n prevStatement.expression = NodeFactory_1.NodeFactory.sequenceExpressionNode([\n prevStatement.expression,\n expressionStatementNode.expression\n ]);\n NodeUtils_1.NodeUtils.parentizeAst(prevStatement.expression);\n NodeUtils_1.NodeUtils.parentizeNode(prevStatement.expression, prevStatement);\n }\n return estraverse.VisitorOption.Remove;\n }\n};\nExpressionStatementsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ExpressionStatementsMergeTransformer);\nexports.ExpressionStatementsMergeTransformer = ExpressionStatementsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IfStatementSimplifyTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractStatementSimplifyTransformer_1 = require(\"./AbstractStatementSimplifyTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeFactory_1 = require(\"../../node/NodeFactory\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet IfStatementSimplifyTransformer = class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer_1.AbstractStatementSimplifyTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isIfStatementNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(ifStatementNode, parentNode) {\n const consequentSimplifyData = this.getStatementSimplifyData(ifStatementNode.consequent);\n if (!consequentSimplifyData) {\n return ifStatementNode;\n }\n let transformedNode;\n if (!ifStatementNode.alternate) {\n transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData);\n }\n else {\n const alternateSimplifyData = this.getStatementSimplifyData(ifStatementNode.alternate);\n if (!alternateSimplifyData) {\n return ifStatementNode;\n }\n transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData);\n }\n return NodeUtils_1.NodeUtils.parentizeNode(transformedNode, parentNode);\n }\n getConsequentNode(ifStatementNode, consequentSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode('&&', ifStatementNode.test, consequentSimplifyData.trailingStatement.expression));\n }\n getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData) {\n if (consequentSimplifyData.leadingStatements.length\n || alternateSimplifyData.leadingStatements.length\n || !consequentSimplifyData.trailingStatement\n || !alternateSimplifyData.trailingStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, this.getPartialStatement(consequentSimplifyData), this.getPartialStatement(alternateSimplifyData));\n }\n if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) {\n return NodeFactory_1.NodeFactory.ifStatementNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.statement, alternateSimplifyData.trailingStatement.statement);\n }\n return NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.conditionalExpressionNode(ifStatementNode.test, consequentSimplifyData.trailingStatement.expression, alternateSimplifyData.trailingStatement.expression));\n }\n getPartialStatement(statementSimplifyData) {\n const partialStatement = super.getPartialStatement(statementSimplifyData);\n if (!NodeGuards_1.NodeGuards.isBlockStatementNode(partialStatement)) {\n return partialStatement;\n }\n return partialStatement.body.length === 1\n && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0])\n ? partialStatement.body[0]\n : partialStatement;\n }\n isProhibitedSingleStatementForIfStatementBranch(statement) {\n return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement)\n || NodeGuards_1.NodeGuards.isIfStatementNode(statement)\n || (NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var');\n }\n};\nIfStatementSimplifyTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], IfStatementSimplifyTransformer);\nexports.IfStatementSimplifyTransformer = IfStatementSimplifyTransformer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VariableDeclarationsMergeTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst estraverse = __importStar(require(\"estraverse\"));\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeStatementUtils_1 = require(\"../../node/NodeStatementUtils\");\nlet VariableDeclarationsMergeTransformer = class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.Simplifying:\n return {\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(variableDeclarationNode, parentNode) {\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return variableDeclarationNode;\n }\n const prevStatement = NodeStatementUtils_1.NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode);\n if (!prevStatement || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(prevStatement)) {\n return variableDeclarationNode;\n }\n if (variableDeclarationNode.kind !== prevStatement.kind) {\n return variableDeclarationNode;\n }\n prevStatement.declarations.push(...variableDeclarationNode.declarations);\n return estraverse.VisitorOption.Remove;\n }\n};\nVariableDeclarationsMergeTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], VariableDeclarationsMergeTransformer);\nexports.VariableDeclarationsMergeTransformer = VariableDeclarationsMergeTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TStringArrayCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TStringArrayCustomNodeFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst IStringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst IVisitedLexicalScopeNodesStackStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeAppender_1 = require(\"../../node/NodeAppender\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nlet StringArrayScopeCallsWrapperTransformer = class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n if (!this.options.stringArrayWrappersCount) {\n return null;\n }\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeEnter(node);\n }\n },\n leave: (node, parentNode) => {\n if (parentNode && NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {\n this.onLexicalScopeNodeLeave();\n return this.transformNode(node);\n }\n }\n };\n default:\n return null;\n }\n }\n transformNode(lexicalScopeBodyNode) {\n var _a, _b;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n const stringArrayScopeCallsWrapperLexicalScopeData = (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) {\n return lexicalScopeBodyNode;\n }\n const { callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes } = stringArrayScopeCallsWrapperLexicalScopeData;\n const stringArrayScopeCallsWrapperNamesDataList = Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding);\n for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) {\n if (!stringArrayScopeCallsWrapperNamesData) {\n continue;\n }\n const { names } = stringArrayScopeCallsWrapperNamesData;\n const namesLength = names.length;\n for (let i = namesLength - 1; i >= 0; i--) {\n const stringArrayScopeCallsWrapperName = names[i];\n const { name: upperStringArrayCallsWrapperName, index: upperStringArrayCallsWrapperShiftedIndex, parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes } = this.getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n const stringArrayScopeCallsWrapperNode = this.getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, upperStringArrayCallsWrapperShiftedIndex);\n NodeAppender_1.NodeAppender.prepend(lexicalScopeBodyNode, stringArrayScopeCallsWrapperNode);\n }\n }\n return lexicalScopeBodyNode;\n }\n getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { resultShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n return {\n name: this.stringArrayStorage.getStorageCallsWrapperName(encoding),\n index: resultShiftedIndex,\n parameterIndexesData: null\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData) {\n var _a, _b, _c, _d, _e, _f;\n const { encoding } = stringArrayScopeCallsWrapperNamesData;\n const { scopeShiftedIndex } = stringArrayScopeCallsWrapperLexicalScopeData;\n const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(stringArrayScopeCallsWrapperNamesData, stringArrayScopeCallsWrapperLexicalScopeData);\n if (!this.options.stringArrayWrappersChainedCalls) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n if (!parentLexicalScopeBodyNode) {\n return rootStringArrayCallsWrapperData;\n }\n const parentLexicalScopeNamesDataByEncoding = (_b = this.stringArrayScopeCallsWrapperNamesDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null;\n const parentScopeCallsWrapperLexicalScopeData = (_c = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage\n .get(parentLexicalScopeBodyNode)) !== null && _c !== void 0 ? _c : null;\n const parentLexicalScopeNames = (_e = (_d = parentLexicalScopeNamesDataByEncoding === null || parentLexicalScopeNamesDataByEncoding === void 0 ? void 0 : parentLexicalScopeNamesDataByEncoding[encoding]) === null || _d === void 0 ? void 0 : _d.names) !== null && _e !== void 0 ? _e : null;\n if (!(parentLexicalScopeNames === null || parentLexicalScopeNames === void 0 ? void 0 : parentLexicalScopeNames.length)) {\n return rootStringArrayCallsWrapperData;\n }\n const upperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(parentLexicalScopeNames);\n const parameterIndexesData = (_f = parentScopeCallsWrapperLexicalScopeData === null || parentScopeCallsWrapperLexicalScopeData === void 0 ? void 0 : parentScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData) !== null && _f !== void 0 ? _f : null;\n return {\n name: upperStringArrayCallsWrapperName,\n index: scopeShiftedIndex,\n parameterIndexesData\n };\n }\n getStringArrayScopeCallsWrapperNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n switch (this.options.stringArrayWrappersType) {\n case StringArrayWrappersType_1.StringArrayWrappersType.Function:\n return this.getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n case StringArrayWrappersType_1.StringArrayWrappersType.Variable:\n default:\n return this.getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n }\n }\n getStringArrayScopeCallsWrapperVariableNode(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName) {\n const stringArrayScopeCallsWrapperVariableNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);\n stringArrayScopeCallsWrapperVariableNode.initialize(stringArrayScopeCallsWrapperName, upperStringArrayCallsWrapperName);\n return stringArrayScopeCallsWrapperVariableNode.getNode();\n }\n getStringArrayScopeCallsWrapperFunctionNode(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex) {\n const stringArrayScopeCallsWrapperFunctionNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);\n stringArrayScopeCallsWrapperFunctionNode.initialize(stringArrayScopeCallsWrapperName, stringArrayScopeCallsWrapperParameterIndexes, upperStringArrayCallsWrapperName, upperStringArrayCallsWrapperParameterIndexes, stringArrayScopeCallsWrapperShiftedIndex);\n return stringArrayScopeCallsWrapperFunctionNode.getNode();\n }\n onLexicalScopeNodeEnter(lexicalScopeBodyNode) {\n this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode);\n }\n onLexicalScopeNodeLeave() {\n this.visitedLexicalScopeNodesStackStorage.pop();\n }\n};\nStringArrayScopeCallsWrapperTransformer = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== \"undefined\" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === \"function\" ? _c : Object, typeof (_d = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === \"function\" ? _f : Object, typeof (_g = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== \"undefined\" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === \"function\" ? _g : Object])\n], StringArrayScopeCallsWrapperTransformer);\nexports.StringArrayScopeCallsWrapperTransformer = StringArrayScopeCallsWrapperTransformer;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayTransformer_1, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayTransformer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst TStringArrayCustomNodeFactory_1 = require(\"../../types/container/custom-nodes/TStringArrayCustomNodeFactory\");\nconst ILiteralNodesCacheStorage_1 = require(\"../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage\");\nconst IStringArrayScopeCallsWrapperNamesDataStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage\");\nconst IStringArrayStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IStringArrayStorage\");\nconst IStringArrayStorageAnalyzer_1 = require(\"../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer\");\nconst IVisitedLexicalScopeNodesStackStorage_1 = require(\"../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage\");\nconst NodeTransformationStage_1 = require(\"../../enums/node-transformers/NodeTransformationStage\");\nconst StringArrayCustomNode_1 = require(\"../../enums/custom-nodes/StringArrayCustomNode\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst AbstractNodeTransformer_1 = require(\"../AbstractNodeTransformer\");\nconst NodeGuards_1 = require(\"../../node/NodeGuards\");\nconst NodeLiteralUtils_1 = require(\"../../node/NodeLiteralUtils\");\nconst NodeMetadata_1 = require(\"../../node/NodeMetadata\");\nconst NodeUtils_1 = require(\"../../node/NodeUtils\");\nlet StringArrayTransformer = StringArrayTransformer_1 = class StringArrayTransformer extends AbstractNodeTransformer_1.AbstractNodeTransformer {\n constructor(randomGenerator, options, literalNodesCacheStorage, visitedLexicalScopeNodesStackStorage, stringArrayStorage, stringArrayScopeCallsWrapperNamesDataStorage, stringArrayScopeCallsWrapperLexicalScopeDataStorage, stringArrayStorageAnalyzer, identifierNamesGeneratorFactory, stringArrayTransformerCustomNodeFactory) {\n super(randomGenerator, options);\n this.literalNodesCacheStorage = literalNodesCacheStorage;\n this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;\n this.stringArrayStorage = stringArrayStorage;\n this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;\n this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;\n }\n getVisitor(nodeTransformationStage) {\n switch (nodeTransformationStage) {\n case NodeTransformationStage_1.NodeTransformationStage.StringArray:\n return {\n enter: (node, parentNode) => {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n this.prepareNode(node);\n }\n if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) {\n return this.transformNode(node, parentNode);\n }\n }\n };\n default:\n return null;\n }\n }\n prepareNode(programNode) {\n this.stringArrayStorageAnalyzer.analyze(programNode);\n if (this.options.shuffleStringArray) {\n this.stringArrayStorage.shuffleStorage();\n }\n if (this.options.rotateStringArray) {\n this.stringArrayStorage.rotateStorage();\n }\n }\n transformNode(literalNode, parentNode) {\n if (!NodeLiteralUtils_1.NodeLiteralUtils.isStringLiteralNode(literalNode)\n || NodeLiteralUtils_1.NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {\n return literalNode;\n }\n const literalValue = literalNode.value;\n const stringArrayStorageItemData = this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode);\n const cacheKey = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData);\n const useCachedValue = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData);\n if (useCachedValue) {\n return this.literalNodesCacheStorage.get(cacheKey);\n }\n const resultNode = stringArrayStorageItemData\n ? this.getStringArrayCallNode(stringArrayStorageItemData)\n : literalNode;\n this.literalNodesCacheStorage.set(cacheKey, resultNode);\n NodeUtils_1.NodeUtils.parentizeNode(resultNode, parentNode);\n return resultNode;\n }\n getStringArrayCallNode(stringArrayStorageItemData) {\n const { name: stringArrayCallsWrapperName, index, parameterIndexesData } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData);\n const { decodeKey } = stringArrayStorageItemData;\n const stringArrayCallCustomNode = this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode_1.StringArrayCustomNode.StringArrayCallNode);\n stringArrayCallCustomNode.initialize(stringArrayCallsWrapperName, parameterIndexesData, index, this.stringArrayStorage.getIndexShiftAmount(), decodeKey);\n const statementNode = stringArrayCallCustomNode.getNode()[0];\n if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) {\n throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');\n }\n return statementNode.expression;\n }\n getStringArrayCallsWrapperData(stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData)\n : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData);\n }\n getRootStringArrayCallsWrapperData(stringArrayStorageItemData) {\n const { encoding, index } = stringArrayStorageItemData;\n const rootStringArrayCallsWrapperName = this.stringArrayStorage.getStorageCallsWrapperName(encoding);\n return {\n name: rootStringArrayCallsWrapperName,\n parameterIndexesData: null,\n index\n };\n }\n getUpperStringArrayCallsWrapperData(stringArrayStorageItemData) {\n var _a, _b, _c, _d;\n const { encoding, index } = stringArrayStorageItemData;\n const currentLexicalScopeBodyNode = (_a = this.visitedLexicalScopeNodesStackStorage.getLastElement()) !== null && _a !== void 0 ? _a : null;\n const parentLexicalScopeBodyNode = (_b = this.visitedLexicalScopeNodesStackStorage.getPenultimateElement()) !== null && _b !== void 0 ? _b : null;\n if (!currentLexicalScopeBodyNode) {\n throw new Error('Cannot find current lexical scope body node');\n }\n const stringArrayScopeCallsWrapperNamesDataByEncoding = this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData);\n const stringArrayScopeCallsWrapperLexicalScopeData = this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode);\n const stringArrayScopeCallsWrapperNames = (_d = (_c = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _c === void 0 ? void 0 : _c.names) !== null && _d !== void 0 ? _d : [];\n const randomUpperStringArrayCallsWrapperName = this.randomGenerator\n .getRandomGenerator()\n .pickone(stringArrayScopeCallsWrapperNames);\n const resultIndex = stringArrayScopeCallsWrapperLexicalScopeData\n ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index\n : index;\n return {\n name: randomUpperStringArrayCallsWrapperName,\n index: resultIndex,\n parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData\n };\n }\n getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(currentLexicalScopeBodyNode, stringArrayStorageItemData) {\n var _a, _b, _c;\n const { encoding } = stringArrayStorageItemData;\n const stringArrayScopeCallsWrapperNamesDataByEncoding = (_a = this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : {};\n const stringArrayScopeCallsWrapperNames = (_c = (_b = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]) === null || _b === void 0 ? void 0 : _b.names) !== null && _c !== void 0 ? _c : [];\n const isFilledScopeCallsWrapperNamesList = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount;\n if (isFilledScopeCallsWrapperNamesList) {\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n const nextScopeCallsWrapperName = NodeGuards_1.NodeGuards.isProgramNode(currentLexicalScopeBodyNode)\n ? this.identifierNamesGenerator.generateForGlobalScope()\n : this.identifierNamesGenerator.generateNext();\n stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = {\n encoding,\n names: [\n ...stringArrayScopeCallsWrapperNames,\n nextScopeCallsWrapperName\n ]\n };\n this.stringArrayScopeCallsWrapperNamesDataStorage.set(currentLexicalScopeBodyNode, stringArrayScopeCallsWrapperNamesDataByEncoding);\n return stringArrayScopeCallsWrapperNamesDataByEncoding;\n }\n getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(currentLexicalScopeBodyNode, parentLexicalScopeBodyNode) {\n var _a, _b;\n const storedLexicalScopeData = (_a = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)) !== null && _a !== void 0 ? _a : null;\n if (storedLexicalScopeData) {\n return storedLexicalScopeData;\n }\n const parentLexicalScopeData = parentLexicalScopeBodyNode\n ? (_b = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode)) !== null && _b !== void 0 ? _b : null : null;\n const callsWrappersParameterIndexesData = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.getStringArrayCallsWrapperParameterIndexesData()\n : null;\n const scopeShiftedIndex = this.options.stringArrayWrappersType === StringArrayWrappersType_1.StringArrayWrappersType.Function\n ? this.randomGenerator.getRandomInteger(StringArrayTransformer_1.minShiftedIndexValue, StringArrayTransformer_1.maxShiftedIndexValue)\n : 0;\n const resultShiftedIndex = parentLexicalScopeData\n ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex\n : scopeShiftedIndex;\n const lexicalScopeData = {\n callsWrappersParameterIndexesData,\n parentLexicalScopeBodyNode,\n resultShiftedIndex,\n scopeShiftedIndex\n };\n this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(currentLexicalScopeBodyNode, lexicalScopeData);\n return lexicalScopeData;\n }\n getStringArrayCallsWrapperParameterIndexesData() {\n const minIndexValue = 0;\n const maxIndexValue = this.options.stringArrayWrappersParametersMaxCount - 1;\n const valueIndexParameterIndex = this.randomGenerator\n .getRandomInteger(minIndexValue, maxIndexValue);\n const decodeKeyParameterIndex = this.randomGenerator\n .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]);\n return {\n valueIndexParameterIndex,\n decodeKeyParameterIndex\n };\n }\n};\nStringArrayTransformer.minShiftedIndexValue = -1000;\nStringArrayTransformer.maxShiftedIndexValue = 1000;\nStringArrayTransformer = StringArrayTransformer_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILiteralNodesCacheStorage)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorage)),\n __param(5, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)),\n __param(6, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)),\n __param(7, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStringArrayStorageAnalyzer)),\n __param(8, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(9, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IStringArrayCustomNode)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage !== \"undefined\" && ILiteralNodesCacheStorage_1.ILiteralNodesCacheStorage) === \"function\" ? _c : Object, typeof (_d = typeof IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage !== \"undefined\" && IVisitedLexicalScopeNodesStackStorage_1.IVisitedLexicalScopeNodesStackStorage) === \"function\" ? _d : Object, typeof (_e = typeof IStringArrayStorage_1.IStringArrayStorage !== \"undefined\" && IStringArrayStorage_1.IStringArrayStorage) === \"function\" ? _e : Object, typeof (_f = typeof IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperNamesDataStorage_1.IStringArrayScopeCallsWrapperNamesDataStorage) === \"function\" ? _f : Object, typeof (_g = typeof IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage !== \"undefined\" && IStringArrayScopeCallsWrapperLexicalScopeDataStorage_1.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) === \"function\" ? _g : Object, typeof (_h = typeof IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer !== \"undefined\" && IStringArrayStorageAnalyzer_1.IStringArrayStorageAnalyzer) === \"function\" ? _h : Object, typeof (_j = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _j : Object, typeof (_k = typeof TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory !== \"undefined\" && TStringArrayCustomNodeFactory_1.TStringArrayCustomNodeFactory) === \"function\" ? _k : Object])\n], StringArrayTransformer);\nexports.StringArrayTransformer = StringArrayTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeAppender = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeAppender {\n static append(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ...statements\n ]);\n }\n static appendToOptimalBlockScope(callsGraphData, nodeWithStatements, bodyStatements, index = 0) {\n const targetBlockScope = callsGraphData.length\n ? NodeAppender.getOptimalBlockScope(callsGraphData, index)\n : nodeWithStatements;\n NodeAppender.prepend(targetBlockScope, bodyStatements);\n }\n static getOptimalBlockScope(callsGraphData, index, deep = Infinity) {\n const firstCall = callsGraphData[index];\n if (deep <= 0) {\n throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');\n }\n if (deep > 1 && firstCall.callsGraph.length) {\n return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);\n }\n else {\n return firstCall.callee;\n }\n }\n static insertBefore(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);\n }\n static insertAfter(nodeWithStatements, statements, target) {\n const indexInScopeStatement = NodeAppender\n .getScopeStatements(nodeWithStatements)\n .indexOf(target);\n NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);\n }\n static insertAtIndex(nodeWithStatements, statements, index) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)\n ]);\n }\n static prepend(nodeWithStatements, statements) {\n statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);\n NodeAppender.setScopeStatements(nodeWithStatements, [\n ...statements,\n ...NodeAppender.getScopeStatements(nodeWithStatements),\n ]);\n }\n static getScopeStatements(nodeWithStatements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n return nodeWithStatements.consequent;\n }\n return nodeWithStatements.body;\n }\n static parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements) {\n statements.forEach((statement) => {\n statement.parentNode = nodeWithStatements;\n });\n return statements;\n }\n static setScopeStatements(nodeWithStatements, statements) {\n if (NodeGuards_1.NodeGuards.isSwitchCaseNode(nodeWithStatements)) {\n nodeWithStatements.consequent = statements;\n return;\n }\n nodeWithStatements.body = statements;\n }\n}\nexports.NodeAppender = NodeAppender;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeFactory = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeFactory {\n static programNode(body = []) {\n return {\n type: NodeType_1.NodeType.Program,\n body,\n sourceType: 'script',\n metadata: { ignoredNode: false }\n };\n }\n static arrayExpressionNode(elements = []) {\n return {\n type: NodeType_1.NodeType.ArrayExpression,\n elements,\n metadata: { ignoredNode: false }\n };\n }\n static arrowFunctionExpressionNode(params, expression, body) {\n return {\n type: NodeType_1.NodeType.ArrowFunctionExpression,\n params,\n expression,\n body\n };\n }\n static assignmentExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.AssignmentExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static binaryExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.BinaryExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static blockStatementNode(body = []) {\n return {\n type: NodeType_1.NodeType.BlockStatement,\n body,\n metadata: { ignoredNode: false }\n };\n }\n static breakStatement(label) {\n return {\n type: NodeType_1.NodeType.BreakStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static callExpressionNode(callee, args = [], optional = false) {\n return {\n type: NodeType_1.NodeType.CallExpression,\n callee,\n optional,\n arguments: args,\n metadata: { ignoredNode: false }\n };\n }\n static conditionalExpressionNode(test, consequent, alternate) {\n return {\n type: NodeType_1.NodeType.ConditionalExpression,\n test,\n consequent,\n alternate,\n metadata: { ignoredNode: false }\n };\n }\n static continueStatement(label) {\n return {\n type: NodeType_1.NodeType.ContinueStatement,\n label,\n metadata: { ignoredNode: false }\n };\n }\n static directiveNode(expression, directive) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n directive,\n metadata: { ignoredNode: false }\n };\n }\n static exportAllDeclarationNode(source) {\n return {\n type: NodeType_1.NodeType.ExportAllDeclaration,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static exportNamedDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ExportNamedDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static expressionStatementNode(expression) {\n return {\n type: NodeType_1.NodeType.ExpressionStatement,\n expression,\n metadata: { ignoredNode: false }\n };\n }\n static functionDeclarationNode(functionName, params, body) {\n return {\n type: NodeType_1.NodeType.FunctionDeclaration,\n id: NodeFactory.identifierNode(functionName),\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static functionExpressionNode(params, body) {\n return {\n type: NodeType_1.NodeType.FunctionExpression,\n params,\n body,\n generator: false,\n metadata: { ignoredNode: false }\n };\n }\n static ifStatementNode(test, consequent, alternate) {\n return Object.assign(Object.assign({ type: NodeType_1.NodeType.IfStatement, test,\n consequent }, alternate && { alternate }), { metadata: { ignoredNode: false } });\n }\n static identifierNode(name) {\n return {\n type: NodeType_1.NodeType.Identifier,\n name,\n metadata: { ignoredNode: false }\n };\n }\n static importDeclarationNode(specifiers, source) {\n return {\n type: NodeType_1.NodeType.ImportDeclaration,\n specifiers,\n source,\n metadata: { ignoredNode: false }\n };\n }\n static literalNode(value, raw) {\n raw = raw !== undefined ? raw : `'${value}'`;\n return {\n type: NodeType_1.NodeType.Literal,\n value,\n raw,\n 'x-verbatim-property': {\n content: raw,\n precedence: escodegen.Precedence.Primary\n },\n metadata: { ignoredNode: false }\n };\n }\n static logicalExpressionNode(operator, left, right) {\n return {\n type: NodeType_1.NodeType.LogicalExpression,\n operator,\n left,\n right,\n metadata: { ignoredNode: false }\n };\n }\n static memberExpressionNode(object, property, computed = false, optional = false) {\n return {\n type: NodeType_1.NodeType.MemberExpression,\n computed,\n object,\n optional,\n property,\n metadata: { ignoredNode: false }\n };\n }\n static objectExpressionNode(properties) {\n return {\n type: NodeType_1.NodeType.ObjectExpression,\n properties,\n metadata: { ignoredNode: false }\n };\n }\n static propertyNode(key, value, computed = false) {\n return {\n type: NodeType_1.NodeType.Property,\n key,\n value,\n kind: 'init',\n method: false,\n shorthand: false,\n computed,\n metadata: { ignoredNode: false }\n };\n }\n static returnStatementNode(argument) {\n return {\n type: NodeType_1.NodeType.ReturnStatement,\n argument,\n metadata: { ignoredNode: false }\n };\n }\n static sequenceExpressionNode(expressions) {\n return {\n type: NodeType_1.NodeType.SequenceExpression,\n expressions,\n metadata: { ignoredNode: false }\n };\n }\n static switchStatementNode(discriminant, cases) {\n return {\n type: NodeType_1.NodeType.SwitchStatement,\n discriminant,\n cases,\n metadata: { ignoredNode: false }\n };\n }\n static switchCaseNode(test, consequent) {\n return {\n type: NodeType_1.NodeType.SwitchCase,\n test,\n consequent,\n metadata: { ignoredNode: false }\n };\n }\n static unaryExpressionNode(operator, argument, prefix = true) {\n return {\n type: NodeType_1.NodeType.UnaryExpression,\n operator,\n argument,\n prefix,\n metadata: { ignoredNode: false }\n };\n }\n static updateExpressionNode(operator, argumentExpr) {\n return {\n type: NodeType_1.NodeType.UpdateExpression,\n operator,\n argument: argumentExpr,\n prefix: false,\n metadata: { ignoredNode: false }\n };\n }\n static templateElement(value, tail) {\n return {\n type: NodeType_1.NodeType.TemplateElement,\n value,\n tail,\n metadata: { ignoredNode: false }\n };\n }\n static templateLiteral(expressions, quasis) {\n return {\n type: NodeType_1.NodeType.TemplateLiteral,\n expressions,\n quasis,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclarationNode(declarations = [], kind = 'var') {\n return {\n type: NodeType_1.NodeType.VariableDeclaration,\n declarations,\n kind,\n metadata: { ignoredNode: false }\n };\n }\n static variableDeclaratorNode(id, init) {\n return {\n type: NodeType_1.NodeType.VariableDeclarator,\n id,\n init,\n metadata: { ignoredNode: false }\n };\n }\n static whileStatementNode(test, body) {\n return {\n type: NodeType_1.NodeType.WhileStatement,\n test,\n body,\n metadata: { ignoredNode: false }\n };\n }\n}\nexports.NodeFactory = NodeFactory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeGuards = void 0;\nconst NodeType_1 = require(\"../enums/node/NodeType\");\nclass NodeGuards {\n static isArrayPatternNode(node) {\n return node.type === NodeType_1.NodeType.ArrayPattern;\n }\n static isArrowFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ArrowFunctionExpression;\n }\n static isAssignmentExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentExpression;\n }\n static isAssignmentPatternNode(node) {\n return node.type === NodeType_1.NodeType.AssignmentPattern;\n }\n static isAwaitExpressionNode(node) {\n return node.type === NodeType_1.NodeType.AwaitExpression;\n }\n static isBigIntLiteralNode(node) {\n return NodeGuards.isLiteralNode(node) && !!node.bigint;\n }\n static isBlockStatementNode(node) {\n return node.type === NodeType_1.NodeType.BlockStatement;\n }\n static isBreakStatementNode(node) {\n return node.type === NodeType_1.NodeType.BreakStatement;\n }\n static isCallExpressionNode(node) {\n return node.type === NodeType_1.NodeType.CallExpression;\n }\n static isClassDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ClassDeclaration && node.id !== null;\n }\n static isContinueStatementNode(node) {\n return node.type === NodeType_1.NodeType.ContinueStatement;\n }\n static isDirectiveNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && 'directive' in node;\n }\n static isExportAllDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportAllDeclaration;\n }\n static isExportNamedDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ExportNamedDeclaration;\n }\n static isExportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ExportSpecifier;\n }\n static isExpressionStatementNode(node) {\n return node.type === NodeType_1.NodeType.ExpressionStatement\n && !('directive' in node);\n }\n static isForOfStatementNode(node) {\n return node.type === NodeType_1.NodeType.ForOfStatement;\n }\n static isFunctionNode(node) {\n return NodeGuards.isFunctionDeclarationNode(node) ||\n NodeGuards.isFunctionExpressionNode(node) ||\n NodeGuards.isArrowFunctionExpressionNode(node);\n }\n static isFunctionDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.FunctionDeclaration && node.id !== null;\n }\n static isFunctionExpressionNode(node) {\n return node.type === NodeType_1.NodeType.FunctionExpression;\n }\n static isIdentifierNode(node) {\n return node.type === NodeType_1.NodeType.Identifier;\n }\n static isIfStatementNode(node) {\n return node.type === NodeType_1.NodeType.IfStatement;\n }\n static isImportDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.ImportDeclaration;\n }\n static isImportSpecifierNode(node) {\n return node.type === NodeType_1.NodeType.ImportSpecifier;\n }\n static isLabelIdentifierNode(node, parentNode) {\n const parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;\n const parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;\n return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;\n }\n static isLabeledStatementNode(node) {\n return node.type === NodeType_1.NodeType.LabeledStatement;\n }\n static isLiteralNode(node) {\n return node.type === NodeType_1.NodeType.Literal;\n }\n static isMemberExpressionNode(node) {\n return node.type === NodeType_1.NodeType.MemberExpression;\n }\n static isMethodDefinitionNode(node) {\n return node.type === NodeType_1.NodeType.MethodDefinition;\n }\n static isNode(object) {\n return object && !object.type !== undefined;\n }\n static isNodeWithLexicalScope(node) {\n return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);\n }\n static isNodeWithBlockLexicalScope(node) {\n return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);\n }\n static isNodeWithLexicalScopeStatements(node, parentNode) {\n return NodeGuards.isProgramNode(node)\n || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));\n }\n static isNodeWithStatements(node) {\n return NodeGuards.isProgramNode(node)\n || NodeGuards.isBlockStatementNode(node)\n || NodeGuards.isSwitchCaseNode(node);\n }\n static isNodeWithComments(node) {\n return Boolean(node.leadingComments) || Boolean(node.trailingComments);\n }\n static isObjectPatternNode(node) {\n return node.type === NodeType_1.NodeType.ObjectPattern;\n }\n static isObjectExpressionNode(node) {\n return node.type === NodeType_1.NodeType.ObjectExpression;\n }\n static isProgramNode(node) {\n return node.type === NodeType_1.NodeType.Program;\n }\n static isPropertyNode(node) {\n return node.type === NodeType_1.NodeType.Property;\n }\n static isRestElementNode(node) {\n return node.type === NodeType_1.NodeType.RestElement;\n }\n static isReturnStatementNode(node) {\n return node.type === NodeType_1.NodeType.ReturnStatement;\n }\n static isSequenceExpressionNode(node) {\n return node.type === NodeType_1.NodeType.SequenceExpression;\n }\n static isSpreadElementNode(node) {\n return node.type === NodeType_1.NodeType.SpreadElement;\n }\n static isSuperNode(node) {\n return node.type === NodeType_1.NodeType.Super;\n }\n static isSwitchCaseNode(node) {\n return node.type === NodeType_1.NodeType.SwitchCase;\n }\n static isTaggedTemplateExpressionNode(node) {\n return node.type === NodeType_1.NodeType.TaggedTemplateExpression;\n }\n static isTemplateLiteralNode(node) {\n return node.type === NodeType_1.NodeType.TemplateLiteral;\n }\n static isUnaryExpressionNode(node) {\n return node.type === NodeType_1.NodeType.UnaryExpression;\n }\n static isUseStrictOperator(node) {\n return NodeGuards.isDirectiveNode(node)\n && node.directive === 'use strict';\n }\n static isVariableDeclarationNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclaration;\n }\n static isVariableDeclaratorNode(node) {\n return node.type === NodeType_1.NodeType.VariableDeclarator;\n }\n static isWhileStatementNode(node) {\n return node.type === NodeType_1.NodeType.WhileStatement;\n }\n static isYieldExpressionNode(node) {\n return node.type === NodeType_1.NodeType.YieldExpression;\n }\n}\nexports.NodeGuards = NodeGuards;\nNodeGuards.nodesWithLexicalStatements = [\n NodeType_1.NodeType.ArrowFunctionExpression,\n NodeType_1.NodeType.FunctionDeclaration,\n NodeType_1.NodeType.FunctionExpression,\n NodeType_1.NodeType.MethodDefinition,\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLexicalScopeUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLexicalScopeUtils {\n static getLexicalScope(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];\n }\n static getLexicalScopes(node) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);\n }\n static getLexicalScopesRecursive(node, maxSize = Infinity, nodesWithLexicalScope = [], depth = 0) {\n if (nodesWithLexicalScope.length >= maxSize) {\n return nodesWithLexicalScope;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isNodeWithLexicalScope(node)) {\n nodesWithLexicalScope.push(node);\n }\n if (node !== parentNode) {\n return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);\n }\n return nodesWithLexicalScope;\n }\n}\nexports.NodeLexicalScopeUtils = NodeLexicalScopeUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLiteralUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeLiteralUtils {\n static isStringLiteralNode(literalNode) {\n return typeof literalNode.value === 'string';\n }\n static isProhibitedLiteralNode(literalNode, parentNode) {\n if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) {\n return true;\n }\n if (NodeGuards_1.NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) {\n return true;\n }\n return false;\n }\n}\nexports.NodeLiteralUtils = NodeLiteralUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeMetadata = void 0;\nclass NodeMetadata {\n static set(node, metadata) {\n var _a;\n node.metadata = Object.assign((_a = node.metadata) !== null && _a !== void 0 ? _a : {}, metadata);\n }\n static get(node, metadataKey) {\n return node.metadata !== undefined\n ? node.metadata[metadataKey]\n : undefined;\n }\n static isForceTransformNode(node) {\n return NodeMetadata.get(node, 'forceTransformNode') === true;\n }\n static isIgnoredNode(node) {\n return NodeMetadata.get(node, 'ignoredNode') === true;\n }\n static isReplacedLiteral(literalNode) {\n return NodeMetadata.get(literalNode, 'replacedLiteral') === true;\n }\n}\nexports.NodeMetadata = NodeMetadata;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeStatementUtils = void 0;\nconst NodeGuards_1 = require(\"./NodeGuards\");\nclass NodeStatementUtils {\n static getParentNodeWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];\n }\n static getParentNodesWithStatements(node) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);\n }\n static getNextSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);\n }\n static getPreviousSiblingStatement(statement) {\n return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);\n }\n static getRootStatementOfNode(node) {\n if (NodeGuards_1.NodeGuards.isProgramNode(node)) {\n throw new Error('Unable to find root statement for `Program` node');\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getRootStatementOfNode(parentNode);\n }\n return node;\n }\n static getScopeOfNode(node) {\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (!NodeGuards_1.NodeGuards.isNodeWithStatements(parentNode)) {\n return NodeStatementUtils.getScopeOfNode(parentNode);\n }\n return parentNode;\n }\n static getParentNodesWithStatementsRecursive(node, maxSize = Infinity, nodesWithStatements = [], depth = 0) {\n if (nodesWithStatements.length >= maxSize) {\n return nodesWithStatements;\n }\n const parentNode = node.parentNode;\n if (!parentNode) {\n throw new ReferenceError('`parentNode` property of given node is `undefined`');\n }\n if (NodeGuards_1.NodeGuards.isProgramNode(node) ||\n (NodeGuards_1.NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)) {\n nodesWithStatements.push(node);\n }\n if (node !== parentNode) {\n return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);\n }\n return nodesWithStatements;\n }\n static getSiblingStatementByOffset(statement, offset) {\n const scopeNode = NodeStatementUtils.getScopeOfNode(statement);\n const scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode)\n ? scopeNode.body\n : scopeNode.consequent;\n const indexInScope = scopeBody.indexOf(statement);\n return scopeBody[indexInScope + offset] || null;\n }\n}\nexports.NodeStatementUtils = NodeStatementUtils;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeUtils = void 0;\nconst escodegen = __importStar(require(\"@javascript-obfuscator/escodegen\"));\nconst estraverse = __importStar(require(\"estraverse\"));\nconst EcmaVersion_1 = require(\"../constants/EcmaVersion\");\nconst ASTParserFacade_1 = require(\"../ASTParserFacade\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nconst NodeMetadata_1 = require(\"./NodeMetadata\");\nclass NodeUtils {\n static addXVerbatimPropertyTo(literalNode) {\n literalNode['x-verbatim-property'] = {\n content: literalNode.raw,\n precedence: escodegen.Precedence.Primary\n };\n return literalNode;\n }\n static clone(astTree) {\n return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));\n }\n static convertCodeToStructure(code) {\n const structure = ASTParserFacade_1.ASTParserFacade.parse(code, {\n ecmaVersion: EcmaVersion_1.ecmaVersion,\n sourceType: 'script'\n });\n estraverse.replace(structure, {\n enter: (node, parentNode) => {\n NodeUtils.parentizeNode(node, parentNode);\n if (NodeGuards_1.NodeGuards.isLiteralNode(node)) {\n NodeUtils.addXVerbatimPropertyTo(node);\n }\n NodeMetadata_1.NodeMetadata.set(node, { ignoredNode: false });\n return node;\n }\n });\n return structure.body;\n }\n static convertStructureToCode(structure) {\n return structure.reduce((code, node) => {\n return code + escodegen.generate(node, {\n sourceMapWithCode: true\n }).code;\n }, '');\n }\n static getUnaryExpressionArgumentNode(unaryExpressionNode) {\n if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {\n return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);\n }\n return unaryExpressionNode.argument;\n }\n static parentizeAst(astTree) {\n var _a;\n const parentNode = (_a = astTree.parentNode) !== null && _a !== void 0 ? _a : null;\n estraverse.replace(astTree, {\n enter: NodeUtils.parentizeNode\n });\n if (parentNode) {\n astTree.parentNode = parentNode;\n }\n return astTree;\n }\n static parentizeNode(node, parentNode) {\n node.parentNode = parentNode !== null && parentNode !== void 0 ? parentNode : node;\n return node;\n }\n static cloneRecursive(node) {\n if (node === null) {\n return node;\n }\n const copy = {};\n const nodeKeys = Object.keys(node);\n nodeKeys\n .forEach((property) => {\n var _a;\n if (property === 'parentNode') {\n return;\n }\n const value = (_a = node[property]) !== null && _a !== void 0 ? _a : null;\n let clonedValue;\n if (value === null || value instanceof RegExp) {\n clonedValue = value;\n }\n else if (value instanceof Array) {\n clonedValue = value.map(NodeUtils.cloneRecursive);\n }\n else if (typeof value === 'object') {\n clonedValue = NodeUtils.cloneRecursive(value);\n }\n else {\n clonedValue = value;\n }\n copy[property] = clonedValue;\n });\n return copy;\n }\n}\nexports.NodeUtils = NodeUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ScopeIdentifiersTraverser_1, _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopeIdentifiersTraverser = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IScopeAnalyzer_1 = require(\"../interfaces/analyzers/scope-analyzer/IScopeAnalyzer\");\nconst NodeGuards_1 = require(\"./NodeGuards\");\nlet ScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = class ScopeIdentifiersTraverser {\n constructor(scopeAnalyzer) {\n this.scopeAnalyzer = scopeAnalyzer;\n }\n traverseScopeIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeThroughIdentifiers(programNode, parentNode, callback) {\n this.scopeAnalyzer.analyze(programNode);\n const globalScope = this.scopeAnalyzer.acquireScope(programNode);\n this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback);\n }\n traverseScopeIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n const isGlobalDeclaration = ScopeIdentifiersTraverser_1.globalScopeNames.includes(variableScope.type);\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const variable of currentScope.variables) {\n if (variable.name === ScopeIdentifiersTraverser_1.argumentsVariableName) {\n continue;\n }\n const isBubblingDeclaration = variable\n .identifiers\n .some((identifier) => identifier.parentNode\n && NodeGuards_1.NodeGuards.isPropertyNode(identifier.parentNode)\n && identifier.parentNode.shorthand);\n callback({\n isGlobalDeclaration,\n isBubblingDeclaration,\n rootScope,\n variable,\n variableScope,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n traverseScopeThroughIdentifiersRecursive(rootScope, currentScope, callback) {\n const variableScope = currentScope.variableScope;\n const variableLexicalScopeNode = NodeGuards_1.NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)\n ? variableScope.block\n : null;\n if (!variableLexicalScopeNode) {\n return;\n }\n for (const reference of currentScope.through) {\n callback({\n reference,\n variableLexicalScopeNode\n });\n }\n for (const childScope of currentScope.childScopes) {\n this.traverseScopeThroughIdentifiersRecursive(rootScope, childScope, callback);\n }\n }\n};\nScopeIdentifiersTraverser.argumentsVariableName = 'arguments';\nScopeIdentifiersTraverser.globalScopeNames = [\n 'global',\n 'module'\n];\nScopeIdentifiersTraverser = ScopeIdentifiersTraverser_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IScopeAnalyzer)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IScopeAnalyzer_1.IScopeAnalyzer !== \"undefined\" && IScopeAnalyzer_1.IScopeAnalyzer) === \"function\" ? _a : Object])\n], ScopeIdentifiersTraverser);\nexports.ScopeIdentifiersTraverser = ScopeIdentifiersTraverser;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar Options_1, _a, _b, _c, _d, _e, _f, _g;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Options = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst class_validator_1 = require(\"class-validator\");\nconst TInputOptions_1 = require(\"../types/options/TInputOptions\");\nconst TOptionsPreset_1 = require(\"../types/options/TOptionsPreset\");\nconst TStringArrayWrappersType_1 = require(\"../types/options/TStringArrayWrappersType\");\nconst TTypeFromEnum_1 = require(\"../types/utils/TTypeFromEnum\");\nconst IOptionsNormalizer_1 = require(\"../interfaces/options/IOptionsNormalizer\");\nconst IdentifierNamesGenerator_1 = require(\"../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst Default_1 = require(\"./presets/Default\");\nconst LowObfuscation_1 = require(\"./presets/LowObfuscation\");\nconst MediumObfuscation_1 = require(\"./presets/MediumObfuscation\");\nconst HighObfuscation_1 = require(\"./presets/HighObfuscation\");\nconst ValidationErrorsFormatter_1 = require(\"./ValidationErrorsFormatter\");\nconst IsAllowedForObfuscationTargets_1 = require(\"./validators/IsAllowedForObfuscationTargets\");\nlet Options = Options_1 = class Options {\n constructor(inputOptions, optionsNormalizer) {\n var _a;\n const optionsPreset = Options_1.getOptionsByPreset((_a = inputOptions.optionsPreset) !== null && _a !== void 0 ? _a : OptionsPreset_1.OptionsPreset.Default);\n Object.assign(this, optionsPreset, inputOptions);\n const errors = class_validator_1.validateSync(this, Options_1.validatorOptions);\n if (errors.length) {\n throw new ReferenceError(`Validation failed. errors:\\n${ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors)}`);\n }\n Object.assign(this, optionsNormalizer.normalize(this));\n }\n static getOptionsByPreset(optionsPreset) {\n var _a;\n const options = (_a = Options_1.optionPresetsMap.get(optionsPreset)) !== null && _a !== void 0 ? _a : null;\n if (!options) {\n throw new Error(`Options for preset name \\`${optionsPreset}\\` are not found`);\n }\n return options;\n }\n};\nOptions.optionPresetsMap = new Map([\n [OptionsPreset_1.OptionsPreset.Default, Default_1.DEFAULT_PRESET],\n [OptionsPreset_1.OptionsPreset.LowObfuscation, LowObfuscation_1.LOW_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.MediumObfuscation, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET],\n [OptionsPreset_1.OptionsPreset.HighObfuscation, HighObfuscation_1.HIGH_OBFUSCATION_PRESET]\n]);\nOptions.validatorOptions = {\n validationError: {\n target: false\n }\n};\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"compact\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"controlFlowFlattening\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"controlFlowFlatteningThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"deadCodeInjection\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"deadCodeInjectionThreshold\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtection\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"debugProtectionInterval\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"disableConsoleOutput\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n IsAllowedForObfuscationTargets_1.IsAllowedForObfuscationTargets([\n ObfuscationTarget_1.ObfuscationTarget.Browser,\n ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval,\n ]),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"domainLock\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"forceTransformStrings\", void 0);\n__decorate([\n class_validator_1.IsIn([\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,\n IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator\n ]),\n __metadata(\"design:type\", typeof (_a = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _a : Object)\n], Options.prototype, \"identifierNamesGenerator\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"identifiersPrefix\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n class_validator_1.ValidateIf((options) => options.identifierNamesGenerator === IdentifierNamesGenerator_1.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),\n class_validator_1.ArrayNotEmpty(),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"identifiersDictionary\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"ignoreRequireImports\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"inputFileName\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"log\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"numbersToExpressions\", void 0);\n__decorate([\n class_validator_1.IsIn([\n OptionsPreset_1.OptionsPreset.Default,\n OptionsPreset_1.OptionsPreset.LowObfuscation,\n OptionsPreset_1.OptionsPreset.MediumObfuscation,\n OptionsPreset_1.OptionsPreset.HighObfuscation\n ]),\n __metadata(\"design:type\", typeof (_b = typeof TOptionsPreset_1.TOptionsPreset !== \"undefined\" && TOptionsPreset_1.TOptionsPreset) === \"function\" ? _b : Object)\n], Options.prototype, \"optionsPreset\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameGlobals\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"renameProperties\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedNames\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsString({\n each: true\n }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"reservedStrings\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"rotateStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"selfDefending\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"shuffleStringArray\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"simplify\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"sourceMap\", void 0);\n__decorate([\n class_validator_1.IsString(),\n class_validator_1.ValidateIf((options) => Boolean(options.sourceMapBaseUrl)),\n class_validator_1.IsUrl({\n require_protocol: true,\n require_tld: false,\n require_valid_protocol: true\n }),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapBaseUrl\", void 0);\n__decorate([\n class_validator_1.IsString(),\n __metadata(\"design:type\", String)\n], Options.prototype, \"sourceMapFileName\", void 0);\n__decorate([\n class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]),\n __metadata(\"design:type\", typeof (_c = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _c : Object)\n], Options.prototype, \"sourceMapMode\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"splitStrings\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.ValidateIf((options) => Boolean(options.splitStrings)),\n class_validator_1.Min(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"splitStringsChunkLength\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArray\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayEncoding_1.StringArrayEncoding.None, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayEncoding\", void 0);\n__decorate([\n class_validator_1.IsArray(),\n class_validator_1.ArrayNotEmpty(),\n class_validator_1.ArrayUnique(),\n class_validator_1.IsIn([StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumericString], { each: true }),\n __metadata(\"design:type\", Array)\n], Options.prototype, \"stringArrayIndexesType\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayIndexShift\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"stringArrayWrappersChainedCalls\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersCount\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(2),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayWrappersParametersMaxCount\", void 0);\n__decorate([\n class_validator_1.IsIn([StringArrayWrappersType_1.StringArrayWrappersType.Variable, StringArrayWrappersType_1.StringArrayWrappersType.Function]),\n __metadata(\"design:type\", typeof (_d = typeof TStringArrayWrappersType_1.TStringArrayWrappersType !== \"undefined\" && TStringArrayWrappersType_1.TStringArrayWrappersType) === \"function\" ? _d : Object)\n], Options.prototype, \"stringArrayWrappersType\", void 0);\n__decorate([\n class_validator_1.IsNumber(),\n class_validator_1.Min(0),\n class_validator_1.Max(1),\n __metadata(\"design:type\", Number)\n], Options.prototype, \"stringArrayThreshold\", void 0);\n__decorate([\n class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]),\n __metadata(\"design:type\", typeof (_e = typeof TTypeFromEnum_1.TTypeFromEnum !== \"undefined\" && TTypeFromEnum_1.TTypeFromEnum) === \"function\" ? _e : Object)\n], Options.prototype, \"target\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"transformObjectKeys\", void 0);\n__decorate([\n class_validator_1.IsBoolean(),\n __metadata(\"design:type\", Boolean)\n], Options.prototype, \"unicodeEscapeSequence\", void 0);\nOptions = Options_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)),\n __metadata(\"design:paramtypes\", [typeof (_f = typeof TInputOptions_1.TInputOptions !== \"undefined\" && TInputOptions_1.TInputOptions) === \"function\" ? _f : Object, typeof (_g = typeof IOptionsNormalizer_1.IOptionsNormalizer !== \"undefined\" && IOptionsNormalizer_1.IOptionsNormalizer) === \"function\" ? _g : Object])\n], Options);\nexports.Options = Options;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar OptionsNormalizer_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsNormalizer = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ControlFlowFlatteningThresholdRule_1 = require(\"./normalizer-rules/ControlFlowFlatteningThresholdRule\");\nconst DeadCodeInjectionRule_1 = require(\"./normalizer-rules/DeadCodeInjectionRule\");\nconst DeadCodeInjectionThresholdRule_1 = require(\"./normalizer-rules/DeadCodeInjectionThresholdRule\");\nconst DomainLockRule_1 = require(\"./normalizer-rules/DomainLockRule\");\nconst InputFileNameRule_1 = require(\"./normalizer-rules/InputFileNameRule\");\nconst SeedRule_1 = require(\"./normalizer-rules/SeedRule\");\nconst SelfDefendingRule_1 = require(\"./normalizer-rules/SelfDefendingRule\");\nconst SourceMapBaseUrlRule_1 = require(\"./normalizer-rules/SourceMapBaseUrlRule\");\nconst SourceMapFileNameRule_1 = require(\"./normalizer-rules/SourceMapFileNameRule\");\nconst SplitStringsChunkLengthRule_1 = require(\"./normalizer-rules/SplitStringsChunkLengthRule\");\nconst StringArrayRule_1 = require(\"./normalizer-rules/StringArrayRule\");\nconst StringArrayEncodingRule_1 = require(\"./normalizer-rules/StringArrayEncodingRule\");\nconst StringArrayWappersChainedCalls_1 = require(\"./normalizer-rules/StringArrayWappersChainedCalls\");\nlet OptionsNormalizer = OptionsNormalizer_1 = class OptionsNormalizer {\n normalize(options) {\n let normalizedOptions = Object.assign({}, options);\n for (const normalizerRule of OptionsNormalizer_1.normalizerRules) {\n normalizedOptions = normalizerRule(normalizedOptions);\n }\n return normalizedOptions;\n }\n};\nOptionsNormalizer.normalizerRules = [\n ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule,\n DeadCodeInjectionRule_1.DeadCodeInjectionRule,\n DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule,\n DomainLockRule_1.DomainLockRule,\n InputFileNameRule_1.InputFileNameRule,\n SeedRule_1.SeedRule,\n SelfDefendingRule_1.SelfDefendingRule,\n SourceMapBaseUrlRule_1.SourceMapBaseUrlRule,\n SourceMapFileNameRule_1.SourceMapFileNameRule,\n SplitStringsChunkLengthRule_1.SplitStringsChunkLengthRule,\n StringArrayRule_1.StringArrayRule,\n StringArrayEncodingRule_1.StringArrayEncodingRule,\n StringArrayWappersChainedCalls_1.StringArrayWrappersChainedCallsRule,\n];\nOptionsNormalizer = OptionsNormalizer_1 = __decorate([\n inversify_1.injectable()\n], OptionsNormalizer);\nexports.OptionsNormalizer = OptionsNormalizer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationErrorsFormatter = void 0;\nclass ValidationErrorsFormatter {\n static format(errors) {\n return errors\n .reduce((errorMessages, error) => [\n ...errorMessages,\n ValidationErrorsFormatter.formatWithNestedConstraints(error)\n ], [])\n .join('\\n');\n }\n static formatWithNestedConstraints(error) {\n const constraints = error.constraints;\n if (!constraints) {\n return `\\`${error.property}\\` error\\n`;\n }\n const rootError = `\\`${error.property}\\` errors:\\n`;\n const nestedErrors = Object\n .keys(constraints)\n .map((constraint) => ` - ${constraints[constraint]}\\n`)\n .join();\n return `${rootError}${nestedErrors}`;\n }\n}\nexports.ValidationErrorsFormatter = ValidationErrorsFormatter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowFlatteningThresholdRule = void 0;\nconst ControlFlowFlatteningThresholdRule = (options) => {\n if (options.controlFlowFlatteningThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { controlFlowFlattening: false, controlFlowFlatteningThreshold: 0 });\n }\n return options;\n};\nexports.ControlFlowFlatteningThresholdRule = ControlFlowFlatteningThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionRule = void 0;\nconst Default_1 = require(\"../presets/Default\");\nconst DeadCodeInjectionRule = (options) => {\n if (options.deadCodeInjection) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: true, stringArray: true });\n if (!options.stringArrayThreshold) {\n options = Object.assign(Object.assign({}, options), { stringArray: true, stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold });\n }\n }\n return options;\n};\nexports.DeadCodeInjectionRule = DeadCodeInjectionRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadCodeInjectionThresholdRule = void 0;\nconst DeadCodeInjectionThresholdRule = (options) => {\n if (options.deadCodeInjectionThreshold === 0) {\n options = Object.assign(Object.assign({}, options), { deadCodeInjection: false, deadCodeInjectionThreshold: 0 });\n }\n return options;\n};\nexports.DeadCodeInjectionThresholdRule = DeadCodeInjectionThresholdRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomainLockRule = void 0;\nconst Utils_1 = require(\"../../utils/Utils\");\nconst DomainLockRule = (options) => {\n if (options.domainLock.length) {\n const normalizedDomains = [];\n for (const domain of options.domainLock) {\n normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain));\n }\n options = Object.assign(Object.assign({}, options), { domainLock: normalizedDomains });\n }\n return options;\n};\nexports.DomainLockRule = DomainLockRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst InputFileNameRule = (options) => {\n let { inputFileName } = options;\n if (inputFileName) {\n inputFileName = inputFileName\n .replace(/^\\/+/, '')\n .split(StringSeparator_1.StringSeparator.Dot)\n .slice(0, -1)\n .join(StringSeparator_1.StringSeparator.Dot) || inputFileName;\n options = Object.assign(Object.assign({}, options), { inputFileName: `${inputFileName}.js` });\n }\n return options;\n};\nexports.InputFileNameRule = InputFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeedRule = void 0;\nconst SeedRule = (options) => {\n if (options.seed) {\n return Object.assign(Object.assign({}, options), { seed: options.seed });\n }\n const getRandomInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n };\n return Object.assign(Object.assign({}, options), { seed: getRandomInteger(0, 999999999) });\n};\nexports.SeedRule = SeedRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelfDefendingRule = void 0;\nconst SelfDefendingRule = (options) => {\n if (options.selfDefending) {\n options = Object.assign(Object.assign({}, options), { compact: true, selfDefending: true });\n }\n return options;\n};\nexports.SelfDefendingRule = SelfDefendingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapBaseUrlRule = void 0;\nconst SourceMapBaseUrlRule = (options) => {\n const { sourceMapBaseUrl } = options;\n if (!options.sourceMapFileName) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: '' });\n return options;\n }\n if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {\n options = Object.assign(Object.assign({}, options), { sourceMapBaseUrl: `${sourceMapBaseUrl}/` });\n }\n return options;\n};\nexports.SourceMapBaseUrlRule = SourceMapBaseUrlRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMapFileNameRule = void 0;\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst SourceMapFileNameRule = (options) => {\n let { sourceMapFileName } = options;\n if (sourceMapFileName) {\n sourceMapFileName = sourceMapFileName\n .replace(/^\\/+/, '')\n .replace(/(?:\\.js)?(?:\\.map)?$/, '');\n let sourceMapFileNameParts = sourceMapFileName.split(StringSeparator_1.StringSeparator.Dot);\n const sourceMapFileNamePartsCount = sourceMapFileNameParts.length;\n const lastPart = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];\n if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {\n sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);\n }\n sourceMapFileName = sourceMapFileNameParts.join(StringSeparator_1.StringSeparator.Dot);\n options = Object.assign(Object.assign({}, options), { sourceMapFileName: `${sourceMapFileName}.js.map` });\n }\n return options;\n};\nexports.SourceMapFileNameRule = SourceMapFileNameRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitStringsChunkLengthRule = void 0;\nconst SplitStringsChunkLengthRule = (options) => {\n if (options.splitStringsChunkLength === 0) {\n options = Object.assign(Object.assign({}, options), { splitStrings: false, splitStringsChunkLength: 0 });\n }\n else {\n options = Object.assign(Object.assign({}, options), { splitStringsChunkLength: Math.floor(options.splitStringsChunkLength) });\n }\n return options;\n};\nexports.SplitStringsChunkLengthRule = SplitStringsChunkLengthRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayEncodingRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayEncodingRule = (options) => {\n if (!options.stringArrayEncoding.length) {\n options = Object.assign(Object.assign({}, options), { stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ] });\n }\n return options;\n};\nexports.StringArrayEncodingRule = StringArrayEncodingRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayRule = void 0;\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayRule = (options) => {\n if (!options.stringArray) {\n options = Object.assign(Object.assign({}, options), { rotateStringArray: false, shuffleStringArray: false, stringArray: false, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ], stringArrayIndexShift: false, stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0, stringArrayThreshold: 0 });\n }\n return options;\n};\nexports.StringArrayRule = StringArrayRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayWrappersChainedCallsRule = void 0;\nconst StringArrayWrappersChainedCallsRule = (options) => {\n if (options.stringArrayWrappersCount === 0) {\n options = Object.assign(Object.assign({}, options), { stringArrayWrappersChainedCalls: false, stringArrayWrappersCount: 0 });\n }\n return options;\n};\nexports.StringArrayWrappersChainedCallsRule = StringArrayWrappersChainedCallsRule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nexports.DEFAULT_PRESET = Object.freeze({\n compact: true,\n config: '',\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0.75,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0.4,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n optionsPreset: OptionsPreset_1.OptionsPreset.Default,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: true,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: true,\n simplify: true,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 10,\n stringArray: true,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: true,\n stringArrayWrappersChainedCalls: true,\n stringArrayWrappersCount: 1,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0.75,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HIGH_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MediumObfuscation_1 = require(\"./MediumObfuscation\");\nexports.HIGH_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, MediumObfuscation_1.MEDIUM_OBFUSCATION_PRESET), { controlFlowFlatteningThreshold: 1, deadCodeInjectionThreshold: 1, debugProtection: true, debugProtectionInterval: true, optionsPreset: OptionsPreset_1.OptionsPreset.HighObfuscation, splitStringsChunkLength: 5, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Rc4\n ], stringArrayWrappersCount: 5, stringArrayWrappersParametersMaxCount: 5, stringArrayThreshold: 1 }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LOW_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst Default_1 = require(\"./Default\");\nexports.LOW_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, Default_1.DEFAULT_PRESET), { disableConsoleOutput: true, optionsPreset: OptionsPreset_1.OptionsPreset.LowObfuscation, rotateStringArray: true, selfDefending: true, shuffleStringArray: true, simplify: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MEDIUM_OBFUSCATION_PRESET = void 0;\nconst OptionsPreset_1 = require(\"../../enums/options/presets/OptionsPreset\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst LowObfuscation_1 = require(\"./LowObfuscation\");\nexports.MEDIUM_OBFUSCATION_PRESET = Object.freeze(Object.assign(Object.assign({}, LowObfuscation_1.LOW_OBFUSCATION_PRESET), { controlFlowFlattening: true, deadCodeInjection: true, numbersToExpressions: true, optionsPreset: OptionsPreset_1.OptionsPreset.MediumObfuscation, splitStrings: true, splitStringsChunkLength: 10, stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.Base64\n ], stringArrayWrappersCount: 2, stringArrayWrappersParametersMaxCount: 4, stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Function, transformObjectKeys: true }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NO_ADDITIONAL_NODES_PRESET = void 0;\nconst IdentifierNamesGenerator_1 = require(\"../../enums/generators/identifier-names-generators/IdentifierNamesGenerator\");\nconst ObfuscationTarget_1 = require(\"../../enums/ObfuscationTarget\");\nconst SourceMapMode_1 = require(\"../../enums/source-map/SourceMapMode\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst StringArrayWrappersType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayWrappersType\");\nconst StringArrayIndexesType_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayIndexesType\");\nexports.NO_ADDITIONAL_NODES_PRESET = Object.freeze({\n compact: true,\n controlFlowFlattening: false,\n controlFlowFlatteningThreshold: 0,\n deadCodeInjection: false,\n deadCodeInjectionThreshold: 0,\n debugProtection: false,\n debugProtectionInterval: false,\n disableConsoleOutput: false,\n domainLock: [],\n exclude: [],\n forceTransformStrings: [],\n identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,\n identifiersPrefix: '',\n identifiersDictionary: [],\n ignoreRequireImports: false,\n inputFileName: '',\n log: false,\n numbersToExpressions: false,\n renameGlobals: false,\n renameProperties: false,\n reservedNames: [],\n reservedStrings: [],\n rotateStringArray: false,\n seed: 0,\n selfDefending: false,\n shuffleStringArray: false,\n simplify: false,\n sourceMap: false,\n sourceMapBaseUrl: '',\n sourceMapFileName: '',\n sourceMapMode: SourceMapMode_1.SourceMapMode.Separate,\n splitStrings: false,\n splitStringsChunkLength: 0,\n stringArray: false,\n stringArrayEncoding: [\n StringArrayEncoding_1.StringArrayEncoding.None\n ],\n stringArrayIndexesType: [\n StringArrayIndexesType_1.StringArrayIndexesType.HexadecimalNumber\n ],\n stringArrayIndexShift: false,\n stringArrayWrappersChainedCalls: false,\n stringArrayWrappersCount: 0,\n stringArrayWrappersParametersMaxCount: 2,\n stringArrayWrappersType: StringArrayWrappersType_1.StringArrayWrappersType.Variable,\n stringArrayThreshold: 0,\n target: ObfuscationTarget_1.ObfuscationTarget.Browser,\n transformObjectKeys: false,\n unicodeEscapeSequence: false\n});\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IsAllowedForObfuscationTargets = void 0;\nconst class_validator_1 = require(\"class-validator\");\nconst fast_deep_equal_1 = __importDefault(require(\"fast-deep-equal\"));\nconst StringSeparator_1 = require(\"../../enums/StringSeparator\");\nconst Default_1 = require(\"../presets/Default\");\nfunction IsAllowedForObfuscationTargets(obfuscationTargets, validationOptions) {\n return (optionsObject, propertyName) => {\n class_validator_1.registerDecorator({\n propertyName,\n constraints: [obfuscationTargets],\n name: 'IsAllowedForObfuscationTargets',\n options: validationOptions,\n target: optionsObject.constructor,\n validator: {\n validate(value, validationArguments) {\n const options = validationArguments.object;\n const defaultValue = Default_1.DEFAULT_PRESET[propertyName];\n const isDefaultValue = fast_deep_equal_1.default(value, defaultValue);\n return isDefaultValue || obfuscationTargets.includes(options.target);\n },\n defaultMessage(validationArguments) {\n const requiredObfuscationTargetsString = obfuscationTargets.join(`${StringSeparator_1.StringSeparator.Comma} `);\n return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;\n }\n }\n });\n };\n}\nexports.IsAllowedForObfuscationTargets = IsAllowedForObfuscationTargets;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObfuscatedCode = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst ICryptUtils_1 = require(\"../interfaces/utils/ICryptUtils\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst SourceMapMode_1 = require(\"../enums/source-map/SourceMapMode\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nlet ObfuscatedCode = class ObfuscatedCode {\n constructor(cryptUtils, options) {\n this.cryptUtils = cryptUtils;\n this.options = options;\n }\n initialize(obfuscatedCode, sourceMap) {\n this.obfuscatedCode = obfuscatedCode;\n this.sourceMap = sourceMap;\n }\n getObfuscatedCode() {\n return this.correctObfuscatedCode();\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.obfuscatedCode;\n }\n correctObfuscatedCode() {\n if (!this.sourceMap) {\n return this.obfuscatedCode;\n }\n const sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;\n let sourceMappingUrl = '//# sourceMappingURL=';\n switch (this.options.sourceMapMode) {\n case SourceMapMode_1.SourceMapMode.Inline:\n sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;\n break;\n case SourceMapMode_1.SourceMapMode.Separate:\n default:\n if (!sourceMapUrl) {\n return this.obfuscatedCode;\n }\n sourceMappingUrl += sourceMapUrl;\n }\n return `${this.obfuscatedCode}\\n${sourceMappingUrl}`;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"obfuscatedCode\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ObfuscatedCode.prototype, \"sourceMap\", void 0);\nObfuscatedCode = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ICryptUtils_1.ICryptUtils !== \"undefined\" && ICryptUtils_1.ICryptUtils) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ObfuscatedCode);\nexports.ObfuscatedCode = ObfuscatedCode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceCode = void 0;\nclass SourceCode {\n constructor(sourceCode, sourceMap) {\n this.sourceCode = sourceCode;\n this.sourceMap = sourceMap;\n }\n getSourceCode() {\n return this.sourceCode;\n }\n getSourceMap() {\n return this.sourceMap;\n }\n toString() {\n return this.sourceCode;\n }\n}\nexports.SourceCode = SourceCode;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet ArrayStorage = class ArrayStorage {\n constructor(randomGenerator, options) {\n this.storageLength = 0;\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = [];\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n delete(key) {\n var _a;\n const deletedElement = (_a = this.storage.splice(key, 1)[0]) !== null && _a !== void 0 ? _a : undefined;\n if (deletedElement) {\n this.storageLength--;\n }\n return deletedElement;\n }\n get(key) {\n return this.storage[key];\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in array storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n const key = this.storage.indexOf(value);\n return key >= 0 ? key : null;\n }\n getLength() {\n return this.storageLength;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n mergeWith(storage, mergeId = false) {\n this.storage = [...this.storage, ...storage.getStorage()];\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n if (key === this.storageLength) {\n this.storage.push(value);\n }\n else {\n this.storage.splice(key, 0, value);\n }\n this.storageLength++;\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", Array)\n], ArrayStorage.prototype, \"storage\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], ArrayStorage.prototype, \"storageId\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ArrayStorage.prototype, \"initialize\", null);\nArrayStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ArrayStorage);\nexports.ArrayStorage = ArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nlet MapStorage = class MapStorage {\n constructor(randomGenerator, options) {\n this.randomGenerator = randomGenerator;\n this.options = options;\n }\n initialize() {\n this.storage = new Map();\n this.storageId = this.randomGenerator.getRandomString(6);\n }\n get(key) {\n return this.storage.get(key);\n }\n getOrThrow(key) {\n const value = this.get(key);\n if (!value) {\n throw new Error(`No value found in map storage with key \\`${key}\\``);\n }\n return value;\n }\n getKeyOf(value) {\n for (const [key, storageValue] of this.storage) {\n if (value === storageValue) {\n return key;\n }\n }\n return null;\n }\n getLength() {\n return this.storage.size;\n }\n getStorage() {\n return this.storage;\n }\n getStorageId() {\n return this.storageId;\n }\n has(key) {\n return this.storage.has(key);\n }\n mergeWith(storage, mergeId = false) {\n this.storage = new Map([...this.storage, ...storage.getStorage()]);\n if (mergeId) {\n this.storageId = storage.getStorageId();\n }\n }\n set(key, value) {\n this.storage.set(key, value);\n }\n};\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", String)\n], MapStorage.prototype, \"storageId\", void 0);\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof Map !== \"undefined\" && Map) === \"function\" ? _a : Object)\n], MapStorage.prototype, \"storage\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MapStorage.prototype, \"initialize\", null);\nMapStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], MapStorage);\nexports.MapStorage = MapStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CustomCodeHelperGroupStorage_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomCodeHelperGroupStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TCustomCodeHelperGroupFactory_1 = require(\"../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst CustomCodeHelperGroup_1 = require(\"../../enums/custom-code-helpers/CustomCodeHelperGroup\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = class CustomCodeHelperGroupStorage extends MapStorage_1.MapStorage {\n constructor(customCodeHelperGroupFactory, randomGenerator, options) {\n super(randomGenerator, options);\n this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;\n }\n initialize() {\n super.initialize();\n CustomCodeHelperGroupStorage_1.customCodeHelperGroupsList.forEach((customCodeHelperGroupName) => {\n const customCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);\n this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);\n });\n }\n};\nCustomCodeHelperGroupStorage.customCodeHelperGroupsList = [\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.ConsoleOutput,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DebugProtection,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.DomainLock,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.SelfDefending,\n CustomCodeHelperGroup_1.CustomCodeHelperGroup.StringArray\n];\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], CustomCodeHelperGroupStorage.prototype, \"initialize\", null);\nCustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory !== \"undefined\" && TCustomCodeHelperGroupFactory_1.TCustomCodeHelperGroupFactory) === \"function\" ? _a : Object, typeof (_b = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], CustomCodeHelperGroupStorage);\nexports.CustomCodeHelperGroupStorage = CustomCodeHelperGroupStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlFlowStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet ControlFlowStorage = class ControlFlowStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nControlFlowStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], ControlFlowStorage);\nexports.ControlFlowStorage = ControlFlowStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LiteralNodesCacheStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet LiteralNodesCacheStorage = class LiteralNodesCacheStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n buildKey(literalValue, stringArrayStorageItemData) {\n return `${literalValue}-${Boolean(stringArrayStorageItemData)}`;\n }\n shouldUseCachedValue(key, stringArrayStorageItemData) {\n return !this.options.stringArrayWrappersCount\n && (stringArrayStorageItemData === null || stringArrayStorageItemData === void 0 ? void 0 : stringArrayStorageItemData.encoding) !== StringArrayEncoding_1.StringArrayEncoding.Rc4\n && this.storage.has(key);\n }\n};\nLiteralNodesCacheStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], LiteralNodesCacheStorage);\nexports.LiteralNodesCacheStorage = LiteralNodesCacheStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperLexicalScopeDataStorage = class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperLexicalScopeDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayScopeCallsWrapperLexicalScopeDataStorage);\nexports.StringArrayScopeCallsWrapperLexicalScopeDataStorage = StringArrayScopeCallsWrapperLexicalScopeDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayScopeCallsWrapperNamesDataStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayScopeCallsWrapperNamesDataStorage = class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage_1.MapStorage {\n constructor(randomGenerator, options) {\n super(randomGenerator, options);\n }\n};\nStringArrayScopeCallsWrapperNamesDataStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object])\n], StringArrayScopeCallsWrapperNamesDataStorage);\nexports.StringArrayScopeCallsWrapperNamesDataStorage = StringArrayScopeCallsWrapperNamesDataStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StringArrayStorage_1, _a, _b, _c, _d, _e;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringArrayStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst TIdentifierNamesGeneratorFactory_1 = require(\"../../types/container/generators/TIdentifierNamesGeneratorFactory\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst ICryptUtilsSwappedAlphabet_1 = require(\"../../interfaces/utils/ICryptUtilsSwappedAlphabet\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst StringArrayEncoding_1 = require(\"../../enums/node-transformers/string-array-transformers/StringArrayEncoding\");\nconst MapStorage_1 = require(\"../MapStorage\");\nlet StringArrayStorage = StringArrayStorage_1 = class StringArrayStorage extends MapStorage_1.MapStorage {\n constructor(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options, cryptUtilsSwappedAlphabet) {\n super(randomGenerator, options);\n this.rc4EncodedValuesSourcesCache = new Map();\n this.indexShiftAmount = 0;\n this.rotationAmount = 0;\n this.stringArrayStorageCallsWrapperNamesMap = new Map();\n this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);\n this.arrayUtils = arrayUtils;\n this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet;\n this.rc4Keys = this.randomGenerator.getRandomGenerator()\n .n(() => this.randomGenerator.getRandomGenerator().string({\n length: StringArrayStorage_1.rc4KeyLength\n }), StringArrayStorage_1.rc4KeysCount);\n }\n initialize() {\n super.initialize();\n this.indexShiftAmount = this.options.stringArrayIndexShift\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumIndexShiftAmount, StringArrayStorage_1.maximumIndexShiftAmount)\n : 0;\n this.rotationAmount = this.options.rotateStringArray\n ? this.randomGenerator.getRandomInteger(StringArrayStorage_1.minimumRotationAmount, StringArrayStorage_1.maximumRotationAmount)\n : 0;\n }\n get(value) {\n return this.getOrSetIfDoesNotExist(value);\n }\n getIndexShiftAmount() {\n return this.indexShiftAmount;\n }\n getRotationAmount() {\n return this.rotationAmount;\n }\n getStorageName() {\n return this.getStorageId();\n }\n getStorageId() {\n if (!this.stringArrayStorageName) {\n this.stringArrayStorageName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n }\n return this.stringArrayStorageName;\n }\n getStorageCallsWrapperName(stringArrayEncoding) {\n var _a;\n const storageCallsWrapperName = (_a = this.stringArrayStorageCallsWrapperNamesMap\n .get(stringArrayEncoding)) !== null && _a !== void 0 ? _a : null;\n if (storageCallsWrapperName) {\n return storageCallsWrapperName;\n }\n const newStorageCallsWrapperName = this.identifierNamesGenerator\n .generateForGlobalScope(StringArrayStorage_1.stringArrayNameLength);\n this.stringArrayStorageCallsWrapperNamesMap.set(stringArrayEncoding, newStorageCallsWrapperName);\n return newStorageCallsWrapperName;\n }\n rotateStorage() {\n if (!this.getLength()) {\n return;\n }\n this.storage = new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()), this.rotationAmount));\n }\n shuffleStorage() {\n this.storage = new Map(this.arrayUtils\n .shuffle(Array.from(this.storage.entries()))\n .map(([value, stringArrayStorageItemData], index) => {\n stringArrayStorageItemData.index = index;\n return [value, stringArrayStorageItemData];\n })\n .sort(([, stringArrayStorageItemDataA], [, stringArrayStorageItemDataB]) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index));\n }\n getOrSetIfDoesNotExist(value) {\n const { encodedValue, encoding, decodeKey } = this.getEncodedValue(value);\n const storedStringArrayStorageItemData = this.storage.get(encodedValue);\n if (storedStringArrayStorageItemData) {\n return storedStringArrayStorageItemData;\n }\n const stringArrayStorageItemData = {\n encodedValue,\n encoding,\n decodeKey,\n value,\n index: this.getLength()\n };\n this.storage.set(encodedValue, stringArrayStorageItemData);\n return stringArrayStorageItemData;\n }\n getEncodedValue(value) {\n var _a;\n const encoding = this.options.stringArrayEncoding.length\n ? this.randomGenerator\n .getRandomGenerator()\n .pickone(this.options.stringArrayEncoding)\n : null;\n if (!encoding) {\n throw new Error('`stringArrayEncoding` option array is empty');\n }\n switch (encoding) {\n case StringArrayEncoding_1.StringArrayEncoding.Rc4: {\n const decodeKey = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(value, decodeKey));\n const encodedValueSources = (_a = this.rc4EncodedValuesSourcesCache.get(encodedValue)) !== null && _a !== void 0 ? _a : [];\n let encodedValueSourcesLength = encodedValueSources.length;\n const shouldAddValueToSourcesCache = !encodedValueSourcesLength || !encodedValueSources.includes(value);\n if (shouldAddValueToSourcesCache) {\n encodedValueSources.push(value);\n encodedValueSourcesLength++;\n }\n this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);\n if (encodedValueSourcesLength > 1) {\n return this.getEncodedValue(value);\n }\n return { encodedValue, encoding, decodeKey };\n }\n case StringArrayEncoding_1.StringArrayEncoding.Base64: {\n const decodeKey = null;\n const encodedValue = this.cryptUtilsSwappedAlphabet.btoa(value);\n return { encodedValue, encoding, decodeKey };\n }\n default: {\n const decodeKey = null;\n const encodedValue = value;\n return { encodedValue, encoding, decodeKey };\n }\n }\n }\n};\nStringArrayStorage.minimumRotationAmount = 100;\nStringArrayStorage.maximumRotationAmount = 500;\nStringArrayStorage.minimumIndexShiftAmount = 100;\nStringArrayStorage.maximumIndexShiftAmount = 500;\nStringArrayStorage.rc4KeyLength = 4;\nStringArrayStorage.rc4KeysCount = 50;\nStringArrayStorage.stringArrayNameLength = 4;\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], StringArrayStorage.prototype, \"initialize\", null);\nStringArrayStorage = StringArrayStorage_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtilsSwappedAlphabet)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory !== \"undefined\" && TIdentifierNamesGeneratorFactory_1.TIdentifierNamesGeneratorFactory) === \"function\" ? _a : Object, typeof (_b = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _b : Object, typeof (_c = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _c : Object, typeof (_d = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _d : Object, typeof (_e = typeof ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet !== \"undefined\" && ICryptUtilsSwappedAlphabet_1.ICryptUtilsSwappedAlphabet) === \"function\" ? _e : Object])\n], StringArrayStorage);\nexports.StringArrayStorage = StringArrayStorage;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VisitedLexicalScopeNodesStackStorage = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../../container/ServiceIdentifiers\");\nconst IArrayUtils_1 = require(\"../../interfaces/utils/IArrayUtils\");\nconst IOptions_1 = require(\"../../interfaces/options/IOptions\");\nconst IRandomGenerator_1 = require(\"../../interfaces/utils/IRandomGenerator\");\nconst ArrayStorage_1 = require(\"../ArrayStorage\");\nlet VisitedLexicalScopeNodesStackStorage = class VisitedLexicalScopeNodesStackStorage extends ArrayStorage_1.ArrayStorage {\n constructor(randomGenerator, options, arrayUtils) {\n super(randomGenerator, options);\n this.arrayUtils = arrayUtils;\n }\n getLastElement() {\n return this.arrayUtils.getLastElement(this.getStorage());\n }\n getPenultimateElement() {\n var _a;\n const storageLength = this.getLength();\n return (_a = this.get(storageLength - 2)) !== null && _a !== void 0 ? _a : undefined;\n }\n push(nodeWithLexicalScopeStatements) {\n const storageLength = this.getLength();\n this.set(storageLength, nodeWithLexicalScopeStatements);\n }\n pop() {\n const storageLength = this.getLength();\n return this.delete(storageLength - 1);\n }\n};\nVisitedLexicalScopeNodesStackStorage = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object, typeof (_b = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _b : Object, typeof (_c = typeof IArrayUtils_1.IArrayUtils !== \"undefined\" && IArrayUtils_1.IArrayUtils) === \"function\" ? _c : Object])\n], VisitedLexicalScopeNodesStackStorage);\nexports.VisitedLexicalScopeNodesStackStorage = VisitedLexicalScopeNodesStackStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractTransformerNamesGroupsBuilder = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst ILevelledTopologicalSorter_1 = require(\"../interfaces/utils/ILevelledTopologicalSorter\");\nlet AbstractTransformerNamesGroupsBuilder = class AbstractTransformerNamesGroupsBuilder {\n constructor(levelledTopologicalSorter) {\n this.levelledTopologicalSorter = levelledTopologicalSorter;\n }\n build(normalizedTransformers) {\n const transformerNames = Object.keys(normalizedTransformers);\n const relationEdges = this.buildTransformersRelationEdges(transformerNames, normalizedTransformers);\n for (const [precedent, consequent] of relationEdges) {\n this.levelledTopologicalSorter.add(precedent, consequent);\n }\n return this.levelledTopologicalSorter.sortByGroups();\n }\n buildTransformersRelationEdges(transformerNames, normalizedTransformers) {\n const relationEdges = [];\n for (const transformerName of transformerNames) {\n const transformer = normalizedTransformers[transformerName];\n const runAfterRelations = transformer.runAfter;\n if (!runAfterRelations || !runAfterRelations.length) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n for (const runAfterRelation of runAfterRelations) {\n const isUnknownRelation = normalizedTransformers[runAfterRelation] === undefined;\n if (isUnknownRelation) {\n relationEdges.push([transformerName, null]);\n continue;\n }\n relationEdges.push([runAfterRelation, transformerName]);\n }\n }\n return relationEdges;\n }\n};\nAbstractTransformerNamesGroupsBuilder = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILevelledTopologicalSorter)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof ILevelledTopologicalSorter_1.ILevelledTopologicalSorter !== \"undefined\" && ILevelledTopologicalSorter_1.ILevelledTopologicalSorter) === \"function\" ? _a : Object])\n], AbstractTransformerNamesGroupsBuilder);\nexports.AbstractTransformerNamesGroupsBuilder = AbstractTransformerNamesGroupsBuilder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nlet ArrayUtils = class ArrayUtils {\n constructor(randomGenerator) {\n this.randomGenerator = randomGenerator;\n }\n createWithRange(length) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(i);\n }\n return range;\n }\n fillWithRange(length, valueFunction) {\n const range = [];\n for (let i = 0; i < length; i++) {\n range.push(valueFunction(i));\n }\n return range;\n }\n findMostOccurringElement(array) {\n var _a;\n const arrayLength = array.length;\n if (!arrayLength) {\n return null;\n }\n const elementsMap = {};\n let mostOccurringElement = array[0];\n let mostOccurringElementCount = 1;\n for (const element of array) {\n const currentElementCount = (_a = elementsMap[element]) !== null && _a !== void 0 ? _a : 0;\n const updatedElementCount = currentElementCount + 1;\n if (updatedElementCount > mostOccurringElementCount) {\n mostOccurringElement = element;\n mostOccurringElementCount = updatedElementCount;\n }\n elementsMap[element] = updatedElementCount;\n }\n return mostOccurringElement;\n }\n getLastElement(array) {\n var _a;\n const arrayLength = array.length;\n return (_a = array[arrayLength - 1]) !== null && _a !== void 0 ? _a : undefined;\n }\n rotate(array, times) {\n if (!array.length) {\n throw new ReferenceError('Cannot rotate empty array.');\n }\n if (times <= 0) {\n return array;\n }\n const newArray = array;\n let temp;\n while (times--) {\n temp = newArray.pop();\n if (temp) {\n newArray.unshift(temp);\n }\n }\n return newArray;\n }\n shuffle(array) {\n const shuffledArray = [...array];\n for (let i = shuffledArray.length; i; i--) {\n const j = Math.floor(this.randomGenerator.getMathRandom() * i);\n [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];\n }\n return shuffledArray;\n }\n};\nArrayUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], ArrayUtils);\nexports.ArrayUtils = ArrayUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtils = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Base64Alphabet_1 = require(\"../constants/Base64Alphabet\");\nconst RandomGenerator_1 = require(\"./RandomGenerator\");\nconst Utils_1 = require(\"./Utils\");\nlet CryptUtils = class CryptUtils {\n constructor(randomGenerator) {\n this.base64Alphabet = Base64Alphabet_1.base64alphabet;\n this.randomGenerator = randomGenerator;\n }\n btoa(string) {\n const chars = this.base64Alphabet;\n let output = '';\n string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match, p1) => {\n return String.fromCharCode(parseInt(`${Utils_1.Utils.hexadecimalPrefix}${p1}`, 16));\n });\n for (let block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) {\n charCode = string.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new Error('\\'btoa\\' failed: The string to be encoded contains characters outside of the Latin1 range.');\n }\n block = block << 8 | charCode;\n }\n return output;\n }\n hideString(str, length) {\n const escapeRegExp = (s) => s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n const randomMerge = (s1, s2) => {\n let i1 = -1;\n let i2 = -1;\n let result = '';\n while (i1 < s1.length || i2 < s2.length) {\n if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {\n result += s2.charAt(++i2);\n }\n else {\n result += s1.charAt(++i1);\n }\n }\n return result;\n };\n const randomString = this.randomGenerator.getRandomGenerator().string({\n length: length,\n pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool\n });\n let randomStringDiff = randomString.replace(new RegExp(`[${escapeRegExp(str)}]`, 'g'), '');\n const randomStringDiffArray = randomStringDiff.split('');\n this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);\n randomStringDiff = randomStringDiffArray.join('');\n return [randomMerge(str, randomStringDiff), randomStringDiff];\n }\n rc4(string, key) {\n const s = [];\n let j = 0;\n let x;\n let result = '';\n for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n i = 0;\n j = 0;\n for (let y = 0; y < string.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n return result;\n }\n};\nCryptUtils = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], CryptUtils);\nexports.CryptUtils = CryptUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CryptUtilsSwappedAlphabet = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst IRandomGenerator_1 = require(\"../interfaces/utils/IRandomGenerator\");\nconst Base64AlphabetSwapped_1 = require(\"../constants/Base64AlphabetSwapped\");\nconst CryptUtils_1 = require(\"./CryptUtils\");\nlet CryptUtilsSwappedAlphabet = class CryptUtilsSwappedAlphabet extends CryptUtils_1.CryptUtils {\n constructor(randomGenerator) {\n super(randomGenerator);\n this.base64Alphabet = Base64AlphabetSwapped_1.base64alphabetSwapped;\n }\n};\nCryptUtilsSwappedAlphabet = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)),\n __metadata(\"design:paramtypes\", [typeof (_a = typeof IRandomGenerator_1.IRandomGenerator !== \"undefined\" && IRandomGenerator_1.IRandomGenerator) === \"function\" ? _a : Object])\n], CryptUtilsSwappedAlphabet);\nexports.CryptUtilsSwappedAlphabet = CryptUtilsSwappedAlphabet;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EscapeSequenceEncoder_1;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EscapeSequenceEncoder = void 0;\nconst inversify_1 = require(\"inversify\");\nlet EscapeSequenceEncoder = EscapeSequenceEncoder_1 = class EscapeSequenceEncoder {\n constructor() {\n this.stringsCache = new Map();\n }\n encode(string, encodeAllSymbols) {\n const cacheKey = `${string}-${String(encodeAllSymbols)}`;\n if (this.stringsCache.has(cacheKey)) {\n return this.stringsCache.get(cacheKey);\n }\n const radix = 16;\n const replaceRegExp = new RegExp('[\\\\s\\\\S]', 'g');\n let prefix;\n let template;\n const result = string.replace(replaceRegExp, (character) => {\n const shouldEncodeCharacter = encodeAllSymbols\n || EscapeSequenceEncoder_1.forceEscapeCharactersRegExp.test(character);\n if (!shouldEncodeCharacter) {\n return character;\n }\n if (EscapeSequenceEncoder_1.ASCIICharactersRegExp.test(character)) {\n prefix = '\\\\x';\n template = '00';\n }\n else {\n prefix = '\\\\u';\n template = '0000';\n }\n return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;\n });\n this.stringsCache.set(cacheKey, result);\n this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);\n return result;\n }\n};\nEscapeSequenceEncoder.ASCIICharactersRegExp = /[\\x00-\\x7F]/;\nEscapeSequenceEncoder.forceEscapeCharactersRegExp = /[\\x00-\\x1F\\x7F-\\x9F'\"\\\\\\s]/;\nEscapeSequenceEncoder = EscapeSequenceEncoder_1 = __decorate([\n inversify_1.injectable()\n], EscapeSequenceEncoder);\nexports.EscapeSequenceEncoder = EscapeSequenceEncoder;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LevelledTopologicalSorter = void 0;\nconst inversify_1 = require(\"inversify\");\nlet LevelledTopologicalSorter = class LevelledTopologicalSorter {\n constructor() {\n this.graph = new Map();\n }\n add(precedent, consequent = null) {\n if (consequent !== null) {\n return this.link(precedent, consequent);\n }\n return this.register(precedent);\n }\n sort() {\n const consequents = Array.from(this.graph.keys());\n const results = [];\n const marks = {};\n for (const consequent of consequents) {\n if (marks[consequent] !== undefined) {\n continue;\n }\n this.visit(results, marks, consequent);\n }\n return results;\n }\n sortByGroups() {\n this.sort();\n const resultItemsGroups = [];\n while (this.hasNodes()) {\n const rootNodes = this.findRootNodes();\n resultItemsGroups.push(rootNodes);\n for (const rootNode of rootNodes) {\n this.delete(rootNode);\n }\n }\n return resultItemsGroups;\n }\n delete(consequent) {\n const precedents = this.getPrecedents(consequent);\n if (precedents.length) {\n throw new Error(`Unable to remove non-root node: ${consequent}`);\n }\n this.graph.delete(consequent);\n const precedentsGroups = Array.from(this.graph.values());\n for (const precedentsGroup of precedentsGroups) {\n const precedentsCount = precedentsGroup.length - 1;\n for (let index = precedentsCount; index >= 0; index = index - 1) {\n if (precedentsGroup[index] !== consequent) {\n continue;\n }\n precedentsGroup.splice(index, 1);\n }\n }\n }\n findRootNodes() {\n const consequents = Array.from(this.graph.keys());\n const rootNodes = [];\n for (const consequent of consequents) {\n if (!this.hasPrecedents(consequent)) {\n rootNodes.push(consequent);\n }\n }\n return rootNodes;\n }\n getPrecedents(consequent) {\n const precedents = this.graph.get(consequent);\n if (!precedents) {\n throw new Error(`Unknown node: ${consequent}`);\n }\n return precedents;\n }\n hasNodes() {\n return this.graph.size > 0;\n }\n hasPrecedents(consequent) {\n return this.getPrecedents(consequent).length > 0;\n }\n link(precedent, consequent) {\n this.register(precedent);\n this.register(consequent);\n const target = this.graph.get(consequent);\n if (target && !target.includes(precedent)) {\n target.push(precedent);\n }\n return this;\n }\n register(name) {\n if (!this.graph.has(name)) {\n this.graph.set(name, []);\n }\n return this;\n }\n visit(results, marks, name) {\n const mark = marks[name];\n if (mark === 'visiting') {\n throw new Error(`Detected cycle involving node: ${name}`);\n }\n if (mark) {\n return;\n }\n marks[name] = 'visiting';\n const precedents = this.getPrecedents(name);\n for (const precedent of precedents) {\n this.visit(results, marks, precedent);\n }\n marks[name] = 'ok';\n results.push(name);\n return;\n }\n};\nLevelledTopologicalSorter = __decorate([\n inversify_1.injectable()\n], LevelledTopologicalSorter);\nexports.LevelledTopologicalSorter = LevelledTopologicalSorter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberUtils = void 0;\nconst Utils_1 = require(\"./Utils\");\nclass NumberUtils {\n static toHex(number) {\n const radix = 16;\n const basePart = typeof number === 'number'\n ? number.toString(radix)\n : `${number.toString(radix)}n`;\n return `${Utils_1.Utils.hexadecimalPrefix}${basePart}`;\n }\n static isCeil(number) {\n return typeof number === 'number'\n ? number % 1 === 0\n : true;\n }\n static isPositive(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n if (number > 0) {\n return true;\n }\n if (number < 0) {\n return false;\n }\n if (1 / number === Number.POSITIVE_INFINITY) {\n return true;\n }\n return false;\n }\n static isUnsafeNumber(number) {\n if (isNaN(number)) {\n throw new Error('Given value is NaN');\n }\n return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER;\n }\n static getFactors(number) {\n if (number === 0) {\n throw new Error('Invalid number. Allowed only non-zero number');\n }\n number = Math.abs(number);\n if (number === 1) {\n return [-number, number];\n }\n const factors = [];\n const root = Math.sqrt(number);\n const isEven = number % 2 === 0;\n const incrementValue = isEven ? 1 : 2;\n for (let currentFactor = 1; currentFactor <= root; currentFactor += incrementValue) {\n if (number % currentFactor !== 0) {\n continue;\n }\n factors.push(...[-currentFactor, currentFactor]);\n const compliment = number / currentFactor;\n if (compliment !== currentFactor) {\n factors.push(...[-compliment, compliment]);\n }\n }\n return factors.sort((a, b) => a - b);\n }\n}\nexports.NumberUtils = NumberUtils;\n","\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar RandomGenerator_1, _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RandomGenerator = void 0;\nconst inversify_1 = require(\"inversify\");\nconst ServiceIdentifiers_1 = require(\"../container/ServiceIdentifiers\");\nconst md5_1 = __importDefault(require(\"md5\"));\nconst chance_1 = require(\"chance\");\nconst IOptions_1 = require(\"../interfaces/options/IOptions\");\nconst ISourceCode_1 = require(\"../interfaces/source-code/ISourceCode\");\nconst Initializable_1 = require(\"../decorators/Initializable\");\nconst AlphabetString_1 = require(\"../constants/AlphabetString\");\nconst AlphabetStringUppercase_1 = require(\"../constants/AlphabetStringUppercase\");\nlet RandomGenerator = RandomGenerator_1 = class RandomGenerator {\n constructor(sourceCode, options) {\n this.sourceCode = sourceCode;\n this.options = options;\n }\n initialize() {\n this.randomGenerator = new chance_1.Chance(this.getRawSeed());\n }\n getMathRandom() {\n return this.getRandomInteger(0, 99999) / 100000;\n }\n getRandomGenerator() {\n return this.randomGenerator;\n }\n getRandomInteger(min, max) {\n return this.getRandomGenerator().integer({\n min: min,\n max: max\n });\n }\n getRandomIntegerExcluding(min, max, valuesToExclude) {\n const valuesToPickArray = [];\n for (let value = min; value <= max; value++) {\n if (valuesToExclude.includes(value)) {\n continue;\n }\n valuesToPickArray.push(value);\n }\n return this.randomGenerator.pickone(valuesToPickArray);\n }\n getRandomString(length, pool = RandomGenerator_1.randomGeneratorPool) {\n return this.getRandomGenerator().string({ length, pool });\n }\n getInputSeed() {\n return this.options.seed.toString();\n }\n getRawSeed() {\n const inputSeed = this.getInputSeed();\n const inputSeedParts = `${inputSeed}`.split('|');\n if (inputSeedParts.length > 1) {\n return inputSeed;\n }\n const sourceCodeMD5Hash = md5_1.default(this.sourceCode.getSourceCode());\n return `${inputSeed}|${sourceCodeMD5Hash}`;\n }\n};\nRandomGenerator.randomGeneratorPool = `${AlphabetString_1.alphabetString}${AlphabetStringUppercase_1.alphabetStringUppercase}`;\n__decorate([\n Initializable_1.initializable(),\n __metadata(\"design:type\", typeof (_a = typeof chance_1.Chance !== \"undefined\" && chance_1.Chance.Chance) === \"function\" ? _a : Object)\n], RandomGenerator.prototype, \"randomGenerator\", void 0);\n__decorate([\n inversify_1.postConstruct(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], RandomGenerator.prototype, \"initialize\", null);\nRandomGenerator = RandomGenerator_1 = __decorate([\n inversify_1.injectable(),\n __param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)),\n __param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)),\n __metadata(\"design:paramtypes\", [typeof (_b = typeof ISourceCode_1.ISourceCode !== \"undefined\" && ISourceCode_1.ISourceCode) === \"function\" ? _b : Object, typeof (_c = typeof IOptions_1.IOptions !== \"undefined\" && IOptions_1.IOptions) === \"function\" ? _c : Object])\n], RandomGenerator);\nexports.RandomGenerator = RandomGenerator;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringUtils = void 0;\nconst js_string_escape_1 = __importDefault(require(\"js-string-escape\"));\nclass StringUtils {\n static escapeJsString(string) {\n return js_string_escape_1.default(string);\n }\n}\nexports.StringUtils = StringUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utils = void 0;\nclass Utils {\n static buildVersionMessage(version, buildTimestamp) {\n if (!version || !buildTimestamp) {\n return 'unknown';\n }\n const buildDate = new Date(parseInt(buildTimestamp, 10)).toISOString();\n return `${version}_${buildDate}`;\n }\n static extractDomainFrom(url) {\n let domain;\n if (url.includes('://') || url.indexOf('//') === 0) {\n domain = url.split('/')[2];\n }\n else {\n domain = url.split('/')[0];\n }\n domain = domain.split(':')[0];\n return domain;\n }\n static getIdentifiersPrefixForMultipleSources(identifiersPrefix, sourceCodeIndex) {\n const baseIdentifiersPrefix = !!identifiersPrefix\n ? identifiersPrefix\n : Utils.baseMultipleSourcesIdentifiersPrefix;\n return `${baseIdentifiersPrefix}${sourceCodeIndex}`;\n }\n static makeEnum(enumLikeObject) {\n return Object.freeze(Object.assign({}, enumLikeObject));\n }\n}\nexports.Utils = Utils;\nUtils.baseMultipleSourcesIdentifiersPrefix = 'a';\nUtils.hexadecimalPrefix = '0x';\n","module.exports = require(\"@javascript-obfuscator/escodegen\");;","module.exports = require(\"acorn\");;","module.exports = require(\"chalk\");;","module.exports = require(\"chance\");;","module.exports = require(\"class-validator\");;","module.exports = require(\"eslint-scope\");;","module.exports = require(\"estraverse\");;","module.exports = require(\"eventemitter3\");;","module.exports = require(\"fast-deep-equal\");;","module.exports = require(\"inversify\");;","module.exports = require(\"js-string-escape\");;","module.exports = require(\"md5\");;","module.exports = require(\"reflect-metadata\");;","module.exports = require(\"string-template\");;","module.exports = require(\"stringz\");;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(3254);\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/index.cli.ts b/src/node_modules/javascript-obfuscator/index.cli.ts
new file mode 100644
index 0000000..79c763b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/index.cli.ts
@@ -0,0 +1,5 @@
+"use strict";
+
+import { JavaScriptObfuscatorCLI } from './src/JavaScriptObfuscatorCLIFacade';
+
+module.exports = JavaScriptObfuscatorCLI;
diff --git a/src/node_modules/javascript-obfuscator/index.d.ts b/src/node_modules/javascript-obfuscator/index.d.ts
new file mode 100644
index 0000000..328611a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/index.d.ts
@@ -0,0 +1,38 @@
+import { TDictionary } from './src/types/TDictionary';
+import { TInputOptions } from './src/types/options/TInputOptions';
+import { TObfuscationResultsObject } from './src/types/TObfuscationResultsObject';
+import { TOptionsPreset } from './src/types/options/TOptionsPreset';
+
+import { IObfuscatedCode } from './src/interfaces/source-code/IObfuscatedCode';
+
+export type ObfuscatorOptions = TInputOptions;
+
+export interface ObfuscatedCode extends IObfuscatedCode {}
+
+/**
+ * @param {string} sourceCode
+ * @param {ObfuscatorOptions} inputOptions
+ * @returns {ObfuscatedCode}
+ */
+export function obfuscate (sourceCode: string, inputOptions?: ObfuscatorOptions): ObfuscatedCode;
+
+/**
+ * @param {TSourceCodesObject} sourceCodesObject
+ * @param {TInputOptions} inputOptions
+ * @returns {TObfuscationResultsObject<TSourceCodesObject>}
+ */
+export function obfuscateMultiple <TSourceCodesObject extends TDictionary<string>> (
+ sourceCodesObject: TSourceCodesObject,
+ inputOptions?: TInputOptions
+): TObfuscationResultsObject<TSourceCodesObject>;
+
+/**
+ * @param {TOptionsPreset} optionsPreset
+ * @returns {TInputOptions}
+ */
+export function getOptionsByPreset (optionsPreset: TOptionsPreset): TInputOptions;
+
+/**
+ * @type {string}
+ */
+export const version: string; \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/index.ts b/src/node_modules/javascript-obfuscator/index.ts
new file mode 100644
index 0000000..0afc6e0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/index.ts
@@ -0,0 +1,5 @@
+"use strict";
+
+import { JavaScriptObfuscator } from './src/JavaScriptObfuscatorFacade';
+
+module.exports = JavaScriptObfuscator;
diff --git a/src/node_modules/javascript-obfuscator/package.json b/src/node_modules/javascript-obfuscator/package.json
new file mode 100644
index 0000000..267368b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/package.json
@@ -0,0 +1,137 @@
+{
+ "name": "javascript-obfuscator",
+ "version": "2.9.4",
+ "description": "JavaScript obfuscator",
+ "keywords": [
+ "obfuscator",
+ "obfuscation",
+ "uglify",
+ "crush",
+ "code protection",
+ "javascript obfuscator",
+ "js obfuscator"
+ ],
+ "engines": {
+ "node": ">=10"
+ },
+ "main": "dist/index.js",
+ "browser": "dist/index.browser.js",
+ "bin": {
+ "javascript-obfuscator": "./bin/javascript-obfuscator"
+ },
+ "types": "index.d.ts",
+ "dependencies": {
+ "@javascript-obfuscator/escodegen": "2.1.1",
+ "@nuxtjs/opencollective": "0.3.2",
+ "acorn": "8.0.4",
+ "assert": "2.0.0",
+ "chalk": "4.1.0",
+ "chance": "1.1.7",
+ "class-validator": "0.12.2",
+ "commander": "6.2.0",
+ "eslint-scope": "5.1.1",
+ "estraverse": "5.2.0",
+ "eventemitter3": "4.0.7",
+ "fast-deep-equal": "3.1.3",
+ "inversify": "5.0.1",
+ "js-string-escape": "1.0.1",
+ "md5": "2.3.0",
+ "mkdirp": "1.0.4",
+ "multimatch": "5.0.0",
+ "process": "0.11.10",
+ "reflect-metadata": "0.1.13",
+ "source-map-support": "0.5.19",
+ "string-template": "1.0.0",
+ "stringz": "2.1.0",
+ "tslib": "2.0.3"
+ },
+ "devDependencies": {
+ "@istanbuljs/nyc-config-typescript": "1.0.1",
+ "@types/chai": "4.2.14",
+ "@types/chance": "1.1.0",
+ "@types/escodegen": "0.0.6",
+ "@types/eslint-scope": "3.7.0",
+ "@types/estraverse": "5.1.0",
+ "@types/estree": "0.0.45",
+ "@types/js-string-escape": "1.0.0",
+ "@types/md5": "2.2.1",
+ "@types/mkdirp": "1.0.1",
+ "@types/mocha": "8.0.4",
+ "@types/multimatch": "4.0.0",
+ "@types/node": "14.14.9",
+ "@types/rimraf": "3.0.0",
+ "@types/sinon": "9.0.8",
+ "@types/string-template": "1.0.2",
+ "@types/webpack-env": "1.15.3",
+ "@typescript-eslint/eslint-plugin": "4.8.1",
+ "@typescript-eslint/parser": "4.8.1",
+ "chai": "4.2.0",
+ "chai-exclude": "2.0.2",
+ "coveralls": "3.1.0",
+ "cross-env": "7.0.2",
+ "eslint": "7.14.0",
+ "eslint-plugin-import": "2.22.1",
+ "eslint-plugin-jsdoc": "30.7.8",
+ "eslint-plugin-no-null": "1.0.2",
+ "eslint-plugin-prefer-arrow": "1.2.2",
+ "eslint-plugin-unicorn": "23.0.0",
+ "fork-ts-checker-notifier-webpack-plugin": "3.0.0",
+ "fork-ts-checker-webpack-plugin": "6.0.3",
+ "mocha": "8.2.1",
+ "nyc": "15.1.0",
+ "pjson": "1.0.9",
+ "pre-commit": "1.2.2",
+ "rimraf": "3.0.2",
+ "sinon": "9.2.1",
+ "threads": "1.6.3",
+ "ts-loader": "8.0.11",
+ "ts-node": "9.0.0",
+ "typescript": "4.1.2",
+ "webpack": "5.6.0",
+ "webpack-cli": "4.2.0",
+ "webpack-node-externals": "2.5.2"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/javascript-obfuscator/javascript-obfuscator.git"
+ },
+ "homepage": "https://obfuscator.io/",
+ "scripts": {
+ "start": "yarn run watch",
+ "webpack:prod": "webpack --config ./webpack/webpack.node.config.js --config ./webpack/webpack.browser.config.js --mode production",
+ "build": "yarn run webpack:prod && yarn run eslint && yarn test",
+ "watch": "webpack --config ./webpack/webpack.node.config.js --mode development --watch",
+ "test:dev": "ts-node --type-check test/dev/dev.ts",
+ "test:devCompilePerformance": "ts-node test/dev/dev-compile-performance.ts",
+ "test:devRuntimePerformance": "ts-node test/dev/dev-runtime-performance.ts",
+ "test:full": "yarn run test:dev && yarn run test:mocha-coverage && yarn run test:mocha-memory-performance",
+ "test:mocha": "mocha --require ts-node/register --require source-map-support/register test/index.spec.ts --exit",
+ "test:mocha-coverage": "nyc --reporter text-summary --no-clean yarn run test:mocha",
+ "test:mocha-coverage:report": "nyc report --reporter=text-lcov | coveralls",
+ "test:mocha-memory-performance": "cross-env NODE_OPTIONS=--max-old-space-size=220 mocha --require ts-node/register test/performance-tests/JavaScriptObfuscatorMemory.spec.ts",
+ "test": "yarn run test:full",
+ "eslint": "eslint src/**/*.ts",
+ "travis": "yarn run eslint && yarn run test",
+ "git:addFiles": "git add .",
+ "postinstall": "opencollective"
+ },
+ "pre-commit": [
+ "build",
+ "git:addFiles"
+ ],
+ "author": {
+ "name": "Timofey Kachalov"
+ },
+ "contributors": [
+ "Timofey Kachalov (https://github.com/sanex3339)",
+ "Dmitry Zamotkin (https://github.com/zamotkin)"
+ ],
+ "license": "BSD-2-Clause",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/javascript-obfuscator"
+ },
+ "collective": {
+ "url": "https://opencollective.com/javascript-obfuscator"
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/ASTParserFacade.ts b/src/node_modules/javascript-obfuscator/src/ASTParserFacade.ts
new file mode 100644
index 0000000..671da77
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/ASTParserFacade.ts
@@ -0,0 +1,116 @@
+import * as acorn from 'acorn';
+import * as ESTree from 'estree';
+import chalk, { Chalk } from 'chalk';
+
+/**
+ * Facade over AST parser `acorn`
+ */
+export class ASTParserFacade {
+ /**
+ * @type {Chalk}
+ */
+ private static readonly colorError: Chalk = chalk.red;
+
+ /**
+ * @type {number}
+ */
+ private static readonly nearestSymbolsCount: number = 15;
+
+ /**
+ * @type {acorn.Options['sourceType'][]}
+ */
+ private static readonly sourceTypes: acorn.Options['sourceType'][] = [
+ 'script',
+ 'module'
+ ];
+
+ /**
+ * @param {string} sourceCode
+ * @param {Options} config
+ * @returns {Program}
+ */
+ public static parse (sourceCode: string, config: acorn.Options): ESTree.Program | never {
+ const sourceTypeLength: number = ASTParserFacade.sourceTypes.length;
+
+ for (let i: number = 0; i < sourceTypeLength; i++) {
+ try {
+ return ASTParserFacade.parseType(sourceCode, config, ASTParserFacade.sourceTypes[i]);
+ } catch (error) {
+ if (i < sourceTypeLength - 1) {
+ continue;
+ }
+
+ throw new Error(ASTParserFacade.processParsingError(
+ sourceCode,
+ error.message,
+ error.loc
+ ));
+ }
+ }
+
+ throw new Error('Acorn parsing error');
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {acorn.Options} inputConfig
+ * @param {acorn.Options["sourceType"]} sourceType
+ * @returns {Program}
+ */
+ private static parseType (
+ sourceCode: string,
+ inputConfig: acorn.Options,
+ sourceType: acorn.Options['sourceType']
+ ): ESTree.Program {
+ const comments: ESTree.Comment[] = [];
+ const config: acorn.Options = {
+ ...inputConfig,
+ onComment: comments,
+ sourceType
+ };
+
+ const program: ESTree.Program = <any>acorn
+ .parse(sourceCode, config);
+
+ if (comments.length) {
+ program.comments = comments;
+ }
+
+ return program;
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} errorMessage
+ * @param {Position | null} position
+ * @returns {never}
+ */
+ private static processParsingError (
+ sourceCode: string,
+ errorMessage: string,
+ position: ESTree.Position | null
+ ): never {
+ if (!position || !position.line || !position.column) {
+ throw new Error(errorMessage);
+ }
+
+ const sourceCodeLines: string[] = sourceCode.split(/\r?\n/);
+ const errorLine: string | undefined = sourceCodeLines[position.line - 1];
+
+ if (!errorLine) {
+ throw new Error(errorMessage);
+ }
+
+ const startErrorIndex: number = Math.max(0, position.column - ASTParserFacade.nearestSymbolsCount);
+ const endErrorIndex: number = Math.min(errorLine.length, position.column + ASTParserFacade.nearestSymbolsCount);
+
+ const formattedPointer: string = ASTParserFacade.colorError('>');
+ const formattedCodeSlice: string = `...${
+ errorLine.slice(startErrorIndex, endErrorIndex).replace(/^\s+/, '')
+ }...`;
+
+ throw new Error(
+ `ERROR at line ${position.line}: ${errorMessage}\n${formattedPointer} ${formattedCodeSlice}`
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscator.ts b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscator.ts
new file mode 100644
index 0000000..14f8908
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscator.ts
@@ -0,0 +1,304 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from './container/ServiceIdentifiers';
+
+import * as acorn from 'acorn';
+import * as escodegen from '@javascript-obfuscator/escodegen';
+import * as ESTree from 'estree';
+
+import { TObfuscatedCodeFactory } from './types/container/source-code/TObfuscatedCodeFactory';
+
+import { ICodeTransformersRunner } from './interfaces/code-transformers/ICodeTransformersRunner';
+import { IGeneratorOutput } from './interfaces/IGeneratorOutput';
+import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
+import { ILogger } from './interfaces/logger/ILogger';
+import { IObfuscatedCode } from './interfaces/source-code/IObfuscatedCode';
+import { IOptions } from './interfaces/options/IOptions';
+import { IRandomGenerator } from './interfaces/utils/IRandomGenerator';
+import { INodeTransformersRunner } from './interfaces/node-transformers/INodeTransformersRunner';
+
+import { CodeTransformer } from './enums/code-transformers/CodeTransformer';
+import { CodeTransformationStage } from './enums/code-transformers/CodeTransformationStage';
+import { LoggingMessage } from './enums/logger/LoggingMessage';
+import { NodeTransformer } from './enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from './enums/node-transformers/NodeTransformationStage';
+
+import { ecmaVersion } from './constants/EcmaVersion';
+
+import { ASTParserFacade } from './ASTParserFacade';
+import { NodeGuards } from './node/NodeGuards';
+import { Utils } from './utils/Utils';
+
+@injectable()
+export class JavaScriptObfuscator implements IJavaScriptObfuscator {
+ /**
+ * @type {Options}
+ */
+ private static readonly parseOptions: acorn.Options = {
+ ecmaVersion,
+ allowHashBang: true,
+ allowImportExportEverywhere: true,
+ allowReturnOutsideFunction: true,
+ locations: true,
+ ranges: true
+ };
+
+ /**
+ * @type {GenerateOptions}
+ */
+ private static readonly escodegenParams: escodegen.GenerateOptions = {
+ comment: true,
+ verbatim: 'x-verbatim-property',
+ sourceMapWithCode: true
+ };
+
+ /**
+ * @type {CodeTransformer[]}
+ */
+ private static readonly codeTransformersList: CodeTransformer[] = [
+ CodeTransformer.HashbangOperatorTransformer
+ ];
+
+ /**
+ * @type {NodeTransformer[]}
+ */
+ private static readonly nodeTransformersList: NodeTransformer[] = [
+ NodeTransformer.BooleanLiteralTransformer,
+ NodeTransformer.BlockStatementControlFlowTransformer,
+ NodeTransformer.BlockStatementSimplifyTransformer,
+ NodeTransformer.CommentsTransformer,
+ NodeTransformer.CustomCodeHelpersTransformer,
+ NodeTransformer.DeadCodeInjectionTransformer,
+ NodeTransformer.EscapeSequenceTransformer,
+ NodeTransformer.EvalCallExpressionTransformer,
+ NodeTransformer.ExportSpecifierTransformer,
+ NodeTransformer.ExpressionStatementsMergeTransformer,
+ NodeTransformer.FunctionControlFlowTransformer,
+ NodeTransformer.IfStatementSimplifyTransformer,
+ NodeTransformer.LabeledStatementTransformer,
+ NodeTransformer.RenamePropertiesTransformer,
+ NodeTransformer.MemberExpressionTransformer,
+ NodeTransformer.MetadataTransformer,
+ NodeTransformer.MethodDefinitionTransformer,
+ NodeTransformer.NumberLiteralTransformer,
+ NodeTransformer.NumberToNumericalExpressionTransformer,
+ NodeTransformer.ObfuscatingGuardsTransformer,
+ NodeTransformer.ObjectExpressionKeysTransformer,
+ NodeTransformer.ObjectExpressionTransformer,
+ NodeTransformer.ObjectPatternPropertiesTransformer,
+ NodeTransformer.ParentificationTransformer,
+ NodeTransformer.ScopeIdentifiersTransformer,
+ NodeTransformer.SplitStringTransformer,
+ NodeTransformer.StringArrayScopeCallsWrapperTransformer,
+ NodeTransformer.StringArrayTransformer,
+ NodeTransformer.TemplateLiteralTransformer,
+ NodeTransformer.VariableDeclarationsMergeTransformer,
+ NodeTransformer.VariablePreserveTransformer
+ ];
+
+ /**
+ * @type {ICodeTransformersRunner}
+ */
+ private readonly codeTransformersRunner: ICodeTransformersRunner;
+
+ /**
+ * @type {ILogger}
+ */
+ private readonly logger: ILogger;
+
+ /**
+ * @type {TObfuscatedCodeFactory}
+ */
+ private readonly obfuscatedCodeFactory: TObfuscatedCodeFactory;
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {INodeTransformersRunner}
+ */
+ private readonly nodeTransformersRunner: INodeTransformersRunner;
+
+ /**
+ * @param {ICodeTransformersRunner} codeTransformersRunner
+ * @param {INodeTransformersRunner} nodeTransformersRunner
+ * @param {IRandomGenerator} randomGenerator
+ * @param {TObfuscatedCodeFactory} obfuscatedCodeFactory
+ * @param {ILogger} logger
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.ICodeTransformersRunner) codeTransformersRunner: ICodeTransformersRunner,
+ @inject(ServiceIdentifiers.INodeTransformersRunner) nodeTransformersRunner: INodeTransformersRunner,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.Factory__IObfuscatedCode) obfuscatedCodeFactory: TObfuscatedCodeFactory,
+ @inject(ServiceIdentifiers.ILogger) logger: ILogger,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.codeTransformersRunner = codeTransformersRunner;
+ this.nodeTransformersRunner = nodeTransformersRunner;
+ this.randomGenerator = randomGenerator;
+ this.obfuscatedCodeFactory = obfuscatedCodeFactory;
+ this.logger = logger;
+ this.options = options;
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @returns {IObfuscatedCode}
+ */
+ public obfuscate (sourceCode: string): IObfuscatedCode {
+ if (typeof sourceCode !== 'string') {
+ sourceCode = '';
+ }
+
+ const timeStart: number = Date.now();
+ this.logger.info(LoggingMessage.Version, Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP));
+ this.logger.info(LoggingMessage.ObfuscationStarted);
+ this.logger.info(LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getInputSeed());
+
+ // preparing code transformations
+ sourceCode = this.runCodeTransformationStage(sourceCode, CodeTransformationStage.PreparingTransformers);
+
+ // parse AST tree
+ const astTree: ESTree.Program = this.parseCode(sourceCode);
+
+ // obfuscate AST tree
+ const obfuscatedAstTree: ESTree.Program = this.transformAstTree(astTree);
+
+ // generate code
+ const generatorOutput: IGeneratorOutput = this.generateCode(sourceCode, obfuscatedAstTree);
+
+ // finalizing code transformations
+ generatorOutput.code = this.runCodeTransformationStage(generatorOutput.code, CodeTransformationStage.FinalizingTransformers);
+
+ const obfuscationTime: number = (Date.now() - timeStart) / 1000;
+ this.logger.success(LoggingMessage.ObfuscationCompleted, obfuscationTime);
+
+ return this.getObfuscatedCode(generatorOutput);
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @returns {Program}
+ */
+ private parseCode (sourceCode: string): ESTree.Program {
+ return ASTParserFacade.parse(sourceCode, JavaScriptObfuscator.parseOptions);
+ }
+
+ /**
+ * @param {Program} astTree
+ * @returns {Program}
+ */
+ private transformAstTree (astTree: ESTree.Program): ESTree.Program {
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Initializing);
+
+ const isEmptyAstTree: boolean = NodeGuards.isProgramNode(astTree)
+ && !astTree.body.length
+ && !astTree.leadingComments
+ && !astTree.trailingComments;
+
+ if (isEmptyAstTree) {
+ this.logger.warn(LoggingMessage.EmptySourceCode);
+
+ return astTree;
+ }
+
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Preparing);
+
+ if (this.options.deadCodeInjection) {
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.DeadCodeInjection);
+ }
+
+ if (this.options.controlFlowFlattening) {
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.ControlFlowFlattening);
+ }
+
+ if (this.options.renameProperties) {
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.RenameProperties);
+ }
+
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Converting);
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.RenameIdentifiers);
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.StringArray);
+
+ if (this.options.simplify) {
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Simplifying);
+ }
+
+ astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Finalizing);
+
+ return astTree;
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {Program} astTree
+ * @returns {IGeneratorOutput}
+ */
+ private generateCode (sourceCode: string, astTree: ESTree.Program): IGeneratorOutput {
+ const escodegenParams: escodegen.GenerateOptions = {
+ ...JavaScriptObfuscator.escodegenParams
+ };
+
+ if (this.options.sourceMap) {
+ escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap';
+ escodegenParams.sourceContent = sourceCode;
+ }
+
+ const generatorOutput: IGeneratorOutput = escodegen.generate(astTree, {
+ ...escodegenParams,
+ format: {
+ compact: this.options.compact
+ }
+ });
+
+ generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : '';
+
+ return generatorOutput;
+ }
+
+ /**
+ * @param {IGeneratorOutput} generatorOutput
+ * @returns {IObfuscatedCode}
+ */
+ private getObfuscatedCode (generatorOutput: IGeneratorOutput): IObfuscatedCode {
+ return this.obfuscatedCodeFactory(generatorOutput.code, generatorOutput.map);
+ }
+
+ /**
+ * @param {string} code
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ private runCodeTransformationStage (code: string, codeTransformationStage: CodeTransformationStage): string {
+ this.logger.info(LoggingMessage.CodeTransformationStage, codeTransformationStage);
+
+ return this.codeTransformersRunner.transform(
+ code,
+ JavaScriptObfuscator.codeTransformersList,
+ codeTransformationStage
+ );
+ }
+
+ /**
+ * @param {Program} astTree
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {Program}
+ */
+ private runNodeTransformationStage (astTree: ESTree.Program, nodeTransformationStage: NodeTransformationStage): ESTree.Program {
+ this.logger.info(LoggingMessage.NodeTransformationStage, nodeTransformationStage);
+
+ return this.nodeTransformersRunner.transform(
+ astTree,
+ JavaScriptObfuscator.nodeTransformersList,
+ nodeTransformationStage
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorCLIFacade.ts b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorCLIFacade.ts
new file mode 100644
index 0000000..eb3f632
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorCLIFacade.ts
@@ -0,0 +1,17 @@
+import 'reflect-metadata';
+
+import { JavaScriptObfuscatorCLI } from './cli/JavaScriptObfuscatorCLI';
+
+class JavaScriptObfuscatorCLIFacade {
+ /**
+ * @param {string[]} argv
+ */
+ public static obfuscate (argv: string[]): void {
+ const javaScriptObfuscatorCLI: JavaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI(argv);
+
+ javaScriptObfuscatorCLI.initialize();
+ javaScriptObfuscatorCLI.run();
+ }
+}
+
+export { JavaScriptObfuscatorCLIFacade as JavaScriptObfuscatorCLI };
diff --git a/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorFacade.ts b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorFacade.ts
new file mode 100644
index 0000000..32c1562
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/JavaScriptObfuscatorFacade.ts
@@ -0,0 +1,93 @@
+import 'reflect-metadata';
+
+import { ServiceIdentifiers } from './container/ServiceIdentifiers';
+
+import { TDictionary } from './types/TDictionary';
+import { TInputOptions } from './types/options/TInputOptions';
+import { TObfuscationResultsObject } from './types/TObfuscationResultsObject';
+import { TOptionsPreset } from './types/options/TOptionsPreset';
+
+import { IInversifyContainerFacade } from './interfaces/container/IInversifyContainerFacade';
+import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
+import { IObfuscatedCode } from './interfaces/source-code/IObfuscatedCode';
+
+import { InversifyContainerFacade } from './container/InversifyContainerFacade';
+import { Options } from './options/Options';
+import { Utils } from './utils/Utils';
+
+class JavaScriptObfuscatorFacade {
+ /**
+ * @type {string | undefined}
+ */
+ public static version: string = process.env.VERSION ?? 'unknown';
+
+ /**
+ * @param {string} sourceCode
+ * @param {TInputOptions} inputOptions
+ * @returns {IObfuscatedCode}
+ */
+ public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscatedCode {
+ const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade();
+
+ inversifyContainerFacade.load(sourceCode, '', inputOptions);
+
+ const javaScriptObfuscator: IJavaScriptObfuscator = inversifyContainerFacade
+ .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
+ const obfuscatedCode: IObfuscatedCode = javaScriptObfuscator.obfuscate(sourceCode);
+
+ inversifyContainerFacade.unload();
+
+ return obfuscatedCode;
+ }
+
+ /**
+ * @param {TSourceCodesObject} sourceCodesObject
+ * @param {TInputOptions} inputOptions
+ * @returns {TObfuscationResultsObject<TSourceCodesObject>}
+ */
+ public static obfuscateMultiple <TSourceCodesObject extends TDictionary<string>> (
+ sourceCodesObject: TSourceCodesObject,
+ inputOptions: TInputOptions = {}
+ ): TObfuscationResultsObject<TSourceCodesObject> {
+ if (typeof sourceCodesObject !== 'object') {
+ throw new Error('Source codes object should be a plain object');
+ }
+
+ return Object
+ .keys(sourceCodesObject)
+ .reduce(
+ (
+ acc: TObfuscationResultsObject<TSourceCodesObject>,
+ sourceCodeIdentifier: keyof TSourceCodesObject,
+ index: number
+ ) => {
+ const identifiersPrefix: string = Utils.getIdentifiersPrefixForMultipleSources(
+ inputOptions.identifiersPrefix,
+ index
+ );
+
+ const sourceCode: string = sourceCodesObject[sourceCodeIdentifier];
+ const sourceCodeOptions: TInputOptions = {
+ ...inputOptions,
+ identifiersPrefix
+ };
+
+ return {
+ ...acc,
+ [sourceCodeIdentifier]: JavaScriptObfuscatorFacade.obfuscate(sourceCode, sourceCodeOptions)
+ };
+ },
+ <TObfuscationResultsObject<TSourceCodesObject>>{}
+ );
+ }
+
+ /**
+ * @param {TOptionsPreset} optionsPreset
+ * @returns {TInputOptions}
+ */
+ public static getOptionsByPreset (optionsPreset: TOptionsPreset): TInputOptions {
+ return Options.getOptionsByPreset(optionsPreset);
+ }
+}
+
+export { JavaScriptObfuscatorFacade as JavaScriptObfuscator };
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts
new file mode 100644
index 0000000..68f22ec
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.ts
@@ -0,0 +1,170 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TCalleeDataExtractorFactory } from '../../types/container/calls-graph-analyzer/TCalleeDataExtractorFactory';
+
+import { ICalleeData } from '../../interfaces/analyzers/calls-graph-analyzer/ICalleeData';
+import { ICallsGraphAnalyzer } from '../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer';
+import { ICallsGraphData } from '../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { CalleeDataExtractor } from '../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor';
+
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+
+/**
+ * This class generates a data with a graph of functions calls
+ *
+ * For example:
+ *
+ * function Foo () {
+ * var baz = function () {
+ *
+ * }
+ *
+ * baz();
+ * }
+ *
+ * foo();
+ *
+ * Will generate a structure like:
+ *
+ * [
+ * {
+ * callee: FOO_FUNCTION_NODE
+ * name: 'Foo',
+ * trace: [
+ * {
+ * callee: BAZ_FUNCTION_NODE,
+ * name: 'baz,
+ * trace: []
+ * }
+ * ]
+ * }
+ * ]
+ */
+@injectable()
+export class CallsGraphAnalyzer implements ICallsGraphAnalyzer {
+ /**
+ * @type {CalleeDataExtractor[]}
+ */
+ private static readonly calleeDataExtractorsList: CalleeDataExtractor[] = [
+ CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,
+ CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,
+ CalleeDataExtractor.ObjectExpressionCalleeDataExtractor
+ ];
+
+ /**
+ * @type {number}
+ */
+ private static readonly limitThresholdActivationLength: number = 25;
+
+ /**
+ * @type {number}
+ */
+ private static readonly limitThreshold: number = 0.002;
+
+ /**
+ * @type {TCalleeDataExtractorFactory}
+ */
+ private readonly calleeDataExtractorFactory: TCalleeDataExtractorFactory;
+
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICalleeDataExtractor) calleeDataExtractorFactory: TCalleeDataExtractorFactory
+ ) {
+ this.calleeDataExtractorFactory = calleeDataExtractorFactory;
+ }
+
+ /**
+ * @param {number} blockScopeBodyLength
+ * @returns {number}
+ */
+ public static getLimitIndex (blockScopeBodyLength: number): number {
+ const lastIndex: number = blockScopeBodyLength - 1;
+ const limitThresholdActivationIndex: number = CallsGraphAnalyzer.limitThresholdActivationLength - 1;
+
+ let limitIndex: number = lastIndex;
+
+ if (lastIndex > limitThresholdActivationIndex) {
+ limitIndex = Math.round(
+ limitThresholdActivationIndex + (lastIndex * CallsGraphAnalyzer.limitThreshold)
+ );
+
+ if (limitIndex > lastIndex) {
+ limitIndex = lastIndex;
+ }
+ }
+
+ return limitIndex;
+ }
+
+ /**
+ * @param {Program} astTree
+ * @returns {ICallsGraphData[]}
+ */
+ public analyze (astTree: ESTree.Program): ICallsGraphData[] {
+ return this.analyzeRecursive(astTree.body);
+ }
+
+ /**
+ * @param {NodeGuards[]} blockScopeBody
+ * @returns {ICallsGraphData[]}
+ */
+ private analyzeRecursive (blockScopeBody: ESTree.Node[]): ICallsGraphData[] {
+ const limitIndex: number = CallsGraphAnalyzer.getLimitIndex(blockScopeBody.length);
+ const callsGraphData: ICallsGraphData[] = [];
+ const blockScopeBodyLength: number = blockScopeBody.length;
+
+ for (let index: number = 0; index < blockScopeBodyLength; index++) {
+ if (index > limitIndex) {
+ break;
+ }
+
+ const blockScopeBodyNode: ESTree.Node = blockScopeBody[index];
+
+ estraverse.traverse(blockScopeBodyNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (!NodeGuards.isCallExpressionNode(node)) {
+ return;
+ }
+
+ if (blockScopeBodyNode.parentNode !== NodeStatementUtils.getParentNodeWithStatements(node)) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ this.analyzeCallExpressionNode(callsGraphData, blockScopeBody, node);
+ }
+ });
+ }
+
+ return callsGraphData;
+ }
+
+ /**
+ * @param {ICallsGraphData[]} callsGraphData
+ * @param {NodeGuards[]} blockScopeBody
+ * @param {CallExpression} callExpressionNode
+ */
+ private analyzeCallExpressionNode (
+ callsGraphData: ICallsGraphData[],
+ blockScopeBody: ESTree.Node[],
+ callExpressionNode: ESTree.CallExpression
+ ): void {
+ CallsGraphAnalyzer.calleeDataExtractorsList.forEach((calleeDataExtractorName: CalleeDataExtractor) => {
+ const calleeData: ICalleeData | null = this.calleeDataExtractorFactory(calleeDataExtractorName)
+ .extract(blockScopeBody, callExpressionNode.callee);
+
+ if (!calleeData) {
+ return;
+ }
+
+ callsGraphData.push({
+ ...calleeData,
+ callsGraph: this.analyzeRecursive(calleeData.callee.body)
+ });
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts
new file mode 100644
index 0000000..34381f6
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts
@@ -0,0 +1,16 @@
+import { injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { ICalleeData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeData';
+import { ICalleeDataExtractor } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor';
+
+@injectable()
+export abstract class AbstractCalleeDataExtractor implements ICalleeDataExtractor {
+ /**
+ * @param {Node[]} blockScopeBody
+ * @param {Node} callee
+ * @returns {ICalleeData}
+ */
+ public abstract extract (blockScopeBody: ESTree.Node[], callee: ESTree.Node): ICalleeData | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts
new file mode 100644
index 0000000..aeb89cf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts
@@ -0,0 +1,59 @@
+import { injectable } from 'inversify';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { ICalleeData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeData';
+
+import { AbstractCalleeDataExtractor } from './AbstractCalleeDataExtractor';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeStatementUtils } from '../../../node/NodeStatementUtils';
+
+@injectable()
+export class FunctionDeclarationCalleeDataExtractor extends AbstractCalleeDataExtractor {
+ /**
+ * @param {NodeGuards[]} blockScopeBody
+ * @param {Identifier} callee
+ * @returns {ICalleeData}
+ */
+ public extract (blockScopeBody: ESTree.Node[], callee: ESTree.Identifier): ICalleeData | null {
+ if (!NodeGuards.isIdentifierNode(callee)) {
+ return null;
+ }
+
+ const calleeBlockStatement: ESTree.BlockStatement | null = this.getCalleeBlockStatement(
+ NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]),
+ callee.name
+ );
+
+ if (!calleeBlockStatement) {
+ return null;
+ }
+
+ return {
+ callee: calleeBlockStatement,
+ name: callee.name
+ };
+ }
+
+ /**
+ * @param {NodeGuards} targetNode
+ * @param {string} name
+ * @returns {BlockStatement}
+ */
+ private getCalleeBlockStatement (targetNode: ESTree.Node, name: string): ESTree.BlockStatement | null {
+ let calleeBlockStatement: ESTree.BlockStatement | null = null;
+
+ estraverse.traverse(targetNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) {
+ calleeBlockStatement = node.body;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return calleeBlockStatement;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts
new file mode 100644
index 0000000..42ac074
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts
@@ -0,0 +1,70 @@
+import { injectable } from 'inversify';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { ICalleeData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeData';
+
+import { AbstractCalleeDataExtractor } from './AbstractCalleeDataExtractor';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeStatementUtils } from '../../../node/NodeStatementUtils';
+
+@injectable()
+export class FunctionExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor {
+ /**
+ * @param {NodeGuards[]} blockScopeBody
+ * @param {Identifier} callee
+ * @returns {ICalleeData}
+ */
+ public extract (blockScopeBody: ESTree.Node[], callee: ESTree.Identifier | ESTree.FunctionExpression): ICalleeData | null {
+ let calleeName: string | null = null;
+ let calleeBlockStatement: ESTree.BlockStatement | null = null;
+
+ if (NodeGuards.isIdentifierNode(callee)) {
+ calleeName = callee.name;
+ calleeBlockStatement = this.getCalleeBlockStatement(
+ NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]),
+ callee.name
+ );
+ } else if (NodeGuards.isFunctionExpressionNode(callee)) {
+ calleeName = null;
+ calleeBlockStatement = callee.body;
+ }
+
+ if (!calleeBlockStatement) {
+ return null;
+ }
+
+ return {
+ callee: calleeBlockStatement,
+ name: calleeName
+ };
+ }
+
+ /**
+ * @param {NodeGuards} targetNode
+ * @param {string} name
+ * @returns {BlockStatement}
+ */
+ private getCalleeBlockStatement (targetNode: ESTree.Node, name: string): ESTree.BlockStatement | null {
+ let calleeBlockStatement: ESTree.BlockStatement | null = null;
+
+ estraverse.traverse(targetNode, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): estraverse.VisitorOption | void => {
+ if (
+ NodeGuards.isFunctionExpressionNode(node) &&
+ parentNode &&
+ NodeGuards.isVariableDeclaratorNode(parentNode) &&
+ NodeGuards.isIdentifierNode(parentNode.id) &&
+ parentNode.id.name === name
+ ) {
+ calleeBlockStatement = node.body;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return calleeBlockStatement;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts
new file mode 100644
index 0000000..6937589
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts
@@ -0,0 +1,177 @@
+import { injectable } from 'inversify';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TObjectMembersCallsChain } from '../../../types/analyzers/calls-graph-analyzer/TObjectMembersCallsChain';
+
+import { ICalleeData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeData';
+
+import { AbstractCalleeDataExtractor } from './AbstractCalleeDataExtractor';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeStatementUtils } from '../../../node/NodeStatementUtils';
+
+@injectable()
+export class ObjectExpressionCalleeDataExtractor extends AbstractCalleeDataExtractor {
+ /**
+ * @param {Property} propertyNode
+ * @param {string | number} nextItemInCallsChain
+ * @returns {boolean}
+ */
+ private static isValidTargetPropertyNode (propertyNode: ESTree.Property, nextItemInCallsChain: string | number): boolean {
+ if (!propertyNode.key) {
+ return false;
+ }
+
+ const isTargetPropertyNodeWithIdentifierKey: boolean =
+ NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain;
+ const isTargetPropertyNodeWithLiteralKey: boolean =
+ NodeGuards.isLiteralNode(propertyNode.key) &&
+ Boolean(propertyNode.key.value) &&
+ propertyNode.key.value === nextItemInCallsChain;
+
+ return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey;
+ }
+
+ /**
+ * @param {NodeGuards[]} blockScopeBody
+ * @param {MemberExpression} callee
+ * @returns {ICalleeData}
+ */
+ public extract (blockScopeBody: ESTree.Node[], callee: ESTree.MemberExpression): ICalleeData | null {
+ if (!NodeGuards.isMemberExpressionNode(callee)) {
+ return null;
+ }
+
+ const objectMembersCallsChain: TObjectMembersCallsChain = this.createObjectMembersCallsChain([], callee);
+
+ if (!objectMembersCallsChain.length) {
+ return null;
+ }
+
+ const functionExpressionName: string | number | null = objectMembersCallsChain[objectMembersCallsChain.length - 1];
+ const calleeBlockStatement: ESTree.BlockStatement | null = this.getCalleeBlockStatement(
+ NodeStatementUtils.getParentNodeWithStatements(blockScopeBody[0]),
+ objectMembersCallsChain
+ );
+
+ if (!calleeBlockStatement) {
+ return null;
+ }
+
+ return {
+ callee: calleeBlockStatement,
+ name: functionExpressionName
+ };
+ }
+
+ /**
+ * Creates array with MemberExpression calls chain.
+ *
+ * Example: object.foo.bar(); // ['object', 'foo', 'bar']
+ *
+ * @param {TObjectMembersCallsChain} currentChain
+ * @param {MemberExpression} memberExpression
+ * @returns {TObjectMembersCallsChain}
+ */
+ private createObjectMembersCallsChain (
+ currentChain: TObjectMembersCallsChain,
+ memberExpression: ESTree.MemberExpression
+ ): TObjectMembersCallsChain {
+ // first step: processing memberExpression `property` property
+ if (NodeGuards.isIdentifierNode(memberExpression.property) && !memberExpression.computed) {
+ currentChain.unshift(memberExpression.property.name);
+ } else if (
+ NodeGuards.isLiteralNode(memberExpression.property) &&
+ (
+ typeof memberExpression.property.value === 'string' ||
+ typeof memberExpression.property.value === 'number'
+ )
+ ) {
+ currentChain.unshift(memberExpression.property.value);
+ } else {
+ return currentChain;
+ }
+
+ // second step: processing memberExpression `object` property
+ if (NodeGuards.isMemberExpressionNode(memberExpression.object)) {
+ return this.createObjectMembersCallsChain(currentChain, memberExpression.object);
+ } else if (NodeGuards.isIdentifierNode(memberExpression.object)) {
+ currentChain.unshift(memberExpression.object.name);
+ }
+
+ return currentChain;
+ }
+
+ /**
+ * @param {NodeGuards} targetNode
+ * @param {TObjectMembersCallsChain} objectMembersCallsChain
+ * @returns {BlockStatement}
+ */
+ private getCalleeBlockStatement (
+ targetNode: ESTree.Node,
+ objectMembersCallsChain: TObjectMembersCallsChain
+ ): ESTree.BlockStatement | null {
+ const objectName: string | number | undefined = objectMembersCallsChain.shift();
+
+ if (!objectName) {
+ return null;
+ }
+
+ let calleeBlockStatement: ESTree.BlockStatement | null = null;
+
+ estraverse.traverse(targetNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (
+ NodeGuards.isVariableDeclaratorNode(node) &&
+ NodeGuards.isIdentifierNode(node.id) &&
+ node.init &&
+ NodeGuards.isObjectExpressionNode(node.init) &&
+ node.id.name === objectName
+ ) {
+ calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain);
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return calleeBlockStatement;
+ }
+
+ /**
+ * @param {Property[]} objectExpressionProperties
+ * @param {TObjectMembersCallsChain} objectMembersCallsChain
+ * @returns {BlockStatement}
+ */
+ private findCalleeBlockStatement (
+ objectExpressionProperties: (ESTree.Property | ESTree.SpreadElement)[],
+ objectMembersCallsChain: TObjectMembersCallsChain
+ ): ESTree.BlockStatement | null {
+ const nextItemInCallsChain: string | number | undefined = objectMembersCallsChain.shift();
+
+ if (!nextItemInCallsChain) {
+ return null;
+ }
+
+ for (const propertyNode of objectExpressionProperties) {
+ if (!NodeGuards.isPropertyNode(propertyNode)) {
+ continue;
+ }
+
+ if (!ObjectExpressionCalleeDataExtractor.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) {
+ continue;
+ }
+
+ if (NodeGuards.isObjectExpressionNode(propertyNode.value)) {
+ return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain);
+ }
+
+ if (NodeGuards.isFunctionExpressionNode(propertyNode.value)) {
+ return propertyNode.value.body;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts
new file mode 100644
index 0000000..483f817
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.ts
@@ -0,0 +1,130 @@
+import { injectable, inject } from 'inversify';
+
+import { TNumberNumericalExpressionData } from '../../types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData';
+
+import { INumberNumericalExpressionAnalyzer } from '../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { NumberUtils } from '../../utils/NumberUtils';
+
+/**
+ * Based on https://gist.github.com/da411d/0e59f79dcf4603cdabf0024a10eeb6fe
+ */
+@injectable()
+export class NumberNumericalExpressionAnalyzer implements INumberNumericalExpressionAnalyzer {
+ /**
+ * @type {number}
+ */
+ private static readonly additionalParts: number = 3;
+
+ /**
+ * @type {Map<number, number[]>}
+ */
+ private readonly numberFactorsMap: Map<number, number[]> = new Map();
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator
+ ) {
+ this.randomGenerator = randomGenerator;
+ }
+
+ /**
+ * @param {number} number
+ * @returns {TNumberNumericalExpressionData}
+ */
+ public analyze (number: number): TNumberNumericalExpressionData {
+ if (isNaN(number)) {
+ throw new Error('Given value is NaN');
+ }
+
+ if (NumberUtils.isUnsafeNumber(number)) {
+ return [number];
+ }
+
+ const additionParts: number[] = this.generateAdditionParts(number);
+
+ return additionParts.map((addition: number) => this.mixWithMultiplyParts(addition));
+ }
+
+ /**
+ * @param {number} number
+ * @returns {number[]}
+ */
+ private generateAdditionParts (number: number): number[] {
+ const additionParts = [];
+
+ const upperNumberLimit: number = Math.min(Math.abs(number * 2), Number.MAX_SAFE_INTEGER);
+
+ const from: number = Math.min(-10000, -upperNumberLimit);
+ const to: number = Math.max(10000, upperNumberLimit);
+
+ let temporarySum = 0;
+
+ for (let i = 0; i < NumberNumericalExpressionAnalyzer.additionalParts; i++) {
+ if (i < NumberNumericalExpressionAnalyzer.additionalParts - 1) {
+ // trailing parts
+
+ let addition: number = this.randomGenerator.getRandomInteger(from, to);
+ const isUnsafeCombination: boolean = NumberUtils.isUnsafeNumber(temporarySum + addition);
+
+ // we have to flip sign if total expression sum overflows over safe integer limits
+ if (isUnsafeCombination) {
+ addition = -addition;
+ }
+
+ additionParts.push(addition);
+ temporarySum += addition;
+ } else {
+ const combination: number = number - temporarySum;
+ const isUnsafeCombination: boolean = NumberUtils.isUnsafeNumber(combination);
+
+ // last part
+ if (isUnsafeCombination) {
+ additionParts.push(0 - temporarySum);
+ additionParts.push(number);
+ } else {
+ additionParts.push(combination);
+ }
+ }
+ }
+
+ return additionParts;
+ }
+
+ /**
+ * @param {number} number
+ * @returns {number | number[]}
+ */
+ private mixWithMultiplyParts (number: number): number | number[] {
+ const shouldMixWithMultiplyParts: boolean = this.randomGenerator.getMathRandom() > 0.5;
+
+ if (!shouldMixWithMultiplyParts || number === 0) {
+ return number;
+ }
+
+ let factors: number[] | null = this.numberFactorsMap.get(number) ?? null;
+
+ if (!factors) {
+ factors = NumberUtils.getFactors(number);
+ this.numberFactorsMap.set(number, factors);
+ }
+
+ if (!factors.length) {
+ return number;
+ }
+
+ const factor: number = factors[this.randomGenerator.getRandomInteger(0, factors.length - 1)];
+
+ return [factor, number / factor];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts
new file mode 100644
index 0000000..f01f9f1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.ts
@@ -0,0 +1,61 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { IPrevailingKindOfVariablesAnalyzer } from '../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer';
+
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class PrevailingKindOfVariablesAnalyzer implements IPrevailingKindOfVariablesAnalyzer {
+ /**
+ * @type {ESTree.VariableDeclaration['kind']}
+ */
+ private static readonly defaultKindOfVariables: ESTree.VariableDeclaration['kind'] = 'var';
+
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @type {ESTree.VariableDeclaration['kind']}
+ */
+ private prevailingKindOfVariables: ESTree.VariableDeclaration['kind'] = PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables;
+
+ public constructor (
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils
+ ) {
+ this.arrayUtils = arrayUtils;
+ }
+
+ /**
+ * @param {Program} astTree
+ */
+ public analyze (astTree: ESTree.Program): void {
+ const variableKinds: ESTree.VariableDeclaration['kind'][] = [];
+
+ estraverse.traverse(astTree, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (!NodeGuards.isVariableDeclarationNode(node)) {
+ return;
+ }
+
+ variableKinds.push(node.kind);
+ }
+ });
+
+ this.prevailingKindOfVariables = this.arrayUtils.findMostOccurringElement(variableKinds)
+ ?? PrevailingKindOfVariablesAnalyzer.defaultKindOfVariables;
+ }
+
+ /**
+ * @returns {VariableDeclaration["kind"]}
+ */
+ public getPrevailingKind (): ESTree.VariableDeclaration['kind'] {
+ return this.prevailingKindOfVariables;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/scope-analyzer/ScopeAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/analyzers/scope-analyzer/ScopeAnalyzer.ts
new file mode 100644
index 0000000..7641e7a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/scope-analyzer/ScopeAnalyzer.ts
@@ -0,0 +1,152 @@
+import { injectable, } from 'inversify';
+
+import * as eslintScope from 'eslint-scope';
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { IScopeAnalyzer } from '../../interfaces/analyzers/scope-analyzer/IScopeAnalyzer';
+
+import { ecmaVersion } from '../../constants/EcmaVersion';
+
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class ScopeAnalyzer implements IScopeAnalyzer {
+ /**
+ * @type {eslintScope.AnalysisOptions}
+ */
+ private static readonly eslintScopeOptions: eslintScope.AnalysisOptions = {
+ ecmaVersion,
+ optimistic: true
+ };
+
+ /**
+ * @type {acorn.Options['sourceType'][]}
+ */
+ private static readonly sourceTypes: acorn.Options['sourceType'][] = [
+ 'script',
+ 'module'
+ ];
+
+ /**
+ * @type {number}
+ */
+ private static readonly emptyRangeValue: number = 0;
+
+ /**
+ * @type {eslintScope.ScopeManager | null}
+ */
+ private scopeManager: eslintScope.ScopeManager | null = null;
+
+ /**
+ * `eslint-scope` reads `ranges` property of a nodes
+ * Should attach that property to the some custom nodes
+ *
+ * @param {Node} astTree
+ */
+ private static attachMissingRanges (astTree: ESTree.Node): void {
+ estraverse.replace(astTree, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node => {
+ if (!node.range) {
+ node.range = [
+ parentNode?.range?.[0] ?? ScopeAnalyzer.emptyRangeValue,
+ parentNode?.range?.[1] ?? ScopeAnalyzer.emptyRangeValue
+ ];
+ }
+
+ return node;
+ }
+ });
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ private static isRootNode (node: ESTree.Node): boolean {
+ return NodeGuards.isProgramNode(node) || node.parentNode === node;
+ }
+
+ /**
+ * @param {Program} astTree
+ */
+ public analyze (astTree: ESTree.Node): void {
+ const sourceTypeLength: number = ScopeAnalyzer.sourceTypes.length;
+
+ ScopeAnalyzer.attachMissingRanges(astTree);
+
+ for (let i: number = 0; i < sourceTypeLength; i++) {
+ try {
+ this.scopeManager = eslintScope.analyze(astTree, {
+ ...ScopeAnalyzer.eslintScopeOptions,
+ sourceType: ScopeAnalyzer.sourceTypes[i]
+ });
+
+ return;
+ } catch (error) {
+ if (i < sourceTypeLength - 1) {
+ continue;
+ }
+
+ throw new Error(error);
+ }
+ }
+
+ throw new Error('Scope analyzing error');
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {Scope}
+ */
+ public acquireScope (node: ESTree.Node): eslintScope.Scope {
+ if (!this.scopeManager) {
+ throw new Error('Scope manager is not defined');
+ }
+
+ const scope: eslintScope.Scope | null = this.scopeManager.acquire(
+ node,
+ ScopeAnalyzer.isRootNode(node)
+ );
+
+ if (!scope) {
+ throw new Error('Cannot acquire scope for node');
+ }
+
+ this.sanitizeScopes(scope);
+
+ return scope;
+ }
+
+ /**
+ * @param {Scope} scope
+ */
+ private sanitizeScopes (scope: eslintScope.Scope): void {
+ scope.childScopes.forEach((childScope: eslintScope.Scope) => {
+ // fix of class scopes
+ // trying to move class scope references to the parent scope
+ if (childScope.type === 'class' && childScope.upper) {
+ if (!childScope.variables.length) {
+ return;
+ }
+
+ // class name variable is always first
+ const classNameVariable: eslintScope.Variable = childScope.variables[0];
+
+ const upperVariable: eslintScope.Variable | undefined = childScope.upper.variables
+ .find((variable: eslintScope.Variable) => {
+ const isValidClassNameVariable: boolean = classNameVariable.defs
+ .some((definition: eslintScope.Definition) => definition.type === 'ClassName');
+
+ return isValidClassNameVariable && variable.name === classNameVariable.name;
+ });
+
+ upperVariable?.references.push(...childScope.variables[0].references);
+ }
+ });
+
+ for (const childScope of scope.childScopes) {
+ this.sanitizeScopes(childScope);
+ }
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts
new file mode 100644
index 0000000..3b850bd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.ts
@@ -0,0 +1,134 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IStringArrayStorageAnalyzer } from '../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer';
+import { IStringArrayStorageItemData } from '../../interfaces/storages/string-array-transformers/IStringArrayStorageItem';
+
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLiteralUtils } from '../../node/NodeLiteralUtils';
+import { NodeMetadata } from '../../node/NodeMetadata';
+
+/**
+ * Adds values of literal nodes to the string array storage
+ */
+@injectable()
+export class StringArrayStorageAnalyzer implements IStringArrayStorageAnalyzer {
+ /**
+ * @type {number}
+ */
+ private static readonly minimumLengthForStringArray: number = 3;
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @type {randomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {IStringArrayStorage}
+ */
+ private readonly stringArrayStorage: IStringArrayStorage;
+
+ /**
+ * @type {Map<ESTree.Literal, IStringArrayStorageItemData>}
+ */
+ private readonly stringArrayStorageData: Map<ESTree.Literal, IStringArrayStorageItemData> = new Map();
+
+ /**
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ ) {
+ this.stringArrayStorage = stringArrayStorage;
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {Program} astTree
+ */
+ public analyze (astTree: ESTree.Program): void {
+ if (!this.options.stringArray) {
+ return;
+ }
+
+ estraverse.traverse(astTree, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): estraverse.VisitorOption | void => {
+ if (!parentNode) {
+ return;
+ }
+
+ if (NodeMetadata.isIgnoredNode(node)) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ if (!NodeGuards.isLiteralNode(node)) {
+ return;
+ }
+
+ this.analyzeLiteralNode(node, parentNode);
+ }
+ });
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @returns {IStringArrayStorageItemData | undefined}
+ */
+ public getItemDataForLiteralNode (literalNode: ESTree.Literal): IStringArrayStorageItemData | undefined {
+ return this.stringArrayStorageData.get(literalNode);
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {Node} parentNode
+ */
+ private analyzeLiteralNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): void {
+ if (!NodeLiteralUtils.isStringLiteralNode(literalNode)) {
+ return;
+ }
+
+ if (NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
+ return;
+ }
+
+ if (!this.shouldAddValueToStringArray(literalNode)) {
+ return;
+ }
+
+ this.stringArrayStorageData.set(
+ literalNode,
+ this.stringArrayStorage.getOrThrow(literalNode.value)
+ );
+ }
+
+ /**
+ * @param {(SimpleLiteral & {value: string})} literalNode
+ * @returns {boolean}
+ */
+ private shouldAddValueToStringArray (literalNode: ESTree.Literal & {value: string}): boolean {
+ const isForceTransformNode: boolean = NodeMetadata.isForceTransformNode(literalNode);
+
+ if (isForceTransformNode) {
+ return true;
+ }
+
+ return literalNode.value.length >= StringArrayStorageAnalyzer.minimumLengthForStringArray
+ && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/cli/JavaScriptObfuscatorCLI.ts b/src/node_modules/javascript-obfuscator/src/cli/JavaScriptObfuscatorCLI.ts
new file mode 100644
index 0000000..becb392
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/JavaScriptObfuscatorCLI.ts
@@ -0,0 +1,521 @@
+/* eslint-disable max-lines */
+import * as commander from 'commander';
+import * as path from 'path';
+
+import { TInputCLIOptions } from '../types/options/TInputCLIOptions';
+import { TInputOptions } from '../types/options/TInputOptions';
+
+import { IFileData } from '../interfaces/cli/IFileData';
+import { IInitializable } from '../interfaces/IInitializable';
+import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
+
+import { initializable } from '../decorators/Initializable';
+
+import { IdentifierNamesGenerator } from '../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { LoggingPrefix } from '../enums/logger/LoggingPrefix';
+import { ObfuscationTarget } from '../enums/ObfuscationTarget';
+import { OptionsPreset } from '../enums/options/presets/OptionsPreset';
+import { SourceMapMode } from '../enums/source-map/SourceMapMode';
+import { StringArrayEncoding } from '../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+import { StringArrayWrappersType } from '../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+import { DEFAULT_PRESET } from '../options/presets/Default';
+
+import { ArraySanitizer } from './sanitizers/ArraySanitizer';
+import { BooleanSanitizer } from './sanitizers/BooleanSanitizer';
+
+import { CLIUtils } from './utils/CLIUtils';
+import { JavaScriptObfuscator } from '../JavaScriptObfuscatorFacade';
+import { Logger } from '../logger/Logger';
+import { ObfuscatedCodeWriter } from './utils/ObfuscatedCodeWriter';
+import { SourceCodeReader } from './utils/SourceCodeReader';
+import { Utils } from '../utils/Utils';
+import { StringArrayIndexesType } from '../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+
+export class JavaScriptObfuscatorCLI implements IInitializable {
+ /**
+ * @type {string[]}
+ */
+ public static readonly availableInputExtensions: string[] = [
+ '.js'
+ ];
+
+ /**
+ * @type {BufferEncoding}
+ */
+ public static readonly encoding: BufferEncoding = 'utf8';
+
+ /**
+ * @type {string}
+ */
+ public static readonly obfuscatedFilePrefix: string = '-obfuscated';
+
+ /**
+ * @type {commander.CommanderStatic}
+ */
+ @initializable()
+ private commands!: commander.CommanderStatic;
+
+ /**
+ * @type {TInputCLIOptions}
+ */
+ @initializable()
+ private inputCLIOptions!: TInputCLIOptions;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private inputPath!: string;
+
+ /**
+ * @type {SourceCodeReader}
+ */
+ @initializable()
+ private sourceCodeReader!: SourceCodeReader;
+
+ /**
+ * @type {ObfuscatedCodeWriter}
+ */
+ @initializable()
+ private obfuscatedCodeWriter!: ObfuscatedCodeWriter;
+
+ /**
+ * @type {string[]}
+ */
+ private readonly arguments: string[];
+
+ /**
+ * @type {string[]}
+ */
+ private readonly rawArguments: string[];
+
+ /**
+ * @param {string[]} argv
+ */
+ public constructor (argv: string[]) {
+ this.rawArguments = argv;
+ this.arguments = argv.slice(2);
+ }
+
+ /**
+ * @param {TInputCLIOptions} inputOptions
+ * @returns {TInputOptions}
+ */
+ private static buildOptions (inputOptions: TInputCLIOptions): TInputOptions {
+ const inputCLIOptions: TInputOptions = JavaScriptObfuscatorCLI.filterOptions(inputOptions);
+ const configFilePath: string | undefined = inputOptions.config;
+ const configFileLocation: string = configFilePath ? path.resolve(configFilePath, '.') : '';
+ const configFileOptions: TInputOptions = configFileLocation ? CLIUtils.getUserConfig(configFileLocation) : {};
+
+ return {
+ ...DEFAULT_PRESET,
+ ...configFileOptions,
+ ...inputCLIOptions
+ };
+ }
+
+ /**
+ * @param {TObject} options
+ * @returns {TInputOptions}
+ */
+ private static filterOptions (options: TInputCLIOptions): TInputOptions {
+ const filteredOptions: TInputOptions = {};
+
+ Object
+ .keys(options)
+ .forEach((option: keyof TInputCLIOptions) => {
+ if (options[option] === undefined) {
+ return;
+ }
+
+ filteredOptions[option] = options[option];
+ });
+
+ return filteredOptions;
+ }
+
+ public initialize (): void {
+ this.inputPath = path.normalize(this.arguments[0] || '');
+ this.commands = <commander.CommanderStatic>(new commander.Command());
+
+ this.configureCommands();
+ this.configureHelp();
+
+ this.inputCLIOptions = JavaScriptObfuscatorCLI.buildOptions(this.commands.opts());
+ this.sourceCodeReader = new SourceCodeReader(
+ this.inputPath,
+ this.inputCLIOptions
+ );
+ this.obfuscatedCodeWriter = new ObfuscatedCodeWriter(
+ this.inputPath,
+ this.inputCLIOptions
+ );
+ }
+
+ public run (): void {
+ const canShowHelp: boolean = !this.arguments.length || this.arguments.includes('--help');
+
+ if (canShowHelp) {
+ this.commands.outputHelp();
+
+ return;
+ }
+
+ const sourceCodeData: IFileData[] = this.sourceCodeReader.readSourceCode();
+
+ this.processSourceCodeData(sourceCodeData);
+ }
+
+ private configureCommands (): void {
+ this.commands
+ .usage('<inputPath> [options]')
+ .version(
+ Utils.buildVersionMessage(process.env.VERSION, process.env.BUILD_TIMESTAMP),
+ '-v, --version'
+ )
+ .option(
+ '-o, --output <path>',
+ 'Output path for obfuscated code'
+ )
+ .option(
+ '--compact <boolean>',
+ 'Disable one line output code compacting',
+ BooleanSanitizer
+ )
+ .option(
+ '--config <boolean>',
+ 'Name of js / json config file'
+ )
+ .option(
+ '--control-flow-flattening <boolean>',
+ 'Enables control flow flattening',
+ BooleanSanitizer
+ )
+ .option(
+ '--control-flow-flattening-threshold <number>',
+ 'The probability that the control flow flattening transformation will be applied to the node',
+ parseFloat
+ )
+ .option(
+ '--dead-code-injection <boolean>',
+ 'Enables dead code injection',
+ BooleanSanitizer
+ )
+ .option(
+ '--dead-code-injection-threshold <number>',
+ 'The probability that the dead code injection transformation will be applied to the node',
+ parseFloat
+ )
+ .option(
+ '--debug-protection <boolean>',
+ 'Disable browser Debug panel (can cause DevTools enabled browser freeze)',
+ BooleanSanitizer
+ )
+ .option(
+ '--debug-protection-interval <boolean>',
+ 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)',
+ BooleanSanitizer
+ )
+ .option(
+ '--disable-console-output <boolean>',
+ 'Allow console.log, console.info, console.error and console.warn messages output into browser console',
+ BooleanSanitizer
+ )
+ .option(
+ '--domain-lock <list> (comma separated, without whitespaces)',
+ 'Allows to run the obfuscated source code only on specific domains and/or sub-domains (comma separated)',
+ ArraySanitizer
+ )
+ .option(
+ '--exclude <list> (comma separated, without whitespaces)',
+ 'A filename or glob which indicates files to exclude from obfuscation',
+ ArraySanitizer
+ )
+ .option(
+ '--force-transform-strings <list> (comma separated, without whitespaces)',
+ 'Enables force transformation of string literals, which being matched by passed RegExp patterns (comma separated)',
+ ArraySanitizer
+ )
+ .option(
+ '--identifier-names-generator <string>',
+ 'Sets identifier names generator. ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(IdentifierNamesGenerator)}. ` +
+ `Default: ${IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator}`
+ )
+ .option(
+ '--identifiers-prefix <string>',
+ 'Sets prefix for all global identifiers'
+ )
+ .option(
+ '--identifiers-dictionary <list> (comma separated, without whitespaces)',
+ 'Identifiers dictionary (comma separated) for `--identifier-names-generator dictionary` option',
+ ArraySanitizer
+ )
+ .option(
+ '--ignore-require-imports <boolean>', 'Prevents obfuscation of `require` imports',
+ BooleanSanitizer
+ )
+ .option(
+ '--log <boolean>', 'Enables logging of the information to the console',
+ BooleanSanitizer
+ )
+ .option(
+ '--numbers-to-expressions <boolean>', 'Enables numbers conversion to expressions',
+ BooleanSanitizer
+ )
+ .option(
+ '--options-preset <string>',
+ 'Allows to set options preset. ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(OptionsPreset)}. ` +
+ `Default: ${OptionsPreset.Default}`
+ )
+ .option(
+ '--reserved-names <list> (comma separated, without whitespaces)',
+ 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)',
+ ArraySanitizer
+ )
+ .option(
+ '--reserved-strings <list> (comma separated, without whitespaces)',
+ 'Disables transformation of string literals, which being matched by passed RegExp patterns (comma separated)',
+ ArraySanitizer
+ )
+ .option(
+ '--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration',
+ BooleanSanitizer
+ )
+ .option(
+ '--rename-properties <boolean>', 'UNSAFE: Enables renaming of property names. This probably WILL break your code',
+ BooleanSanitizer
+ )
+ .option(
+ '--rotate-string-array <boolean>', 'Enable rotation of string array values during obfuscation',
+ BooleanSanitizer
+ )
+ .option(
+ '--seed <string|number>',
+ 'Sets seed for random generator. This is useful for creating repeatable results.',
+ parseFloat
+ )
+ .option(
+ '--self-defending <boolean>',
+ 'Disables self-defending for obfuscated code',
+ BooleanSanitizer
+ )
+ .option(
+ '--shuffle-string-array <boolean>', 'Randomly shuffles string array items',
+ BooleanSanitizer
+ )
+ .option(
+ '--simplify <boolean>', 'Enables additional code obfuscation through simplification',
+ BooleanSanitizer
+ )
+ .option(
+ '--source-map <boolean>',
+ 'Enables source map generation',
+ BooleanSanitizer
+ )
+ .option(
+ '--source-map-base-url <string>',
+ 'Sets base url to the source map import url when `--source-map-mode=separate`'
+ )
+ .option(
+ '--source-map-file-name <string>',
+ 'Sets file name for output source map when `--source-map-mode=separate`'
+ )
+ .option(
+ '--source-map-mode <string>',
+ 'Specify source map output mode. ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(SourceMapMode)}. ` +
+ `Default: ${SourceMapMode.Separate}`
+ )
+ .option(
+ '--split-strings <boolean>',
+ 'Splits literal strings into chunks with length of `splitStringsChunkLength` option value',
+ BooleanSanitizer
+ )
+ .option(
+ '--split-strings-chunk-length <number>',
+ 'Sets chunk length of `splitStrings` option',
+ parseFloat
+ )
+ .option(
+ '--string-array <boolean>',
+ 'Disables gathering of all literal strings into an array and replacing every literal string with an array call',
+ BooleanSanitizer
+ )
+ .option(
+ '--string-array-encoding <list> (comma separated, without whitespaces)',
+ 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(StringArrayEncoding)}. ` +
+ `Default: ${StringArrayEncoding.None}`,
+ ArraySanitizer
+ )
+ .option(
+ '--string-array-indexes-type <list> (comma separated, without whitespaces)',
+ 'Encodes each string in strings array using base64 or rc4 (this option can slow down your code speed). ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(StringArrayIndexesType)}. ` +
+ `Default: ${StringArrayIndexesType.HexadecimalNumber}`,
+ ArraySanitizer
+ )
+ .option(
+ '--string-array-index-shift <boolean>',
+ 'Enables additional index shift for all string array calls',
+ BooleanSanitizer
+ )
+ .option(
+ '--string-array-wrappers-count <number>',
+ 'Sets the count of wrappers for the string array inside each root or function scope',
+ parseInt
+ )
+ .option(
+ '--string-array-wrappers-chained-calls <boolean>',
+ 'Enables the chained calls between string array wrappers',
+ BooleanSanitizer
+ )
+ .option(
+ '--string-array-wrappers-parameters-max-count <number>',
+ 'Allows to control the maximum number of string array wrappers parameters',
+ parseInt
+ )
+ .option(
+ '--string-array-wrappers-type <string>',
+ 'Allows to select a type of the wrappers that are appending by the `--string-array-wrappers-count` option. ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(StringArrayWrappersType)}. ` +
+ `Default: ${StringArrayWrappersType.Variable}`
+ )
+ .option(
+ '--string-array-threshold <number>',
+ 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)',
+ parseFloat
+ )
+ .option(
+ '--target <string>',
+ 'Allows to set target environment for obfuscated code. ' +
+ `Values: ${CLIUtils.stringifyOptionAvailableValues(ObfuscationTarget)}. ` +
+ `Default: ${ObfuscationTarget.Browser}`
+ )
+ .option(
+ '--transform-object-keys <boolean>',
+ 'Enables transformation of object keys',
+ BooleanSanitizer
+ )
+ .option(
+ '--unicode-escape-sequence <boolean>',
+ 'Allows to enable/disable string conversion to unicode escape sequence',
+ BooleanSanitizer
+ )
+ .parse(this.rawArguments);
+ }
+
+ private configureHelp (): void {
+ this.commands.on('--help', () => {
+ console.log(' Examples:\n');
+ console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false');
+ console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false');
+ console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false');
+ console.log('');
+ });
+ }
+
+ /**
+ * @param {IFileData[]} sourceCodeData
+ */
+ private processSourceCodeData (sourceCodeData: IFileData[]): void {
+ sourceCodeData.forEach(({ filePath, content }: IFileData, index: number) => {
+ const outputCodePath: string = this.obfuscatedCodeWriter.getOutputCodePath(filePath);
+
+ try {
+ Logger.log(
+ Logger.colorInfo,
+ LoggingPrefix.CLI,
+ `Obfuscating file: ${filePath}...`
+ );
+
+ this.processSourceCode(content, filePath, outputCodePath, index);
+ } catch (error) {
+ Logger.log(
+ Logger.colorInfo,
+ LoggingPrefix.CLI,
+ `Error in file: ${filePath}...`
+ );
+
+ throw error;
+ }
+ });
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} inputCodePath
+ * @param {string} outputCodePath
+ * @param {number | null} sourceCodeIndex
+ */
+ private processSourceCode (
+ sourceCode: string,
+ inputCodePath: string,
+ outputCodePath: string,
+ sourceCodeIndex: number | null
+ ): void {
+ const options: TInputOptions = {
+ ...this.inputCLIOptions,
+ inputFileName: path.basename(inputCodePath),
+ ...sourceCodeIndex !== null && {
+ identifiersPrefix: Utils.getIdentifiersPrefixForMultipleSources(
+ this.inputCLIOptions.identifiersPrefix,
+ sourceCodeIndex
+ )
+ }
+ };
+
+ if (options.sourceMap) {
+ this.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options);
+ } else {
+ this.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options);
+ }
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} outputCodePath
+ * @param {TInputOptions} options
+ */
+ private processSourceCodeWithoutSourceMap (
+ sourceCode: string,
+ outputCodePath: string,
+ options: TInputOptions
+ ): void {
+ const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode();
+
+ this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode);
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} outputCodePath
+ * @param {TInputOptions} options
+ */
+ private processSourceCodeWithSourceMap (
+ sourceCode: string,
+ outputCodePath: string,
+ options: TInputOptions
+ ): void {
+ const outputSourceMapPath: string = this.obfuscatedCodeWriter.getOutputSourceMapPath(
+ outputCodePath,
+ options.sourceMapFileName ?? ''
+ );
+
+ options = {
+ ...options,
+ sourceMapFileName: path.basename(outputSourceMapPath)
+ };
+
+ const obfuscatedCode: IObfuscatedCode = JavaScriptObfuscator.obfuscate(sourceCode, options);
+
+ this.obfuscatedCodeWriter.writeFile(outputCodePath, obfuscatedCode.getObfuscatedCode());
+
+ if (options.sourceMapMode === SourceMapMode.Separate && obfuscatedCode.getSourceMap()) {
+ this.obfuscatedCodeWriter.writeFile(outputSourceMapPath, obfuscatedCode.getSourceMap());
+ }
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/cli/sanitizers/ArraySanitizer.ts b/src/node_modules/javascript-obfuscator/src/cli/sanitizers/ArraySanitizer.ts
new file mode 100644
index 0000000..c52ff71
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/sanitizers/ArraySanitizer.ts
@@ -0,0 +1,13 @@
+import { TCLISanitizer } from '../../types/cli/TCLISanitizer';
+
+/**
+ * @param {string} value
+ * @returns {string[]}
+ */
+export const ArraySanitizer: TCLISanitizer <string[]> = (value: string): string[] => {
+ if (value.endsWith(',')) {
+ throw new SyntaxError('Multiple <list> values should be wrapped inside quotes: --option-name \'value1\',\'value2\'');
+ }
+
+ return value.split(',').map((string: string) => string.trim());
+};
diff --git a/src/node_modules/javascript-obfuscator/src/cli/sanitizers/BooleanSanitizer.ts b/src/node_modules/javascript-obfuscator/src/cli/sanitizers/BooleanSanitizer.ts
new file mode 100644
index 0000000..2bbfb22
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/sanitizers/BooleanSanitizer.ts
@@ -0,0 +1,9 @@
+import { TCLISanitizer } from '../../types/cli/TCLISanitizer';
+
+/**
+ * @param {string} value
+ * @returns {boolean}
+ */
+export const BooleanSanitizer: TCLISanitizer <boolean> = (value: string): boolean => {
+ return value === 'true' || value === '1';
+};
diff --git a/src/node_modules/javascript-obfuscator/src/cli/utils/CLIUtils.ts b/src/node_modules/javascript-obfuscator/src/cli/utils/CLIUtils.ts
new file mode 100644
index 0000000..a0a1a34
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/utils/CLIUtils.ts
@@ -0,0 +1,50 @@
+import * as path from 'path';
+
+import { TDictionary } from '../../types/TDictionary';
+
+import { StringSeparator } from '../../enums/StringSeparator';
+
+export class CLIUtils {
+ /**
+ * @type {string[]}
+ */
+ public static readonly allowedConfigFileExtensions: string[] = [
+ '.js',
+ '.json'
+ ];
+
+ /**
+ * @param {string} configPath
+ * @returns {TDictionary}
+ */
+ public static getUserConfig (configPath: string): TDictionary {
+ let config: TDictionary;
+
+ const configFileExtension: string = path.extname(configPath);
+ const isValidExtension: boolean = CLIUtils.allowedConfigFileExtensions.includes(configFileExtension);
+
+ if (!isValidExtension) {
+ throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path');
+ }
+
+ try {
+ config = require(configPath);
+ } catch {
+ try {
+ config = __non_webpack_require__(configPath);
+ } catch {
+ throw new ReferenceError(`Cannot open config file with path: ${configPath}`);
+ }
+ }
+
+ return config;
+ }
+
+ /**
+ * @param {TDictionary} optionEnum
+ * @returns {string}
+ */
+ public static stringifyOptionAvailableValues (optionEnum: TDictionary): string {
+ return Object.values(optionEnum).join(`${StringSeparator.Comma} `);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/cli/utils/ObfuscatedCodeWriter.ts b/src/node_modules/javascript-obfuscator/src/cli/utils/ObfuscatedCodeWriter.ts
new file mode 100644
index 0000000..4b0a153
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/utils/ObfuscatedCodeWriter.ts
@@ -0,0 +1,133 @@
+import * as fs from 'fs';
+import * as mkdirp from 'mkdirp';
+import * as path from 'path';
+
+import { TInputCLIOptions } from '../../types/options/TInputCLIOptions';
+
+import { StringSeparator } from '../../enums/StringSeparator';
+
+import { JavaScriptObfuscatorCLI } from '../JavaScriptObfuscatorCLI';
+
+export class ObfuscatedCodeWriter {
+ /**
+ * @type {string}
+ */
+ private readonly inputPath: string;
+
+ /**
+ * @type {TInputCLIOptions}
+ */
+ private readonly options: TInputCLIOptions;
+
+ /**
+ * @param {string} inputPath
+ * @param {TInputCLIOptions} options
+ */
+ public constructor (
+ inputPath: string,
+ options: TInputCLIOptions
+ ) {
+ this.inputPath = path.normalize(inputPath);
+ this.options = options;
+ }
+
+ /**
+ * @param {string} filePath
+ * @returns {string}
+ */
+ public getOutputCodePath (filePath: string): string {
+ const normalizedFilePath: string = path.normalize(filePath);
+ const normalizedRawOutputPath: string | null = this.options.output
+ ? path.normalize(this.options.output)
+ : null;
+
+ if (!normalizedRawOutputPath) {
+ return normalizedFilePath
+ .split(StringSeparator.Dot)
+ .map((value: string, index: number) => {
+ return index === 0 ? `${value}${JavaScriptObfuscatorCLI.obfuscatedFilePrefix}` : value;
+ })
+ .join(StringSeparator.Dot);
+ }
+
+ const rawInputPathStats: fs.Stats = fs.lstatSync(this.inputPath);
+ const outputPathExtName: string = path.extname(normalizedRawOutputPath);
+
+ const isDirectoryRawInputPath: boolean = rawInputPathStats.isDirectory();
+ const isDirectoryRawOutputPath: boolean = !JavaScriptObfuscatorCLI
+ .availableInputExtensions
+ .includes(outputPathExtName);
+
+ if (isDirectoryRawInputPath) {
+ if (isDirectoryRawOutputPath) {
+ const parsedNormalizedFilePath: path.ParsedPath = path.parse(normalizedFilePath);
+ const baseOutputPath: string = path.join(
+ parsedNormalizedFilePath.dir.replace(this.inputPath, ''),
+ parsedNormalizedFilePath.base
+ );
+
+ return path.join(normalizedRawOutputPath, baseOutputPath);
+ } else {
+ throw new Error('Output path for directory obfuscation should be a directory path');
+ }
+ } else {
+ if (isDirectoryRawOutputPath) {
+ return path.join(normalizedRawOutputPath, path.basename(filePath));
+ } else {
+ return normalizedRawOutputPath;
+ }
+ }
+ }
+
+ /**
+ * @param {string} outputCodePath
+ * @param {string} sourceMapFileName
+ * @returns {string}
+ */
+ public getOutputSourceMapPath (outputCodePath: string, sourceMapFileName: string = ''): string {
+ if (!outputCodePath) {
+ throw new Error('Output code path is empty');
+ }
+
+ let normalizedOutputCodePath: string = path.normalize(outputCodePath);
+ let parsedOutputCodePath: path.ParsedPath = path.parse(normalizedOutputCodePath);
+
+ if (!parsedOutputCodePath.ext && !sourceMapFileName) {
+ throw new Error('Source map file name should be set when output code path is a directory path');
+ }
+
+ if (sourceMapFileName) {
+ const indexOfLastSeparator: number = normalizedOutputCodePath.lastIndexOf(path.sep);
+ const sourceMapPath: string = parsedOutputCodePath.ext && indexOfLastSeparator > 0
+ ? normalizedOutputCodePath.slice(0, indexOfLastSeparator)
+ : normalizedOutputCodePath;
+ // remove possible drive letter for win32 environment
+ const normalizedSourceMapFilePath: string = sourceMapFileName.replace(/^[a-zA-Z]:\\*/, '');
+
+ normalizedOutputCodePath = path.join(sourceMapPath, normalizedSourceMapFilePath);
+ }
+
+ if (!/\.js\.map$/.test(normalizedOutputCodePath)) {
+ parsedOutputCodePath = path.parse(normalizedOutputCodePath);
+ const outputCodePathWithoutExtension: string = path.join(parsedOutputCodePath.dir, parsedOutputCodePath.name);
+
+ normalizedOutputCodePath = `${outputCodePathWithoutExtension}.js.map`;
+ } else if (/\.js$/.test(normalizedOutputCodePath)) {
+ normalizedOutputCodePath += '.map';
+ }
+
+ return normalizedOutputCodePath;
+ }
+
+ /**
+ * @param {string} outputPath
+ * @param {string} data
+ */
+ public writeFile (outputPath: string, data: string): void {
+ mkdirp.sync(path.dirname(outputPath));
+
+ fs.writeFileSync(outputPath, data, {
+ encoding: JavaScriptObfuscatorCLI.encoding
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/cli/utils/SourceCodeReader.ts b/src/node_modules/javascript-obfuscator/src/cli/utils/SourceCodeReader.ts
new file mode 100644
index 0000000..4ef0df2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/cli/utils/SourceCodeReader.ts
@@ -0,0 +1,167 @@
+import * as fs from 'fs';
+import * as path from 'path';
+import multimatch from 'multimatch';
+
+import { TInputCLIOptions } from '../../types/options/TInputCLIOptions';
+
+import { IFileData } from '../../interfaces/cli/IFileData';
+
+import { JavaScriptObfuscatorCLI } from '../JavaScriptObfuscatorCLI';
+
+export class SourceCodeReader {
+ /**
+ * @type {string}
+ */
+ private readonly inputPath: string;
+
+ /**
+ * @type {TInputCLIOptions}
+ */
+ private readonly options: TInputCLIOptions;
+
+ /**
+ * @param {string} inputPath
+ * @param {TInputCLIOptions} options
+ */
+ public constructor (
+ inputPath: string,
+ options: TInputCLIOptions
+ ) {
+ this.inputPath = inputPath;
+ this.options = options;
+ }
+
+ /**
+ * @param {string} filePath
+ * @param {string[]} excludePatterns
+ * @returns {boolean}
+ */
+ private static isExcludedPath (filePath: string, excludePatterns: string[] = []): boolean {
+ if (!excludePatterns.length) {
+ return false;
+ }
+
+ const fileName: string = path.basename(filePath);
+ const isExcludedFilePathByGlobPattern: boolean = !!multimatch([filePath], excludePatterns).length;
+ const isExcludedFilePathByInclusion: boolean = excludePatterns.some((excludePattern: string) =>
+ filePath.includes(excludePattern) || fileName.includes(excludePattern)
+ );
+
+ return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern;
+ }
+
+ /**
+ * @param {string} filePath
+ * @returns {boolean}
+ */
+ private static isDirectoryPath (filePath: string): boolean {
+ try {
+ return fs.statSync(filePath).isDirectory();
+ } catch {
+ return false;
+ }
+ }
+
+ /**
+ * @param {string} filePath
+ * @returns {boolean}
+ */
+ private static isFilePath (filePath: string): boolean {
+ try {
+ return fs.statSync(filePath).isFile();
+ } catch {
+ return false;
+ }
+ }
+
+ /**
+ * @param {string} directoryPath
+ * @param {string[]} excludePatterns
+ * @returns {boolean}
+ */
+ private static isValidDirectory (directoryPath: string, excludePatterns: string[] = []): boolean {
+ return !SourceCodeReader.isExcludedPath(directoryPath, excludePatterns);
+ }
+
+ /**
+ * @param {string} filePath
+ * @param {string[]} excludePatterns
+ * @returns {boolean}
+ */
+ private static isValidFile (filePath: string, excludePatterns: string[] = []): boolean {
+ return JavaScriptObfuscatorCLI.availableInputExtensions.includes(path.extname(filePath))
+ && !filePath.includes(JavaScriptObfuscatorCLI.obfuscatedFilePrefix)
+ && !SourceCodeReader.isExcludedPath(filePath, excludePatterns);
+ }
+
+ /**
+ * @param {string} filePath
+ * @returns {string}
+ */
+ private static readFile (filePath: string): IFileData {
+ return {
+ filePath: path.normalize(filePath),
+ content: fs.readFileSync(filePath, JavaScriptObfuscatorCLI.encoding)
+ };
+ }
+
+ /**
+ * @returns {IFileData[]}
+ */
+ public readSourceCode (): IFileData[] {
+ if (
+ SourceCodeReader.isFilePath(this.inputPath)
+ && SourceCodeReader.isValidFile(this.inputPath, this.options.exclude)
+ ) {
+ return [SourceCodeReader.readFile(this.inputPath)];
+ }
+
+ if (
+ SourceCodeReader.isDirectoryPath(this.inputPath)
+ && SourceCodeReader.isValidDirectory(this.inputPath, this.options.exclude)
+ ) {
+ return this.readDirectoryRecursive(this.inputPath);
+ }
+
+ const availableFilePaths: string = JavaScriptObfuscatorCLI
+ .availableInputExtensions
+ .map((extension: string) => `\`${extension}\``)
+ .join(', ');
+
+ throw new ReferenceError(`Given input path must be a valid ${availableFilePaths} file or directory path`);
+ }
+
+ /**
+ * @param {string} directoryPath
+ * @param {IFileData[]} filesData
+ * @returns {IFileData[]}
+ */
+ private readDirectoryRecursive (directoryPath: string, filesData: IFileData[] = []): IFileData[] {
+ fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI.encoding)
+ .forEach((fileName: string) => {
+ const filePath: string = path.join(directoryPath, fileName);
+
+ if (
+ SourceCodeReader.isDirectoryPath(filePath)
+ && SourceCodeReader.isValidDirectory(filePath, this.options.exclude)
+ ) {
+ filesData.push(...this.readDirectoryRecursive(filePath));
+
+ return;
+ }
+
+ if (
+ SourceCodeReader.isFilePath(filePath)
+ && SourceCodeReader.isValidFile(filePath, this.options.exclude)
+ ) {
+ const fileData: IFileData = SourceCodeReader.readFile(filePath);
+
+ filesData.push(fileData);
+
+ return;
+ }
+ });
+
+ return filesData;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/code-transformers/AbstractCodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/code-transformers/AbstractCodeTransformer.ts
new file mode 100644
index 0000000..b6e9667
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/code-transformers/AbstractCodeTransformer.ts
@@ -0,0 +1,46 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { ICodeTransformer } from '../interfaces/code-transformers/ICodeTransformer';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { CodeTransformer } from '../enums/code-transformers/CodeTransformer';
+import { CodeTransformationStage } from '../enums/code-transformers/CodeTransformationStage';
+
+@injectable()
+export abstract class AbstractCodeTransformer implements ICodeTransformer {
+ /**
+ * @type {CodeTransformer[]}
+ */
+ public readonly runAfter: CodeTransformer[] | undefined;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {string} code
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ public abstract transformCode (code: string, codeTransformationStage: CodeTransformationStage): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformerNamesGroupsBuilder.ts b/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformerNamesGroupsBuilder.ts
new file mode 100644
index 0000000..b4a5920
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformerNamesGroupsBuilder.ts
@@ -0,0 +1,13 @@
+import { injectable } from 'inversify';
+
+import { ICodeTransformer } from '../interfaces/code-transformers/ICodeTransformer';
+
+import { CodeTransformer } from '../enums/code-transformers/CodeTransformer';
+
+import { AbstractTransformerNamesGroupsBuilder } from '../utils/AbstractTransformerNamesGroupsBuilder';
+
+@injectable()
+export class CodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder<
+ CodeTransformer,
+ ICodeTransformer
+> {}
diff --git a/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformersRunner.ts b/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformersRunner.ts
new file mode 100644
index 0000000..35c1b99
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/code-transformers/CodeTransformersRunner.ts
@@ -0,0 +1,100 @@
+import { inject, injectable } from 'inversify';
+
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TCodeTransformerFactory } from '../types/container/code-transformers/TCodeTransformerFactory';
+import { TDictionary } from '../types/TDictionary';
+
+import { ICodeTransformer } from '../interfaces/code-transformers/ICodeTransformer';
+import { ICodeTransformersRunner } from '../interfaces/code-transformers/ICodeTransformersRunner';
+import { ITransformerNamesGroupsBuilder } from '../interfaces/utils/ITransformerNamesGroupsBuilder';
+
+import { CodeTransformer } from '../enums/code-transformers/CodeTransformer';
+import { CodeTransformationStage } from '../enums/code-transformers/CodeTransformationStage';
+
+@injectable()
+export class CodeTransformersRunner implements ICodeTransformersRunner {
+ /**
+ * @type {TCodeTransformerFactory}
+ */
+ private readonly codeTransformerFactory: TCodeTransformerFactory;
+
+ /**
+ * @type {ITransformerNamesGroupsBuilder}
+ */
+ private readonly codeTransformerNamesGroupsBuilder: ITransformerNamesGroupsBuilder<
+ CodeTransformer,
+ ICodeTransformer
+ >;
+
+ /**
+ * @param {TNodeTransformerFactory} codeTransformerFactory
+ * @param {ITransformerNamesGroupsBuilder} codeTransformerNamesGroupsBuilder
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICodeTransformer)
+ codeTransformerFactory: TCodeTransformerFactory,
+ @inject(ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)
+ codeTransformerNamesGroupsBuilder: ITransformerNamesGroupsBuilder<
+ CodeTransformer,
+ ICodeTransformer
+ >,
+ ) {
+ this.codeTransformerFactory = codeTransformerFactory;
+ this.codeTransformerNamesGroupsBuilder = codeTransformerNamesGroupsBuilder;
+ }
+
+ /**
+ * @param {string} code
+ * @param {CodeTransformer[]} codeTransformerNames
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ public transform (
+ code: string,
+ codeTransformerNames: CodeTransformer[],
+ codeTransformationStage: CodeTransformationStage
+ ): string {
+ if (!codeTransformerNames.length) {
+ return code;
+ }
+
+ const normalizedCodeTransformers: TDictionary<ICodeTransformer> =
+ this.buildNormalizedCodeTransformers(codeTransformerNames, codeTransformationStage);
+ const codeTransformerNamesGroups: CodeTransformer[][] =
+ this.codeTransformerNamesGroupsBuilder.build(normalizedCodeTransformers);
+
+ for (const nodeTransformerNamesGroup of codeTransformerNamesGroups) {
+ for (const nodeTransformerName of nodeTransformerNamesGroup) {
+ const codeTransformer: ICodeTransformer = normalizedCodeTransformers[nodeTransformerName];
+
+ code = codeTransformer.transformCode(code, codeTransformationStage);
+ }
+ }
+
+ return code;
+ }
+
+ /**
+ * @param {NodeTransformer[]} codeTransformerNames
+ * @param {NodeTransformationStage} codeTransformationStage
+ * @returns {TDictionary<INodeTransformer>}
+ */
+ private buildNormalizedCodeTransformers (
+ codeTransformerNames: CodeTransformer[],
+ codeTransformationStage: CodeTransformationStage
+ ): TDictionary<ICodeTransformer> {
+ return codeTransformerNames
+ .reduce<TDictionary<ICodeTransformer>>(
+ (acc: TDictionary<ICodeTransformer>, codeTransformerName: CodeTransformer) => {
+ const codeTransformer: ICodeTransformer = this.codeTransformerFactory(codeTransformerName);
+
+ return {
+ ...acc,
+ [codeTransformerName]: codeTransformer
+ };
+ },
+ {}
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts b/src/node_modules/javascript-obfuscator/src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts
new file mode 100644
index 0000000..08b3e45
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/code-transformers/preparing-transformers/HashbangOperatorTransformer.ts
@@ -0,0 +1,72 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { CodeTransformationStage } from '../../enums/code-transformers/CodeTransformationStage';
+
+import { AbstractCodeTransformer } from '../AbstractCodeTransformer';
+
+@injectable()
+export class HashbangOperatorTransformer extends AbstractCodeTransformer {
+ /**
+ * @type {string | null}
+ */
+ private hashbangOperatorLine: string | null = null;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * Removes hashbang operator before AST transformation and appends it back after
+ *
+ * @param {string} code
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ public transformCode (code: string, codeTransformationStage: CodeTransformationStage): string {
+ switch (codeTransformationStage) {
+ case CodeTransformationStage.PreparingTransformers:
+ return this.removeAndSaveHashbangOperatorLine(code);
+
+ case CodeTransformationStage.FinalizingTransformers:
+ return this.appendSavedHashbangOperatorLine(code);
+
+ default:
+ return code;
+ }
+ }
+
+ /**
+ * @param {string} code
+ * @returns {string}
+ */
+ private removeAndSaveHashbangOperatorLine (code: string): string {
+ return code
+ .replace(/^#!.*$(\r?\n)*/m, (substring: string) => {
+ if (substring) {
+ this.hashbangOperatorLine = substring;
+ }
+
+ return '';
+ })
+ .trim();
+ }
+
+ /**
+ * @param {string} code
+ * @returns {string}
+ */
+ private appendSavedHashbangOperatorLine (code: string): string {
+ return `${this.hashbangOperatorLine ?? ''}${code}`;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/constants/AlphabetString.ts b/src/node_modules/javascript-obfuscator/src/constants/AlphabetString.ts
new file mode 100644
index 0000000..3a24258
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/AlphabetString.ts
@@ -0,0 +1 @@
+export const alphabetString: string = 'abcdefghijklmnopqrstuvwxyz';
diff --git a/src/node_modules/javascript-obfuscator/src/constants/AlphabetStringUppercase.ts b/src/node_modules/javascript-obfuscator/src/constants/AlphabetStringUppercase.ts
new file mode 100644
index 0000000..2bc6474
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/AlphabetStringUppercase.ts
@@ -0,0 +1,3 @@
+import { alphabetString } from './AlphabetString';
+
+export const alphabetStringUppercase: string = alphabetString.toUpperCase();
diff --git a/src/node_modules/javascript-obfuscator/src/constants/Base64Alphabet.ts b/src/node_modules/javascript-obfuscator/src/constants/Base64Alphabet.ts
new file mode 100644
index 0000000..5ef4542
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/Base64Alphabet.ts
@@ -0,0 +1,5 @@
+import { alphabetStringUppercase } from './AlphabetStringUppercase';
+import { alphabetString } from './AlphabetString';
+import { numbersString } from './NumbersString';
+
+export const base64alphabet: string = `${alphabetStringUppercase}${alphabetString}${numbersString}+/=`;
diff --git a/src/node_modules/javascript-obfuscator/src/constants/Base64AlphabetSwapped.ts b/src/node_modules/javascript-obfuscator/src/constants/Base64AlphabetSwapped.ts
new file mode 100644
index 0000000..ab85a7d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/Base64AlphabetSwapped.ts
@@ -0,0 +1,8 @@
+import { alphabetStringUppercase } from './AlphabetStringUppercase';
+import { alphabetString } from './AlphabetString';
+import { numbersString } from './NumbersString';
+
+/**
+ * Swapped lowercase and uppercase groups of alphabet to prevent easy decode
+ */
+export const base64alphabetSwapped: string = `${alphabetString}${alphabetStringUppercase}${numbersString}+/=`;
diff --git a/src/node_modules/javascript-obfuscator/src/constants/EcmaVersion.ts b/src/node_modules/javascript-obfuscator/src/constants/EcmaVersion.ts
new file mode 100644
index 0000000..b947f82
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/EcmaVersion.ts
@@ -0,0 +1,3 @@
+import * as acorn from 'acorn';
+
+export const ecmaVersion: acorn.Options['ecmaVersion'] & number = 12;
diff --git a/src/node_modules/javascript-obfuscator/src/constants/NumbersString.ts b/src/node_modules/javascript-obfuscator/src/constants/NumbersString.ts
new file mode 100644
index 0000000..93f3644
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/constants/NumbersString.ts
@@ -0,0 +1 @@
+export const numbersString: string = '0123456789';
diff --git a/src/node_modules/javascript-obfuscator/src/container/InversifyContainerFacade.ts b/src/node_modules/javascript-obfuscator/src/container/InversifyContainerFacade.ts
new file mode 100644
index 0000000..2347c14
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/InversifyContainerFacade.ts
@@ -0,0 +1,233 @@
+import { Container, interfaces } from 'inversify';
+import { ServiceIdentifiers } from './ServiceIdentifiers';
+
+import { analyzersModule } from './modules/analyzers/AnalyzersModule';
+import { codeTransformersModule } from './modules/code-transformers/CodeTransformersModule';
+import { controlFlowTransformersModule } from './modules/node-transformers/ControlFlowTransformersModule';
+import { convertingTransformersModule } from './modules/node-transformers/ConvertingTransformersModule';
+import { customCodeHelpersModule } from './modules/custom-code-helpers/CustomCodeHelpersModule';
+import { customNodesModule } from './modules/custom-nodes/CustomNodesModule';
+import { deadCodeInjectionTransformersModule } from './modules/node-transformers/DeadCodeInjectionTransformersModule';
+import { finalizingTransformersModule } from './modules/node-transformers/FinalizingTransformersModule';
+import { generatorsModule } from './modules/generators/GeneratorsModule';
+import { initializingTransformersModule } from './modules/node-transformers/InitializingTransformersModule';
+import { nodeModule } from './modules/node/NodeModule';
+import { nodeTransformersModule } from './modules/node-transformers/NodeTransformersModule';
+import { optionsModule } from './modules/options/OptionsModule';
+import { preparingTransformersModule } from './modules/node-transformers/PreparingTransformersModule';
+import { renameIdentifiersTransformersModule } from './modules/node-transformers/RenameIdentifiersTransformersModule';
+import { renamePropertiesTransformersModule } from './modules/node-transformers/RenamePropertiesTransformersModule';
+import { simplifyingTransformersModule } from './modules/node-transformers/SimplifyingTransformersModule';
+import { storagesModule } from './modules/storages/StoragesModule';
+import { stringArrayTransformersModule } from './modules/node-transformers/StringArrayTransformersModule';
+import { utilsModule } from './modules/utils/UtilsModule';
+
+import { TInputOptions } from '../types/options/TInputOptions';
+
+import { ICodeTransformersRunner } from '../interfaces/code-transformers/ICodeTransformersRunner';
+import { IInversifyContainerFacade } from '../interfaces/container/IInversifyContainerFacade';
+import { IJavaScriptObfuscator } from '../interfaces/IJavaScriptObfsucator';
+import { ILogger } from '../interfaces/logger/ILogger';
+import { IObfuscationEventEmitter } from '../interfaces/event-emitters/IObfuscationEventEmitter';
+import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
+import { ISourceCode } from '../interfaces/source-code/ISourceCode';
+import { INodeTransformersRunner } from '../interfaces/node-transformers/INodeTransformersRunner';
+
+import { CodeTransformersRunner } from '../code-transformers/CodeTransformersRunner';
+import { JavaScriptObfuscator } from '../JavaScriptObfuscator';
+import { Logger } from '../logger/Logger';
+import { NodeTransformersRunner } from '../node-transformers/NodeTransformersRunner';
+import { ObfuscationEventEmitter } from '../event-emitters/ObfuscationEventEmitter';
+import { ObfuscatedCode } from '../source-code/ObfuscatedCode';
+import { SourceCode } from '../source-code/SourceCode';
+
+export class InversifyContainerFacade implements IInversifyContainerFacade {
+ /**
+ * @type {interfaces.Container}
+ */
+ private readonly container: interfaces.Container;
+
+ public constructor () {
+ this.container = new Container();
+ }
+
+ /**
+ * @param {interfaces.ServiceIdentifier<U>} serviceIdentifier
+ * @returns {U}
+ */
+ public static getFactory <T extends string, U> (
+ serviceIdentifier: interfaces.ServiceIdentifier<U>
+ ): (context: interfaces.Context) => (bindingName: T) => U {
+ return (context: interfaces.Context): (bindingName: T) => U => {
+ return (bindingName: T): U => {
+ return context.container.getNamed<U>(serviceIdentifier, bindingName);
+ };
+ };
+ }
+
+ /**
+ * @param {interfaces.ServiceIdentifier<U>} serviceIdentifier
+ * @returns {U}
+ */
+ public static getCacheFactory <T extends string, U> (
+ serviceIdentifier: interfaces.ServiceIdentifier<U>
+ ): (context: interfaces.Context) => (bindingName: T) => U {
+ return (context: interfaces.Context): (bindingName: T) => U => {
+ const cache: Map <T, U> = new Map();
+
+ return (bindingName: T): U => {
+ if (cache.has(bindingName)) {
+ return <U>cache.get(bindingName);
+ }
+
+ const object: U = context.container.getNamed<U>(serviceIdentifier, bindingName);
+
+ cache.set(bindingName, object);
+
+ return object;
+ };
+ };
+ }
+
+ /**
+ * @param {interfaces.ServiceIdentifier<interfaces.Newable<U>>} serviceIdentifier
+ * @param {interfaces.ServiceIdentifier<interfaces.Newable<Object>>[]} dependencies
+ * @returns {U}
+ */
+ public static getConstructorFactory <T extends string, U> (
+ serviceIdentifier: interfaces.ServiceIdentifier<interfaces.Newable<U>>,
+ ...dependencies: interfaces.ServiceIdentifier<interfaces.Newable<Record<string, any>>>[]
+ ): (context: interfaces.Context) => (bindingName: T) => U {
+ return (context: interfaces.Context): (bindingName: T) => U => {
+ const cache: Map<T, interfaces.Newable<U>> = new Map();
+ const cachedDependencies: Record<string, any>[] = [];
+
+ return (bindingName: T): U => {
+ dependencies.forEach((
+ dependency: interfaces.ServiceIdentifier<interfaces.Newable<Record<string, any>>>,
+ index: number
+ ) => {
+ if (!cachedDependencies[index]) {
+ cachedDependencies[index] = context.container.get(dependency);
+ }
+ });
+
+ if (cache.has(bindingName)) {
+ return new (<interfaces.Newable<U>>cache.get(bindingName))(...cachedDependencies);
+ }
+
+ const constructor: interfaces.Newable<U> = context.container
+ .getNamed<interfaces.Newable<U>>(
+ serviceIdentifier,
+ bindingName
+ );
+
+ cache.set(bindingName, constructor);
+
+ return new constructor(...cachedDependencies);
+ };
+ };
+ }
+
+ /**
+ * @param {interfaces.ServiceIdentifier<T>} serviceIdentifier
+ * @returns {T}
+ */
+ public get <T> (serviceIdentifier: interfaces.ServiceIdentifier<T>): T {
+ return this.container.get<T>(serviceIdentifier);
+ }
+
+ /**
+ * @param {interfaces.ServiceIdentifier<T>} serviceIdentifier
+ * @param {string | number | symbol} named
+ * @returns {T}
+ */
+ public getNamed <T> (serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {
+ return this.container.getNamed<T>(serviceIdentifier, named);
+ }
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} sourceMap
+ * @param {TInputOptions} options
+ */
+ public load (sourceCode: string, sourceMap: string, options: TInputOptions): void {
+ this.container
+ .bind<ISourceCode>(ServiceIdentifiers.ISourceCode)
+ .toDynamicValue(() => new SourceCode(sourceCode, sourceMap))
+ .inSingletonScope();
+
+ this.container
+ .bind<TInputOptions>(ServiceIdentifiers.TInputOptions)
+ .toDynamicValue(() => options)
+ .inSingletonScope();
+
+ this.container
+ .bind<ILogger>(ServiceIdentifiers.ILogger)
+ .to(Logger)
+ .inSingletonScope();
+
+ this.container
+ .bind<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator)
+ .to(JavaScriptObfuscator)
+ .inSingletonScope();
+
+ this.container
+ .bind<ICodeTransformersRunner>(ServiceIdentifiers.ICodeTransformersRunner)
+ .to(CodeTransformersRunner)
+ .inSingletonScope();
+
+ this.container
+ .bind<INodeTransformersRunner>(ServiceIdentifiers.INodeTransformersRunner)
+ .to(NodeTransformersRunner)
+ .inSingletonScope();
+
+ this.container
+ .bind<IObfuscatedCode>(ServiceIdentifiers.IObfuscatedCode)
+ .to(ObfuscatedCode);
+
+ this.container
+ .bind<IObfuscatedCode>(ServiceIdentifiers.Factory__IObfuscatedCode)
+ .toFactory<IObfuscatedCode>((context: interfaces.Context) => {
+ return (obfuscatedCodeAsString: string, sourceMapAsString: string): IObfuscatedCode => {
+ const obfuscatedCode: IObfuscatedCode = context.container
+ .get<IObfuscatedCode>(ServiceIdentifiers.IObfuscatedCode);
+
+ obfuscatedCode.initialize(obfuscatedCodeAsString, sourceMapAsString);
+
+ return obfuscatedCode;
+ };
+ });
+
+ this.container
+ .bind<IObfuscationEventEmitter>(ServiceIdentifiers.IObfuscationEventEmitter)
+ .to(ObfuscationEventEmitter)
+ .inSingletonScope();
+
+ // modules
+ this.container.load(analyzersModule);
+ this.container.load(codeTransformersModule);
+ this.container.load(controlFlowTransformersModule);
+ this.container.load(convertingTransformersModule);
+ this.container.load(customCodeHelpersModule);
+ this.container.load(customNodesModule);
+ this.container.load(deadCodeInjectionTransformersModule);
+ this.container.load(finalizingTransformersModule);
+ this.container.load(generatorsModule);
+ this.container.load(initializingTransformersModule);
+ this.container.load(nodeModule);
+ this.container.load(nodeTransformersModule);
+ this.container.load(optionsModule);
+ this.container.load(preparingTransformersModule);
+ this.container.load(renameIdentifiersTransformersModule);
+ this.container.load(renamePropertiesTransformersModule);
+ this.container.load(simplifyingTransformersModule);
+ this.container.load(storagesModule);
+ this.container.load(stringArrayTransformersModule);
+ this.container.load(utilsModule);
+ }
+
+ public unload (): void {
+ this.container.unbindAll();
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/container/ServiceIdentifiers.ts b/src/node_modules/javascript-obfuscator/src/container/ServiceIdentifiers.ts
new file mode 100644
index 0000000..52ee475
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/ServiceIdentifiers.ts
@@ -0,0 +1,64 @@
+export enum ServiceIdentifiers {
+ Factory__ICalleeDataExtractor = 'Factory<ICalleeDataExtractor>',
+ Factory__ICodeTransformer = 'Factory<ICodeTransformer[]>',
+ Factory__IControlFlowCustomNode = 'Factory<IControlFlowCustomNode>',
+ Factory__IControlFlowReplacer = 'Factory<IControlFlowReplacer>',
+ Factory__ICustomCodeHelper = 'Factory<ICustomCodeHelper>',
+ Factory__ICustomCodeHelperGroup = 'Factory<ICustomCodeHelperGroup>',
+ Factory__IDeadCodeInjectionCustomNode = 'Factory<IDeadCodeInjectionCustomNode>',
+ Factory__IIdentifierNamesGenerator = 'Factory<IIdentifierNamesGenerator>',
+ Factory__INodeGuard = 'Factory<INodeGuard>',
+ Factory__INodeTransformer = 'Factory<INodeTransformer[]>',
+ Factory__IObfuscatedCode = 'Factory<IObfuscatedCode>',
+ Factory__IObjectExpressionKeysTransformerCustomNode = 'Factory<IObjectExpressionKeysTransformerCustomNode>',
+ Factory__IObjectExpressionExtractor = 'Factory<IObjectExpressionExtractor>',
+ Factory__IStringArrayCustomNode = 'Factory<IStringArrayCustomNode>',
+ Factory__IStringArrayIndexNode = 'Factory<IStringArrayIndexNode>',
+ Factory__TControlFlowStorage = 'Factory<TControlFlowStorage>',
+ IArrayUtils = 'IArrayUtils',
+ ICalleeDataExtractor = 'ICalleeDataExtractor',
+ ICallsGraphAnalyzer = 'ICallsGraphAnalyzer',
+ ICodeTransformer = 'ICodeTransformer',
+ ICodeTransformerNamesGroupsBuilder = 'ICodeTransformerNamesGroupsBuilder',
+ ICodeTransformersRunner = 'ICodeTransformersRunner',
+ ICryptUtils = 'ICryptUtils',
+ ICryptUtilsSwappedAlphabet = 'ICryptUtilsSwappedAlphabet',
+ ICustomCodeHelper = 'ICustomCodeHelper',
+ ICustomCodeHelperGroup = 'ICustomCodeHelperGroup',
+ IControlFlowReplacer = 'IControlFlowReplacer',
+ ICustomCodeHelperFormatter = 'ICustomCodeHelperFormatter',
+ ICustomCodeHelperObfuscator = 'ICustomCodeHelperObfuscator',
+ IEscapeSequenceEncoder = 'IEscapeSequenceEncoder',
+ IIdentifierNamesGenerator = 'IIdentifierNamesGenerator',
+ IIdentifierReplacer = 'IIdentifierReplacer',
+ IJavaScriptObfuscator = 'IJavaScriptObfuscator',
+ ILevelledTopologicalSorter = 'ILevelledTopologicalSorter',
+ ILiteralNodesCacheStorage = 'ILiteralNodesCacheStorage',
+ ILogger = 'ILogger',
+ INodeGuard = 'INodeGuard',
+ INodeTransformer = 'INodeTransformer',
+ INodeTransformerNamesGroupsBuilder = 'INodeTransformerNamesGroupsBuilder',
+ INodeTransformersRunner = 'INodeTransformersRunner',
+ INumberNumericalExpressionAnalyzer = 'INumberNumericalExpressionAnalyzer',
+ IObfuscationEventEmitter = 'IObfuscationEventEmitter',
+ IObfuscatedCode = 'IObfuscatedCode',
+ IOptions = 'IOptions',
+ IOptionsNormalizer = 'IOptionsNormalizer',
+ IPrevailingKindOfVariablesAnalyzer = 'IPrevailingKindOfVariablesAnalyzer',
+ IObjectExpressionExtractor = 'IObjectExpressionExtractor',
+ IRandomGenerator = 'IRandomGenerator',
+ IRenamePropertiesReplacer = 'IRenamePropertiesReplacer',
+ IScopeIdentifiersTraverser = 'IScopeIdentifiersTraverser',
+ ISourceCode = 'ISourceCode',
+ IScopeAnalyzer = 'IScopeAnalyzer',
+ IStringArrayIndexNode = 'IStringArrayIndexNode',
+ IStringArrayScopeCallsWrapperLexicalScopeDataStorage = 'IStringArrayScopeCallsWrapperLexicalScopeDataStorage',
+ IStringArrayScopeCallsWrapperNamesDataStorage = 'IStringArrayScopeCallsWrapperNamesDataStorage',
+ IStringArrayStorage = 'IStringArrayStorage',
+ IStringArrayStorageAnalyzer = 'IStringArrayStorageAnalyzer',
+ IVisitedLexicalScopeNodesStackStorage = 'IVisitedLexicalScopeNodesStackStorage',
+ Newable__ICustomNode = 'Newable<ICustomNode>',
+ Newable__TControlFlowStorage = 'Newable<TControlFlowStorage>',
+ TCustomNodeGroupStorage = 'TCustomNodeGroupStorage',
+ TInputOptions = 'TInputOptions'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/analyzers/AnalyzersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/analyzers/AnalyzersModule.ts
new file mode 100644
index 0000000..3f728b2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/analyzers/AnalyzersModule.ts
@@ -0,0 +1,67 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { ICalleeDataExtractor } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor';
+import { ICallsGraphAnalyzer } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer';
+import { INumberNumericalExpressionAnalyzer } from '../../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer';
+import { IPrevailingKindOfVariablesAnalyzer } from '../../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer';
+import { IScopeAnalyzer } from '../../../interfaces/analyzers/scope-analyzer/IScopeAnalyzer';
+import { IStringArrayStorageAnalyzer } from '../../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer';
+
+import { CalleeDataExtractor } from '../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor';
+import { CallsGraphAnalyzer } from '../../../analyzers/calls-graph-analyzer/CallsGraphAnalyzer';
+import { FunctionDeclarationCalleeDataExtractor } from '../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor';
+import { FunctionExpressionCalleeDataExtractor } from '../../../analyzers/calls-graph-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor';
+import { NumberNumericalExpressionAnalyzer } from '../../../analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer';
+import { ObjectExpressionCalleeDataExtractor } from '../../../analyzers/calls-graph-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor';
+import { PrevailingKindOfVariablesAnalyzer } from '../../../analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer';
+import { ScopeAnalyzer } from '../../../analyzers/scope-analyzer/ScopeAnalyzer';
+import { StringArrayStorageAnalyzer } from '../../../analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer';
+
+export const analyzersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // calls graph analyzer
+ bind<ICallsGraphAnalyzer>(ServiceIdentifiers.ICallsGraphAnalyzer)
+ .to(CallsGraphAnalyzer)
+ .inSingletonScope();
+
+ // number numerical expression analyzer
+ bind<INumberNumericalExpressionAnalyzer>(ServiceIdentifiers.INumberNumericalExpressionAnalyzer)
+ .to(NumberNumericalExpressionAnalyzer)
+ .inSingletonScope();
+
+ // prevailing kind of variables analyzer
+ bind<IPrevailingKindOfVariablesAnalyzer>(ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)
+ .to(PrevailingKindOfVariablesAnalyzer)
+ .inSingletonScope();
+
+ // scope analyzer
+ bind<IScopeAnalyzer>(ServiceIdentifiers.IScopeAnalyzer)
+ .to(ScopeAnalyzer)
+ .inSingletonScope();
+
+ // string array storage analyzer
+ bind<IStringArrayStorageAnalyzer>(ServiceIdentifiers.IStringArrayStorageAnalyzer)
+ .to(StringArrayStorageAnalyzer)
+ .inSingletonScope();
+
+ // callee data extractors
+ bind<ICalleeDataExtractor>(ServiceIdentifiers.ICalleeDataExtractor)
+ .to(FunctionDeclarationCalleeDataExtractor)
+ .whenTargetNamed(CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor);
+
+ bind<ICalleeDataExtractor>(ServiceIdentifiers.ICalleeDataExtractor)
+ .to(FunctionExpressionCalleeDataExtractor)
+ .whenTargetNamed(CalleeDataExtractor.FunctionExpressionCalleeDataExtractor);
+
+ bind<ICalleeDataExtractor>(ServiceIdentifiers.ICalleeDataExtractor)
+ .to(ObjectExpressionCalleeDataExtractor)
+ .whenTargetNamed(CalleeDataExtractor.ObjectExpressionCalleeDataExtractor);
+
+ // callee data extractor factory
+ bind<ICalleeDataExtractor>(ServiceIdentifiers.Factory__ICalleeDataExtractor)
+ .toFactory<ICalleeDataExtractor>(InversifyContainerFacade
+ .getCacheFactory<CalleeDataExtractor, ICalleeDataExtractor>(
+ ServiceIdentifiers.ICalleeDataExtractor
+ ));
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/code-transformers/CodeTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/code-transformers/CodeTransformersModule.ts
new file mode 100644
index 0000000..cbcf0dd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/code-transformers/CodeTransformersModule.ts
@@ -0,0 +1,28 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { ICodeTransformer } from '../../../interfaces/code-transformers/ICodeTransformer';
+import { ITransformerNamesGroupsBuilder } from '../../../interfaces/utils/ITransformerNamesGroupsBuilder';
+
+import { CodeTransformer } from '../../../enums/code-transformers/CodeTransformer';
+
+import { CodeTransformerNamesGroupsBuilder } from '../../../code-transformers/CodeTransformerNamesGroupsBuilder';
+import { HashbangOperatorTransformer } from '../../../code-transformers/preparing-transformers/HashbangOperatorTransformer';
+
+export const codeTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // code transformers factory
+ bind<ICodeTransformer>(ServiceIdentifiers.Factory__ICodeTransformer)
+ .toFactory<ICodeTransformer>(InversifyContainerFacade
+ .getCacheFactory<CodeTransformer, ICodeTransformer>(ServiceIdentifiers.ICodeTransformer));
+
+ // code transformer names groups builder
+ bind<ITransformerNamesGroupsBuilder<CodeTransformer, ICodeTransformer>>(ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)
+ .to(CodeTransformerNamesGroupsBuilder)
+ .inSingletonScope();
+
+ // preparing code transformers
+ bind<ICodeTransformer>(ServiceIdentifiers.ICodeTransformer)
+ .to(HashbangOperatorTransformer)
+ .whenTargetNamed(CodeTransformer.HashbangOperatorTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts
new file mode 100644
index 0000000..f6debb2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.ts
@@ -0,0 +1,124 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { ICustomCodeHelperFormatter } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperGroup } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+import { ICustomCodeHelperObfuscator } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { CustomCodeHelperGroup } from '../../../enums/custom-code-helpers/CustomCodeHelperGroup';
+
+import { ConsoleOutputCodeHelperGroup } from '../../../custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup';
+import { DebugProtectionCodeHelperGroup } from '../../../custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup';
+import { DomainLockCustomCodeHelperGroup } from '../../../custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup';
+import { SelfDefendingCodeHelperGroup } from '../../../custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup';
+import { StringArrayCodeHelperGroup } from '../../../custom-code-helpers/string-array/group/StringArrayCodeHelperGroup';
+
+import { ConsoleOutputDisableCodeHelper } from '../../../custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper';
+import { CustomCodeHelperFormatter } from '../../../custom-code-helpers/CustomCodeHelperFormatter';
+import { CustomCodeHelperObfuscator } from '../../../custom-code-helpers/CustomCodeHelperObfuscator';
+import { DebugProtectionFunctionCallCodeHelper } from '../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper';
+import { DebugProtectionFunctionIntervalCodeHelper } from '../../../custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper';
+import { DebugProtectionFunctionCodeHelper } from '../../../custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper';
+import { DomainLockCodeHelper } from '../../../custom-code-helpers/domain-lock/DomainLockCodeHelper';
+import { CallsControllerFunctionCodeHelper } from '../../../custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper';
+import { SelfDefendingUnicodeCodeHelper } from '../../../custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper';
+import { StringArrayCallsWrapperCodeHelper } from '../../../custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper';
+import { StringArrayCallsWrapperBase64CodeHelper } from '../../../custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper';
+import { StringArrayCallsWrapperRc4CodeHelper } from '../../../custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper';
+import { StringArrayCodeHelper } from '../../../custom-code-helpers/string-array/StringArrayCodeHelper';
+import { StringArrayRotateFunctionCodeHelper } from '../../../custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper';
+
+export const customCodeHelpersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // custom code helpers
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(ConsoleOutputDisableCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.ConsoleOutputDisable);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(DebugProtectionFunctionCallCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.DebugProtectionFunctionCall);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(DebugProtectionFunctionIntervalCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.DebugProtectionFunctionInterval);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(DebugProtectionFunctionCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.DebugProtectionFunction);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(DomainLockCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.DomainLock);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(CallsControllerFunctionCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.CallsControllerFunction);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(SelfDefendingUnicodeCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.SelfDefendingUnicode);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(StringArrayCallsWrapperCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.StringArrayCallsWrapper);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(StringArrayCallsWrapperBase64CodeHelper)
+ .whenTargetNamed(CustomCodeHelper.StringArrayCallsWrapperBase64);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(StringArrayCallsWrapperRc4CodeHelper)
+ .whenTargetNamed(CustomCodeHelper.StringArrayCallsWrapperRc4);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(StringArrayCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.StringArray);
+
+ bind<ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper)
+ .to(StringArrayRotateFunctionCodeHelper)
+ .whenTargetNamed(CustomCodeHelper.StringArrayRotateFunction);
+
+ // code helper groups
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup)
+ .to(ConsoleOutputCodeHelperGroup)
+ .whenTargetNamed(CustomCodeHelperGroup.ConsoleOutput);
+
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup)
+ .to(DebugProtectionCodeHelperGroup)
+ .whenTargetNamed(CustomCodeHelperGroup.DebugProtection);
+
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup)
+ .to(DomainLockCustomCodeHelperGroup)
+ .whenTargetNamed(CustomCodeHelperGroup.DomainLock);
+
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup)
+ .to(SelfDefendingCodeHelperGroup)
+ .whenTargetNamed(CustomCodeHelperGroup.SelfDefending);
+
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup)
+ .to(StringArrayCodeHelperGroup)
+ .whenTargetNamed(CustomCodeHelperGroup.StringArray);
+
+ // customCodeHelper factory
+ bind<ICustomCodeHelper>(ServiceIdentifiers.Factory__ICustomCodeHelper)
+ .toFactory<ICustomCodeHelper>(InversifyContainerFacade
+ .getFactory<CustomCodeHelper, ICustomCodeHelper>(ServiceIdentifiers.ICustomCodeHelper));
+
+ // customCodeHelperGroup factory
+ bind<ICustomCodeHelperGroup>(ServiceIdentifiers.Factory__ICustomCodeHelperGroup)
+ .toFactory<ICustomCodeHelperGroup>(InversifyContainerFacade
+ .getFactory<CustomCodeHelperGroup, ICustomCodeHelperGroup>(ServiceIdentifiers.ICustomCodeHelperGroup));
+
+ // custom code helper formatter
+ bind<ICustomCodeHelperFormatter>(ServiceIdentifiers.ICustomCodeHelperFormatter)
+ .to(CustomCodeHelperFormatter)
+ .inSingletonScope();
+
+ // custom code helper obfuscator
+ bind<ICustomCodeHelperObfuscator>(ServiceIdentifiers.ICustomCodeHelperObfuscator)
+ .to(CustomCodeHelperObfuscator)
+ .inSingletonScope();
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/custom-nodes/CustomNodesModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/custom-nodes/CustomNodesModule.ts
new file mode 100644
index 0000000..08584c1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/custom-nodes/CustomNodesModule.ts
@@ -0,0 +1,154 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IStringArrayIndexNode } from '../../../interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+import { DeadCodeInjectionCustomNode } from '../../../enums/custom-nodes/DeadCodeInjectionCustomNode';
+import { ObjectExpressionKeysTransformerCustomNode } from '../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode';
+import { StringArrayCustomNode } from '../../../enums/custom-nodes/StringArrayCustomNode';
+
+import { BinaryExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode';
+import { BlockStatementControlFlowFlatteningNode } from '../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode';
+import { BlockStatementDeadCodeInjectionNode } from '../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode';
+import { CallExpressionControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode';
+import { CallExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode';
+import { ControlFlowStorageNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode';
+import { ExpressionWithOperatorControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode';
+import { LogicalExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode';
+import { ObjectExpressionVariableDeclarationHostNode } from '../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode';
+import { StringArrayCallNode } from '../../../custom-nodes/string-array-nodes/StringArrayCallNode';
+import { StringArrayHexadecimalNumberIndexNode } from '../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode';
+import { StringArrayHexadecimalNumericStringIndexNode } from '../../../custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode';
+import { StringArrayIndexNode } from '../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode';
+import { StringArrayScopeCallsWrapperFunctionNode } from '../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode';
+import { StringArrayScopeCallsWrapperVariableNode } from '../../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode';
+import { StringLiteralControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode';
+import { StringLiteralNode } from '../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode';
+
+export const customNodesModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // control flow custom nodes
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(BinaryExpressionFunctionNode)
+ .whenTargetNamed(ControlFlowCustomNode.BinaryExpressionFunctionNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(BlockStatementControlFlowFlatteningNode)
+ .whenTargetNamed(ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(CallExpressionControlFlowStorageCallNode)
+ .whenTargetNamed(ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(CallExpressionFunctionNode)
+ .whenTargetNamed(ControlFlowCustomNode.CallExpressionFunctionNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(ControlFlowStorageNode)
+ .whenTargetNamed(ControlFlowCustomNode.ControlFlowStorageNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(ExpressionWithOperatorControlFlowStorageCallNode)
+ .whenTargetNamed(ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(LogicalExpressionFunctionNode)
+ .whenTargetNamed(ControlFlowCustomNode.LogicalExpressionFunctionNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(StringLiteralNode)
+ .whenTargetNamed(ControlFlowCustomNode.StringLiteralNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(StringLiteralControlFlowStorageCallNode)
+ .whenTargetNamed(ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
+
+ // dead code injection custom nodes
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(BlockStatementDeadCodeInjectionNode)
+ .whenTargetNamed(DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
+
+ // object expression keys transformer nodes
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(ObjectExpressionVariableDeclarationHostNode)
+ .whenTargetNamed(ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);
+
+ // string array nodes
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(StringArrayCallNode)
+ .whenTargetNamed(StringArrayCustomNode.StringArrayCallNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(StringArrayScopeCallsWrapperFunctionNode)
+ .whenTargetNamed(StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);
+
+ bind<interfaces.Newable<ICustomNode>>(ServiceIdentifiers.Newable__ICustomNode)
+ .toConstructor(StringArrayScopeCallsWrapperVariableNode)
+ .whenTargetNamed(StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);
+
+ // string array index nodes
+ bind<IStringArrayIndexNode>(ServiceIdentifiers.IStringArrayIndexNode)
+ .to(StringArrayHexadecimalNumberIndexNode)
+ .inSingletonScope()
+ .whenTargetNamed(StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode);
+
+ bind<IStringArrayIndexNode>(ServiceIdentifiers.IStringArrayIndexNode)
+ .to(StringArrayHexadecimalNumericStringIndexNode)
+ .inSingletonScope()
+ .whenTargetNamed(StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode);
+
+ // control flow customNode constructor factory
+ bind<ICustomNode>(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ .toFactory<ICustomNode>(InversifyContainerFacade
+ .getConstructorFactory<ControlFlowCustomNode, ICustomNode>(
+ ServiceIdentifiers.Newable__ICustomNode,
+ ServiceIdentifiers.Factory__IIdentifierNamesGenerator,
+ ServiceIdentifiers.ICustomCodeHelperFormatter,
+ ServiceIdentifiers.IRandomGenerator,
+ ServiceIdentifiers.IOptions
+ ));
+
+ // dead code injection customNode constructor factory
+ bind<ICustomNode>(ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)
+ .toFactory<ICustomNode>(InversifyContainerFacade
+ .getConstructorFactory<DeadCodeInjectionCustomNode, ICustomNode>(
+ ServiceIdentifiers.Newable__ICustomNode,
+ ServiceIdentifiers.Factory__IIdentifierNamesGenerator,
+ ServiceIdentifiers.ICustomCodeHelperFormatter,
+ ServiceIdentifiers.IRandomGenerator,
+ ServiceIdentifiers.IOptions
+ ));
+
+ // object expression keys transformer customNode constructor factory
+ bind<ICustomNode>(ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)
+ .toFactory<ICustomNode>(InversifyContainerFacade
+ .getConstructorFactory<ObjectExpressionKeysTransformerCustomNode, ICustomNode>(
+ ServiceIdentifiers.Newable__ICustomNode,
+ ServiceIdentifiers.Factory__IIdentifierNamesGenerator,
+ ServiceIdentifiers.ICustomCodeHelperFormatter,
+ ServiceIdentifiers.IRandomGenerator,
+ ServiceIdentifiers.IOptions
+ ));
+
+ // string array customNode constructor factory
+ bind<ICustomNode>(ServiceIdentifiers.Factory__IStringArrayCustomNode)
+ .toFactory<ICustomNode>(InversifyContainerFacade
+ .getConstructorFactory<StringArrayCustomNode, ICustomNode>(
+ ServiceIdentifiers.Newable__ICustomNode,
+ ServiceIdentifiers.Factory__IIdentifierNamesGenerator,
+ ServiceIdentifiers.Factory__IStringArrayIndexNode,
+ ServiceIdentifiers.ICustomCodeHelperFormatter,
+ ServiceIdentifiers.IStringArrayStorage,
+ ServiceIdentifiers.IArrayUtils,
+ ServiceIdentifiers.IRandomGenerator,
+ ServiceIdentifiers.IOptions
+ ));
+
+ // string array index node factory
+ bind<IStringArrayIndexNode>(ServiceIdentifiers.Factory__IStringArrayIndexNode)
+ .toFactory<IStringArrayIndexNode>(InversifyContainerFacade
+ .getCacheFactory<StringArrayIndexNode, IStringArrayIndexNode>(ServiceIdentifiers.IStringArrayIndexNode));
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/generators/GeneratorsModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/generators/GeneratorsModule.ts
new file mode 100644
index 0000000..72b1153
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/generators/GeneratorsModule.ts
@@ -0,0 +1,87 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IIdentifierNamesGenerator } from '../../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+import { IdentifierNamesGenerator } from '../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+
+import { DictionaryIdentifierNamesGenerator } from '../../../generators/identifier-names-generators/DictionaryIdentifierNamesGenerator';
+import { HexadecimalIdentifierNamesGenerator } from '../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator';
+import { MangledIdentifierNamesGenerator } from '../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator';
+import { MangledShuffledIdentifierNamesGenerator } from '../../../generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator';
+
+export const generatorsModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // identifier name generators
+ bind<IIdentifierNamesGenerator>(ServiceIdentifiers.IIdentifierNamesGenerator)
+ .to(DictionaryIdentifierNamesGenerator)
+ .inSingletonScope()
+ .whenTargetNamed(IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);
+
+ bind<IIdentifierNamesGenerator>(ServiceIdentifiers.IIdentifierNamesGenerator)
+ .to(HexadecimalIdentifierNamesGenerator)
+ .inSingletonScope()
+ .whenTargetNamed(IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator);
+
+ bind<IIdentifierNamesGenerator>(ServiceIdentifiers.IIdentifierNamesGenerator)
+ .to(MangledIdentifierNamesGenerator)
+ .inSingletonScope()
+ .whenTargetNamed(IdentifierNamesGenerator.MangledIdentifierNamesGenerator);
+
+ bind<IIdentifierNamesGenerator>(ServiceIdentifiers.IIdentifierNamesGenerator)
+ .to(MangledShuffledIdentifierNamesGenerator)
+ .inSingletonScope()
+ .whenTargetNamed(IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);
+
+ // identifier name generator factory
+ function identifierNameGeneratorFactory (): (context: interfaces.Context) => (options: IOptions) => IIdentifierNamesGenerator {
+ let cachedIdentifierNamesGenerator: IIdentifierNamesGenerator | null = null;
+
+ return (context: interfaces.Context): (options: IOptions) => IIdentifierNamesGenerator => (options: IOptions): IIdentifierNamesGenerator => {
+ if (cachedIdentifierNamesGenerator) {
+ return cachedIdentifierNamesGenerator;
+ }
+
+ let identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ switch (options.identifierNamesGenerator) {
+ case IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:
+ identifierNamesGenerator = context.container.getNamed<IIdentifierNamesGenerator>(
+ ServiceIdentifiers.IIdentifierNamesGenerator,
+ IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator
+ );
+
+ break;
+
+ case IdentifierNamesGenerator.MangledIdentifierNamesGenerator:
+ identifierNamesGenerator = context.container.getNamed<IIdentifierNamesGenerator>(
+ ServiceIdentifiers.IIdentifierNamesGenerator,
+ IdentifierNamesGenerator.MangledIdentifierNamesGenerator
+ );
+
+ break;
+
+ case IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:
+ identifierNamesGenerator = context.container.getNamed<IIdentifierNamesGenerator>(
+ ServiceIdentifiers.IIdentifierNamesGenerator,
+ IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator
+ );
+
+ break;
+
+ case IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:
+ default:
+ identifierNamesGenerator = context.container.getNamed<IIdentifierNamesGenerator>(
+ ServiceIdentifiers.IIdentifierNamesGenerator,
+ IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
+ );
+ }
+
+ cachedIdentifierNamesGenerator = identifierNamesGenerator;
+
+ return identifierNamesGenerator;
+ };
+ }
+ bind<IIdentifierNamesGenerator>(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ .toFactory<IIdentifierNamesGenerator>(identifierNameGeneratorFactory());
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ControlFlowTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ControlFlowTransformersModule.ts
new file mode 100644
index 0000000..c8d8ecf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ControlFlowTransformersModule.ts
@@ -0,0 +1,49 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IControlFlowReplacer } from '../../../interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer';
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { ControlFlowReplacer } from '../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer';
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { BinaryExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer';
+import { BlockStatementControlFlowTransformer } from '../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer';
+import { CallExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer';
+import { FunctionControlFlowTransformer } from '../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer';
+import { LogicalExpressionControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer';
+import { StringLiteralControlFlowReplacer } from '../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer';
+
+export const controlFlowTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // control flow transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(BlockStatementControlFlowTransformer)
+ .whenTargetNamed(NodeTransformer.BlockStatementControlFlowTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(FunctionControlFlowTransformer)
+ .whenTargetNamed(NodeTransformer.FunctionControlFlowTransformer);
+
+ // control flow replacers
+ bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
+ .to(BinaryExpressionControlFlowReplacer)
+ .whenTargetNamed(ControlFlowReplacer.BinaryExpressionControlFlowReplacer);
+
+ bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
+ .to(CallExpressionControlFlowReplacer)
+ .whenTargetNamed(ControlFlowReplacer.CallExpressionControlFlowReplacer);
+
+ bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
+ .to(LogicalExpressionControlFlowReplacer)
+ .whenTargetNamed(ControlFlowReplacer.LogicalExpressionControlFlowReplacer);
+
+ bind<IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer)
+ .to(StringLiteralControlFlowReplacer)
+ .whenTargetNamed(ControlFlowReplacer.StringLiteralControlFlowReplacer);
+
+ // control flow replacer factory
+ bind<IControlFlowReplacer>(ServiceIdentifiers.Factory__IControlFlowReplacer)
+ .toFactory<IControlFlowReplacer>(InversifyContainerFacade
+ .getCacheFactory<ControlFlowReplacer, IControlFlowReplacer>(ServiceIdentifiers.IControlFlowReplacer));
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ConvertingTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ConvertingTransformersModule.ts
new file mode 100644
index 0000000..4fb385d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/ConvertingTransformersModule.ts
@@ -0,0 +1,86 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+import { IObjectExpressionExtractor } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+import { ObjectExpressionExtractor } from '../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor';
+
+import { BasePropertiesExtractor } from '../../../node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor';
+import { BooleanLiteralTransformer } from '../../../node-transformers/converting-transformers/BooleanLiteralTransformer';
+import { ExportSpecifierTransformer } from '../../../node-transformers/converting-transformers/ExportSpecifierTransformer';
+import { MemberExpressionTransformer } from '../../../node-transformers/converting-transformers/MemberExpressionTransformer';
+import { MethodDefinitionTransformer } from '../../../node-transformers/converting-transformers/MethodDefinitionTransformer';
+import { NumberLiteralTransformer } from '../../../node-transformers/converting-transformers/NumberLiteralTransformer';
+import { NumberToNumericalExpressionTransformer } from '../../../node-transformers/converting-transformers/NumberToNumericalExpressionTransformer';
+import { ObjectExpressionKeysTransformer } from '../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer';
+import { ObjectExpressionToVariableDeclarationExtractor } from '../../../node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor';
+import { ObjectExpressionTransformer } from '../../../node-transformers/converting-transformers/ObjectExpressionTransformer';
+import { ObjectPatternPropertiesTransformer } from '../../../node-transformers/converting-transformers/ObjectPatternPropertiesTransformer';
+import { SplitStringTransformer } from '../../../node-transformers/converting-transformers/SplitStringTransformer';
+import { TemplateLiteralTransformer } from '../../../node-transformers/converting-transformers/TemplateLiteralTransformer';
+
+export const convertingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // converting transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(BooleanLiteralTransformer)
+ .whenTargetNamed(NodeTransformer.BooleanLiteralTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ExportSpecifierTransformer)
+ .whenTargetNamed(NodeTransformer.ExportSpecifierTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(MemberExpressionTransformer)
+ .whenTargetNamed(NodeTransformer.MemberExpressionTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(MethodDefinitionTransformer)
+ .whenTargetNamed(NodeTransformer.MethodDefinitionTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(NumberLiteralTransformer)
+ .whenTargetNamed(NodeTransformer.NumberLiteralTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(NumberToNumericalExpressionTransformer)
+ .whenTargetNamed(NodeTransformer.NumberToNumericalExpressionTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ObjectExpressionKeysTransformer)
+ .whenTargetNamed(NodeTransformer.ObjectExpressionKeysTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ObjectExpressionTransformer)
+ .whenTargetNamed(NodeTransformer.ObjectExpressionTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ObjectPatternPropertiesTransformer)
+ .whenTargetNamed(NodeTransformer.ObjectPatternPropertiesTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(SplitStringTransformer)
+ .whenTargetNamed(NodeTransformer.SplitStringTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(TemplateLiteralTransformer)
+ .whenTargetNamed(NodeTransformer.TemplateLiteralTransformer);
+
+ // object expression extractors
+ bind<IObjectExpressionExtractor>(ServiceIdentifiers.IObjectExpressionExtractor)
+ .to(ObjectExpressionToVariableDeclarationExtractor)
+ .whenTargetNamed(ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor);
+
+ bind<IObjectExpressionExtractor>(ServiceIdentifiers.IObjectExpressionExtractor)
+ .to(BasePropertiesExtractor)
+ .whenTargetNamed(ObjectExpressionExtractor.BasePropertiesExtractor);
+
+ // object expression extractor factory
+ bind<IObjectExpressionExtractor>(ServiceIdentifiers.Factory__IObjectExpressionExtractor)
+ .toFactory<IObjectExpressionExtractor>(InversifyContainerFacade
+ .getCacheFactory<ObjectExpressionExtractor, IObjectExpressionExtractor>(
+ ServiceIdentifiers.IObjectExpressionExtractor
+ ));
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts
new file mode 100644
index 0000000..cbb869c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.ts
@@ -0,0 +1,15 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { DeadCodeInjectionTransformer } from '../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer';
+
+export const deadCodeInjectionTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // dead code injection
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(DeadCodeInjectionTransformer)
+ .whenTargetNamed(NodeTransformer.DeadCodeInjectionTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/FinalizingTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/FinalizingTransformersModule.ts
new file mode 100644
index 0000000..5b2b635
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/FinalizingTransformersModule.ts
@@ -0,0 +1,15 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { EscapeSequenceTransformer } from '../../../node-transformers/finalizing-transformers/EscapeSequenceTransformer';
+
+export const finalizingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // finalizing transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(EscapeSequenceTransformer)
+ .whenTargetNamed(NodeTransformer.EscapeSequenceTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/InitializingTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/InitializingTransformersModule.ts
new file mode 100644
index 0000000..a64d038
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/InitializingTransformersModule.ts
@@ -0,0 +1,15 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { CommentsTransformer } from '../../../node-transformers/initializing-transformers/CommentsTransformer';
+
+export const initializingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // preparing transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(CommentsTransformer)
+ .whenTargetNamed(NodeTransformer.CommentsTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/NodeTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/NodeTransformersModule.ts
new file mode 100644
index 0000000..e0f9985
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/NodeTransformersModule.ts
@@ -0,0 +1,22 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+import { ITransformerNamesGroupsBuilder } from '../../../interfaces/utils/ITransformerNamesGroupsBuilder';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { NodeTransformerNamesGroupsBuilder } from '../../../node-transformers/NodeTransformerNamesGroupsBuilder';
+
+export const nodeTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // node transformers factory
+ bind<INodeTransformer>(ServiceIdentifiers.Factory__INodeTransformer)
+ .toFactory<INodeTransformer>(InversifyContainerFacade
+ .getCacheFactory<NodeTransformer, INodeTransformer>(ServiceIdentifiers.INodeTransformer));
+
+ // node transformer names groups builder
+ bind<ITransformerNamesGroupsBuilder<NodeTransformer, INodeTransformer>>(ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)
+ .to(NodeTransformerNamesGroupsBuilder)
+ .inSingletonScope();
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/PreparingTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/PreparingTransformersModule.ts
new file mode 100644
index 0000000..5531963
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/PreparingTransformersModule.ts
@@ -0,0 +1,81 @@
+import { InversifyContainerFacade } from '../../InversifyContainerFacade';
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+import { ObfuscatingGuard } from '../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard';
+
+import { BlackListObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard';
+import { ConditionalCommentObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard';
+import { CustomCodeHelpersTransformer } from '../../../node-transformers/preparing-transformers/CustomCodeHelpersTransformer';
+import { EvalCallExpressionTransformer } from '../../../node-transformers/preparing-transformers/EvalCallExpressionTransformer';
+import { ForceTransformStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard';
+import { IgnoredRequireImportObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard';
+import { MetadataTransformer } from '../../../node-transformers/preparing-transformers/MetadataTransformer';
+import { ObfuscatingGuardsTransformer } from '../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer';
+import { ParentificationTransformer } from '../../../node-transformers/preparing-transformers/ParentificationTransformer';
+import { ReservedStringObfuscatingGuard } from '../../../node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard';
+import { VariablePreserveTransformer } from '../../../node-transformers/preparing-transformers/VariablePreserveTransformer';
+
+export const preparingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // preparing transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(CustomCodeHelpersTransformer)
+ .whenTargetNamed(NodeTransformer.CustomCodeHelpersTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(EvalCallExpressionTransformer)
+ .whenTargetNamed(NodeTransformer.EvalCallExpressionTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(MetadataTransformer)
+ .whenTargetNamed(NodeTransformer.MetadataTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ObfuscatingGuardsTransformer)
+ .whenTargetNamed(NodeTransformer.ObfuscatingGuardsTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ParentificationTransformer)
+ .whenTargetNamed(NodeTransformer.ParentificationTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(VariablePreserveTransformer)
+ .whenTargetNamed(NodeTransformer.VariablePreserveTransformer);
+
+ // obfuscating guards
+ bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
+ .to(BlackListObfuscatingGuard)
+ .inSingletonScope()
+ .whenTargetNamed(ObfuscatingGuard.BlackListObfuscatingGuard);
+
+ bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
+ .to(ConditionalCommentObfuscatingGuard)
+ .inSingletonScope()
+ .whenTargetNamed(ObfuscatingGuard.ConditionalCommentObfuscatingGuard);
+
+ bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
+ .to(ForceTransformStringObfuscatingGuard)
+ .inSingletonScope()
+ .whenTargetNamed(ObfuscatingGuard.ForceTransformStringObfuscatingGuard);
+
+ bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
+ .to(IgnoredRequireImportObfuscatingGuard)
+ .inSingletonScope()
+ .whenTargetNamed(ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard);
+
+ bind<IObfuscatingGuard>(ServiceIdentifiers.INodeGuard)
+ .to(ReservedStringObfuscatingGuard)
+ .inSingletonScope()
+ .whenTargetNamed(ObfuscatingGuard.ReservedStringObfuscatingGuard);
+
+ // obfuscating guards factory
+ bind<IObfuscatingGuard>(ServiceIdentifiers.Factory__INodeGuard)
+ .toFactory<IObfuscatingGuard>(InversifyContainerFacade
+ .getCacheFactory<ObfuscatingGuard, IObfuscatingGuard>(
+ ServiceIdentifiers.INodeGuard
+ ));
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts
new file mode 100644
index 0000000..221c5e3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.ts
@@ -0,0 +1,32 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IIdentifierReplacer } from '../../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { IdentifierReplacer } from '../../../node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer';
+import { LabeledStatementTransformer } from '../../../node-transformers/rename-identifiers-transformers/LabeledStatementTransformer';
+import { ScopeIdentifiersTransformer } from '../../../node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer';
+import { ScopeThroughIdentifiersTransformer } from '../../../node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer';
+
+export const renameIdentifiersTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // rename identifiers transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(LabeledStatementTransformer)
+ .whenTargetNamed(NodeTransformer.LabeledStatementTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ScopeIdentifiersTransformer)
+ .whenTargetNamed(NodeTransformer.ScopeIdentifiersTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ScopeThroughIdentifiersTransformer)
+ .whenTargetNamed(NodeTransformer.ScopeThroughIdentifiersTransformer);
+
+ // identifier replacer
+ bind<IIdentifierReplacer>(ServiceIdentifiers.IIdentifierReplacer)
+ .to(IdentifierReplacer)
+ .inSingletonScope();
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts
new file mode 100644
index 0000000..6812e78
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts
@@ -0,0 +1,21 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IRenamePropertiesReplacer } from '../../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { RenamePropertiesReplacer } from '../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer';
+import { RenamePropertiesTransformer } from '../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer';
+
+export const renamePropertiesTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // rename properties transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(RenamePropertiesTransformer)
+ .whenTargetNamed(NodeTransformer.RenamePropertiesTransformer);
+
+ // rename properties obfuscating replacer
+ bind<IRenamePropertiesReplacer>(ServiceIdentifiers.IRenamePropertiesReplacer)
+ .to(RenamePropertiesReplacer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/SimplifyingTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/SimplifyingTransformersModule.ts
new file mode 100644
index 0000000..145d15f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/SimplifyingTransformersModule.ts
@@ -0,0 +1,30 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { BlockStatementSimplifyTransformer } from '../../../node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer';
+import { ExpressionStatementsMergeTransformer } from '../../../node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer';
+import { IfStatementSimplifyTransformer } from '../../../node-transformers/simplifying-transformers/IfStatementSimplifyTransformer';
+import { VariableDeclarationsMergeTransformer } from '../../../node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer';
+
+export const simplifyingTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // simplifying transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(BlockStatementSimplifyTransformer)
+ .whenTargetNamed(NodeTransformer.BlockStatementSimplifyTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(ExpressionStatementsMergeTransformer)
+ .whenTargetNamed(NodeTransformer.ExpressionStatementsMergeTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(IfStatementSimplifyTransformer)
+ .whenTargetNamed(NodeTransformer.IfStatementSimplifyTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(VariableDeclarationsMergeTransformer)
+ .whenTargetNamed(NodeTransformer.VariableDeclarationsMergeTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/StringArrayTransformersModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/StringArrayTransformersModule.ts
new file mode 100644
index 0000000..b8455ce
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node-transformers/StringArrayTransformersModule.ts
@@ -0,0 +1,20 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { StringArrayScopeCallsWrapperTransformer } from '../../../node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer';
+import { StringArrayTransformer } from '../../../node-transformers/string-array-transformers/StringArrayTransformer';
+
+export const stringArrayTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // strings transformers
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(StringArrayScopeCallsWrapperTransformer)
+ .whenTargetNamed(NodeTransformer.StringArrayScopeCallsWrapperTransformer);
+
+ bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+ .to(StringArrayTransformer)
+ .whenTargetNamed(NodeTransformer.StringArrayTransformer);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/node/NodeModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/node/NodeModule.ts
new file mode 100644
index 0000000..71f2143
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/node/NodeModule.ts
@@ -0,0 +1,13 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IScopeIdentifiersTraverser } from '../../../interfaces/node/IScopeIdentifiersTraverser';
+
+import { ScopeIdentifiersTraverser } from '../../../node/ScopeIdentifiersTraverser';
+
+export const nodeModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // scope identifiers traverser
+ bind<IScopeIdentifiersTraverser>(ServiceIdentifiers.IScopeIdentifiersTraverser)
+ .to(ScopeIdentifiersTraverser)
+ .inSingletonScope();
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/options/OptionsModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/options/OptionsModule.ts
new file mode 100644
index 0000000..5e46441
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/options/OptionsModule.ts
@@ -0,0 +1,18 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IOptionsNormalizer } from '../../../interfaces/options/IOptionsNormalizer';
+
+import { Options } from '../../../options/Options';
+import { OptionsNormalizer } from '../../../options/OptionsNormalizer';
+
+export const optionsModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ bind<IOptions>(ServiceIdentifiers.IOptions)
+ .to(Options)
+ .inSingletonScope();
+
+ bind<IOptionsNormalizer>(ServiceIdentifiers.IOptionsNormalizer)
+ .to(OptionsNormalizer)
+ .inSingletonScope();
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/storages/StoragesModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/storages/StoragesModule.ts
new file mode 100644
index 0000000..08e5680
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/storages/StoragesModule.ts
@@ -0,0 +1,70 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TCustomCodeHelperGroupStorage } from '../../../types/storages/TCustomCodeHelperGroupStorage';
+
+import { ILiteralNodesCacheStorage } from '../../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperLexicalScopeDataStorage } from '../../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage';
+import { IStringArrayScopeCallsWrapperNamesDataStorage } from '../../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage';
+import { IStringArrayStorage } from '../../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IVisitedLexicalScopeNodesStackStorage } from '../../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage';
+
+import { ControlFlowStorage } from '../../../storages/custom-nodes/ControlFlowStorage';
+import { CustomCodeHelperGroupStorage } from '../../../storages/custom-code-helpers/CustomCodeHelperGroupStorage';
+import { LiteralNodesCacheStorage } from '../../../storages/string-array-transformers/LiteralNodesCacheStorage';
+import { StringArrayScopeCallsWrapperLexicalScopeDataStorage } from '../../../storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage';
+import { StringArrayScopeCallsWrapperNamesDataStorage } from '../../../storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage';
+import { StringArrayStorage } from '../../../storages/string-array-transformers/StringArrayStorage';
+import { VisitedLexicalScopeNodesStackStorage } from '../../../storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage';
+
+export const storagesModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // storages
+ bind<TCustomCodeHelperGroupStorage>(ServiceIdentifiers.TCustomNodeGroupStorage)
+ .to(CustomCodeHelperGroupStorage)
+ .inSingletonScope();
+
+ bind<ILiteralNodesCacheStorage>(ServiceIdentifiers.ILiteralNodesCacheStorage)
+ .to(LiteralNodesCacheStorage)
+ .inSingletonScope();
+
+ bind<IStringArrayStorage>(ServiceIdentifiers.IStringArrayStorage)
+ .to(StringArrayStorage)
+ .inSingletonScope();
+
+ bind<IStringArrayScopeCallsWrapperLexicalScopeDataStorage>(ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)
+ .to(StringArrayScopeCallsWrapperLexicalScopeDataStorage)
+ .inSingletonScope();
+
+ bind<IStringArrayScopeCallsWrapperNamesDataStorage>(ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)
+ .to(StringArrayScopeCallsWrapperNamesDataStorage)
+ .inSingletonScope();
+
+ bind<IVisitedLexicalScopeNodesStackStorage>(ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)
+ .to(VisitedLexicalScopeNodesStackStorage)
+ .inSingletonScope();
+
+ bind<interfaces.Newable<TControlFlowStorage>>(ServiceIdentifiers.Newable__TControlFlowStorage)
+ .toConstructor(ControlFlowStorage);
+
+ // controlFlowStorage factory
+ bind<TControlFlowStorage>(ServiceIdentifiers.Factory__TControlFlowStorage)
+ .toFactory<TControlFlowStorage>((context: interfaces.Context) => {
+ return (): TControlFlowStorage => {
+ const constructor: interfaces.Newable<TControlFlowStorage> = context.container
+ .get<interfaces.Newable<TControlFlowStorage>>(ServiceIdentifiers.Newable__TControlFlowStorage);
+ const randomGenerator: IRandomGenerator = context.container
+ .get<IRandomGenerator>(ServiceIdentifiers.IRandomGenerator);
+ const options: IOptions = context.container
+ .get<IOptions>(ServiceIdentifiers.IOptions);
+
+ const storage: TControlFlowStorage = new constructor(randomGenerator, options);
+
+ storage.initialize();
+
+ return storage;
+ };
+ });
+});
diff --git a/src/node_modules/javascript-obfuscator/src/container/modules/utils/UtilsModule.ts b/src/node_modules/javascript-obfuscator/src/container/modules/utils/UtilsModule.ts
new file mode 100644
index 0000000..a2191d3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/container/modules/utils/UtilsModule.ts
@@ -0,0 +1,47 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IArrayUtils } from '../../../interfaces/utils/IArrayUtils';
+import { ICryptUtils } from '../../../interfaces/utils/ICryptUtils';
+import { ICryptUtilsSwappedAlphabet } from '../../../interfaces/utils/ICryptUtilsSwappedAlphabet';
+import { IEscapeSequenceEncoder } from '../../../interfaces/utils/IEscapeSequenceEncoder';
+import { ILevelledTopologicalSorter } from '../../../interfaces/utils/ILevelledTopologicalSorter';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ArrayUtils } from '../../../utils/ArrayUtils';
+import { CryptUtils } from '../../../utils/CryptUtils';
+import { CryptUtilsSwappedAlphabet } from '../../../utils/CryptUtilsSwappedAlphabet';
+import { EscapeSequenceEncoder } from '../../../utils/EscapeSequenceEncoder';
+import { LevelledTopologicalSorter } from '../../../utils/LevelledTopologicalSorter';
+import { RandomGenerator } from '../../../utils/RandomGenerator';
+
+export const utilsModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+ // array utils
+ bind<IArrayUtils>(ServiceIdentifiers.IArrayUtils)
+ .to(ArrayUtils)
+ .inSingletonScope();
+
+ // random generator
+ bind<IRandomGenerator>(ServiceIdentifiers.IRandomGenerator)
+ .to(RandomGenerator)
+ .inSingletonScope();
+
+ // crypt utils
+ bind<ICryptUtils>(ServiceIdentifiers.ICryptUtils)
+ .to(CryptUtils)
+ .inSingletonScope();
+
+ // crypt utils with swapped alphabet
+ bind<ICryptUtilsSwappedAlphabet>(ServiceIdentifiers.ICryptUtilsSwappedAlphabet)
+ .to(CryptUtilsSwappedAlphabet)
+ .inSingletonScope();
+
+ // escape sequence encoder
+ bind<IEscapeSequenceEncoder>(ServiceIdentifiers.IEscapeSequenceEncoder)
+ .to(EscapeSequenceEncoder)
+ .inSingletonScope();
+
+ // levelled topological sorter
+ bind<ILevelledTopologicalSorter>(ServiceIdentifiers.ILevelledTopologicalSorter)
+ .to(LevelledTopologicalSorter);
+});
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelper.ts
new file mode 100644
index 0000000..be1d24f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelper.ts
@@ -0,0 +1,121 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../types/node/TStatement';
+
+import { ICustomCodeHelper } from '../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { ICustomCodeHelperFormatter } from '../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IIdentifierNamesGenerator } from '../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { GlobalVariableTemplate1 } from './common/templates/GlobalVariableTemplate1';
+import { GlobalVariableTemplate2 } from './common/templates/GlobalVariableTemplate2';
+
+@injectable()
+export abstract class AbstractCustomCodeHelper <
+ TInitialData extends unknown[] = unknown[]
+> implements ICustomCodeHelper <TInitialData> {
+ /**
+ * @type {string[]}
+ */
+ private static readonly globalVariableTemplateFunctions: string[] = [
+ GlobalVariableTemplate1(),
+ GlobalVariableTemplate2()
+ ];
+
+ /**
+ * @type {TStatement[] | null}
+ */
+ protected cachedNode: TStatement[] | null = null;
+
+ /**
+ * @type {ICustomCodeHelperFormatter}
+ */
+ protected readonly customCodeHelperFormatter: ICustomCodeHelperFormatter;
+
+ /**
+ * @type {ICustomCodeHelperObfuscator}
+ */
+ protected readonly customCodeHelperObfuscator: ICustomCodeHelperObfuscator;
+
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ protected readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.customCodeHelperFormatter = customCodeHelperFormatter;
+ this.customCodeHelperObfuscator = customCodeHelperObfuscator;
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ public getNode (): TStatement[] {
+ if (!this.cachedNode) {
+ const codeHelperTemplate: string = this.getCodeHelperTemplate();
+
+ this.cachedNode = this.customCodeHelperFormatter.formatStructure(
+ this.getNodeStructure(codeHelperTemplate)
+ );
+ }
+
+ return this.cachedNode;
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getGlobalVariableTemplate (): string {
+ return this.randomGenerator
+ .getRandomGenerator()
+ .pickone(AbstractCustomCodeHelper.globalVariableTemplateFunctions);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ return '';
+ }
+
+ /**
+ * @param {TInitialData} args
+ */
+ public abstract initialize (...args: TInitialData): void;
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected abstract getNodeStructure (codeHelperTemplate: string): TStatement[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts
new file mode 100644
index 0000000..ddffa36
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/AbstractCustomCodeHelperGroup.ts
@@ -0,0 +1,104 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TNodeWithStatements } from '../types/node/TNodeWithStatements';
+
+import { ICallsGraphData } from '../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+import { ICustomCodeHelper } from '../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { ICustomCodeHelperGroup } from '../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+import { IIdentifierNamesGenerator } from '../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { CustomCodeHelper } from '../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../enums/event-emitters/ObfuscationEvent';
+
+@injectable()
+export abstract class AbstractCustomCodeHelperGroup implements ICustomCodeHelperGroup {
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ protected readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected abstract readonly appendEvent: ObfuscationEvent;
+
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ protected abstract customCodeHelpers: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @returns {ObfuscationEvent}
+ */
+ public getAppendEvent (): ObfuscationEvent {
+ return this.appendEvent;
+ }
+
+ /**
+ * @returns {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ public getCustomCodeHelpers (): Map <CustomCodeHelper, ICustomCodeHelper> {
+ return this.customCodeHelpers;
+ }
+
+ /**
+ * @param {CustomCodeHelper} customCodeHelperName
+ * @param {callback} callback
+ */
+ protected appendCustomNodeIfExist (customCodeHelperName: CustomCodeHelper, callback: (customCodeHelper: ICustomCodeHelper) => void): void {
+ const customCodeHelper: ICustomCodeHelper | undefined = this.customCodeHelpers.get(customCodeHelperName);
+
+ if (!customCodeHelper) {
+ return;
+ }
+
+ callback(customCodeHelper);
+ }
+
+ /**
+ * @param {number} callsGraphLength
+ * @returns {number}
+ */
+
+ protected getRandomCallsGraphIndex (callsGraphLength: number): number {
+ return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(callsGraphLength - 1)));
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public abstract appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void;
+
+ public abstract initialize (): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperFormatter.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperFormatter.ts
new file mode 100644
index 0000000..101f8c7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperFormatter.ts
@@ -0,0 +1,65 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+import format from 'string-template';
+
+import { TDictionary } from '../types/TDictionary';
+import { TStatement } from '../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IPrevailingKindOfVariablesAnalyzer } from '../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer';
+
+import { NodeGuards } from '../node/NodeGuards';
+
+@injectable()
+export class CustomCodeHelperFormatter implements ICustomCodeHelperFormatter {
+ /**
+ * @type {ESTree.VariableDeclaration['kind']}
+ */
+ private readonly prevailingKindOfVariables: ESTree.VariableDeclaration['kind'];
+
+ public constructor (
+ @inject(ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)
+ prevailingKindOfVariablesAnalyzer: IPrevailingKindOfVariablesAnalyzer
+ ) {
+ this.prevailingKindOfVariables = prevailingKindOfVariablesAnalyzer.getPrevailingKind();
+ }
+
+ /**
+ * @param {string} template
+ * @param {TMapping} mapping
+ * @returns {string}
+ */
+ public formatTemplate <TMapping extends TDictionary> (
+ template: string,
+ mapping: TMapping
+ ): string {
+ return format(template, mapping);
+ }
+
+ /**
+ * @param {TStatement[]} statements
+ * @returns {TStatement[]}
+ */
+ public formatStructure (statements: TStatement[]): TStatement[] {
+ for (const statement of statements) {
+ estraverse.replace(statement, {
+ enter: (node: ESTree.Node): ESTree.Node | void => {
+ if (!NodeGuards.isVariableDeclarationNode(node)) {
+ return;
+ }
+
+ if (this.prevailingKindOfVariables === 'var') {
+ node.kind = 'var';
+ }
+
+ return node;
+ }
+ });
+ }
+
+ return statements;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperObfuscator.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperObfuscator.ts
new file mode 100644
index 0000000..f33bc25
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/CustomCodeHelperObfuscator.ts
@@ -0,0 +1,57 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TInputOptions } from '../types/options/TInputOptions';
+
+import { ICustomCodeHelperObfuscator } from '../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { NO_ADDITIONAL_NODES_PRESET } from '../options/presets/NoCustomNodes';
+
+import { JavaScriptObfuscator } from '../JavaScriptObfuscatorFacade';
+
+@injectable()
+export class CustomCodeHelperObfuscator implements ICustomCodeHelperObfuscator {
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {string} template
+ * @param {TInputOptions} additionalOptions
+ * @returns {string}
+ */
+ public obfuscateTemplate (template: string, additionalOptions: TInputOptions = {}): string {
+ return JavaScriptObfuscator.obfuscate(
+ template,
+ {
+ ...NO_ADDITIONAL_NODES_PRESET,
+ identifierNamesGenerator: this.options.identifierNamesGenerator,
+ identifiersDictionary: this.options.identifiersDictionary,
+ numbersToExpressions: this.options.numbersToExpressions,
+ simplify: this.options.simplify,
+ seed: this.randomGenerator.getRawSeed(),
+ ...additionalOptions
+ }
+ ).getObfuscatedCode();
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts
new file mode 100644
index 0000000..a134f90
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/calls-controller/CallsControllerFunctionCodeHelper.ts
@@ -0,0 +1,92 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ObfuscationEvent } from '../../enums/event-emitters/ObfuscationEvent';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { SingleCallControllerTemplate } from '../common/templates/SingleCallControllerTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class CallsControllerFunctionCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ protected callsControllerFunctionName!: string;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ @initializable()
+ private appendEvent!: ObfuscationEvent;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {ObfuscationEvent} appendEvent
+ * @param {string} callsControllerFunctionName
+ */
+ public initialize (appendEvent: ObfuscationEvent, callsControllerFunctionName: string): void {
+ this.appendEvent = appendEvent;
+ this.callsControllerFunctionName = callsControllerFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ if (this.appendEvent === ObfuscationEvent.AfterObfuscation) {
+ return this.customCodeHelperObfuscator.obfuscateTemplate(
+ this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate(), {
+ callControllerFunctionName: this.callsControllerFunctionName
+ })
+ );
+ }
+
+ return this.customCodeHelperFormatter.formatTemplate(SingleCallControllerTemplate(), {
+ callControllerFunctionName: this.callsControllerFunctionName
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts
new file mode 100644
index 0000000..7afff69
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.ts
@@ -0,0 +1,14 @@
+/**
+ * @returns {string}
+ */
+export function GlobalVariableNoEvalTemplate (): string {
+ return `
+ const that = (typeof window !== 'undefined'
+ ? window
+ : (typeof process === 'object' &&
+ typeof require === 'function' &&
+ typeof global === 'object')
+ ? global
+ : this);
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts
new file mode 100644
index 0000000..af10d72
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate1.ts
@@ -0,0 +1,16 @@
+/**
+ * @returns {string}
+ */
+export function GlobalVariableTemplate1 (): string {
+ return `
+ let that;
+
+ try {
+ const getGlobal = Function('return (function() ' + '{}.constructor("return this")( )' + ');');
+
+ that = getGlobal();
+ } catch (e) {
+ that = window;
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts
new file mode 100644
index 0000000..76257d4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/GlobalVariableTemplate2.ts
@@ -0,0 +1,19 @@
+/**
+ * @returns {string}
+ */
+export function GlobalVariableTemplate2 (): string {
+ return `
+ const getGlobal = function () {
+ let globalObject;
+
+ try {
+ globalObject = Function('return (function() ' + '{}.constructor("return this")( )' + ');')();
+ } catch (e) {
+ globalObject = window;
+ }
+
+ return globalObject;
+ };
+ const that = getGlobal();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts
new file mode 100644
index 0000000..a70217c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/common/templates/SingleCallControllerTemplate.ts
@@ -0,0 +1,24 @@
+/**
+ * @returns {string}
+ */
+export function SingleCallControllerTemplate (): string {
+ return `
+ const {callControllerFunctionName} = (function(){
+ let firstCall = true;
+
+ return function (context, fn){
+ const rfn = firstCall ? function(){
+ if(fn){
+ const res = fn.apply(context, arguments);
+ fn = null;
+ return res;
+ }
+ } : function(){}
+
+ firstCall = false;
+
+ return rfn;
+ }
+ })();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts
new file mode 100644
index 0000000..fba2955
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/ConsoleOutputDisableCodeHelper.ts
@@ -0,0 +1,91 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+
+import { ConsoleOutputDisableTemplate } from './templates/ConsoleOutputDisableTemplate';
+import { GlobalVariableNoEvalTemplate } from '../common/templates/GlobalVariableNoEvalTemplate';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class ConsoleOutputDisableCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private callsControllerFunctionName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private consoleOutputDisableFunctionName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} callsControllerFunctionName
+ * @param {StaticRange} consoleOutputDisableFunctionName
+ */
+ public initialize (callsControllerFunctionName: string, consoleOutputDisableFunctionName: string): void {
+ this.callsControllerFunctionName = callsControllerFunctionName;
+ this.consoleOutputDisableFunctionName = consoleOutputDisableFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const globalVariableTemplate: string = this.options.target !== ObfuscationTarget.BrowserNoEval
+ ? this.getGlobalVariableTemplate()
+ : GlobalVariableNoEvalTemplate();
+
+ return this.customCodeHelperFormatter.formatTemplate(ConsoleOutputDisableTemplate(), {
+ callControllerFunctionName: this.callsControllerFunctionName,
+ consoleLogDisableFunctionName: this.consoleOutputDisableFunctionName,
+ globalVariableTemplate
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts
new file mode 100644
index 0000000..70d8dc8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/group/ConsoleOutputCodeHelperGroup.ts
@@ -0,0 +1,126 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperFactory } from '../../../types/container/custom-code-helpers/TCustomCodeHelperFactory';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../../enums/event-emitters/ObfuscationEvent';
+
+import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGroup';
+import { CallsControllerFunctionCodeHelper } from '../../calls-controller/CallsControllerFunctionCodeHelper';
+import { ConsoleOutputDisableCodeHelper } from '../ConsoleOutputDisableCodeHelper';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeLexicalScopeUtils } from '../../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class ConsoleOutputCodeHelperGroup extends AbstractCustomCodeHelperGroup {
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ @initializable()
+ protected customCodeHelpers!: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected readonly appendEvent: ObfuscationEvent = ObfuscationEvent.BeforeObfuscation;
+
+ /**
+ * @type {TCustomCodeHelperFactory}
+ */
+ private readonly customCodeHelperFactory: TCustomCodeHelperFactory;
+
+ /**
+ * @param {TCustomCodeHelperFactory} customCodeHelperFactory
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(identifierNamesGeneratorFactory, randomGenerator, options);
+
+ this.customCodeHelperFactory = customCodeHelperFactory;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void {
+ if (!this.options.disableConsoleOutput) {
+ return;
+ }
+
+ const randomCallsGraphIndex: number = this.getRandomCallsGraphIndex(callsGraphData.length);
+
+ const consoleOutputDisableHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
+ : nodeWithStatements;
+ const callsControllerHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
+ : nodeWithStatements;
+
+ const consoleOutputDisableLexicalScopeNode: TNodeWithLexicalScope | null = NodeLexicalScopeUtils
+ .getLexicalScope(consoleOutputDisableHostNode) ?? null;
+
+ const consoleOutputDisableFunctionName: string = consoleOutputDisableLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+ const callsControllerFunctionName: string = consoleOutputDisableLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(consoleOutputDisableLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+
+ // consoleOutputDisableExpression helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.ConsoleOutputDisable,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<ConsoleOutputDisableCodeHelper>>) => {
+ customCodeHelper.initialize(callsControllerFunctionName, consoleOutputDisableFunctionName);
+
+ NodeAppender.prepend(consoleOutputDisableHostNode, customCodeHelper.getNode());
+ }
+ );
+
+ // nodeCallsControllerFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.CallsControllerFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>>) => {
+ customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
+
+ NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
+ }
+ );
+ }
+
+ public initialize (): void {
+ this.customCodeHelpers = new Map <CustomCodeHelper, ICustomCodeHelper>();
+
+ if (!this.options.disableConsoleOutput) {
+ return;
+ }
+
+ const consoleOutputDisableExpressionCodeHelper: ICustomCodeHelper<TInitialData<ConsoleOutputDisableCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.ConsoleOutputDisable);
+ const callsControllerFunctionCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.CallsControllerFunction);
+
+ this.customCodeHelpers.set(CustomCodeHelper.ConsoleOutputDisable, consoleOutputDisableExpressionCodeHelper);
+ this.customCodeHelpers.set(CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts
new file mode 100644
index 0000000..35d83f9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.ts
@@ -0,0 +1,26 @@
+/**
+ * @returns {string}
+ */
+export function ConsoleOutputDisableTemplate (): string {
+ return `
+ const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {
+ {globalVariableTemplate}
+
+ const consoleObject = (that.console = that.console || {});
+ const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];
+
+ for (let index = 0; index < methods.length; index++){
+ const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});
+ const methodName = methods[index];
+ const originalFunction = consoleObject[methodName] || func;
+
+ func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});
+ func.toString = originalFunction.toString.bind(originalFunction);
+
+ consoleObject[methodName] = func;
+ }
+ });
+
+ {consoleLogDisableFunctionName}();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts
new file mode 100644
index 0000000..b0409d0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCallCodeHelper.ts
@@ -0,0 +1,83 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { DebugProtectionFunctionCallTemplate } from './templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class DebugProtectionFunctionCallCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private callsControllerFunctionName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private debugProtectionFunctionName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} debugProtectionFunctionName
+ * @param {string} callsControllerFunctionName
+ */
+ public initialize (debugProtectionFunctionName: string, callsControllerFunctionName: string): void {
+ this.debugProtectionFunctionName = debugProtectionFunctionName;
+ this.callsControllerFunctionName = callsControllerFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionCallTemplate(), {
+ debugProtectionFunctionName: this.debugProtectionFunctionName,
+ callControllerFunctionName: this.callsControllerFunctionName
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts
new file mode 100644
index 0000000..2575854
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionCodeHelper.ts
@@ -0,0 +1,83 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { DebuggerTemplate } from './templates/debug-protection-function/DebuggerTemplate';
+import { DebuggerTemplateNoEval } from './templates/debug-protection-function/DebuggerTemplateNoEval';
+import { DebugProtectionFunctionTemplate } from './templates/debug-protection-function/DebugProtectionFunctionTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class DebugProtectionFunctionCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private debugProtectionFunctionName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} debugProtectionFunctionName
+ */
+ public initialize (debugProtectionFunctionName: string): void {
+ this.debugProtectionFunctionName = debugProtectionFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const debuggerTemplate: string = this.options.target !== ObfuscationTarget.BrowserNoEval
+ ? DebuggerTemplate()
+ : DebuggerTemplateNoEval();
+
+ return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionTemplate(), {
+ debuggerTemplate,
+ debugProtectionFunctionName: this.debugProtectionFunctionName
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts
new file mode 100644
index 0000000..b19c949
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/DebugProtectionFunctionIntervalCodeHelper.ts
@@ -0,0 +1,74 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { DebugProtectionFunctionIntervalTemplate } from './templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class DebugProtectionFunctionIntervalCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private debugProtectionFunctionName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} debugProtectionFunctionName
+ */
+ public initialize (debugProtectionFunctionName: string): void {
+ this.debugProtectionFunctionName = debugProtectionFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ return this.customCodeHelperFormatter.formatTemplate(DebugProtectionFunctionIntervalTemplate(), {
+ debugProtectionFunctionName: this.debugProtectionFunctionName
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts
new file mode 100644
index 0000000..2d1aa36
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/group/DebugProtectionCodeHelperGroup.ts
@@ -0,0 +1,164 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperFactory } from '../../../types/container/custom-code-helpers/TCustomCodeHelperFactory';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../../enums/event-emitters/ObfuscationEvent';
+
+import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGroup';
+import { CallsControllerFunctionCodeHelper } from '../../calls-controller/CallsControllerFunctionCodeHelper';
+import { DebugProtectionFunctionCodeHelper } from '../DebugProtectionFunctionCodeHelper';
+import { DebugProtectionFunctionCallCodeHelper } from '../DebugProtectionFunctionCallCodeHelper';
+import { DebugProtectionFunctionIntervalCodeHelper } from '../DebugProtectionFunctionIntervalCodeHelper';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeLexicalScopeUtils } from '../../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class DebugProtectionCodeHelperGroup extends AbstractCustomCodeHelperGroup {
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ @initializable()
+ protected customCodeHelpers!: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected readonly appendEvent: ObfuscationEvent = ObfuscationEvent.BeforeObfuscation;
+
+ /**
+ * @type {TCustomCodeHelperFactory}
+ */
+ private readonly customCodeHelperFactory: TCustomCodeHelperFactory;
+
+ /**
+ * @param {TCustomCodeHelperFactory} customCodeHelperFactory
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(identifierNamesGeneratorFactory, randomGenerator, options);
+
+ this.customCodeHelperFactory = customCodeHelperFactory;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void {
+ if (!this.options.debugProtection) {
+ return;
+ }
+
+ const randomCallsGraphIndex: number = this.getRandomCallsGraphIndex(callsGraphData.length);
+
+ const debugProtectionFunctionCallHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
+ : nodeWithStatements;
+ const callsControllerHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
+ : nodeWithStatements;
+
+ const debugProtectionFunctionCallScopeNode: TNodeWithLexicalScope | null = NodeLexicalScopeUtils
+ .getLexicalScope(debugProtectionFunctionCallHostNode) ?? null;
+
+ const debugProtectionFunctionName: string = debugProtectionFunctionCallScopeNode
+ ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+ const callsControllerFunctionName: string = debugProtectionFunctionCallScopeNode
+ ? this.identifierNamesGenerator.generate(debugProtectionFunctionCallScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+
+ // debugProtectionFunctionCall helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.DebugProtectionFunctionCall,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionCallCodeHelper>>) => {
+ customCodeHelper.initialize(debugProtectionFunctionName, callsControllerFunctionName);
+
+ NodeAppender.prepend(debugProtectionFunctionCallHostNode, customCodeHelper.getNode());
+ }
+ );
+
+ // nodeCallsControllerFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.CallsControllerFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>>) => {
+ customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
+
+ NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
+ }
+ );
+
+ // debugProtectionFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.DebugProtectionFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionCodeHelper>>) => {
+ customCodeHelper.initialize(debugProtectionFunctionName);
+
+ NodeAppender.append(nodeWithStatements, customCodeHelper.getNode());
+ }
+ );
+
+ // debugProtectionFunctionInterval helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.DebugProtectionFunctionInterval,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionIntervalCodeHelper>>) => {
+ const programBodyLength: number = NodeGuards.isSwitchCaseNode(nodeWithStatements)
+ ? nodeWithStatements.consequent.length
+ : nodeWithStatements.body.length;
+ const randomIndex: number = this.randomGenerator.getRandomInteger(0, programBodyLength);
+
+ customCodeHelper.initialize(debugProtectionFunctionName);
+
+ NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), randomIndex);
+ }
+ );
+ }
+
+ public initialize (): void {
+ this.customCodeHelpers = new Map <CustomCodeHelper, ICustomCodeHelper>();
+
+ if (!this.options.debugProtection) {
+ return;
+ }
+
+ const debugProtectionFunctionCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.DebugProtectionFunction);
+ const debugProtectionFunctionCallCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionCallCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.DebugProtectionFunctionCall);
+ const debugProtectionFunctionIntervalCodeHelper: ICustomCodeHelper<TInitialData<DebugProtectionFunctionIntervalCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.DebugProtectionFunctionInterval);
+ const callsControllerFunctionCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.CallsControllerFunction);
+
+ this.customCodeHelpers.set(CustomCodeHelper.DebugProtectionFunction, debugProtectionFunctionCodeHelper);
+ this.customCodeHelpers.set(CustomCodeHelper.DebugProtectionFunctionCall, debugProtectionFunctionCallCodeHelper);
+
+ if (this.options.debugProtectionInterval) {
+ this.customCodeHelpers.set(CustomCodeHelper.DebugProtectionFunctionInterval, debugProtectionFunctionIntervalCodeHelper);
+ }
+
+ this.customCodeHelpers.set(CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts
new file mode 100644
index 0000000..2382da7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-call/DebugProtectionFunctionCallTemplate.ts
@@ -0,0 +1,24 @@
+/**
+ * @returns {string}
+ */
+export function DebugProtectionFunctionCallTemplate (): string {
+ return `
+ (function () {
+ {callControllerFunctionName}(
+ this,
+ function () {
+ const regExp1 = new RegExp('function *\\\\( *\\\\)');
+ const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');
+
+ const result = {debugProtectionFunctionName}('init');
+
+ if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {
+ result('0');
+ } else {
+ {debugProtectionFunctionName}();
+ }
+ }
+ )();
+ })();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts
new file mode 100644
index 0000000..d1bdb7d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function-interval/DebugProtectionFunctionIntervalTemplate.ts
@@ -0,0 +1,10 @@
+/**
+ * @returns {string}
+ */
+export function DebugProtectionFunctionIntervalTemplate (): string {
+ return `
+ setInterval(function () {
+ {debugProtectionFunctionName}();
+ }, 4000);
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts
new file mode 100644
index 0000000..8f2ee49
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebugProtectionFunctionTemplate.ts
@@ -0,0 +1,23 @@
+/**
+ * @returns {string}
+ */
+export function DebugProtectionFunctionTemplate (): string {
+ return `
+ function {debugProtectionFunctionName} (ret) {
+ function debuggerProtection (counter) {
+
+ {debuggerTemplate}
+
+ debuggerProtection(++counter);
+ }
+
+ try {
+ if (ret) {
+ return debuggerProtection;
+ } else {
+ debuggerProtection(0);
+ }
+ } catch (y) {}
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts
new file mode 100644
index 0000000..eeb93b3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplate.ts
@@ -0,0 +1,17 @@
+/**
+ * @returns {string}
+ */
+export function DebuggerTemplate (): string {
+ return `
+ if (typeof counter === 'string') {
+ return (function (arg) {}.constructor('while (true) {}').apply('counter'));
+ } else {
+ if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
+ (function () {return true;}.constructor('debu' + 'gger').call('action'));
+ } else {
+ (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));
+ }
+
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts
new file mode 100644
index 0000000..fe52b6b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/debug-protection/templates/debug-protection-function/DebuggerTemplateNoEval.ts
@@ -0,0 +1,21 @@
+/**
+ * @returns {string}
+ */
+export function DebuggerTemplateNoEval (): string {
+ return `
+ if (typeof counter === 'string') {
+ const func = function () {
+ while (true) {}
+ };
+
+ return func();
+ } else {
+ if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {
+ debugger;
+ } else {
+ debugger;
+ }
+
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts
new file mode 100644
index 0000000..56e0af2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/DomainLockCodeHelper.ts
@@ -0,0 +1,108 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { ICryptUtils } from '../../interfaces/utils/ICryptUtils';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { DomainLockTemplate } from './templates/DomainLockTemplate';
+import { GlobalVariableNoEvalTemplate } from '../common/templates/GlobalVariableNoEvalTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class DomainLockCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private callsControllerFunctionName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private domainLockFunctionName!: string;
+
+ /**
+ * @type {ICryptUtils}
+ */
+ private readonly cryptUtils: ICryptUtils;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {ICryptUtils} cryptUtils
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.ICryptUtils) cryptUtils: ICryptUtils
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+
+ this.cryptUtils = cryptUtils;
+ }
+
+ /**
+ * @param {string} callsControllerFunctionName
+ * @param {string} domainLockFunctionName
+ */
+ public initialize (callsControllerFunctionName: string, domainLockFunctionName: string): void {
+ this.callsControllerFunctionName = callsControllerFunctionName;
+ this.domainLockFunctionName = domainLockFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const domainsString: string = this.options.domainLock.join(';');
+ const [hiddenDomainsString, diff]: string[] = this.cryptUtils.hideString(
+ domainsString,
+ domainsString.length * 3
+ );
+ const globalVariableTemplate: string = this.options.target !== ObfuscationTarget.BrowserNoEval
+ ? this.getGlobalVariableTemplate()
+ : GlobalVariableNoEvalTemplate();
+
+ return this.customCodeHelperFormatter.formatTemplate(DomainLockTemplate(), {
+ callControllerFunctionName: this.callsControllerFunctionName,
+ domainLockFunctionName: this.domainLockFunctionName,
+ diff,
+ domains: hiddenDomainsString,
+ globalVariableTemplate
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts
new file mode 100644
index 0000000..ab3a0a1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/group/DomainLockCustomCodeHelperGroup.ts
@@ -0,0 +1,126 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperFactory } from '../../../types/container/custom-code-helpers/TCustomCodeHelperFactory';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../../enums/event-emitters/ObfuscationEvent';
+
+import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGroup';
+import { CallsControllerFunctionCodeHelper } from '../../calls-controller/CallsControllerFunctionCodeHelper';
+import { DomainLockCodeHelper } from '../DomainLockCodeHelper';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeLexicalScopeUtils } from '../../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class DomainLockCustomCodeHelperGroup extends AbstractCustomCodeHelperGroup {
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ @initializable()
+ protected customCodeHelpers!: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected readonly appendEvent: ObfuscationEvent = ObfuscationEvent.BeforeObfuscation;
+
+ /**
+ * @type {TCustomCodeHelperFactory}
+ */
+ private readonly customCodeHelperFactory: TCustomCodeHelperFactory;
+
+ /**
+ * @param {TCustomCodeHelperFactory} customCodeHelperFactory
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(identifierNamesGeneratorFactory, randomGenerator, options);
+
+ this.customCodeHelperFactory = customCodeHelperFactory;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void {
+ if (!this.options.domainLock.length) {
+ return;
+ }
+
+ const randomCallsGraphIndex: number = this.getRandomCallsGraphIndex(callsGraphData.length);
+
+ const domainLockFunctionHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
+ : nodeWithStatements;
+ const callsControllerHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
+ : nodeWithStatements;
+
+ const domainLockFunctionLexicalScopeNode: TNodeWithLexicalScope | null = NodeLexicalScopeUtils
+ .getLexicalScope(domainLockFunctionHostNode) ?? null;
+
+ const domainLockFunctionName: string = domainLockFunctionLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+ const callsControllerFunctionName: string = domainLockFunctionLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(domainLockFunctionLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+
+ // domainLock helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.DomainLock,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<DomainLockCodeHelper>>) => {
+ customCodeHelper.initialize(callsControllerFunctionName, domainLockFunctionName);
+
+ NodeAppender.prepend(domainLockFunctionHostNode, customCodeHelper.getNode());
+ }
+ );
+
+ // nodeCallsControllerFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.CallsControllerFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>>) => {
+ customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
+
+ NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
+ }
+ );
+ }
+
+ public initialize (): void {
+ this.customCodeHelpers = new Map <CustomCodeHelper, ICustomCodeHelper>();
+
+ if (!this.options.domainLock.length) {
+ return;
+ }
+
+ const domainLockCodeHelper: ICustomCodeHelper<TInitialData<DomainLockCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.DomainLock);
+ const callsControllerFunctionCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.CallsControllerFunction);
+
+ this.customCodeHelpers.set(CustomCodeHelper.DomainLock, domainLockCodeHelper);
+ this.customCodeHelpers.set(CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts
new file mode 100644
index 0000000..691b361
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/domain-lock/templates/DomainLockTemplate.ts
@@ -0,0 +1,111 @@
+/**
+ * @returns {string}
+ */
+export function DomainLockTemplate (): string {
+ return `
+ const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {
+
+ {globalVariableTemplate}
+
+ const func = function () {
+ return {
+ key: 'item',
+ value: 'attribute',
+ getAttribute: function () {
+ for (let i = 0; i < 1000; i--) {
+ const isPositive = i > 0;
+
+ switch (isPositive) {
+ case true:
+ return this.item + '_' + this.value + '_' + i;
+ default:
+ this.item + '_' + this.value;
+ }
+ }
+ }()
+ };
+ };
+
+ const regExp = new RegExp("[{diff}]", "g");
+ const domains = "{domains}".replace(regExp, "").split(";");
+ let document;
+ let domain;
+ let location;
+ let hostname;
+
+ for (let d in that) {
+ if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {
+ document = d;
+
+ break;
+ }
+ }
+
+ for (let d1 in that[document]) {
+ if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {
+ domain = d1;
+
+ break;
+ }
+ }
+
+ if (!("~" > domain)) {
+ for (let d2 in that[document]) {
+ if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {
+ location = d2;
+
+ break;
+ }
+ }
+
+ for (let d3 in that[document][location]) {
+ if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {
+ hostname = d3;
+
+ break;
+ }
+ }
+ }
+
+ if (!document || !that[document]) {
+ return;
+ }
+
+ const documentDomain = that[document][domain];
+ const documentLocationHostName = !!that[document][location] && that[document][location][hostname];
+ const currentDomain = documentDomain || documentLocationHostName;
+
+ if (!currentDomain) {
+ return;
+ }
+
+ let ok = false;
+
+ for (let i = 0; i < domains.length; i++) {
+ const domain = domains[i];
+ const domainNormalized = domain[0] === String.fromCharCode(46)
+ ? domain.slice(1)
+ : domain;
+ const position = currentDomain.length - domainNormalized.length;
+ const lastIndex = currentDomain.indexOf(domainNormalized, position);
+ const endsWith = lastIndex !== -1 && lastIndex === position;
+
+ if (endsWith) {
+ if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {
+ ok = true;
+ }
+ }
+ }
+
+ if (!ok) {
+ data;
+ } else {
+ return;
+ }
+
+ func();
+ });
+
+ {domainLockFunctionName}();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts
new file mode 100644
index 0000000..2828476
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/SelfDefendingUnicodeCodeHelper.ts
@@ -0,0 +1,95 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { SelfDefendingTemplate } from './templates/SelfDefendingTemplate';
+import { SelfDefendingNoEvalTemplate } from './templates/SelfDefendingNoEvalTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+import { GlobalVariableNoEvalTemplate } from '../common/templates/GlobalVariableNoEvalTemplate';
+
+@injectable()
+export class SelfDefendingUnicodeCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private callsControllerFunctionName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private selfDefendingFunctionName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} callsControllerFunctionName
+ * @param {string} selfDefendingFunctionName
+ */
+ public initialize (callsControllerFunctionName: string, selfDefendingFunctionName: string): void {
+ this.callsControllerFunctionName = callsControllerFunctionName;
+ this.selfDefendingFunctionName = selfDefendingFunctionName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const globalVariableTemplate: string = this.options.target !== ObfuscationTarget.BrowserNoEval
+ ? this.getGlobalVariableTemplate()
+ : GlobalVariableNoEvalTemplate();
+ const selfDefendingTemplate: string = this.options.target !== ObfuscationTarget.BrowserNoEval
+ ? SelfDefendingTemplate()
+ : SelfDefendingNoEvalTemplate();
+
+ return this.customCodeHelperFormatter.formatTemplate(selfDefendingTemplate, {
+ callControllerFunctionName: this.callsControllerFunctionName,
+ selfDefendingFunctionName: this.selfDefendingFunctionName,
+ globalVariableTemplate
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts
new file mode 100644
index 0000000..46be4cb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/group/SelfDefendingCodeHelperGroup.ts
@@ -0,0 +1,126 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperFactory } from '../../../types/container/custom-code-helpers/TCustomCodeHelperFactory';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../../enums/event-emitters/ObfuscationEvent';
+
+import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGroup';
+import { CallsControllerFunctionCodeHelper } from '../../calls-controller/CallsControllerFunctionCodeHelper';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeLexicalScopeUtils } from '../../../node/NodeLexicalScopeUtils';
+import { SelfDefendingUnicodeCodeHelper } from '../SelfDefendingUnicodeCodeHelper';
+
+@injectable()
+export class SelfDefendingCodeHelperGroup extends AbstractCustomCodeHelperGroup {
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ @initializable()
+ protected customCodeHelpers!: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected appendEvent: ObfuscationEvent = ObfuscationEvent.BeforeObfuscation;
+
+ /**
+ * @type {TCustomCodeHelperFactory}
+ */
+ private readonly customCodeHelperFactory: TCustomCodeHelperFactory;
+
+ /**
+ * @param {TCustomCodeHelperFactory} customCodeHelperFactory
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(identifierNamesGeneratorFactory, randomGenerator, options);
+
+ this.customCodeHelperFactory = customCodeHelperFactory;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void {
+ if (!this.options.selfDefending) {
+ return;
+ }
+
+ const randomCallsGraphIndex: number = this.getRandomCallsGraphIndex(callsGraphData.length);
+
+ const selfDefendingFunctionHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex)
+ : nodeWithStatements;
+ const callsControllerHostNode: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, randomCallsGraphIndex, 1)
+ : nodeWithStatements;
+
+ const selfDefendingFunctionLexicalScopeNode: TNodeWithLexicalScope | null = NodeLexicalScopeUtils
+ .getLexicalScope(selfDefendingFunctionHostNode) ?? null;
+
+ const selfDefendingFunctionName: string = selfDefendingFunctionLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+ const callsControllerFunctionName: string = selfDefendingFunctionLexicalScopeNode
+ ? this.identifierNamesGenerator.generate(selfDefendingFunctionLexicalScopeNode)
+ : this.identifierNamesGenerator.generateNext();
+
+ // selfDefendingUnicode helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.SelfDefendingUnicode,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<SelfDefendingUnicodeCodeHelper>>) => {
+ customCodeHelper.initialize(callsControllerFunctionName, selfDefendingFunctionName);
+
+ NodeAppender.prepend(selfDefendingFunctionHostNode, customCodeHelper.getNode());
+ }
+ );
+
+ // nodeCallsControllerFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.CallsControllerFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>>) => {
+ customCodeHelper.initialize(this.appendEvent, callsControllerFunctionName);
+
+ NodeAppender.prepend(callsControllerHostNode, customCodeHelper.getNode());
+ }
+ );
+ }
+
+ public initialize (): void {
+ this.customCodeHelpers = new Map <CustomCodeHelper, ICustomCodeHelper>();
+
+ if (!this.options.selfDefending) {
+ return;
+ }
+
+ const selfDefendingUnicodeCodeHelper: ICustomCodeHelper<TInitialData<SelfDefendingUnicodeCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.SelfDefendingUnicode);
+ const callsControllerFunctionCodeHelper: ICustomCodeHelper<TInitialData<CallsControllerFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.CallsControllerFunction);
+
+ this.customCodeHelpers.set(CustomCodeHelper.SelfDefendingUnicode, selfDefendingUnicodeCodeHelper);
+ this.customCodeHelpers.set(CustomCodeHelper.CallsControllerFunction, callsControllerFunctionCodeHelper);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts
new file mode 100644
index 0000000..667bdb7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingNoEvalTemplate.ts
@@ -0,0 +1,22 @@
+/**
+ * SelfDefendingTemplate. Enters code in infinity loop.
+ *
+ * @returns {string}
+ */
+export function SelfDefendingNoEvalTemplate (): string {
+ return `
+ const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
+ {globalVariableTemplate}
+
+ const test = function () {
+ const regExp = new that.RegExp('^([^ ]+( +[^ ]+)+)+[^ ]}');
+
+ return !regExp.test({selfDefendingFunctionName});
+ };
+
+ return test();
+ });
+
+ {selfDefendingFunctionName}();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts
new file mode 100644
index 0000000..e8c5963
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.ts
@@ -0,0 +1,22 @@
+/**
+ * SelfDefendingTemplate. Enters code in infinity loop.
+ *
+ * @returns {string}
+ */
+export function SelfDefendingTemplate (): string {
+ return `
+ const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {
+ const test = function () {
+ const regExp = test
+ .constructor('return /" + this + "/')()
+ .constructor('^([^ ]+( +[^ ]+)+)+[^ ]}');
+
+ return !regExp.test({selfDefendingFunctionName});
+ };
+
+ return test();
+ });
+
+ {selfDefendingFunctionName}();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts
new file mode 100644
index 0000000..44b20d0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperBase64CodeHelper.ts
@@ -0,0 +1,32 @@
+import { injectable, } from 'inversify';
+
+import { AtobTemplate } from './templates/string-array-calls-wrapper/AtobTemplate';
+import { StringArrayBase64DecodeTemplate } from './templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate';
+
+import { StringArrayCallsWrapperCodeHelper } from './StringArrayCallsWrapperCodeHelper';
+
+@injectable()
+export class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWrapperCodeHelper {
+ /**
+ * @returns {string}
+ */
+ protected getDecodeStringArrayTemplate (): string {
+ const atobFunctionName: string = this.randomGenerator.getRandomString(6);
+
+ const atobPolyfill: string = this.customCodeHelperFormatter.formatTemplate(AtobTemplate(), {
+ atobFunctionName: atobFunctionName
+ });
+
+ const selfDefendingCode: string = this.getSelfDefendingTemplate();
+
+ return this.customCodeHelperFormatter.formatTemplate(
+ StringArrayBase64DecodeTemplate(this.randomGenerator),
+ {
+ atobPolyfill,
+ atobFunctionName,
+ selfDefendingCode,
+ stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
+ }
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts
new file mode 100644
index 0000000..0f5b793
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.ts
@@ -0,0 +1,144 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IEscapeSequenceEncoder } from '../../interfaces/utils/IEscapeSequenceEncoder';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { SelfDefendingTemplate } from './templates/string-array-calls-wrapper/SelfDefendingTemplate';
+import { StringArrayCallsWrapperTemplate } from './templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {number}
+ */
+ @initializable()
+ protected indexShiftAmount!: number;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ protected stringArrayName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ protected stringArrayCallsWrapperName!: string;
+
+ /**
+ * @type {IEscapeSequenceEncoder}
+ */
+ private readonly escapeSequenceEncoder: IEscapeSequenceEncoder;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IEscapeSequenceEncoder} escapeSequenceEncoder
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IEscapeSequenceEncoder) escapeSequenceEncoder: IEscapeSequenceEncoder
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+
+ this.escapeSequenceEncoder = escapeSequenceEncoder;
+ }
+
+ /**
+ * @param {string} stringArrayName
+ * @param {string} stringArrayCallsWrapperName
+ * @param {number} indexShiftAmount
+ */
+ public initialize (
+ stringArrayName: string,
+ stringArrayCallsWrapperName: string,
+ indexShiftAmount: number
+ ): void {
+ this.stringArrayName = stringArrayName;
+ this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
+ this.indexShiftAmount = indexShiftAmount;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const decodeCodeHelperTemplate: string = this.getDecodeStringArrayTemplate();
+
+ const preservedNames: string[] = [`^${this.stringArrayName}$`];
+
+ return this.customCodeHelperObfuscator.obfuscateTemplate(
+ this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate(), {
+ decodeCodeHelperTemplate,
+ stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
+ stringArrayName: this.stringArrayName,
+ indexShiftAmount: this.indexShiftAmount
+ }),
+ {
+ reservedNames: preservedNames
+ }
+ );
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getDecodeStringArrayTemplate (): string {
+ return '';
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getSelfDefendingTemplate (): string {
+ if (!this.options.selfDefending) {
+ return '';
+ }
+
+ return this.customCodeHelperFormatter.formatTemplate(
+ SelfDefendingTemplate(
+ this.randomGenerator,
+ this.escapeSequenceEncoder
+ ),
+ {
+ stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
+ stringArrayName: this.stringArrayName
+ }
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts
new file mode 100644
index 0000000..88a91d2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCallsWrapperRc4CodeHelper.ts
@@ -0,0 +1,36 @@
+import { injectable, } from 'inversify';
+
+import { AtobTemplate } from './templates/string-array-calls-wrapper/AtobTemplate';
+import { Rc4Template } from './templates/string-array-calls-wrapper/Rc4Template';
+import { StringArrayRC4DecodeTemplate } from './templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate';
+
+import { StringArrayCallsWrapperCodeHelper } from './StringArrayCallsWrapperCodeHelper';
+
+@injectable()
+export class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrapperCodeHelper {
+ /**
+ * @returns {string}
+ */
+ protected getDecodeStringArrayTemplate (): string {
+ const atobFunctionName: string = this.randomGenerator.getRandomString(6);
+
+ const atobPolyfill: string = this.customCodeHelperFormatter.formatTemplate(AtobTemplate(), {
+ atobFunctionName
+ });
+ const rc4Polyfill: string = this.customCodeHelperFormatter.formatTemplate(Rc4Template(), {
+ atobFunctionName
+ });
+
+ const selfDefendingCode: string = this.getSelfDefendingTemplate();
+
+ return this.customCodeHelperFormatter.formatTemplate(
+ StringArrayRC4DecodeTemplate(this.randomGenerator),
+ {
+ atobPolyfill,
+ rc4Polyfill,
+ selfDefendingCode,
+ stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
+ }
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCodeHelper.ts
new file mode 100644
index 0000000..71aad95
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayCodeHelper.ts
@@ -0,0 +1,103 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IStringArrayStorageItemData } from '../../interfaces/storages/string-array-transformers/IStringArrayStorageItem';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { StringArrayTemplate } from './templates/string-array/StringArrayTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+import { StringUtils } from '../../utils/StringUtils';
+
+@injectable()
+export class StringArrayCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {IStringArrayStorage}
+ */
+ @initializable()
+ private stringArrayStorage!: IStringArrayStorage;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {string} stringArrayName
+ */
+ public initialize (
+ stringArrayStorage: IStringArrayStorage,
+ stringArrayName: string
+ ): void {
+ this.stringArrayStorage = stringArrayStorage;
+ this.stringArrayName = stringArrayName;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ return this.customCodeHelperFormatter.formatTemplate(StringArrayTemplate(), {
+ stringArrayName: this.stringArrayName,
+ stringArrayStorageItems: this.getEncodedStringArrayStorageItems()
+ });
+ }
+
+ /**
+ * @returns {string}
+ */
+ private getEncodedStringArrayStorageItems (): string {
+ return Array
+ .from(this.stringArrayStorage.getStorage().values())
+ .map((stringArrayStorageItemData: IStringArrayStorageItemData): string => {
+ const escapedEncodedValue: string = StringUtils.escapeJsString(stringArrayStorageItemData.encodedValue);
+
+ return `'${escapedEncodedValue}'`;
+ })
+ .toString();
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts
new file mode 100644
index 0000000..b907e2c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.ts
@@ -0,0 +1,121 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helpers/ICustomCodeHelperObfuscator';
+import { IEscapeSequenceEncoder } from '../../interfaces/utils/IEscapeSequenceEncoder';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { SelfDefendingTemplate } from './templates/string-array-rotate-function/SelfDefendingTemplate';
+import { StringArrayRotateFunctionTemplate } from './templates/string-array-rotate-function/StringArrayRotateFunctionTemplate';
+
+import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
+import { NodeUtils } from '../../node/NodeUtils';
+import { NumberUtils } from '../../utils/NumberUtils';
+
+@injectable()
+export class StringArrayRotateFunctionCodeHelper extends AbstractCustomCodeHelper {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayName!: string;
+
+ /**
+ * @param {number}
+ */
+ @initializable()
+ private stringArrayRotationAmount!: number;
+
+ /**
+ * @type {IEscapeSequenceEncoder}
+ */
+ private readonly escapeSequenceEncoder: IEscapeSequenceEncoder;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {ICustomCodeHelperObfuscator} customCodeHelperObfuscator
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IEscapeSequenceEncoder} escapeSequenceEncoder
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.ICustomCodeHelperObfuscator) customCodeHelperObfuscator: ICustomCodeHelperObfuscator,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IEscapeSequenceEncoder) escapeSequenceEncoder: IEscapeSequenceEncoder
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ customCodeHelperObfuscator,
+ randomGenerator,
+ options
+ );
+
+ this.escapeSequenceEncoder = escapeSequenceEncoder;
+ }
+
+ /**
+ * @param {string} stringArrayName
+ * @param {number} stringArrayRotationAmount
+ */
+ public initialize (
+ stringArrayName: string,
+ stringArrayRotationAmount: number
+ ): void {
+ this.stringArrayName = stringArrayName;
+ this.stringArrayRotationAmount = stringArrayRotationAmount;
+ }
+
+ /**
+ * @param {string} codeHelperTemplate
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (codeHelperTemplate: string): TStatement[] {
+ return NodeUtils.convertCodeToStructure(codeHelperTemplate);
+ }
+
+ /**
+ * @returns {string}
+ */
+ protected getCodeHelperTemplate (): string {
+ const timesName: string = this.identifierNamesGenerator.generateNext();
+ const whileFunctionName: string = this.identifierNamesGenerator.generateNext();
+ const preservedNames: string[] = [`^${this.stringArrayName}$`];
+
+ let code: string = '';
+
+ if (this.options.selfDefending) {
+ code = this.customCodeHelperFormatter.formatTemplate(SelfDefendingTemplate(this.escapeSequenceEncoder), {
+ timesName,
+ whileFunctionName
+ });
+ } else {
+ code = `${whileFunctionName}(++${timesName})`;
+ }
+
+ return this.customCodeHelperObfuscator.obfuscateTemplate(
+ this.customCodeHelperFormatter.formatTemplate(StringArrayRotateFunctionTemplate(), {
+ code,
+ timesName,
+ whileFunctionName,
+ stringArrayName: this.stringArrayName,
+ stringArrayRotationAmount: NumberUtils.toHex(this.stringArrayRotationAmount)
+ }),
+ {
+ reservedNames: preservedNames
+ }
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts
new file mode 100644
index 0000000..8bea906
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.ts
@@ -0,0 +1,175 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperFactory } from '../../../types/container/custom-code-helpers/TCustomCodeHelperFactory';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+import { TStringArrayEncoding } from '../../../types/options/TStringArrayEncoding';
+
+import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../../enums/event-emitters/ObfuscationEvent';
+import { StringArrayEncoding } from '../../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+import { AbstractCustomCodeHelperGroup } from '../../AbstractCustomCodeHelperGroup';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { StringArrayCallsWrapperCodeHelper } from '../StringArrayCallsWrapperCodeHelper';
+import { StringArrayCodeHelper } from '../StringArrayCodeHelper';
+import { StringArrayRotateFunctionCodeHelper } from '../StringArrayRotateFunctionCodeHelper';
+
+@injectable()
+export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup {
+ /**
+ * @type {Map<TStringArrayEncoding, CustomCodeHelper>}
+ */
+ private static readonly stringArrayCallsWrapperCodeHelperMap: Map<TStringArrayEncoding, CustomCodeHelper> = new Map([
+ [StringArrayEncoding.None, CustomCodeHelper.StringArrayCallsWrapper],
+ [StringArrayEncoding.Base64, CustomCodeHelper.StringArrayCallsWrapperBase64],
+ [StringArrayEncoding.Rc4, CustomCodeHelper.StringArrayCallsWrapperRc4]
+ ]);
+
+ /**
+ * @type {Map<CustomCodeHelper, ICustomCodeHelper>}
+ */
+ @initializable()
+ protected customCodeHelpers!: Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ /**
+ * @type {ObfuscationEvent}
+ */
+ protected appendEvent: ObfuscationEvent = ObfuscationEvent.AfterObfuscation;
+
+ /**
+ * @type {TCustomCodeHelperFactory}
+ */
+ private readonly customCodeHelperFactory: TCustomCodeHelperFactory;
+
+ /**
+ * @type {IStringArrayStorage}
+ */
+ private readonly stringArrayStorage: IStringArrayStorage;
+
+ /**
+ * @param {TCustomCodeHelperFactory} customCodeHelperFactory
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelper) customCodeHelperFactory: TCustomCodeHelperFactory,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(identifierNamesGeneratorFactory, randomGenerator, options);
+
+ this.customCodeHelperFactory = customCodeHelperFactory;
+ this.stringArrayStorage = stringArrayStorage;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {ICallsGraphData[]} callsGraphData
+ */
+ public appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void {
+ if (!this.stringArrayStorage.getLength()) {
+ return;
+ }
+
+ // stringArray helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.StringArray,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<StringArrayCodeHelper>>) => {
+ NodeAppender.prepend(nodeWithStatements, customCodeHelper.getNode());
+ }
+ );
+
+ // stringArrayCallsWrapper helper nodes append
+ const stringArrayEncodingsLength: number = this.options.stringArrayEncoding.length;
+ for (let i = 0; i < stringArrayEncodingsLength; i++) {
+ const stringArrayEncoding: TStringArrayEncoding = this.options.stringArrayEncoding[i];
+ const stringArrayCallsWrapperCodeHelperName: CustomCodeHelper = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);
+
+ this.appendCustomNodeIfExist(
+ stringArrayCallsWrapperCodeHelperName,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<StringArrayCallsWrapperCodeHelper>>) => {
+ NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), i + 1);
+ }
+ );
+ }
+
+ // stringArrayRotateFunction helper nodes append
+ this.appendCustomNodeIfExist(
+ CustomCodeHelper.StringArrayRotateFunction,
+ (customCodeHelper: ICustomCodeHelper<TInitialData<StringArrayRotateFunctionCodeHelper>>) => {
+ NodeAppender.insertAtIndex(nodeWithStatements, customCodeHelper.getNode(), 1);
+ }
+ );
+ }
+
+ public initialize (): void {
+ this.customCodeHelpers = new Map <CustomCodeHelper, ICustomCodeHelper>();
+
+ if (!this.options.stringArray) {
+ return;
+ }
+
+ // stringArray helper initialize
+ const stringArrayCodeHelper: ICustomCodeHelper<TInitialData<StringArrayCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.StringArray);
+ const stringArrayName: string = this.stringArrayStorage.getStorageName();
+
+ stringArrayCodeHelper.initialize(this.stringArrayStorage, stringArrayName);
+ this.customCodeHelpers.set(CustomCodeHelper.StringArray, stringArrayCodeHelper);
+
+ // stringArrayCallsWrapper helper initialize
+ for (const stringArrayEncoding of this.options.stringArrayEncoding) {
+ const stringArrayCallsWrapperCodeHelperName: CustomCodeHelper = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);
+ const stringArrayCallsWrapperCodeHelper: ICustomCodeHelper<TInitialData<StringArrayCallsWrapperCodeHelper>> =
+ this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);
+ const stringArrayCallsWrapperName: string = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);
+
+ stringArrayCallsWrapperCodeHelper.initialize(
+ stringArrayName,
+ stringArrayCallsWrapperName,
+ this.stringArrayStorage.getIndexShiftAmount()
+ );
+
+ this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);
+ }
+
+ // stringArrayRotateFunction helper initialize
+ const stringArrayRotateFunctionCodeHelper: ICustomCodeHelper<TInitialData<StringArrayRotateFunctionCodeHelper>> =
+ this.customCodeHelperFactory(CustomCodeHelper.StringArrayRotateFunction);
+
+ stringArrayRotateFunctionCodeHelper.initialize(
+ stringArrayName,
+ this.stringArrayStorage.getRotationAmount()
+ );
+
+ if (this.options.rotateStringArray) {
+ this.customCodeHelpers.set(CustomCodeHelper.StringArrayRotateFunction, stringArrayRotateFunctionCodeHelper);
+ }
+ }
+
+ /**
+ * @param {TStringArrayEncoding} stringArrayEncoding
+ * @returns {CustomCodeHelper}
+ */
+ private getStringArrayCallsWrapperCodeHelperName (stringArrayEncoding: TStringArrayEncoding): CustomCodeHelper {
+ return StringArrayCodeHelperGroup
+ .stringArrayCallsWrapperCodeHelperMap.get(stringArrayEncoding)
+ ?? CustomCodeHelper.StringArrayCallsWrapper;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts
new file mode 100644
index 0000000..8933a9d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/AtobTemplate.ts
@@ -0,0 +1,24 @@
+import { base64alphabetSwapped } from '../../../../constants/Base64AlphabetSwapped';
+
+/**
+ * @returns {string}
+ */
+export function AtobTemplate (): string {
+ return `
+ var {atobFunctionName} = function (input) {
+ const chars = '${base64alphabetSwapped}';
+
+ const str = String(input).replace(/=+$/, '');
+ let output = '';
+ for (
+ let bc = 0, bs, buffer, idx = 0;
+ buffer = str.charAt(idx++);
+ ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
+ bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
+ ) {
+ buffer = chars.indexOf(buffer);
+ }
+ return output;
+ };
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts
new file mode 100644
index 0000000..865cbaf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/Rc4Template.ts
@@ -0,0 +1,45 @@
+/**
+ * @returns {string}
+ */
+export function Rc4Template (): string {
+ return `
+ const rc4 = function (str, key) {
+ let s = [], j = 0, x, res = '', newStr = '';
+
+ str = {atobFunctionName}(str);
+
+ for (let k = 0, length = str.length; k < length; k++) {
+ newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);
+ }
+
+ str = decodeURIComponent(newStr);
+
+ let i;
+
+ for (i = 0; i < 256; i++) {
+ s[i] = i;
+ }
+
+ for (i = 0; i < 256; i++) {
+ j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
+ x = s[i];
+ s[i] = s[j];
+ s[j] = x;
+ }
+
+ i = 0;
+ j = 0;
+
+ for (let y = 0; y < str.length; y++) {
+ i = (i + 1) % 256;
+ j = (j + s[i]) % 256;
+ x = s[i];
+ s[i] = s[j];
+ s[j] = x;
+ res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
+ }
+
+ return res;
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts
new file mode 100644
index 0000000..bf08c20
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/SelfDefendingTemplate.ts
@@ -0,0 +1,66 @@
+import { IEscapeSequenceEncoder } from '../../../../interfaces/utils/IEscapeSequenceEncoder';
+import { IRandomGenerator } from '../../../../interfaces/utils/IRandomGenerator';
+
+/**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IEscapeSequenceEncoder} escapeSequenceEncoder
+ * @returns {string}
+ * @constructor
+ */
+export function SelfDefendingTemplate (
+ randomGenerator: IRandomGenerator,
+ escapeSequenceEncoder: IEscapeSequenceEncoder
+): string {
+ const identifierLength: number = 6;
+ const rc4BytesIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const statesIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const newStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const firstStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const secondStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const checkStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const runStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const getStateIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const stateResultIdentifier: string = randomGenerator.getRandomString(identifierLength);
+
+ return `
+ const StatesClass = function (${rc4BytesIdentifier}) {
+ this.${rc4BytesIdentifier} = ${rc4BytesIdentifier};
+ this.${statesIdentifier} = [1, 0, 0];
+ this.${newStateIdentifier} = function(){return 'newState';};
+ this.${firstStateIdentifier} = '${
+ escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *', true)
+ }';
+ this.${secondStateIdentifier} = '${
+ escapeSequenceEncoder.encode('[\'|"].+[\'|"];? *}', true)
+ }';
+ };
+
+ StatesClass.prototype.${checkStateIdentifier} = function () {
+ const regExp = new RegExp(this.${firstStateIdentifier} + this.${secondStateIdentifier});
+ const expression = regExp.test(this.${newStateIdentifier}.toString())
+ ? --this.${statesIdentifier}[1]
+ : --this.${statesIdentifier}[0];
+
+ return this.${runStateIdentifier}(expression);
+ };
+
+ StatesClass.prototype.${runStateIdentifier} = function (${stateResultIdentifier}) {
+ if (!Boolean(~${stateResultIdentifier})) {
+ return ${stateResultIdentifier};
+ }
+
+ return this.${getStateIdentifier}(this.${rc4BytesIdentifier});
+ };
+
+ StatesClass.prototype.${getStateIdentifier} = function (${rc4BytesIdentifier}) {
+ for (let i = 0, len = this.${statesIdentifier}.length; i < len; i++) {
+ this.${statesIdentifier}.push(Math.round(Math.random()));
+ len = this.${statesIdentifier}.length;
+ }
+
+ return ${rc4BytesIdentifier}(this.${statesIdentifier}[0]);
+ };
+
+ new StatesClass({stringArrayCallsWrapperName}).${checkStateIdentifier}();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts
new file mode 100644
index 0000000..1ad7eba
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayBase64DecodeTemplate.ts
@@ -0,0 +1,47 @@
+import { IRandomGenerator } from '../../../../interfaces/utils/IRandomGenerator';
+
+/**
+ * @param {IRandomGenerator} randomGenerator
+ * @returns {string}
+ * @constructor
+ */
+export function StringArrayBase64DecodeTemplate (
+ randomGenerator: IRandomGenerator
+): string {
+ const identifierLength: number = 6;
+ const initializedIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const base64DecodeFunctionIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const dataIdentifier: string = randomGenerator.getRandomString(identifierLength);
+
+ return `
+ if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
+ {atobPolyfill}
+
+ {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier} = function (str) {
+ const string = {atobFunctionName}(str);
+ let newStringChars = [];
+
+ for (let i = 0, length = string.length; i < length; i++) {
+ newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);
+ }
+
+ return decodeURIComponent(newStringChars);
+ };
+
+ {stringArrayCallsWrapperName}.${dataIdentifier} = {};
+
+ {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
+ }
+
+ const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];
+
+ if (cachedValue === undefined) {
+ {selfDefendingCode}
+
+ value = {stringArrayCallsWrapperName}.${base64DecodeFunctionIdentifier}(value);
+ {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;
+ } else {
+ value = cachedValue;
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts
new file mode 100644
index 0000000..e58ded1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts
@@ -0,0 +1,16 @@
+/**
+ * @returns {string}
+ */
+export function StringArrayCallsWrapperTemplate (): string {
+ return `
+ const {stringArrayCallsWrapperName} = function (index, key) {
+ index = index - {indexShiftAmount};
+
+ let value = {stringArrayName}[index];
+
+ {decodeCodeHelperTemplate}
+
+ return value;
+ };
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts
new file mode 100644
index 0000000..092a396
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-calls-wrapper/StringArrayRC4DecodeTemplate.ts
@@ -0,0 +1,44 @@
+import { IRandomGenerator } from '../../../../interfaces/utils/IRandomGenerator';
+
+/**
+ * @param {IRandomGenerator} randomGenerator
+ * @returns {string}
+ * @constructor
+ */
+export function StringArrayRC4DecodeTemplate (
+ randomGenerator: IRandomGenerator
+): string {
+ const identifierLength: number = 6;
+ const initializedIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const rc4Identifier: string = randomGenerator.getRandomString(identifierLength);
+ const dataIdentifier: string = randomGenerator.getRandomString(identifierLength);
+ const onceIdentifier: string = randomGenerator.getRandomString(identifierLength);
+
+ return `
+ if ({stringArrayCallsWrapperName}.${initializedIdentifier} === undefined) {
+ {atobPolyfill}
+
+ {rc4Polyfill}
+ {stringArrayCallsWrapperName}.${rc4Identifier} = rc4;
+
+ {stringArrayCallsWrapperName}.${dataIdentifier} = {};
+
+ {stringArrayCallsWrapperName}.${initializedIdentifier} = true;
+ }
+
+ const cachedValue = {stringArrayCallsWrapperName}.${dataIdentifier}[index];
+
+ if (cachedValue === undefined) {
+ if ({stringArrayCallsWrapperName}.${onceIdentifier} === undefined) {
+ {selfDefendingCode}
+
+ {stringArrayCallsWrapperName}.${onceIdentifier} = true;
+ }
+
+ value = {stringArrayCallsWrapperName}.${rc4Identifier}(value, key);
+ {stringArrayCallsWrapperName}.${dataIdentifier}[index] = value;
+ } else {
+ value = cachedValue;
+ }
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts
new file mode 100644
index 0000000..72f16bf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/SelfDefendingTemplate.ts
@@ -0,0 +1,81 @@
+import { IEscapeSequenceEncoder } from '../../../../interfaces/utils/IEscapeSequenceEncoder';
+
+/**
+ * SelfDefendingTemplate. Enter code in infinity loop.
+ *
+ * @param {IEscapeSequenceEncoder} escapeSequenceEncoder
+ * @returns {string}
+ */
+export function SelfDefendingTemplate (escapeSequenceEncoder: IEscapeSequenceEncoder): string {
+ return `
+ const selfDefendingFunc = function () {
+ const object = {
+ data: {
+ key: 'cookie',
+ value: 'timeout'
+ },
+ setCookie: function (options, name, value, document) {
+ document = document || {};
+
+ let updatedCookie = name + "=" + value;
+ let i = 0;
+
+ for (let i = 0, len = options.length; i < len; i++) {
+ const propName = options[i];
+
+ updatedCookie += "; " + propName;
+
+ const propValue = options[propName];
+
+ options.push(propValue);
+ len = options.length;
+
+ if (propValue !== true) {
+ updatedCookie += "=" + propValue;
+ }
+ }
+
+ document['cookie'] = updatedCookie;
+ },
+ removeCookie: function(){return 'dev';},
+ getCookie: function (document, name) {
+ document = document || function (value) { return value };
+ const matches = document(new RegExp(
+ "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
+ ));
+
+ const func = function (param1, param2) {
+ param1(++param2);
+ };
+
+ func({whileFunctionName}, {timesName});
+
+ return matches ? decodeURIComponent(matches[1]) : undefined;
+ }
+ };
+
+ const test1 = function () {
+ const regExp = new RegExp('${
+ escapeSequenceEncoder.encode('\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}', true)
+ }');
+
+ return regExp.test(object.removeCookie.toString());
+ };
+
+ object['updateCookie'] = test1;
+
+ let cookie = '';
+ const result = object['updateCookie']();
+
+ if (!result) {
+ object['setCookie'](['*'], 'counter', 1);
+ } else if (result) {
+ cookie = object['getCookie'](null, 'counter');
+ } else {
+ object['removeCookie']();
+ }
+ };
+
+ selfDefendingFunc();
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts
new file mode 100644
index 0000000..af55db6
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array-rotate-function/StringArrayRotateFunctionTemplate.ts
@@ -0,0 +1,16 @@
+/**
+ * @returns {string}
+ */
+export function StringArrayRotateFunctionTemplate (): string {
+ return `
+ (function (array, {timesName}) {
+ const {whileFunctionName} = function (times) {
+ while (--times) {
+ array['push'](array['shift']());
+ }
+ };
+
+ {code}
+ })({stringArrayName}, {stringArrayRotationAmount});
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts
new file mode 100644
index 0000000..6d5447c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-code-helpers/string-array/templates/string-array/StringArrayTemplate.ts
@@ -0,0 +1,8 @@
+/**
+ * @returns {string}
+ */
+export function StringArrayTemplate (): string {
+ return `
+ const {stringArrayName} = [{stringArrayStorageItems}];
+ `;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/AbstractCustomNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/AbstractCustomNode.ts
new file mode 100644
index 0000000..f083b44
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/AbstractCustomNode.ts
@@ -0,0 +1,83 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../types/node/TStatement';
+
+import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
+import { ICustomCodeHelperFormatter } from '../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IIdentifierNamesGenerator } from '../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+@injectable()
+export abstract class AbstractCustomNode <
+ TInitialData extends unknown[] = unknown[]
+> implements ICustomNode <TInitialData> {
+ /**
+ * @type {TStatement[] | null}
+ */
+ protected cachedNode: TStatement[] | null = null;
+
+ /**
+ * @type {ICustomCodeHelperFormatter}
+ */
+ protected readonly customCodeHelperFormatter: ICustomCodeHelperFormatter;
+
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ protected readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.customCodeHelperFormatter = customCodeHelperFormatter;
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ public getNode (): TStatement[] {
+ if (!this.cachedNode) {
+ this.cachedNode = this.customCodeHelperFormatter.formatStructure(
+ this.getNodeStructure()
+ );
+ }
+
+ return this.cachedNode;
+ }
+
+ /**
+ * @param {TInitialData} args
+ */
+ public abstract initialize (...args: TInitialData): void;
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected abstract getNodeStructure (): TStatement[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts
new file mode 100644
index 0000000..d74718f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts
@@ -0,0 +1,78 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import type { BinaryOperator } from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class BinaryExpressionFunctionNode extends AbstractCustomNode {
+ /**
+ * @type {BinaryOperator}
+ */
+ private operator!: BinaryOperator;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {BinaryOperator} operator
+ */
+ public initialize (operator: BinaryOperator): void {
+ this.operator = operator;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.functionExpressionNode(
+ [
+ NodeFactory.identifierNode('x'),
+ NodeFactory.identifierNode('y')
+ ],
+ NodeFactory.blockStatementNode([
+ NodeFactory.returnStatementNode(
+ NodeFactory.binaryExpressionNode(
+ this.operator,
+ NodeFactory.identifierNode('x'),
+ NodeFactory.identifierNode('y')
+ )
+ )
+ ])
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts
new file mode 100644
index 0000000..d774a9c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts
@@ -0,0 +1,153 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { StringSeparator } from '../../enums/StringSeparator';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class BlockStatementControlFlowFlatteningNode extends AbstractCustomNode {
+ /**
+ * @type {ESTree.Statement[]}
+ */
+ @initializable()
+ private blockStatementBody!: ESTree.Statement[];
+
+ /**
+ * @type {number[]}
+ */
+ @initializable()
+ private originalKeysIndexesInShuffledArray!: number[];
+
+ /**
+ * @type {number[]}
+ */
+ @initializable()
+ private shuffledKeys!: number[];
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {Statement[]} blockStatementBody
+ * @param {number[]} shuffledKeys
+ * @param {number[]} originalKeysIndexesInShuffledArray
+ */
+ public initialize (
+ blockStatementBody: ESTree.Statement[],
+ shuffledKeys: number[],
+ originalKeysIndexesInShuffledArray: number[]
+ ): void {
+ this.blockStatementBody = blockStatementBody;
+ this.shuffledKeys = shuffledKeys;
+ this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const controllerIdentifierName: string = this.randomGenerator.getRandomString(6);
+ const indexIdentifierName: string = this.randomGenerator.getRandomString(6);
+
+ const structure: ESTree.BlockStatement = NodeFactory.blockStatementNode([
+ NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(controllerIdentifierName),
+ NodeFactory.callExpressionNode(
+ NodeFactory.memberExpressionNode(
+ NodeFactory.literalNode(
+ this.originalKeysIndexesInShuffledArray.join(StringSeparator.VerticalLine)
+ ),
+ NodeFactory.identifierNode('split')
+ ),
+ [
+ NodeFactory.literalNode(StringSeparator.VerticalLine)
+ ]
+ )
+ )
+ ],
+ 'const'
+ ),
+ NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(indexIdentifierName),
+ NodeFactory.literalNode(0)
+ )
+ ],
+ 'let'
+ ),
+ NodeFactory.whileStatementNode(
+ NodeFactory.literalNode(true),
+ NodeFactory.blockStatementNode([
+ NodeFactory.switchStatementNode(
+ NodeFactory.memberExpressionNode(
+ NodeFactory.identifierNode(controllerIdentifierName),
+ NodeFactory.updateExpressionNode(
+ '++',
+ NodeFactory.identifierNode(indexIdentifierName)
+ ),
+ true
+ ),
+ this.shuffledKeys.map((key: number, index: number) => {
+ const statement: ESTree.Statement = this.blockStatementBody[key];
+ const consequent: ESTree.Statement[] = [statement];
+
+ /**
+ * We shouldn't add continue statement after return statement
+ * to prevent `unreachable code after return statement` warnings
+ */
+ if (!NodeGuards.isReturnStatementNode(statement)) {
+ consequent.push(NodeFactory.continueStatement());
+ }
+
+ return NodeFactory.switchCaseNode(
+ NodeFactory.literalNode(String(index)),
+ consequent
+ );
+ })
+ ),
+ NodeFactory.breakStatement()
+ ])
+ )
+ ]);
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts
new file mode 100644
index 0000000..79e326e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts
@@ -0,0 +1,88 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class CallExpressionFunctionNode extends AbstractCustomNode {
+ /**
+ * @type {(ESTree.Expression | ESTree.SpreadElement)[]}
+ */
+ @initializable()
+ private expressionArguments!: (ESTree.Expression | ESTree.SpreadElement)[];
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {(Expression | SpreadElement)[]} expressionArguments
+ */
+ public initialize (expressionArguments: (ESTree.Expression | ESTree.SpreadElement)[]): void {
+ this.expressionArguments = expressionArguments;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const calleeIdentifier: ESTree.Identifier = NodeFactory.identifierNode('callee');
+ const params: ESTree.Identifier[] = [];
+ const argumentsLength: number = this.expressionArguments.length;
+
+ for (let i: number = 0; i < argumentsLength; i++) {
+ params.push(NodeFactory.identifierNode(`param${i + 1}`));
+ }
+
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.functionExpressionNode(
+ [
+ calleeIdentifier,
+ ...params
+ ],
+ NodeFactory.blockStatementNode([
+ NodeFactory.returnStatementNode(
+ NodeFactory.callExpressionNode(
+ calleeIdentifier,
+ params
+ )
+ )
+ ])
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts
new file mode 100644
index 0000000..a10f142
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts
@@ -0,0 +1,78 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import type { LogicalOperator } from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class LogicalExpressionFunctionNode extends AbstractCustomNode {
+ /**
+ * @type {LogicalOperator}
+ */
+ private operator!: LogicalOperator;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {LogicalOperator} operator
+ */
+ public initialize (operator: LogicalOperator): void {
+ this.operator = operator;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.functionExpressionNode(
+ [
+ NodeFactory.identifierNode('x'),
+ NodeFactory.identifierNode('y')
+ ],
+ NodeFactory.blockStatementNode([
+ NodeFactory.returnStatementNode(
+ NodeFactory.logicalExpressionNode(
+ this.operator,
+ NodeFactory.identifierNode('x'),
+ NodeFactory.identifierNode('y')
+ )
+ )
+ ])
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts
new file mode 100644
index 0000000..936cd42
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts
@@ -0,0 +1,62 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+
+@injectable()
+export class StringLiteralNode extends AbstractCustomNode {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private literalValue!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} literalValue
+ */
+ public initialize (literalValue: string): void {
+ this.literalValue = literalValue;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.literalNode(this.literalValue)
+ );
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts
new file mode 100644
index 0000000..eba9f6a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts
@@ -0,0 +1,105 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import type * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../../AbstractCustomNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class CallExpressionControlFlowStorageCallNode extends AbstractCustomNode {
+ /**
+ * @type {Expression}
+ */
+ @initializable()
+ private callee!: ESTree.Expression;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageKey!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageName!: string;
+
+ /**
+ * @type {(ESTree.Expression | ESTree.SpreadElement)[]}
+ */
+ @initializable()
+ private expressionArguments!: (ESTree.Expression | ESTree.SpreadElement)[];
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} controlFlowStorageName
+ * @param {string} controlFlowStorageKey
+ * @param {Expression} callee
+ * @param {(Expression | SpreadElement)[]} expressionArguments
+ */
+ public initialize (
+ controlFlowStorageName: string,
+ controlFlowStorageKey: string,
+ callee: ESTree.Expression,
+ expressionArguments: (ESTree.Expression | ESTree.SpreadElement)[]
+ ): void {
+ this.controlFlowStorageName = controlFlowStorageName;
+ this.controlFlowStorageKey = controlFlowStorageKey;
+ this.callee = callee;
+ this.expressionArguments = expressionArguments;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.callExpressionNode(
+ NodeFactory.memberExpressionNode(
+ NodeFactory.identifierNode(this.controlFlowStorageName),
+ NodeFactory.identifierNode(this.controlFlowStorageKey)
+ ),
+ [
+ this.callee,
+ ...this.expressionArguments
+ ]
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts
new file mode 100644
index 0000000..9fed22c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts
@@ -0,0 +1,91 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../../AbstractCustomNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class ControlFlowStorageNode extends AbstractCustomNode {
+ /**
+ * @type {TControlFlowStorage}
+ */
+ @initializable()
+ private controlFlowStorage!: TControlFlowStorage;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {TControlFlowStorage} controlFlowStorage
+ */
+ public initialize (controlFlowStorage: TControlFlowStorage): void {
+ this.controlFlowStorage = controlFlowStorage;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const propertyNodes: ESTree.Property[] = Array
+ .from<[string, ICustomNode]>(this.controlFlowStorage.getStorage())
+ .map(([key, value]: [string, ICustomNode]) => {
+ const node: ESTree.Node = value.getNode()[0];
+
+ if (!NodeGuards.isExpressionStatementNode(node)) {
+ throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!');
+ }
+
+ return NodeFactory.propertyNode(
+ NodeFactory.identifierNode(key),
+ node.expression
+ );
+ });
+
+ let structure: ESTree.Node = NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),
+ NodeFactory.objectExpressionNode(propertyNodes)
+ )
+ ],
+ 'const'
+ );
+
+ structure = NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts
new file mode 100644
index 0000000..f0ce121
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts
@@ -0,0 +1,103 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import type { Expression } from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../../AbstractCustomNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class ExpressionWithOperatorControlFlowStorageCallNode extends AbstractCustomNode {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageKey!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageName!: string;
+
+ /**
+ * @type {Expression}
+ */
+ private leftValue!: Expression;
+
+ /**
+ * @type {ESTree.Expression}
+ */
+ private rightValue!: Expression;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} controlFlowStorageName
+ * @param {string} controlFlowStorageKey
+ * @param {Expression} leftValue
+ * @param {Expression} rightValue
+ */
+ public initialize (
+ controlFlowStorageName: string,
+ controlFlowStorageKey: string,
+ leftValue: Expression,
+ rightValue: Expression,
+ ): void {
+ this.controlFlowStorageName = controlFlowStorageName;
+ this.controlFlowStorageKey = controlFlowStorageKey;
+ this.leftValue = leftValue;
+ this.rightValue = rightValue;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.callExpressionNode(
+ NodeFactory.memberExpressionNode(
+ NodeFactory.identifierNode(this.controlFlowStorageName),
+ NodeFactory.identifierNode(this.controlFlowStorageKey)
+ ),
+ [
+ this.leftValue,
+ this.rightValue
+ ]
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts
new file mode 100644
index 0000000..cb18049
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts
@@ -0,0 +1,79 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../../../decorators/Initializable';
+
+import { AbstractCustomNode } from '../../AbstractCustomNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class StringLiteralControlFlowStorageCallNode extends AbstractCustomNode {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageKey!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private controlFlowStorageName!: string;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} controlFlowStorageName
+ * @param {string} controlFlowStorageKey
+ */
+ public initialize (
+ controlFlowStorageName: string,
+ controlFlowStorageKey: string
+ ): void {
+ this.controlFlowStorageName = controlFlowStorageName;
+ this.controlFlowStorageKey = controlFlowStorageKey;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.memberExpressionNode(
+ NodeFactory.identifierNode(this.controlFlowStorageName),
+ NodeFactory.identifierNode(this.controlFlowStorageKey)
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts
new file mode 100644
index 0000000..c7884f1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts
@@ -0,0 +1,102 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import type { BinaryOperator, BlockStatement } from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class BlockStatementDeadCodeInjectionNode extends AbstractCustomNode {
+ /**
+ * @type {BlockStatement}
+ */
+ private blockStatementNode!: BlockStatement;
+
+ /**
+ * @type {BlockStatement}
+ */
+ private deadCodeInjectionRootAstHostNode!: BlockStatement;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @param {BlockStatement} deadCodeInjectionRootAstHostNode
+ */
+ public initialize (
+ blockStatementNode: BlockStatement,
+ deadCodeInjectionRootAstHostNode: BlockStatement
+ ): void {
+ this.blockStatementNode = blockStatementNode;
+ this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode;
+ }
+
+ /**
+ * Have to override parent method to prevent a change of kinds of variables
+ *
+ * @returns {TStatement[]}
+ */
+ public getNode (): TStatement[] {
+ return this.getNodeStructure();
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const random1: boolean = this.randomGenerator.getMathRandom() > 0.5;
+ const random2: boolean = this.randomGenerator.getMathRandom() > 0.5;
+
+ const operator: BinaryOperator = random1 ? '===' : '!==';
+ const leftString: string = this.randomGenerator.getRandomString(5);
+ const rightString: string = random2 ? leftString : this.randomGenerator.getRandomString(5);
+
+ const [consequent, alternate]: [BlockStatement, BlockStatement] = random1 === random2
+ ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode]
+ : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode];
+
+ const structure: BlockStatement = NodeFactory.blockStatementNode([
+ NodeFactory.ifStatementNode(
+ NodeFactory.binaryExpressionNode(
+ operator,
+ NodeFactory.literalNode(leftString),
+ NodeFactory.literalNode(rightString)
+ ),
+ consequent,
+ alternate
+ )
+ ]);
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts
new file mode 100644
index 0000000..2e94261
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode.ts
@@ -0,0 +1,79 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+import { TStatement } from '../../types/node/TStatement';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class ObjectExpressionVariableDeclarationHostNode extends AbstractCustomNode {
+ /**
+ * @type {TNodeWithLexicalScope}
+ */
+ private lexicalScopeNode!: TNodeWithLexicalScope;
+ /**
+ * @ type {(Property | SpreadElement)[]}
+ */
+ private properties!: (ESTree.Property | ESTree.SpreadElement)[];
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {(ESTree.Property | ESTree.SpreadElement)[]} properties
+ */
+ public initialize (lexicalScopeNode: TNodeWithLexicalScope, properties: (ESTree.Property | ESTree.SpreadElement)[]): void {
+ this.lexicalScopeNode = lexicalScopeNode;
+ this.properties = properties;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const variableDeclarationName: string = NodeGuards.isProgramNode(this.lexicalScopeNode)
+ ? this.identifierNamesGenerator.generateForGlobalScope()
+ : this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);
+
+ const structure: TStatement = NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(variableDeclarationName),
+ NodeFactory.objectExpressionNode(this.properties)
+ )
+ ],
+ 'const'
+ );
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts
new file mode 100644
index 0000000..eb56201
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/AbstractStringArrayCallNode.ts
@@ -0,0 +1,133 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStringArrayIndexesType } from '../../types/options/TStringArrayIndexesType';
+import { TStringArrayIndexNodeFactory } from '../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory';
+
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+
+import { StringArrayIndexesType } from '../../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+import { StringArrayIndexNode } from '../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode';
+
+import { AbstractCustomNode } from '../AbstractCustomNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeMetadata } from '../../node/NodeMetadata';
+import { NodeUtils } from '../../node/NodeUtils';
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+
+@injectable()
+export abstract class AbstractStringArrayCallNode extends AbstractCustomNode {
+ /**
+ * Max count of root string array calls wrapper parameters
+ *
+ * @type {number}
+ */
+ protected static readonly stringArrayRootCallsWrapperParametersCount: number = 2;
+
+ /**
+ * @type {Map<TStringArrayIndexesType, StringArrayIndexNode>}
+ */
+ private static readonly stringArrayIndexNodesMap: Map<TStringArrayIndexesType, StringArrayIndexNode> = new Map([
+ [StringArrayIndexesType.HexadecimalNumber, StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],
+ [StringArrayIndexesType.HexadecimalNumericString, StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]
+ ]);
+
+ /**
+ * @type {IArrayUtils}
+ */
+ protected readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @type {IStringArrayStorage}
+ */
+ protected readonly stringArrayStorage: IStringArrayStorage;
+
+ /**
+ * @type {TStringArrayIndexNodeFactory}
+ */
+ private readonly stringArrayIndexNodeFactory: TStringArrayIndexNodeFactory;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {TStringArrayIndexNodeFactory} stringArrayIndexNodeFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.Factory__IStringArrayIndexNode)
+ stringArrayIndexNodeFactory: TStringArrayIndexNodeFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ customCodeHelperFormatter,
+ randomGenerator,
+ options
+ );
+
+ this.stringArrayIndexNodeFactory = stringArrayIndexNodeFactory;
+ this.stringArrayStorage = stringArrayStorage;
+ this.arrayUtils = arrayUtils;
+ }
+
+ /**
+ * @param {number} index
+ * @returns {Expression}
+ */
+ protected getStringArrayIndexNode (index: number): ESTree.Expression {
+ const isPositive: boolean = index >= 0;
+ const normalizedIndex: number = Math.abs(index);
+
+ const stringArrayCallsIndexType: TStringArrayIndexesType = this.randomGenerator
+ .getRandomGenerator()
+ .pickone(this.options.stringArrayIndexesType);
+ const stringArrayIndexNodeName: StringArrayIndexNode | null = AbstractStringArrayCallNode.stringArrayIndexNodesMap.get(stringArrayCallsIndexType) ?? null;
+
+ if (!stringArrayIndexNodeName) {
+ throw new Error('Invalid string array index node name');
+ }
+
+ const stringArrayCallIndexNode: ESTree.Expression = this.stringArrayIndexNodeFactory(stringArrayIndexNodeName)
+ .getNode(normalizedIndex);
+
+ NodeMetadata.set(stringArrayCallIndexNode, { replacedLiteral: true });
+
+ const hexadecimalNode: ESTree.Expression = isPositive
+ ? stringArrayCallIndexNode
+ : NodeFactory.unaryExpressionNode(
+ '-',
+ stringArrayCallIndexNode
+ );
+
+ NodeUtils.parentizeAst(hexadecimalNode);
+
+ return hexadecimalNode;
+ }
+
+ /**
+ * @param {string} decodeKey
+ * @returns {Literal}
+ */
+ protected getRc4KeyLiteralNode (decodeKey: string): ESTree.Literal {
+ const rc4KeyLiteralNode: ESTree.Literal = NodeFactory.literalNode(decodeKey);
+
+ NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });
+
+ return rc4KeyLiteralNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayCallNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayCallNode.ts
new file mode 100644
index 0000000..7e5332f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayCallNode.ts
@@ -0,0 +1,182 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+import { TStringArrayIndexNodeFactory } from '../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractStringArrayCallNode } from './AbstractStringArrayCallNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class StringArrayCallNode extends AbstractStringArrayCallNode {
+ /**
+ * @type {string | null}
+ */
+ @initializable()
+ private decodeKey!: string | null;
+
+ /**
+ * @type {number}
+ */
+ @initializable()
+ private index!: number;
+
+ /**
+ * @type {number}
+ */
+ @initializable()
+ private indexShiftAmount!: number;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayCallsWrapperName!: string;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperParameterIndexesData | null}
+ */
+ @initializable()
+ private stringArrayCallsWrapperParameterIndexesData!: IStringArrayScopeCallsWrapperParameterIndexesData | null;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {TStringArrayIndexNodeFactory} stringArrayIndexNodeFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.Factory__IStringArrayIndexNode)
+ stringArrayIndexNodeFactory: TStringArrayIndexNodeFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ stringArrayIndexNodeFactory,
+ customCodeHelperFormatter,
+ stringArrayStorage,
+ arrayUtils,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} stringArrayCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} stringArrayCallsWrapperParameterIndexesData
+ * @param {number} index
+ * @param {number} indexShiftAmount
+ * @param {string | null} decodeKey
+ */
+ public initialize (
+ stringArrayCallsWrapperName: string,
+ stringArrayCallsWrapperParameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ index: number,
+ indexShiftAmount: number,
+ decodeKey: string | null
+ ): void {
+ this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
+ this.stringArrayCallsWrapperParameterIndexesData = stringArrayCallsWrapperParameterIndexesData;
+ this.index = index;
+ this.indexShiftAmount = indexShiftAmount;
+ this.decodeKey = decodeKey;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const resultIndex: number = this.indexShiftAmount + this.index;
+
+ const indexNode: ESTree.Expression = this.getStringArrayIndexNode(resultIndex);
+ const rc4KeyLiteralNode: ESTree.Literal | null = this.decodeKey
+ ? this.getRc4KeyLiteralNode(this.decodeKey)
+ : null;
+
+ // filling call expression arguments with a fake arguments first
+ const callExpressionArgs: ESTree.Expression[] = this.arrayUtils.fillWithRange(
+ !this.stringArrayCallsWrapperParameterIndexesData
+ // root string array calls wrapper
+ ? AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
+ // scope string array calls wrapper
+ : this.options.stringArrayWrappersParametersMaxCount,
+ () => this.getFakeStringArrayIndexNode(resultIndex)
+ );
+
+ callExpressionArgs.splice(
+ this.stringArrayCallsWrapperParameterIndexesData?.valueIndexParameterIndex ?? 0,
+ 1,
+ indexNode
+ );
+
+ if (this.stringArrayCallsWrapperParameterIndexesData) {
+ callExpressionArgs.splice(
+ this.stringArrayCallsWrapperParameterIndexesData.decodeKeyParameterIndex,
+ 1,
+ // use rc4 key literal node if exists or a node with fake string array wrapper index
+ rc4KeyLiteralNode ?? this.getFakeStringArrayIndexNode(resultIndex)
+ );
+ } else if (rc4KeyLiteralNode) {
+ callExpressionArgs.splice(1, 1, rc4KeyLiteralNode);
+ } else {
+ // have to delete element
+ callExpressionArgs.splice(1, 1);
+ }
+
+ const structure: TStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.callExpressionNode(
+ NodeFactory.identifierNode(this.stringArrayCallsWrapperName),
+ callExpressionArgs
+ )
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+
+ /**
+ * @param {number} actualIndex
+ * @returns {Expression}
+ */
+ private getFakeStringArrayIndexNode (actualIndex: number): ESTree.Expression {
+ return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(actualIndex));
+ }
+
+ /**
+ * @param {number} actualIndex
+ * @returns {number}
+ */
+ private getFakeStringArrayIndex (actualIndex: number): number {
+ const stringArrayStorageLength: number = this.stringArrayStorage.getLength();
+
+ const fakeIndexOffset: number = stringArrayStorageLength / 2;
+
+ const minimumIndex: number = actualIndex - fakeIndexOffset;
+ const maximumIndex: number = actualIndex + fakeIndexOffset;
+
+ return this.randomGenerator.getRandomInteger(minimumIndex, maximumIndex);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts
new file mode 100644
index 0000000..730b305
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode.ts
@@ -0,0 +1,231 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+import { TStringArrayIndexNodeFactory } from '../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractStringArrayCallNode } from './AbstractStringArrayCallNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class StringArrayScopeCallsWrapperFunctionNode extends AbstractStringArrayCallNode {
+ /**
+ * @type {number}
+ */
+ @initializable()
+ private shiftedIndex!: number;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private upperStringArrayCallsWrapperName!: string;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperParameterIndexesData}
+ */
+ @initializable()
+ private upperStringArrayCallsWrapperParameterIndexesData!: IStringArrayScopeCallsWrapperParameterIndexesData | null;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayScopeCallsWrapperName!: string;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperParameterIndexesData}
+ */
+ @initializable()
+ private stringArrayScopeCallsWrapperParameterIndexesData!: IStringArrayScopeCallsWrapperParameterIndexesData | null;
+
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {TStringArrayIndexNodeFactory} stringArrayIndexNodeFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.Factory__IStringArrayIndexNode)
+ stringArrayIndexNodeFactory: TStringArrayIndexNodeFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ stringArrayIndexNodeFactory,
+ customCodeHelperFormatter,
+ stringArrayStorage,
+ arrayUtils,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} stringArrayScopeCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} stringArrayScopeCallsWrapperParameterIndexesData
+ * @param {string} upperStringArrayCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} upperStringArrayCallsWrapperParameterIndexesData
+ * @param {number} shiftedIndex
+ */
+ public initialize (
+ stringArrayScopeCallsWrapperName: string,
+ stringArrayScopeCallsWrapperParameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ upperStringArrayCallsWrapperName: string,
+ upperStringArrayCallsWrapperParameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ shiftedIndex: number,
+ ): void {
+ this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;
+ this.stringArrayScopeCallsWrapperParameterIndexesData = stringArrayScopeCallsWrapperParameterIndexesData;
+ this.upperStringArrayCallsWrapperName = upperStringArrayCallsWrapperName;
+ this.upperStringArrayCallsWrapperParameterIndexesData = upperStringArrayCallsWrapperParameterIndexesData;
+ this.shiftedIndex = shiftedIndex;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ // identifiers of function expression parameters
+ // as a temporary names use random strings
+ const stringArrayCallIdentifierNode: ESTree.Identifier = NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
+ const decodeKeyIdentifierNode: ESTree.Identifier = NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
+
+ const stringArrayCallNode: ESTree.Expression = this.getUpperStringArrayCallNode(
+ stringArrayCallIdentifierNode,
+ this.getStringArrayIndexNode(this.shiftedIndex)
+ );
+
+ // stage 1: function expression node parameters
+ // filling all parameters with a fake parameters first
+ const parameters: ESTree.Identifier[] = this.arrayUtils.fillWithRange(
+ !this.stringArrayScopeCallsWrapperParameterIndexesData
+ // root string array calls wrapper
+ ? AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
+ // scope string array calls wrapper
+ : this.options.stringArrayWrappersParametersMaxCount,
+ () => this.getFakeParameterNode()
+ );
+ parameters.splice(
+ this.stringArrayScopeCallsWrapperParameterIndexesData?.valueIndexParameterIndex ?? 0,
+ 1,
+ stringArrayCallIdentifierNode
+ );
+ parameters.splice(
+ this.stringArrayScopeCallsWrapperParameterIndexesData?.decodeKeyParameterIndex ?? 1,
+ 1,
+ decodeKeyIdentifierNode
+ );
+
+ // stage 2: upper string array call expression arguments
+ // filling all call expression arguments with a fake string array calls
+ const callExpressionArgs: ESTree.Expression[] = this.arrayUtils.fillWithRange(
+ !this.upperStringArrayCallsWrapperParameterIndexesData
+ // root string array calls wrapper
+ ? AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount
+ // scope string array calls wrapper
+ : this.options.stringArrayWrappersParametersMaxCount,
+ (index: number) => this.getUpperStringArrayCallNode(
+ parameters[index],
+ this.getFakeUpperStringArrayIndexNode()
+ )
+ );
+
+ callExpressionArgs.splice(
+ this.upperStringArrayCallsWrapperParameterIndexesData?.valueIndexParameterIndex ?? 0,
+ 1,
+ stringArrayCallNode
+ );
+ callExpressionArgs.splice(
+ this.upperStringArrayCallsWrapperParameterIndexesData?.decodeKeyParameterIndex ?? 1,
+ 1,
+ decodeKeyIdentifierNode
+ );
+
+ // stage 3: function expression node
+ const functionExpressionNode: ESTree.FunctionExpression = NodeFactory.functionExpressionNode(
+ parameters,
+ NodeFactory.blockStatementNode([
+ NodeFactory.returnStatementNode(
+ NodeFactory.callExpressionNode(
+ NodeFactory.identifierNode(this.upperStringArrayCallsWrapperName),
+ callExpressionArgs
+ )
+ )
+ ])
+ );
+
+ const structure: TStatement = NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),
+ functionExpressionNode
+ )
+ ],
+ 'const',
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ // stage 4: rename
+ // have to generate names for both parameter and call identifiers
+ for (const parameter of parameters) {
+ parameter.name = this.identifierNamesGenerator.generateForLexicalScope(functionExpressionNode);
+ }
+
+ return [structure];
+ }
+
+ /**
+ * @param {Identifier} indexParameterIdentifierNode
+ * @param {Expression} indexShiftNode
+ * @returns {Expression}
+ */
+ private getUpperStringArrayCallNode (
+ indexParameterIdentifierNode: ESTree.Identifier,
+ indexShiftNode: ESTree.Expression
+ ): ESTree.Expression {
+ return NodeFactory.binaryExpressionNode(
+ '-',
+ indexParameterIdentifierNode,
+ indexShiftNode
+ );
+ }
+
+ /**
+ * @returns {Identifier}
+ */
+ private getFakeParameterNode (): ESTree.Identifier {
+ return NodeFactory.identifierNode(this.randomGenerator.getRandomString(6));
+ }
+
+ /**
+ * @returns {Expression}
+ */
+ private getFakeUpperStringArrayIndexNode (): ESTree.Expression {
+ return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0, 500));
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts
new file mode 100644
index 0000000..80af87a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode.ts
@@ -0,0 +1,96 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStatement } from '../../types/node/TStatement';
+import { TStringArrayIndexNodeFactory } from '../../types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { ICustomCodeHelperFormatter } from '../../interfaces/custom-code-helpers/ICustomCodeHelperFormatter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+
+import { initializable } from '../../decorators/Initializable';
+
+import { AbstractStringArrayCallNode } from './AbstractStringArrayCallNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class StringArrayScopeCallsWrapperVariableNode extends AbstractStringArrayCallNode {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayCallsWrapperName!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private stringArrayScopeCallsWrapperName!: string;
+
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {TStringArrayIndexNodeFactory} stringArrayIndexNodeFactory
+ * @param {ICustomCodeHelperFormatter} customCodeHelperFormatter
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.Factory__IStringArrayIndexNode)
+ stringArrayIndexNodeFactory: TStringArrayIndexNodeFactory,
+ @inject(ServiceIdentifiers.ICustomCodeHelperFormatter) customCodeHelperFormatter: ICustomCodeHelperFormatter,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ ) {
+ super(
+ identifierNamesGeneratorFactory,
+ stringArrayIndexNodeFactory,
+ customCodeHelperFormatter,
+ stringArrayStorage,
+ arrayUtils,
+ randomGenerator,
+ options
+ );
+ }
+
+ /**
+ * @param {string} stringArrayScopeCallsWrapperName
+ * @param {string} stringArrayCallsWrapperName
+ */
+ public initialize (
+ stringArrayScopeCallsWrapperName: string,
+ stringArrayCallsWrapperName: string
+ ): void {
+ this.stringArrayScopeCallsWrapperName = stringArrayScopeCallsWrapperName;
+ this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
+ }
+
+ /**
+ * @returns {TStatement[]}
+ */
+ protected getNodeStructure (): TStatement[] {
+ const structure: TStatement = NodeFactory.variableDeclarationNode(
+ [
+ NodeFactory.variableDeclaratorNode(
+ NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperName),
+ NodeFactory.identifierNode(this.stringArrayCallsWrapperName)
+ )
+ ],
+ 'const',
+ );
+
+ NodeUtils.parentizeAst(structure);
+
+ return [structure];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts
new file mode 100644
index 0000000..c08535f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/AbstractStringArrayIndexNode.ts
@@ -0,0 +1,40 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+import { IStringArrayIndexNode } from '../../../interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+@injectable()
+export abstract class AbstractStringArrayIndexNode implements IStringArrayIndexNode {
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {number} index
+ * @returns {Expression}
+ */
+ public abstract getNode (index: number): ESTree.Expression;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts
new file mode 100644
index 0000000..3889659
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumberIndexNode.ts
@@ -0,0 +1,36 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { AbstractStringArrayIndexNode } from './AbstractStringArrayIndexNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NumberUtils } from '../../../utils/NumberUtils';
+
+@injectable()
+export class StringArrayHexadecimalNumberIndexNode extends AbstractStringArrayIndexNode {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {number} index
+ * @returns {Expression}
+ */
+ public getNode (index: number): ESTree.Expression {
+ const hexadecimalIndex: string = NumberUtils.toHex(index);
+
+ return NodeFactory.literalNode(index, hexadecimalIndex);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts
new file mode 100644
index 0000000..c014e16
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/custom-nodes/string-array-nodes/string-array-index-nodes/StringArrayHexadecimalNumericStringIndexNode.ts
@@ -0,0 +1,36 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { AbstractStringArrayIndexNode } from './AbstractStringArrayIndexNode';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NumberUtils } from '../../../utils/NumberUtils';
+
+@injectable()
+export class StringArrayHexadecimalNumericStringIndexNode extends AbstractStringArrayIndexNode {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {number} index
+ * @returns {Expression}
+ */
+ public getNode (index: number): ESTree.Expression {
+ const hexadecimalIndex: string = NumberUtils.toHex(index);
+
+ return NodeFactory.literalNode(hexadecimalIndex);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/declarations/ESTree.d.ts b/src/node_modules/javascript-obfuscator/src/declarations/ESTree.d.ts
new file mode 100644
index 0000000..feb2f82
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/declarations/ESTree.d.ts
@@ -0,0 +1,45 @@
+/* eslint-disable */
+
+import * as acorn from 'acorn';
+import * as escodegen from '@javascript-obfuscator/escodegen';
+import * as eslintScope from 'eslint-scope';
+
+declare module 'estree' {
+ export interface BaseNodeMetadata {
+ forceTransformNode?: boolean;
+ ignoredNode?: boolean;
+ }
+
+ export interface Comment {
+ start: number;
+ end: number;
+ loc?: acorn.SourceLocation;
+ }
+
+ export interface LiteralNodeMetadata extends BaseNodeMetadata {
+ replacedLiteral?: boolean;
+ }
+
+ interface BaseNode {
+ metadata?: BaseNodeMetadata;
+ parentNode?: Node;
+ }
+
+ interface Program extends BaseNode {
+ scope?: eslintScope.Scope | null;
+ }
+
+ interface SimpleLiteral extends BaseNode {
+ metadata?: LiteralNodeMetadata;
+ 'x-verbatim-property'?: escodegen.XVerbatimProperty;
+ }
+
+ interface BigIntLiteral extends SimpleLiteral {
+ bigint: string;
+ }
+
+ interface RegExpLiteral extends BaseNode {
+ metadata?: LiteralNodeMetadata;
+ 'x-verbatim-property'?: escodegen.XVerbatimProperty;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/declarations/acorn-import-meta.d.ts b/src/node_modules/javascript-obfuscator/src/declarations/acorn-import-meta.d.ts
new file mode 100644
index 0000000..dcdf0fc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/declarations/acorn-import-meta.d.ts
@@ -0,0 +1,7 @@
+declare module 'acorn-import-meta' {
+ import * as acorn from 'acorn';
+
+ function acornImportMeta (BaseParser: typeof acorn.Parser): typeof acorn.Parser;
+
+ export = acornImportMeta;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/declarations/environment.d.ts b/src/node_modules/javascript-obfuscator/src/declarations/environment.d.ts
new file mode 100644
index 0000000..15f603b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/declarations/environment.d.ts
@@ -0,0 +1,8 @@
+/* eslint-disable */
+
+declare namespace NodeJS {
+ export interface ProcessEnv {
+ VERSION?: string;
+ BUILD_TIMESTAMP?: string;
+ }
+} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/src/declarations/escodegen.d.ts b/src/node_modules/javascript-obfuscator/src/declarations/escodegen.d.ts
new file mode 100644
index 0000000..300b459
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/declarations/escodegen.d.ts
@@ -0,0 +1,24 @@
+/* eslint-disable */
+
+declare module '@javascript-obfuscator/escodegen' {
+ import * as ESTree from 'estree';
+ import * as escodegen from 'escodegen';
+ export * from 'escodegen';
+
+ export interface IGeneratorOutput {
+ code: string;
+ map: string;
+ }
+
+ export interface XVerbatimProperty {
+ content?: string;
+ precedence: escodegen.Precedence;
+ }
+
+ /**
+ * @param ast
+ * @param options
+ * @returns IGeneratorOutput
+ */
+ export function generate (ast: ESTree.Node, options?: escodegen.GenerateOptions): IGeneratorOutput;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/declarations/eslint-scope.d.ts b/src/node_modules/javascript-obfuscator/src/declarations/eslint-scope.d.ts
new file mode 100644
index 0000000..7f9e474
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/declarations/eslint-scope.d.ts
@@ -0,0 +1,14 @@
+/* eslint-disable */
+
+import * as eslint from 'eslint';
+import * as eslintScope from 'eslint-scope';
+
+declare module 'eslint-scope' {
+ interface Variable {
+ scope: Scope;
+ }
+
+ interface Definition {
+ type: eslint.Scope.Definition['type'];
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/decorators/Initializable.ts b/src/node_modules/javascript-obfuscator/src/decorators/Initializable.ts
new file mode 100644
index 0000000..251b421
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/decorators/Initializable.ts
@@ -0,0 +1,177 @@
+import { IInitializable } from '../interfaces/IInitializable';
+
+const defaultDescriptor: PropertyDescriptor = {
+ configurable: true,
+ enumerable: true
+};
+const initializedTargetMetadataKey: string = '_initialized';
+const initializablePropertiesSetMetadataKey: string = '_initializablePropertiesSet';
+const wrappedMethodsSetMetadataKey: string = '_wrappedMethodsSet';
+const constructorMethodName: string = 'constructor';
+
+/**
+ * @param {string} initializeMethodName
+ * @returns {(target: IInitializable, propertyKey: (string | symbol)) => any}
+ */
+export function initializable (
+ initializeMethodName: string = 'initialize'
+): (target: IInitializable, propertyKey: string | symbol) => any {
+ const decoratorName: string = Object.keys(this)[0];
+
+ return (target: IInitializable, propertyKey: string | symbol): PropertyDescriptor => {
+ const initializeMethod: Function = target[initializeMethodName];
+
+ if (!initializeMethod || typeof initializeMethod !== 'function') {
+ throw new Error(`\`${initializeMethodName}\` method with initialization logic not ` +
+ `found. \`@${decoratorName}\` decorator requires \`${initializeMethodName}\` method`);
+ }
+
+ /**
+ * Stage #1: initialize target metadata
+ */
+ initializeTargetMetadata(initializedTargetMetadataKey, false, target);
+ initializeTargetMetadata(initializablePropertiesSetMetadataKey, new Set(), target);
+ initializeTargetMetadata(wrappedMethodsSetMetadataKey, new Set(), target);
+
+ /**
+ * Stage #2: wrap target methods
+ */
+ wrapTargetMethodsInInitializedCheck(target, initializeMethodName);
+ wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey);
+
+ /**
+ * Stage #3: wrap target properties
+ */
+ return wrapInitializableProperty(target, propertyKey);
+ };
+}
+
+/**
+ * @param {string} metadataKey
+ * @param metadataValue
+ * @param {IInitializable} target
+ */
+function initializeTargetMetadata (metadataKey: string, metadataValue: any, target: IInitializable): void {
+ const hasInitializedMetadata: boolean = Reflect.hasMetadata(metadataKey, target);
+
+ if (!hasInitializedMetadata) {
+ Reflect.defineMetadata(metadataKey, metadataValue, target);
+ }
+}
+
+/**
+ * Wraps all target methods with additional logic that check that this methods will called after `initialize` method
+ *
+ * @param {IInitializable} target
+ * @param {string} initializeMethodName
+ */
+function wrapTargetMethodsInInitializedCheck (target: IInitializable, initializeMethodName: string): void {
+ const ownPropertyNames: string[] = Object.getOwnPropertyNames(target);
+ const prohibitedPropertyNames: Set<string> = new Set([initializeMethodName, constructorMethodName]);
+
+ ownPropertyNames.forEach((propertyName: string) => {
+ const initializablePropertiesSet: Set <string | symbol> = Reflect
+ .getMetadata(initializablePropertiesSetMetadataKey, target);
+ const wrappedMethodsSet: Set <string | symbol> = Reflect
+ .getMetadata(wrappedMethodsSetMetadataKey, target);
+
+ const isProhibitedPropertyName: boolean = prohibitedPropertyNames.has(propertyName)
+ || initializablePropertiesSet.has(propertyName)
+ || wrappedMethodsSet.has(propertyName);
+
+ if (isProhibitedPropertyName) {
+ return;
+ }
+
+ const targetProperty: IInitializable[keyof IInitializable] = target[propertyName];
+
+ if (typeof targetProperty !== 'function') {
+ return;
+ }
+
+ const methodDescriptor: PropertyDescriptor = Object
+ .getOwnPropertyDescriptor(target, propertyName) ?? defaultDescriptor;
+ const originalMethod: Function = methodDescriptor.value;
+
+ Object.defineProperty(target, propertyName, {
+ ...methodDescriptor,
+ value (): void {
+ if (!Reflect.getMetadata(initializedTargetMetadataKey, this)) {
+ throw new Error(`Class should be initialized with \`${initializeMethodName}()\` method`);
+ }
+
+ return originalMethod.apply(this, arguments);
+ }
+ });
+
+ wrappedMethodsSet.add(propertyName);
+ });
+}
+
+/**
+ * Wraps `initialize` method with additional logic to check that `initialized` properties will set
+ *
+ * @param {IInitializable} target
+ * @param {string} initializeMethodName
+ * @param {string | symbol} propertyKey
+ */
+function wrapInitializeMethodInInitializeCheck (
+ target: IInitializable,
+ initializeMethodName: string,
+ propertyKey: string | symbol
+): void {
+ const methodDescriptor: PropertyDescriptor = Object
+ .getOwnPropertyDescriptor(target, initializeMethodName) ?? defaultDescriptor;
+ const originalMethod: Function = methodDescriptor.value;
+
+ Object.defineProperty(target, initializeMethodName, {
+ ...methodDescriptor,
+ value: function (): typeof originalMethod {
+ /**
+ * should define metadata before `initialize` method call,
+ * because of cases when other methods will called inside `initialize` method
+ */
+ Reflect.defineMetadata(initializedTargetMetadataKey, true, this);
+
+ const result: typeof originalMethod = originalMethod.apply(this, arguments);
+
+ if (this[propertyKey]) {}
+
+ return result;
+ }
+ });
+}
+
+/**
+ * Wraps initializable property in additional checks
+ *
+ * @param {IInitializable} target
+ * @param {string | symbol} propertyKey
+ * @returns {PropertyDescriptor}
+ */
+function wrapInitializableProperty (target: IInitializable, propertyKey: string | symbol): PropertyDescriptor {
+ const initializablePropertiesSet: Set <string | symbol> = Reflect
+ .getMetadata(initializablePropertiesSetMetadataKey, target);
+
+ initializablePropertiesSet.add(propertyKey);
+
+ const initializablePropertyMetadataKey: string = `_${propertyKey.toString()}`;
+ const propertyDescriptor: PropertyDescriptor = Object
+ .getOwnPropertyDescriptor(target, initializablePropertyMetadataKey) ?? defaultDescriptor;
+
+ Object.defineProperty(target, propertyKey, {
+ ...propertyDescriptor,
+ get: function (): any {
+ if (this[initializablePropertyMetadataKey] === undefined) {
+ throw new Error(`Property \`${propertyKey.toString()}\` is not initialized! Initialize it first!`);
+ }
+
+ return this[initializablePropertyMetadataKey];
+ },
+ set: function (newVal: any): void {
+ this[initializablePropertyMetadataKey] = newVal;
+ }
+ });
+
+ return propertyDescriptor;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/ObfuscationTarget.ts b/src/node_modules/javascript-obfuscator/src/enums/ObfuscationTarget.ts
new file mode 100644
index 0000000..b4fe42e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/ObfuscationTarget.ts
@@ -0,0 +1,11 @@
+import { Utils } from '../utils/Utils';
+
+export const ObfuscationTarget: Readonly<{
+ Browser: 'browser';
+ BrowserNoEval: 'browser-no-eval';
+ Node: 'node';
+}> = Utils.makeEnum({
+ Browser: 'browser',
+ BrowserNoEval: 'browser-no-eval',
+ Node: 'node'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/StringSeparator.ts b/src/node_modules/javascript-obfuscator/src/enums/StringSeparator.ts
new file mode 100644
index 0000000..0b9a976
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/StringSeparator.ts
@@ -0,0 +1,5 @@
+export enum StringSeparator {
+ Comma = ',',
+ Dot = '.',
+ VerticalLine = '|'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts
new file mode 100644
index 0000000..2652e41
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/analyzers/calls-graph-analyzer/CalleeDataExtractor.ts
@@ -0,0 +1,5 @@
+export enum CalleeDataExtractor {
+ FunctionDeclarationCalleeDataExtractor = 'FunctionDeclarationCalleeDataExtractor',
+ FunctionExpressionCalleeDataExtractor = 'FunctionExpressionCalleeDataExtractor',
+ ObjectExpressionCalleeDataExtractor = 'ObjectExpressionCalleeDataExtractor',
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformationStage.ts b/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformationStage.ts
new file mode 100644
index 0000000..9326124
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformationStage.ts
@@ -0,0 +1,4 @@
+export enum CodeTransformationStage {
+ PreparingTransformers = 'PreparingTransformers',
+ FinalizingTransformers = 'FinalizingTransformers',
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformer.ts
new file mode 100644
index 0000000..75b358e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/code-transformers/CodeTransformer.ts
@@ -0,0 +1,3 @@
+export enum CodeTransformer {
+ HashbangOperatorTransformer = 'HashbangOperatorTransformer'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelper.ts
new file mode 100644
index 0000000..536892a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelper.ts
@@ -0,0 +1,14 @@
+export enum CustomCodeHelper {
+ CallsControllerFunction = 'CallsControllerFunction',
+ ConsoleOutputDisable = 'ConsoleOutputDisable',
+ DebugProtectionFunctionCall = 'DebugProtectionFunctionCall',
+ DebugProtectionFunctionInterval = 'DebugProtectionFunctionInterval',
+ DebugProtectionFunction = 'DebugProtectionFunction',
+ DomainLock = 'DomainLock',
+ SelfDefendingUnicode = 'SelfDefendingUnicode',
+ StringArray = 'StringArray',
+ StringArrayCallsWrapper = 'StringArrayCallsWrapper',
+ StringArrayCallsWrapperBase64 = 'StringArrayCallsWrapperBase64',
+ StringArrayCallsWrapperRc4 = 'StringArrayCallsWrapperRc4',
+ StringArrayRotateFunction = 'StringArrayRotateFunction'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelperGroup.ts
new file mode 100644
index 0000000..b3099da
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-code-helpers/CustomCodeHelperGroup.ts
@@ -0,0 +1,7 @@
+export enum CustomCodeHelperGroup {
+ ConsoleOutput = 'ConsoleOutput',
+ DebugProtection = 'DebugProtection',
+ DomainLock = 'DomainLock',
+ SelfDefending = 'SelfDefending',
+ StringArray = 'StringArray'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ControlFlowCustomNode.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ControlFlowCustomNode.ts
new file mode 100644
index 0000000..ae4310b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ControlFlowCustomNode.ts
@@ -0,0 +1,11 @@
+export enum ControlFlowCustomNode {
+ BinaryExpressionFunctionNode = 'BinaryExpressionFunctionNode',
+ BlockStatementControlFlowFlatteningNode = 'BlockStatementControlFlowFlatteningNode',
+ CallExpressionControlFlowStorageCallNode = 'CallExpressionControlFlowStorageCallNode',
+ CallExpressionFunctionNode = 'CallExpressionFunctionNode',
+ ControlFlowStorageNode = 'ControlFlowStorageNode',
+ ExpressionWithOperatorControlFlowStorageCallNode = 'ExpressionWithOperatorControlFlowStorageCallNode',
+ LogicalExpressionFunctionNode = 'LogicalExpressionFunctionNode',
+ StringLiteralControlFlowStorageCallNode = 'StringLiteralControlFlowStorageCallNode',
+ StringLiteralNode = 'StringLiteralNode'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts
new file mode 100644
index 0000000..dea3aac
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts
@@ -0,0 +1,3 @@
+export enum DeadCodeInjectionCustomNode {
+ BlockStatementDeadCodeInjectionNode = 'BlockStatementDeadCodeInjectionNode'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts
new file mode 100644
index 0000000..98daa53
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode.ts
@@ -0,0 +1,4 @@
+export enum ObjectExpressionKeysTransformerCustomNode {
+ ObjectExpressionVariableDeclarationHostNode =
+ 'ObjectExpressionVariableDeclarationHostNode'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/StringArrayCustomNode.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/StringArrayCustomNode.ts
new file mode 100644
index 0000000..35f1d83
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/StringArrayCustomNode.ts
@@ -0,0 +1,5 @@
+export enum StringArrayCustomNode {
+ StringArrayCallNode = 'StringArrayCallNode',
+ StringArrayScopeCallsWrapperFunctionNode = 'StringArrayScopeCallsWrapperFunctionNode',
+ StringArrayScopeCallsWrapperVariableNode = 'StringArrayScopeCallsWrapperVariableNode'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts
new file mode 100644
index 0000000..824f9d8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode.ts
@@ -0,0 +1,4 @@
+export enum StringArrayIndexNode {
+ StringArrayHexadecimalNumberIndexNode = 'StringArrayHexadecimalNumberIndexNode',
+ StringArrayHexadecimalNumericStringIndexNode = 'StringArrayHexadecimalNumericStringIndexNode'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/event-emitters/ObfuscationEvent.ts b/src/node_modules/javascript-obfuscator/src/enums/event-emitters/ObfuscationEvent.ts
new file mode 100644
index 0000000..2a3b8b0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/event-emitters/ObfuscationEvent.ts
@@ -0,0 +1,4 @@
+export enum ObfuscationEvent {
+ AfterObfuscation = 'afterObfuscation',
+ BeforeObfuscation = 'beforeObfuscation'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts
new file mode 100644
index 0000000..5fc4e37
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts
@@ -0,0 +1,13 @@
+import { Utils } from '../../../utils/Utils';
+
+export const IdentifierNamesGenerator: Readonly<{
+ DictionaryIdentifierNamesGenerator: 'dictionary';
+ HexadecimalIdentifierNamesGenerator: 'hexadecimal';
+ MangledIdentifierNamesGenerator: 'mangled';
+ MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled';
+}> = Utils.makeEnum({
+ DictionaryIdentifierNamesGenerator: 'dictionary',
+ HexadecimalIdentifierNamesGenerator: 'hexadecimal',
+ MangledIdentifierNamesGenerator: 'mangled',
+ MangledShuffledIdentifierNamesGenerator: 'mangled-shuffled'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingMessage.ts b/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingMessage.ts
new file mode 100644
index 0000000..2a2ebe6
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingMessage.ts
@@ -0,0 +1,9 @@
+export enum LoggingMessage {
+ EmptySourceCode = 'Empty source code. Obfuscation canceled...',
+ ObfuscationCompleted = 'Obfuscation completed. Total time: %s sec.',
+ ObfuscationStarted = 'Obfuscation started...',
+ RandomGeneratorSeed = 'Random generator seed: %s...',
+ CodeTransformationStage = 'Code transformation stage: %s...',
+ NodeTransformationStage = 'AST transformation stage: %s...',
+ Version = 'Version: %s'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingPrefix.ts b/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingPrefix.ts
new file mode 100644
index 0000000..ba7184a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/logger/LoggingPrefix.ts
@@ -0,0 +1,4 @@
+export enum LoggingPrefix {
+ Base = '[javascript-obfuscator]',
+ CLI = '[javascript-obfuscator-cli]'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformationStage.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformationStage.ts
new file mode 100644
index 0000000..4512371
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformationStage.ts
@@ -0,0 +1,12 @@
+export enum NodeTransformationStage {
+ ControlFlowFlattening = 'ControlFlowFlattening',
+ Converting = 'Converting',
+ DeadCodeInjection = 'DeadCodeInjection',
+ Finalizing = 'Finalizing',
+ Initializing = 'Initializing',
+ Preparing = 'Preparing',
+ RenameIdentifiers = 'RenameIdentifiers',
+ RenameProperties = 'RenameProperties',
+ Simplifying = 'Simplifying',
+ StringArray = 'StringArray'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformer.ts
new file mode 100644
index 0000000..4177acd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/NodeTransformer.ts
@@ -0,0 +1,34 @@
+export enum NodeTransformer {
+ BooleanLiteralTransformer = 'BooleanLiteralTransformer',
+ BlockStatementControlFlowTransformer = 'BlockStatementControlFlowTransformer',
+ BlockStatementSimplifyTransformer = 'BlockStatementSimplifyTransformer',
+ CommentsTransformer = 'CommentsTransformer',
+ CustomCodeHelpersTransformer = 'CustomCodeHelpersTransformer',
+ DeadCodeInjectionTransformer = 'DeadCodeInjectionTransformer',
+ EscapeSequenceTransformer = 'EscapeSequenceTransformer',
+ EvalCallExpressionTransformer = 'EvalCallExpressionTransformer',
+ ExportSpecifierTransformer = 'ExportSpecifierTransformer',
+ ExpressionStatementsMergeTransformer = 'ExpressionStatementsMergeTransformer',
+ FunctionControlFlowTransformer = 'FunctionControlFlowTransformer',
+ IfStatementSimplifyTransformer = 'IfStatementSimplifyTransformer',
+ LabeledStatementTransformer = 'LabeledStatementTransformer',
+ MemberExpressionTransformer = 'MemberExpressionTransformer',
+ MetadataTransformer = 'MetadataTransformer',
+ MethodDefinitionTransformer = 'MethodDefinitionTransformer',
+ NumberLiteralTransformer = 'NumberLiteralTransformer',
+ NumberToNumericalExpressionTransformer = 'NumberToNumericalExpressionTransformer',
+ ObfuscatingGuardsTransformer = 'ObfuscatingGuardsTransformer',
+ ObjectExpressionKeysTransformer = 'ObjectExpressionKeysTransformer',
+ ObjectExpressionTransformer = 'ObjectExpressionTransformer',
+ ObjectPatternPropertiesTransformer = 'ObjectPatternPropertiesTransformer',
+ ParentificationTransformer = 'ParentificationTransformer',
+ RenamePropertiesTransformer = 'RenamePropertiesTransformer',
+ ScopeIdentifiersTransformer = 'ScopeIdentifiersTransformer',
+ ScopeThroughIdentifiersTransformer = 'ScopeThroughIdentifiersTransformer',
+ SplitStringTransformer = 'SplitStringTransformer',
+ StringArrayTransformer = 'StringArrayTransformer',
+ StringArrayScopeCallsWrapperTransformer = 'StringArrayScopeCallsWrapperTransformer',
+ TemplateLiteralTransformer = 'TemplateLiteralTransformer',
+ VariableDeclarationsMergeTransformer = 'VariableDeclarationsMergeTransformer',
+ VariablePreserveTransformer = 'VariablePreserveTransformer'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/VisitorDirection.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/VisitorDirection.ts
new file mode 100644
index 0000000..8ea9219
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/VisitorDirection.ts
@@ -0,0 +1,4 @@
+export enum VisitorDirection {
+ Enter = 'enter',
+ Leave = 'leave'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts
new file mode 100644
index 0000000..079ec1d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer.ts
@@ -0,0 +1,6 @@
+export enum ControlFlowReplacer {
+ BinaryExpressionControlFlowReplacer = 'BinaryExpressionControlFlowReplacer',
+ CallExpressionControlFlowReplacer = 'CallExpressionControlFlowReplacer',
+ LogicalExpressionControlFlowReplacer = 'LogicalExpressionControlFlowReplacer',
+ StringLiteralControlFlowReplacer = 'StringLiteralControlFlowReplacer'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts
new file mode 100644
index 0000000..e767da0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor.ts
@@ -0,0 +1,4 @@
+export enum ObjectExpressionExtractor {
+ BasePropertiesExtractor = 'BasePropertiesExtractor',
+ ObjectExpressionToVariableDeclarationExtractor = 'ObjectExpressionToVariableDeclarationExtractor'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts
new file mode 100644
index 0000000..cb9602c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts
@@ -0,0 +1,7 @@
+export enum ObfuscatingGuard {
+ BlackListObfuscatingGuard = 'BlackListObfuscatingGuard',
+ ConditionalCommentObfuscatingGuard = 'ConditionalCommentObfuscatingGuard',
+ ForceTransformStringObfuscatingGuard = 'ForceTransformStringObfuscatingGuard',
+ IgnoredRequireImportObfuscatingGuard = 'IgnoredRequireImportObfuscatingGuard',
+ ReservedStringObfuscatingGuard = 'ReservedStringObfuscatingGuard'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts
new file mode 100644
index 0000000..67e41e5
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayEncoding.ts
@@ -0,0 +1,11 @@
+import { Utils } from '../../../utils/Utils';
+
+export const StringArrayEncoding: Readonly<{
+ None: 'none';
+ Base64: 'base64';
+ Rc4: 'rc4';
+}> = Utils.makeEnum({
+ None: 'none',
+ Base64: 'base64',
+ Rc4: 'rc4'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts
new file mode 100644
index 0000000..c5db8bc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayIndexesType.ts
@@ -0,0 +1,9 @@
+import { Utils } from '../../../utils/Utils';
+
+export const StringArrayIndexesType: Readonly<{
+ HexadecimalNumber: 'hexadecimal-number';
+ HexadecimalNumericString: 'hexadecimal-numeric-string';
+}> = Utils.makeEnum({
+ HexadecimalNumber: 'hexadecimal-number',
+ HexadecimalNumericString: 'hexadecimal-numeric-string'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts
new file mode 100644
index 0000000..8e49b58
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node-transformers/string-array-transformers/StringArrayWrappersType.ts
@@ -0,0 +1,9 @@
+import { Utils } from '../../../utils/Utils';
+
+export const StringArrayWrappersType: Readonly<{
+ Variable: 'variable';
+ Function: 'function';
+}> = Utils.makeEnum({
+ Variable: 'variable',
+ Function: 'function',
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node/NodeType.ts b/src/node_modules/javascript-obfuscator/src/enums/node/NodeType.ts
new file mode 100644
index 0000000..3e5e8ea
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node/NodeType.ts
@@ -0,0 +1,59 @@
+export enum NodeType {
+ ArrayExpression = 'ArrayExpression',
+ ArrayPattern = 'ArrayPattern',
+ ArrowFunctionExpression = 'ArrowFunctionExpression',
+ AssignmentExpression = 'AssignmentExpression',
+ AssignmentPattern = 'AssignmentPattern',
+ AwaitExpression = 'AwaitExpression',
+ BinaryExpression = 'BinaryExpression',
+ BlockStatement = 'BlockStatement',
+ BreakStatement = 'BreakStatement',
+ CallExpression = 'CallExpression',
+ CatchClause = 'CatchClause',
+ ChainExpression = 'ChainExpression',
+ ClassDeclaration = 'ClassDeclaration',
+ ConditionalExpression = 'ConditionalExpression',
+ ContinueStatement = 'ContinueStatement',
+ ExportAllDeclaration = 'ExportAllDeclaration',
+ ExportNamedDeclaration = 'ExportNamedDeclaration',
+ ExportSpecifier = 'ExportSpecifier',
+ ExpressionStatement = 'ExpressionStatement',
+ ForStatement = 'ForStatement',
+ ForInStatement = 'ForInStatement',
+ ForOfStatement = 'ForOfStatement',
+ FunctionDeclaration = 'FunctionDeclaration',
+ FunctionExpression = 'FunctionExpression',
+ Identifier = 'Identifier',
+ IfStatement = 'IfStatement',
+ ImportDeclaration = 'ImportDeclaration',
+ ImportDefaultSpecifier = 'ImportDefaultSpecifier',
+ ImportNamespaceSpecifier = 'ImportNamespaceSpecifier',
+ ImportSpecifier = 'ImportSpecifier',
+ LabeledStatement = 'LabeledStatement',
+ Literal = 'Literal',
+ LogicalExpression = 'LogicalExpression',
+ MemberExpression = 'MemberExpression',
+ MethodDefinition = 'MethodDefinition',
+ ObjectExpression = 'ObjectExpression',
+ ObjectPattern = 'ObjectPattern',
+ Program = 'Program',
+ Property = 'Property',
+ RestElement = 'RestElement',
+ ReturnStatement = 'ReturnStatement',
+ SequenceExpression = 'SequenceExpression',
+ SpreadElement = 'SpreadElement',
+ Super = 'Super',
+ SwitchCase = 'SwitchCase',
+ SwitchStatement = 'SwitchStatement',
+ TaggedTemplateExpression = 'TaggedTemplateExpression',
+ TemplateElement = 'TemplateElement',
+ TemplateLiteral = 'TemplateLiteral',
+ ThrowStatement = 'ThrowStatement',
+ TryStatement = 'TryStatement',
+ UnaryExpression = 'UnaryExpression',
+ UpdateExpression = 'UpdateExpression',
+ VariableDeclaration = 'VariableDeclaration',
+ VariableDeclarator = 'VariableDeclarator',
+ WhileStatement = 'WhileStatement',
+ YieldExpression = 'YieldExpression'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/node/ObfuscatingGuardResult.ts b/src/node_modules/javascript-obfuscator/src/enums/node/ObfuscatingGuardResult.ts
new file mode 100644
index 0000000..4680433
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/node/ObfuscatingGuardResult.ts
@@ -0,0 +1,5 @@
+export enum ObfuscatingGuardResult {
+ ForceTransform = 'ForceTransform',
+ Ignore = 'Ignore',
+ Transform = 'Transform'
+}
diff --git a/src/node_modules/javascript-obfuscator/src/enums/options/presets/OptionsPreset.ts b/src/node_modules/javascript-obfuscator/src/enums/options/presets/OptionsPreset.ts
new file mode 100644
index 0000000..89c0734
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/options/presets/OptionsPreset.ts
@@ -0,0 +1,13 @@
+import { Utils } from '../../../utils/Utils';
+
+export const OptionsPreset: Readonly<{
+ Default: 'default';
+ LowObfuscation: 'low-obfuscation';
+ MediumObfuscation: 'medium-obfuscation';
+ HighObfuscation: 'high-obfuscation';
+}> = Utils.makeEnum({
+ Default: 'default',
+ LowObfuscation: 'low-obfuscation',
+ MediumObfuscation: 'medium-obfuscation',
+ HighObfuscation: 'high-obfuscation'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/enums/source-map/SourceMapMode.ts b/src/node_modules/javascript-obfuscator/src/enums/source-map/SourceMapMode.ts
new file mode 100644
index 0000000..5ad79c8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/enums/source-map/SourceMapMode.ts
@@ -0,0 +1,9 @@
+import { Utils } from '../../utils/Utils';
+
+export const SourceMapMode: Readonly<{
+ Inline: 'inline';
+ Separate: 'separate';
+}> = Utils.makeEnum({
+ Inline: 'inline',
+ Separate: 'separate'
+});
diff --git a/src/node_modules/javascript-obfuscator/src/event-emitters/ObfuscationEventEmitter.ts b/src/node_modules/javascript-obfuscator/src/event-emitters/ObfuscationEventEmitter.ts
new file mode 100644
index 0000000..7210ea3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/event-emitters/ObfuscationEventEmitter.ts
@@ -0,0 +1,9 @@
+import { decorate, injectable } from 'inversify';
+import EventEmitter from 'eventemitter3';
+
+import { IObfuscationEventEmitter } from '../interfaces/event-emitters/IObfuscationEventEmitter';
+
+decorate(injectable(), EventEmitter);
+
+@injectable()
+export class ObfuscationEventEmitter extends EventEmitter implements IObfuscationEventEmitter {}
diff --git a/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..4617c16
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts
@@ -0,0 +1,142 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierNamesGenerator } from '../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export abstract class AbstractIdentifierNamesGenerator implements IIdentifierNamesGenerator {
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {Set<string>}
+ */
+ protected readonly preservedNamesSet: Set<string> = new Set();
+
+ /**
+ * @type {Map<TNodeWithLexicalScope, Set<string>>}
+ */
+ protected readonly lexicalScopesPreservedNamesMap: Map<TNodeWithLexicalScope, Set<string>> = new Map();
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generate (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string {
+ return NodeGuards.isProgramNode(lexicalScopeNode)
+ ? this.generateForGlobalScope()
+ : this.generateForLexicalScope(lexicalScopeNode);
+ }
+
+ /**
+ * @param {string} name
+ */
+ public preserveName (name: string): void {
+ this.preservedNamesSet.add(name);
+ }
+
+ /**
+ * @param {string} name
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ public preserveNameForLexicalScope (name: string, lexicalScopeNode: TNodeWithLexicalScope): void {
+ const preservedNamesForLexicalScopeSet: Set<string> =
+ this.lexicalScopesPreservedNamesMap.get(lexicalScopeNode) ?? new Set();
+
+ preservedNamesForLexicalScopeSet.add(name);
+
+ this.lexicalScopesPreservedNamesMap.set(lexicalScopeNode, preservedNamesForLexicalScopeSet);
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ public isValidIdentifierName (name: string): boolean {
+ return this.notReservedName(name) && !this.preservedNamesSet.has(name);
+ }
+
+ /**
+ * @param {string} name
+ * @param {TNodeWithLexicalScope[]} lexicalScopeNodes
+ * @returns {boolean}
+ */
+ public isValidIdentifierNameInLexicalScopes (name: string, lexicalScopeNodes: TNodeWithLexicalScope[]): boolean {
+ if (!this.isValidIdentifierName(name)) {
+ return false;
+ }
+
+ for (const lexicalScope of lexicalScopeNodes) {
+ const preservedNamesForLexicalScopeSet: Set<string> | null =
+ this.lexicalScopesPreservedNamesMap.get(lexicalScope) ?? null;
+
+ if (!preservedNamesForLexicalScopeSet) {
+ continue;
+ }
+
+ if (preservedNamesForLexicalScopeSet.has(name)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ private notReservedName (name: string): boolean {
+ return this.options.reservedNames.length
+ ? !this.options.reservedNames.some((reservedName: string) =>
+ new RegExp(reservedName, 'g').exec(name) !== null
+ )
+ : true;
+
+ }
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public abstract generateForGlobalScope (nameLength?: number): string;
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public abstract generateForLexicalScope (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string;
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public abstract generateNext (nameLength?: number): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..44235af
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/DictionaryIdentifierNamesGenerator.ts
@@ -0,0 +1,175 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractIdentifierNamesGenerator } from './AbstractIdentifierNamesGenerator';
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+import { NodeLexicalScopeUtils } from '../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class DictionaryIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator {
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @type {Set<string>}
+ */
+ private identifierNamesSet: Set<string>;
+
+ /**
+ * @type {IterableIterator<string>}
+ */
+ private identifiersIterator: IterableIterator<string>;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IArrayUtils} arrayUtils
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ ) {
+ super(randomGenerator, options);
+
+ this.arrayUtils = arrayUtils;
+ this.identifierNamesSet = new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary));
+ this.identifiersIterator = this.identifierNamesSet.values();
+ }
+
+ /**
+ * @param {string} identifierName
+ * @returns {string | null}
+ */
+ private static incrementIdentifierName (identifierName: string): string | null {
+ let newIdentifierName: string = '';
+ let isSuccess: boolean = false;
+
+ for (const character of identifierName) {
+ if (!isSuccess && character === character.toUpperCase()) {
+ newIdentifierName += character.toLowerCase();
+ } else if (!isSuccess && character === character.toLowerCase()) {
+ newIdentifierName += character.toUpperCase();
+ isSuccess = true;
+ } else {
+ newIdentifierName += character;
+ }
+ }
+
+ if (isSuccess) {
+ return newIdentifierName;
+ }
+
+ return null;
+ }
+
+ public generateNext (): string {
+ const identifierName: string = this.generateNewDictionaryName();
+
+ this.preserveName(identifierName);
+
+ return identifierName;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public generateForGlobalScope (): string {
+ const prefix: string = this.options.identifiersPrefix ?
+ `${this.options.identifiersPrefix}`
+ : '';
+ const identifierName: string = this.generateNewDictionaryName();
+ const identifierNameWithPrefix: string = `${prefix}${identifierName}`;
+
+ if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
+ return this.generateForGlobalScope();
+ }
+
+ this.preserveName(identifierNameWithPrefix);
+
+ return identifierNameWithPrefix;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @returns {string}
+ */
+ public generateForLexicalScope (lexicalScopeNode: TNodeWithLexicalScope): string {
+ const lexicalScopes: TNodeWithLexicalScope[] = [
+ lexicalScopeNode,
+ ...NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
+ ];
+ const identifierName: string = this.generateNewDictionaryName();
+
+ if (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes)) {
+ return this.generateForLexicalScope(lexicalScopeNode);
+ }
+
+ this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
+
+ return identifierName;
+ }
+
+ /**
+ * @returns {string}
+ */
+ private generateNewDictionaryName (): string {
+ if (!this.identifierNamesSet.size) {
+ throw new Error('Too many identifiers in the code, add more words to identifiers dictionary');
+ }
+
+ const iteratorResult: IteratorResult<string> = this.identifiersIterator.next();
+
+ if (!iteratorResult.done) {
+ const identifierName: string =iteratorResult.value;
+
+ if (!this.isValidIdentifierName(identifierName)) {
+ return this.generateNewDictionaryName();
+ }
+
+ return iteratorResult.value;
+ }
+
+ this.identifierNamesSet = new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet]));
+ this.identifiersIterator = this.identifierNamesSet.values();
+
+ return this.generateNewDictionaryName();
+ }
+
+ /**
+ * @param {string[]} identifierNames
+ * @returns {string[]}
+ */
+ private getInitialIdentifierNames (identifierNames: string[]): string[] {
+ const formattedIdentifierNames: string[] = identifierNames
+ .filter(Boolean)
+ .map((identifierName: string) => identifierName.toLowerCase());
+
+ return this.arrayUtils.shuffle(formattedIdentifierNames);
+ }
+
+ /**
+ * @param {string[]} identifierNames
+ * @returns {string[]}
+ */
+ private getIncrementedIdentifierNames (identifierNames: string[]): string[] {
+ const formattedIdentifierNames: string[] = [];
+
+ for (const identifierName of identifierNames) {
+ const newIdentifierName: string | null = DictionaryIdentifierNamesGenerator
+ .incrementIdentifierName(identifierName);
+
+ if (newIdentifierName) {
+ formattedIdentifierNames.push(newIdentifierName);
+ }
+ }
+
+ return this.arrayUtils.shuffle(formattedIdentifierNames);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..c5da045
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts
@@ -0,0 +1,73 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { AbstractIdentifierNamesGenerator } from './AbstractIdentifierNamesGenerator';
+import { NumberUtils } from '../../utils/NumberUtils';
+import { Utils } from '../../utils/Utils';
+
+@injectable()
+export class HexadecimalIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator {
+ /**
+ * @type {number}
+ */
+ private static readonly baseIdentifierNameLength: number = 6;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateNext (nameLength?: number): string {
+ const rangeMinInteger: number = 10000;
+ const rangeMaxInteger: number = 99_999_999;
+ const randomInteger: number = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger);
+ const hexadecimalNumber: string = NumberUtils.toHex(randomInteger);
+ const prefixLength: number = Utils.hexadecimalPrefix.length;
+ const baseNameLength: number = (nameLength ?? HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength)
+ + prefixLength;
+ const baseIdentifierName: string = hexadecimalNumber.slice(0, baseNameLength);
+ const identifierName: string = `_${baseIdentifierName}`;
+
+ if (!this.isValidIdentifierName(identifierName)) {
+ return this.generateNext(nameLength);
+ }
+
+ this.preserveName(identifierName);
+
+ return identifierName;
+ }
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateForGlobalScope (nameLength?: number): string {
+ const identifierName: string = this.generateNext(nameLength);
+
+ return `${this.options.identifiersPrefix}${identifierName}`.replace('__', '_');
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateForLexicalScope (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string {
+ return this.generateNext(nameLength);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..fc901eb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts
@@ -0,0 +1,256 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { numbersString } from '../../constants/NumbersString';
+import { alphabetString } from '../../constants/AlphabetString';
+import { alphabetStringUppercase } from '../../constants/AlphabetStringUppercase';
+
+import { AbstractIdentifierNamesGenerator } from './AbstractIdentifierNamesGenerator';
+import { NodeLexicalScopeUtils } from '../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGenerator {
+ /**
+ * @type {string}
+ */
+ private static readonly initMangledNameCharacter: string = '9';
+
+ /**
+ * @type {WeakMap<TNodeWithLexicalScope, string>}
+ */
+ private static readonly lastMangledNameInScopeMap: WeakMap <TNodeWithLexicalScope, string> = new WeakMap();
+
+ /**
+ * @type {string[]}
+ */
+ private static readonly nameSequence: string[] = [
+ ...`${numbersString}${alphabetString}${alphabetStringUppercase}`
+ ];
+
+ /**
+ * Reserved JS words with length of 2-4 symbols that can be possible generated with this replacer
+ *
+ * @type {Set<string>}
+ */
+ private static readonly reservedNamesSet: Set<string> = new Set([
+ 'byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto',
+ 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try',
+ 'var', 'void', 'with'
+ ]);
+
+ /**
+ * @type {string}
+ */
+ private previousMangledName: string = MangledIdentifierNamesGenerator.initMangledNameCharacter;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * Generates next name based on a global previous mangled name
+ * We can ignore nameLength parameter here, it hasn't sense with this generator
+ *
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateNext (nameLength?: number): string {
+ const identifierName: string = this.generateNewMangledName(this.previousMangledName);
+
+ this.updatePreviousMangledName(identifierName);
+ this.preserveName(identifierName);
+
+ return identifierName;
+ }
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateForGlobalScope (nameLength?: number): string {
+ const prefix: string = this.options.identifiersPrefix ?
+ `${this.options.identifiersPrefix}`
+ : '';
+ const identifierName: string = this.generateNewMangledName(this.previousMangledName);
+ const identifierNameWithPrefix: string = `${prefix}${identifierName}`;
+
+ this.updatePreviousMangledName(identifierName);
+
+ if (!this.isValidIdentifierName(identifierNameWithPrefix)) {
+ return this.generateForGlobalScope(nameLength);
+ }
+
+ this.preserveName(identifierNameWithPrefix);
+
+ return identifierNameWithPrefix;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ public generateForLexicalScope (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string {
+ const lexicalScopes: TNodeWithLexicalScope[] = [
+ lexicalScopeNode,
+ ...NodeLexicalScopeUtils.getLexicalScopes(lexicalScopeNode)
+ ];
+
+ const lastMangledNameForScope: string = this.getLastMangledNameForScopes(lexicalScopes);
+
+ let identifierName: string = lastMangledNameForScope;
+
+ do {
+ identifierName = this.generateNewMangledName(identifierName);
+ } while (!this.isValidIdentifierNameInLexicalScopes(identifierName, lexicalScopes));
+
+ MangledIdentifierNamesGenerator.lastMangledNameInScopeMap.set(lexicalScopeNode, identifierName);
+
+ this.updatePreviousMangledName(identifierName);
+ this.preserveNameForLexicalScope(identifierName, lexicalScopeNode);
+
+ return identifierName;
+ }
+
+ /**
+ * @param {string} nextName
+ * @param {string} prevName
+ * @returns {boolean}
+ */
+ // eslint-disable-next-line complexity
+ public isIncrementedMangledName (nextName: string, prevName: string): boolean {
+ if (nextName === prevName) {
+ return false;
+ }
+
+ const nextNameLength: number = nextName.length;
+ const prevNameLength: number = prevName.length;
+
+ if (nextNameLength !== prevNameLength) {
+ return nextNameLength > prevNameLength;
+ }
+
+ const nameSequence: string[] = this.getNameSequence();
+
+ for (let i: number = 0; i < nextNameLength; i++) {
+ const nextNameCharacter: string = nextName[i];
+ const prevNameCharacter: string = prevName[i];
+
+ if (nextNameCharacter === prevNameCharacter) {
+ continue;
+ }
+
+ const indexOfNextNameCharacter: number = nameSequence.indexOf(nextNameCharacter);
+ const indexOfPrevNameCharacter: number = nameSequence.indexOf(prevNameCharacter);
+
+ return indexOfNextNameCharacter > indexOfPrevNameCharacter;
+ }
+
+ throw new Error('Something goes wrong during comparison of mangled names');
+ }
+
+ /**
+ * @param {string} mangledName
+ * @returns {boolean}
+ */
+ public isValidIdentifierName (mangledName: string): boolean {
+ return super.isValidIdentifierName(mangledName)
+ && !MangledIdentifierNamesGenerator.reservedNamesSet.has(mangledName);
+ }
+
+ /**
+ * @returns {string[]}
+ */
+ protected getNameSequence (): string[] {
+ return MangledIdentifierNamesGenerator.nameSequence;
+ }
+
+ /**
+ * @param {string} name
+ */
+ protected updatePreviousMangledName (name: string): void {
+ if (!this.isIncrementedMangledName(name, this.previousMangledName)) {
+ return;
+ }
+
+ this.previousMangledName = name;
+ }
+
+ /**
+ * @param {string} previousMangledName
+ * @returns {string}
+ */
+ protected generateNewMangledName (previousMangledName: string): string {
+ const generateNewMangledName: (name: string) => string = (name: string): string => {
+ const nameSequence: string[] = this.getNameSequence();
+ const nameSequenceLength: number = nameSequence.length;
+ const nameLength: number = name.length;
+
+ const zeroSequence: (num: number) => string = (num: number): string => {
+ return '0'.repeat(num);
+ };
+
+ let index: number = nameLength - 1;
+
+ do {
+ const character: string = name[index];
+ const indexInSequence: number = nameSequence.indexOf(character);
+ const lastNameSequenceIndex: number = nameSequenceLength - 1;
+
+ if (indexInSequence !== lastNameSequenceIndex) {
+ const previousNamePart: string = name.slice(0, index);
+ const nextCharacter: string = nameSequence[indexInSequence + 1];
+ const zeroSequenceLength: number = nameLength - (index + 1);
+ const zeroSequenceCharacters: string = zeroSequence(zeroSequenceLength);
+
+ return previousNamePart + nextCharacter + zeroSequenceCharacters;
+ }
+
+ --index;
+ } while (index >= 0);
+
+ const firstLetterCharacter: string = nameSequence[numbersString.length];
+
+ return `${firstLetterCharacter}${zeroSequence(nameLength)}`;
+ };
+
+ let newMangledName: string = generateNewMangledName(previousMangledName);
+
+ if (!this.isValidIdentifierName(newMangledName)) {
+ newMangledName = this.generateNewMangledName(newMangledName);
+ }
+
+ return newMangledName;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope[]} lexicalScopeNodes
+ * @returns {string}
+ */
+ private getLastMangledNameForScopes (lexicalScopeNodes: TNodeWithLexicalScope[]): string {
+ for (const lexicalScope of lexicalScopeNodes) {
+ const lastMangledName: string | null = MangledIdentifierNamesGenerator.lastMangledNameInScopeMap
+ .get(lexicalScope) ?? null;
+
+ if (!lastMangledName) {
+ continue;
+ }
+
+ return lastMangledName;
+ }
+
+ return MangledIdentifierNamesGenerator.initMangledNameCharacter;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..c27b9ce
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/generators/identifier-names-generators/MangledShuffledIdentifierNamesGenerator.ts
@@ -0,0 +1,72 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { numbersString } from '../../constants/NumbersString';
+import { alphabetString } from '../../constants/AlphabetString';
+import { alphabetStringUppercase } from '../../constants/AlphabetStringUppercase';
+
+import { MangledIdentifierNamesGenerator } from './MangledIdentifierNamesGenerator';
+
+@injectable()
+export class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator {
+ /**
+ * @type {string[]}
+ */
+ protected static shuffledNameSequence: string[];
+
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.arrayUtils = arrayUtils;
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ this.initializeNameSequence([
+ ...`${numbersString}`,
+ ...this.arrayUtils.shuffle([...`${alphabetString}${alphabetStringUppercase}`])
+ ]);
+ }
+
+ /**
+ * @param {string[]} nameSequence
+ */
+ protected initializeNameSequence (nameSequence: string[]): void {
+ if (!this.getNameSequence()) {
+ MangledShuffledIdentifierNamesGenerator.shuffledNameSequence = nameSequence;
+ }
+ }
+
+ /**
+ * @returns {string[]}
+ */
+ protected getNameSequence (): string[] {
+ return MangledShuffledIdentifierNamesGenerator.shuffledNameSequence;
+ }
+
+ /**
+ * @param {string} previousMangledName
+ * @returns {string}
+ */
+ protected generateNewMangledName (previousMangledName: string): string {
+ return super.generateNewMangledName(previousMangledName);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/IEncodedValue.ts b/src/node_modules/javascript-obfuscator/src/interfaces/IEncodedValue.ts
new file mode 100644
index 0000000..c4a10b4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/IEncodedValue.ts
@@ -0,0 +1,7 @@
+import { TStringArrayEncoding } from '../types/options/TStringArrayEncoding';
+
+export interface IEncodedValue {
+ encoding: TStringArrayEncoding;
+ encodedValue: string;
+ decodeKey: string | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/IGeneratorOutput.ts b/src/node_modules/javascript-obfuscator/src/interfaces/IGeneratorOutput.ts
new file mode 100644
index 0000000..2bf5581
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/IGeneratorOutput.ts
@@ -0,0 +1,4 @@
+export interface IGeneratorOutput {
+ code: string;
+ map: string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/IInitializable.ts b/src/node_modules/javascript-obfuscator/src/interfaces/IInitializable.ts
new file mode 100644
index 0000000..df1746e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/IInitializable.ts
@@ -0,0 +1,8 @@
+export interface IInitializable <T extends unknown[] = never[]> {
+ [key: string]: any;
+
+ /**
+ * @param args
+ */
+ initialize (...args: T): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/IJavaScriptObfsucator.ts b/src/node_modules/javascript-obfuscator/src/interfaces/IJavaScriptObfsucator.ts
new file mode 100644
index 0000000..8704aea
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/IJavaScriptObfsucator.ts
@@ -0,0 +1,9 @@
+import { IObfuscatedCode } from './source-code/IObfuscatedCode';
+
+export interface IJavaScriptObfuscator {
+ /**
+ * @param sourceCode
+ * @returns IObfuscatedCode
+ */
+ obfuscate (sourceCode: string): IObfuscatedCode;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/ITransformer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/ITransformer.ts
new file mode 100644
index 0000000..118f570
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/ITransformer.ts
@@ -0,0 +1,6 @@
+export interface ITransformer <TTransformerName extends string> {
+ /**
+ * @type {TTransformerName[] | undefined}
+ */
+ runAfter?: TTransformerName[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/IAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/IAnalyzer.ts
new file mode 100644
index 0000000..f718e31
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/IAnalyzer.ts
@@ -0,0 +1,7 @@
+export interface IAnalyzer <TArgs extends unknown[], TData extends unknown> {
+ /**
+ * @param {TArgs} args
+ * @returns {TData}
+ */
+ analyze (...args: TArgs): TData;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeData.ts
new file mode 100644
index 0000000..7f5d131
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeData.ts
@@ -0,0 +1,6 @@
+import * as ESTree from 'estree';
+
+export interface ICalleeData {
+ callee: ESTree.BlockStatement;
+ name: string | number | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor.ts
new file mode 100644
index 0000000..95324ba
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor.ts
@@ -0,0 +1,12 @@
+import * as ESTree from 'estree';
+
+import { ICalleeData } from './ICalleeData';
+
+export interface ICalleeDataExtractor {
+ /**
+ * @param blockScopeBody
+ * @param callee
+ * @returns ICalleeData|null
+ */
+ extract (blockScopeBody: ESTree.Node[], callee: ESTree.Node): ICalleeData | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts
new file mode 100644
index 0000000..e768bf1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer.ts
@@ -0,0 +1,12 @@
+import * as ESTree from 'estree';
+
+import { IAnalyzer } from '../IAnalyzer';
+import { ICallsGraphData } from './ICallsGraphData';
+
+export interface ICallsGraphAnalyzer extends IAnalyzer<[ESTree.Program], ICallsGraphData[]> {
+ /**
+ * @param {Program} astTree
+ * @returns {ICallsGraphData[]}
+ */
+ analyze (astTree: ESTree.Program): ICallsGraphData[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphData.ts
new file mode 100644
index 0000000..f9e908b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/ICallsGraphData.ts
@@ -0,0 +1,5 @@
+import { ICalleeData } from './ICalleeData';
+
+export interface ICallsGraphData extends ICalleeData {
+ callsGraph: ICallsGraphData[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts
new file mode 100644
index 0000000..b6cfb1f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer.ts
@@ -0,0 +1,15 @@
+import * as ESTree from 'estree';
+
+import { IAnalyzer } from '../IAnalyzer';
+
+export interface IPrevailingKindOfVariablesAnalyzer extends IAnalyzer<[ESTree.Program], void> {
+ /**
+ * @param {Program} astTree
+ */
+ analyze (astTree: ESTree.Program): void;
+
+ /**
+ * @returns {ESTree.VariableDeclaration['kind']}
+ */
+ getPrevailingKind (): ESTree.VariableDeclaration['kind'];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts
new file mode 100644
index 0000000..1c1212b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer.ts
@@ -0,0 +1,11 @@
+import { TNumberNumericalExpressionData } from '../../../types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData';
+
+import { IAnalyzer } from '../IAnalyzer';
+
+export interface INumberNumericalExpressionAnalyzer extends IAnalyzer<[number], TNumberNumericalExpressionData> {
+ /**
+ * @param {number} number
+ * @returns {TNumberNumericalExpressionData}
+ */
+ analyze (number: number): TNumberNumericalExpressionData;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts
new file mode 100644
index 0000000..6215a56
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.ts
@@ -0,0 +1,17 @@
+import * as eslintScope from 'eslint-scope';
+import * as ESTree from 'estree';
+
+import { IAnalyzer } from '../IAnalyzer';
+
+export interface IScopeAnalyzer extends IAnalyzer<[ESTree.Node], void> {
+ /**
+ * @param {Program} astTree
+ */
+ analyze (astTree: ESTree.Node): void;
+
+ /**
+ * @param {Node} node
+ * @returns {Scope}
+ */
+ acquireScope (node: ESTree.Node): eslintScope.Scope;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts
new file mode 100644
index 0000000..5aa7670
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer.ts
@@ -0,0 +1,17 @@
+import * as ESTree from 'estree';
+
+import { IAnalyzer } from '../IAnalyzer';
+import { IStringArrayStorageItemData } from '../../storages/string-array-transformers/IStringArrayStorageItem';
+
+export interface IStringArrayStorageAnalyzer extends IAnalyzer<[ESTree.Program], void> {
+ /**
+ * @param {Program} astTree
+ */
+ analyze (astTree: ESTree.Program): void;
+
+ /**
+ * @param {Literal} literalNode
+ * @returns {IStringArrayStorageItemData | undefined}
+ */
+ getItemDataForLiteralNode (literalNode: ESTree.Literal): IStringArrayStorageItemData | undefined;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/cli/IFileData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/cli/IFileData.ts
new file mode 100644
index 0000000..67481c1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/cli/IFileData.ts
@@ -0,0 +1,4 @@
+export interface IFileData {
+ filePath: string;
+ content: string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformer.ts
new file mode 100644
index 0000000..7b39925
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformer.ts
@@ -0,0 +1,13 @@
+import { ITransformer } from '../ITransformer';
+
+import { CodeTransformer } from '../../enums/code-transformers/CodeTransformer';
+import { CodeTransformationStage } from '../../enums/code-transformers/CodeTransformationStage';
+
+export interface ICodeTransformer extends ITransformer <CodeTransformer> {
+ /**
+ * @param {string} code
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ transformCode (code: string, codeTransformationStage: CodeTransformationStage): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformersRunner.ts b/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformersRunner.ts
new file mode 100644
index 0000000..0eab6f3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/code-transformers/ICodeTransformersRunner.ts
@@ -0,0 +1,16 @@
+import { CodeTransformer } from '../../enums/code-transformers/CodeTransformer';
+import { CodeTransformationStage } from '../../enums/code-transformers/CodeTransformationStage';
+
+export interface ICodeTransformersRunner {
+ /**
+ * @param {string} code
+ * @param {CodeTransformer[]} codeTransformers
+ * @param {CodeTransformationStage} codeTransformationStage
+ * @returns {string}
+ */
+ transform (
+ code: string,
+ codeTransformers: CodeTransformer[],
+ codeTransformationStage: CodeTransformationStage
+ ): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/container/IInversifyContainerFacade.ts b/src/node_modules/javascript-obfuscator/src/interfaces/container/IInversifyContainerFacade.ts
new file mode 100644
index 0000000..3252ea8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/container/IInversifyContainerFacade.ts
@@ -0,0 +1,25 @@
+import { interfaces } from 'inversify';
+
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+export interface IInversifyContainerFacade {
+ /**
+ * @param serviceIdentifier
+ */
+ get <T> (serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
+
+ /**
+ * @param serviceIdentifier
+ * @param named
+ */
+ getNamed <T> (serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T;
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} sourceMap
+ * @param {TInputOptions} options
+ */
+ load (sourceCode: string, sourceMap: string, options: TInputOptions): void;
+
+ unload (): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelper.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelper.ts
new file mode 100644
index 0000000..e821b68
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelper.ts
@@ -0,0 +1,12 @@
+import { TStatement } from '../../types/node/TStatement';
+
+import { IInitializable } from '../IInitializable';
+
+export interface ICustomCodeHelper <
+ TInitialData extends unknown[] = unknown[]
+> extends IInitializable<TInitialData> {
+ /**
+ * @returns ESTree.Node[]
+ */
+ getNode (): TStatement[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts
new file mode 100644
index 0000000..e6266ed
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperFormatter.ts
@@ -0,0 +1,20 @@
+import { TDictionary } from '../../types/TDictionary';
+import { TStatement } from '../../types/node/TStatement';
+
+export interface ICustomCodeHelperFormatter {
+ /**
+ * @param {string} template
+ * @param {TMapping} mapping
+ * @returns {string}
+ */
+ formatTemplate <TMapping extends TDictionary> (
+ template: string,
+ mapping: TMapping
+ ): string;
+
+ /**
+ * @param {TStatement[]} structure
+ * @returns {TStatement[]}
+ */
+ formatStructure (structure: TStatement[]): TStatement[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperGroup.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperGroup.ts
new file mode 100644
index 0000000..4301a64
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperGroup.ts
@@ -0,0 +1,28 @@
+import { TNodeWithStatements } from '../../types/node/TNodeWithStatements';
+
+import { ICustomCodeHelper } from './ICustomCodeHelper';
+import { IInitializable } from '../IInitializable';
+import { ICallsGraphData } from '../analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { CustomCodeHelper } from '../../enums/custom-code-helpers/CustomCodeHelper';
+import { ObfuscationEvent } from '../../enums/event-emitters/ObfuscationEvent';
+
+export interface ICustomCodeHelperGroup extends IInitializable {
+ /**
+ * @param nodeWithStatements
+ * @param callsGraphData
+ */
+ appendNodes (nodeWithStatements: TNodeWithStatements, callsGraphData: ICallsGraphData[]): void;
+
+ /**
+ * @returns {ObfuscationEvent}
+ */
+ getAppendEvent (): ObfuscationEvent;
+
+ /**
+ * @type {Map <CustomCodeHelper, ICustomCodeHelper>}
+ */
+ getCustomCodeHelpers (): Map <CustomCodeHelper, ICustomCodeHelper>;
+
+ initialize (): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts
new file mode 100644
index 0000000..0d9abdf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-code-helpers/ICustomCodeHelperObfuscator.ts
@@ -0,0 +1,10 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+export interface ICustomCodeHelperObfuscator {
+ /**
+ * @param {string} template
+ * @param {TInputOptions} additionalOptions
+ * @returns {string}
+ */
+ obfuscateTemplate (template: string, additionalOptions?: TInputOptions): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/ICustomNode.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/ICustomNode.ts
new file mode 100644
index 0000000..359db4b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/ICustomNode.ts
@@ -0,0 +1,12 @@
+import { TStatement } from '../../types/node/TStatement';
+
+import { IInitializable } from '../IInitializable';
+
+export interface ICustomNode <
+ TInitialData extends unknown[] = unknown[]
+> extends IInitializable<TInitialData> {
+ /**
+ * @returns ESTree.Node[]
+ */
+ getNode (): TStatement[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode.ts b/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode.ts
new file mode 100644
index 0000000..c5c2a38
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode.ts
@@ -0,0 +1,5 @@
+import * as ESTree from 'estree';
+
+export interface IStringArrayIndexNode {
+ getNode: (index: number) => ESTree.Expression;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/event-emitters/IObfuscationEventEmitter.ts b/src/node_modules/javascript-obfuscator/src/interfaces/event-emitters/IObfuscationEventEmitter.ts
new file mode 100644
index 0000000..4830e35
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/event-emitters/IObfuscationEventEmitter.ts
@@ -0,0 +1,28 @@
+import * as ESTree from 'estree';
+
+import { ICallsGraphData } from '../analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { ObfuscationEvent } from '../../enums/event-emitters/ObfuscationEvent';
+
+export interface IObfuscationEventEmitter {
+ /**
+ * @param {ObfuscationEvent} event
+ * @param args
+ * @returns {boolean}
+ */
+ emit (event: ObfuscationEvent, ...args: [ESTree.Program, ICallsGraphData[]]): boolean;
+
+ /**
+ * @param event
+ * @param listener
+ * @returns this
+ */
+ on (event: ObfuscationEvent, listener: Function): this;
+
+ /**
+ * @param event
+ * @param listener
+ * @returns this
+ */
+ once (event: ObfuscationEvent, listener: Function): this;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator.ts b/src/node_modules/javascript-obfuscator/src/interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator.ts
new file mode 100644
index 0000000..2791e3a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator.ts
@@ -0,0 +1,54 @@
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+
+export interface IIdentifierNamesGenerator {
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ generate (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string;
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ generateForGlobalScope (nameLength?: number): string;
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ generateForLexicalScope (lexicalScopeNode: TNodeWithLexicalScope, nameLength?: number): string;
+
+
+ /**
+ * @param {number} nameLength
+ * @returns {string}
+ */
+ generateNext (nameLength?: number): string;
+
+ /**
+ * @param {string} identifierName
+ * @returns {boolean}
+ */
+ isValidIdentifierName (identifierName: string): boolean;
+
+ /**
+ * @param {string} identifierName
+ * @param {TNodeWithLexicalScope[]} lexicalScopeNodes
+ * @returns {boolean}
+ */
+ isValidIdentifierNameInLexicalScopes (identifierName: string, lexicalScopeNodes: TNodeWithLexicalScope[]): boolean;
+
+ /**
+ * @param {string} identifierName
+ */
+ preserveName (identifierName: string): void;
+
+ /**
+ * @param {string} identifierName
+ * @param {TNodeWithLexicalScope} lexicalScope
+ */
+ preserveNameForLexicalScope (identifierName: string, lexicalScope: TNodeWithLexicalScope): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/logger/ILogger.ts b/src/node_modules/javascript-obfuscator/src/interfaces/logger/ILogger.ts
new file mode 100644
index 0000000..f0b4a70
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/logger/ILogger.ts
@@ -0,0 +1,21 @@
+import { LoggingMessage } from '../../enums/logger/LoggingMessage';
+
+export interface ILogger {
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ info (loggingMessage: LoggingMessage, value?: string | number): void;
+
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ success (loggingMessage: LoggingMessage, value?: string | number): void;
+
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ warn (loggingMessage: LoggingMessage, value?: string | number): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformer.ts
new file mode 100644
index 0000000..c3eebeb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformer.ts
@@ -0,0 +1,35 @@
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { ITransformer } from '../ITransformer';
+import { IVisitor } from './IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+export interface INodeTransformer extends ITransformer <NodeTransformer> {
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null;
+
+ /**
+ * @param {Node} node
+ * @param {Node | null} parentNode
+ */
+ prepareNode ? (node: ESTree.Node, parentNode: ESTree.Node | null): void;
+
+ /**
+ * @param {Node} node
+ * @param {Node | null} parentNode
+ */
+ restoreNode ? (node: ESTree.Node, parentNode: ESTree.Node | null): void;
+
+ /**
+ * @param {Node} node
+ * @param {Node | null} parentNode
+ * @returns {Node | VisitorOption}
+ */
+ transformNode (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | estraverse.VisitorOption;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformersRunner.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformersRunner.ts
new file mode 100644
index 0000000..568cb3f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/INodeTransformersRunner.ts
@@ -0,0 +1,18 @@
+import * as ESTree from 'estree';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+export interface INodeTransformersRunner {
+ /**
+ * @param {T} astTree
+ * @param {NodeTransformer[]} nodeTransformers
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {T}
+ */
+ transform <T extends ESTree.Node = ESTree.Program> (
+ astTree: T,
+ nodeTransformers: NodeTransformer[],
+ nodeTransformationStage: NodeTransformationStage
+ ): T;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/IVisitor.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/IVisitor.ts
new file mode 100644
index 0000000..bb8ee1f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/IVisitor.ts
@@ -0,0 +1,7 @@
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+export interface IVisitor <T extends ESTree.Node = ESTree.Node> {
+ enter? (node: T, parentNode: ESTree.Node | null): ESTree.Node | estraverse.VisitorOption | void;
+ leave? (node: T, parentNode: ESTree.Node | null): ESTree.Node | estraverse.VisitorOption | void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer.ts
new file mode 100644
index 0000000..bd868ff
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer.ts
@@ -0,0 +1,17 @@
+import * as ESTree from 'estree';
+
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+
+export interface IControlFlowReplacer {
+ /**
+ * @param node
+ * @param parentNode
+ * @param controlFlowStorage
+ * @returns ESTree.Node
+ */
+ replace (
+ node: ESTree.Node,
+ parentNode: ESTree.Node,
+ controlFlowStorage: TControlFlowStorage
+ ): ESTree.Node;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor.ts
new file mode 100644
index 0000000..fb811e2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor.ts
@@ -0,0 +1,15 @@
+import * as ESTree from 'estree';
+
+import { IObjectExpressionExtractorResult } from './IObjectExpressionExtractorResult';
+
+export interface IObjectExpressionExtractor {
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @returns {IObjectExpressionExtractorResult}
+ */
+ extract (
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement
+ ): IObjectExpressionExtractorResult;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult.ts
new file mode 100644
index 0000000..5c74d1e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult.ts
@@ -0,0 +1,18 @@
+import * as ESTree from 'estree';
+
+export interface IObjectExpressionExtractorResult {
+ /**
+ * @type {Node}
+ */
+ nodeToReplace: ESTree.Node;
+
+ /**
+ * @type {Statement}
+ */
+ objectExpressionHostStatement: ESTree.Statement;
+
+ /**
+ * @type {ObjectExpression}
+ */
+ objectExpressionNode: ESTree.ObjectExpression;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard.ts
new file mode 100644
index 0000000..af014f0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard.ts
@@ -0,0 +1,9 @@
+import { TObfuscatingGuard } from '../../../../types/node/TObfuscatingGuard';
+
+export interface IObfuscatingGuard {
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ check: TObfuscatingGuard;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts
new file mode 100644
index 0000000..b4c9e80
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer.ts
@@ -0,0 +1,40 @@
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../../../../types/node/TNodeWithLexicalScope';
+
+export interface IIdentifierReplacer {
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ storeGlobalName (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void;
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ storeLocalName (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void;
+
+ /**
+ * @param {Node} node
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {number} nodeIdentifier
+ * @returns {ESTree.Identifier}
+ */
+ replace (
+ node: ESTree.Node,
+ lexicalScopeNode?: TNodeWithLexicalScope,
+ nodeIdentifier?: number
+ ): ESTree.Identifier;
+
+ /**
+ * @param {Identifier} identifierNode
+ */
+ preserveName (identifierNode: ESTree.Identifier): void;
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ preserveNameForLexicalScope (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts
new file mode 100644
index 0000000..266ecd4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts
@@ -0,0 +1,9 @@
+import * as ESTree from 'estree';
+
+export interface IRenamePropertiesReplacer {
+ /**
+ * @param {ESTree.Identifier | ESTree.Literal} node
+ * @returns {ESTree.Identifier | ESTree.Literal}
+ */
+ replace (node: ESTree.Identifier | ESTree.Literal): ESTree.Identifier | ESTree.Literal;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IIteratedStatementsSimplifyData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IIteratedStatementsSimplifyData.ts
new file mode 100644
index 0000000..3f6befd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IIteratedStatementsSimplifyData.ts
@@ -0,0 +1,18 @@
+import * as ESTree from 'estree';
+
+export interface IIteratedStatementsSimplifyData {
+ /**
+ * @type {number | null}
+ */
+ startIndex: number | null;
+
+ /**
+ * @type {ESTree.Expression[]}
+ */
+ unwrappedExpressions: ESTree.Expression[];
+
+ /**
+ * @type {boolean}
+ */
+ hasReturnStatement: boolean;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData.ts
new file mode 100644
index 0000000..a16c731
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData.ts
@@ -0,0 +1,30 @@
+import * as ESTree from 'estree';
+
+export interface IStatementSimplifyData {
+ /**
+ * @type {ESTree.Statement[]}
+ */
+ leadingStatements: ESTree.Statement[];
+
+ trailingStatement: {
+ /**
+ * @type {ESTree.Statement | null}
+ */
+ statement: ESTree.Statement;
+
+ /**
+ * @type {ESTree.Expression | null}
+ */
+ expression: ESTree.Expression;
+ } | null;
+
+ /**
+ * @type {boolean}
+ */
+ hasReturnStatement: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ hasSingleExpression: boolean;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData.ts
new file mode 100644
index 0000000..b1bfd00
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData.ts
@@ -0,0 +1,18 @@
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from './IStringArrayScopeCallsWrapperParameterIndexesData';
+
+export interface IStringArrayScopeCallsWrapperData {
+ /**
+ * @type {number}
+ */
+ index: number;
+
+ /**
+ * @type {string}
+ */
+ name: string;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperParameterIndexesData | null}
+ */
+ parameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData.ts
new file mode 100644
index 0000000..24f3231
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData.ts
@@ -0,0 +1,25 @@
+import { TNodeWithLexicalScopeStatements } from '../../../types/node/TNodeWithLexicalScopeStatements';
+
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from './IStringArrayScopeCallsWrapperParameterIndexesData';
+
+export interface IStringArrayScopeCallsWrapperLexicalScopeData {
+ /**
+ * @type {TNodeWithLexicalScopeStatements | null}
+ */
+ parentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements | null;
+
+ /**
+ * @type {number}
+ */
+ resultShiftedIndex: number;
+
+ /**
+ * @type {number}
+ */
+ scopeShiftedIndex: number;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperParameterIndexesData | null}
+ */
+ callsWrappersParameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData.ts
new file mode 100644
index 0000000..c717d9c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData.ts
@@ -0,0 +1,13 @@
+import { TStringArrayEncoding } from '../../../types/options/TStringArrayEncoding';
+
+export interface IStringArrayScopeCallsWrapperNamesData {
+ /**
+ * @type {TStringArrayEncoding}
+ */
+ encoding: TStringArrayEncoding;
+
+ /**
+ * @type {string[]}
+ */
+ names: string[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData.ts
new file mode 100644
index 0000000..e360e55
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData.ts
@@ -0,0 +1,11 @@
+export interface IStringArrayScopeCallsWrapperParameterIndexesData {
+ /**
+ * @type {number}
+ */
+ valueIndexParameterIndex: number;
+
+ /**
+ * @type {number}
+ */
+ decodeKeyParameterIndex: number;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverser.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverser.ts
new file mode 100644
index 0000000..4f5570f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverser.ts
@@ -0,0 +1,30 @@
+import * as ESTree from 'estree';
+
+import { TScopeIdentifiersTraverserCallback } from '../../types/node/TScopeIdentifiersTraverserCallback';
+import { IScopeIdentifiersTraverserCallbackData } from './IScopeIdentifiersTraverserCallbackData';
+import { IScopeThroughIdentifiersTraverserCallbackData } from './IScopeThroughIdentifiersTraverserCallbackData';
+
+export interface IScopeIdentifiersTraverser {
+ /**
+ * @param {Program} programNode
+ * @param {Node | null} parentNode
+ * @param {TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>} callback
+ */
+ traverseScopeIdentifiers (
+ programNode: ESTree.Program,
+ parentNode: ESTree.Node | null,
+ callback: TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>
+ ): void;
+
+ /**
+ * @param {Node} node
+ * @param {Node | null} parentNode
+ * @param {TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>} callback
+ */
+ traverseScopeThroughIdentifiers (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null,
+ callback: TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>
+ ): void;
+
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverserCallbackData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverserCallbackData.ts
new file mode 100644
index 0000000..32ac211
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeIdentifiersTraverserCallbackData.ts
@@ -0,0 +1,12 @@
+import * as eslintScope from 'eslint-scope';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+export interface IScopeIdentifiersTraverserCallbackData {
+ isGlobalDeclaration: boolean;
+ isBubblingDeclaration: boolean;
+ rootScope: eslintScope.Scope;
+ variable: eslintScope.Variable;
+ variableLexicalScopeNode: TNodeWithLexicalScope;
+ variableScope: eslintScope.Scope;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeThroughIdentifiersTraverserCallbackData.ts b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeThroughIdentifiersTraverserCallbackData.ts
new file mode 100644
index 0000000..a61c7b9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/node/IScopeThroughIdentifiersTraverserCallbackData.ts
@@ -0,0 +1,8 @@
+import * as eslintScope from 'eslint-scope';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+export interface IScopeThroughIdentifiersTraverserCallbackData {
+ reference: eslintScope.Reference;
+ variableLexicalScopeNode: TNodeWithLexicalScope;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/options/ICLIOptions.ts b/src/node_modules/javascript-obfuscator/src/interfaces/options/ICLIOptions.ts
new file mode 100644
index 0000000..aa20ade
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/options/ICLIOptions.ts
@@ -0,0 +1,8 @@
+import { IOptions } from './IOptions';
+
+export interface ICLIOptions extends IOptions {
+ readonly config: string;
+ readonly exclude: string[];
+ readonly output: string;
+ readonly version: string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptions.ts b/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptions.ts
new file mode 100644
index 0000000..ac435b1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptions.ts
@@ -0,0 +1,57 @@
+import { TOptionsPreset } from '../../types/options/TOptionsPreset';
+import { TStringArrayIndexesType } from '../../types/options/TStringArrayIndexesType';
+import { TStringArrayEncoding } from '../../types/options/TStringArrayEncoding';
+import { TStringArrayWrappersType } from '../../types/options/TStringArrayWrappersType';
+import { TTypeFromEnum } from '../../types/utils/TTypeFromEnum';
+
+import { IdentifierNamesGenerator } from '../../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+import { SourceMapMode } from '../../enums/source-map/SourceMapMode';
+
+export interface IOptions {
+ readonly compact: boolean;
+ readonly controlFlowFlattening: boolean;
+ readonly controlFlowFlatteningThreshold: number;
+ readonly deadCodeInjection: boolean;
+ readonly deadCodeInjectionThreshold: number;
+ readonly debugProtection: boolean;
+ readonly debugProtectionInterval: boolean;
+ readonly disableConsoleOutput: boolean;
+ readonly domainLock: string[];
+ readonly forceTransformStrings: string[];
+ readonly identifierNamesGenerator: TTypeFromEnum<typeof IdentifierNamesGenerator>;
+ readonly identifiersDictionary: string[];
+ readonly identifiersPrefix: string;
+ readonly ignoreRequireImports: boolean;
+ readonly inputFileName: string;
+ readonly log: boolean;
+ readonly numbersToExpressions: boolean;
+ readonly optionsPreset: TOptionsPreset;
+ readonly renameGlobals: boolean;
+ readonly renameProperties: boolean;
+ readonly reservedNames: string[];
+ readonly reservedStrings: string[];
+ readonly rotateStringArray: boolean;
+ readonly seed: string | number;
+ readonly selfDefending: boolean;
+ readonly shuffleStringArray: boolean;
+ readonly simplify: boolean;
+ readonly sourceMap: boolean;
+ readonly sourceMapBaseUrl: string;
+ readonly sourceMapFileName: string;
+ readonly sourceMapMode: TTypeFromEnum<typeof SourceMapMode>;
+ readonly splitStrings: boolean;
+ readonly splitStringsChunkLength: number;
+ readonly stringArray: boolean;
+ readonly stringArrayEncoding: TStringArrayEncoding[];
+ readonly stringArrayIndexesType: TStringArrayIndexesType[];
+ readonly stringArrayIndexShift: boolean;
+ readonly stringArrayWrappersChainedCalls: boolean;
+ readonly stringArrayWrappersCount: number;
+ readonly stringArrayWrappersParametersMaxCount: number;
+ readonly stringArrayWrappersType: TStringArrayWrappersType;
+ readonly stringArrayThreshold: number;
+ readonly target: TTypeFromEnum<typeof ObfuscationTarget>;
+ readonly transformObjectKeys: boolean;
+ readonly unicodeEscapeSequence: boolean;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptionsNormalizer.ts b/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptionsNormalizer.ts
new file mode 100644
index 0000000..fe7f396
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/options/IOptionsNormalizer.ts
@@ -0,0 +1,9 @@
+import { IOptions } from './IOptions';
+
+export interface IOptionsNormalizer {
+ /**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+ normalize (options: IOptions): IOptions;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/source-code/IObfuscatedCode.ts b/src/node_modules/javascript-obfuscator/src/interfaces/source-code/IObfuscatedCode.ts
new file mode 100644
index 0000000..ac395e2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/source-code/IObfuscatedCode.ts
@@ -0,0 +1,13 @@
+import { IInitializable } from '../IInitializable';
+
+export interface IObfuscatedCode extends IInitializable <[string, string]> {
+ /**
+ * @return {string}
+ */
+ getObfuscatedCode (): string;
+
+ /**
+ * @return {string}
+ */
+ getSourceMap (): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/source-code/ISourceCode.ts b/src/node_modules/javascript-obfuscator/src/interfaces/source-code/ISourceCode.ts
new file mode 100644
index 0000000..5c9311b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/source-code/ISourceCode.ts
@@ -0,0 +1,11 @@
+export interface ISourceCode {
+ /**
+ * @returns string
+ */
+ getSourceCode (): string;
+
+ /**
+ * @returns string
+ */
+ getSourceMap (): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/IArrayStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/IArrayStorage.ts
new file mode 100644
index 0000000..771b21f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/IArrayStorage.ts
@@ -0,0 +1,59 @@
+import { IInitializable } from '../IInitializable';
+
+export interface IArrayStorage <V> extends IInitializable {
+ /**
+ * @param {number} key
+ * @returns {V | undefined}
+ */
+ delete (key: number): V | undefined;
+
+ /**
+ * @param {number} key
+ * @returns {V | undefined}
+ */
+ get (key: number): V | undefined;
+
+ /**
+ * @param {number} key
+ * @returns {V}
+ */
+ getOrThrow (key: number): V;
+
+ /**
+ * @param value
+ * @returns number | null
+ */
+ getKeyOf (value: V): number | null;
+
+ /**
+ * @returns number
+ */
+ getLength (): number;
+
+ /**
+ * @returns {V[]}
+ */
+ getStorage (): V[];
+
+ /**
+ * @returns string
+ */
+ getStorageId (): string;
+
+ /**
+ * @param storage
+ * @param mergeId
+ */
+ mergeWith (storage: this, mergeId: boolean): void;
+
+ /**
+ * @param {number} key
+ * @param {V} value
+ */
+ set (key: number, value: V): void;
+
+ /**
+ * @returns string
+ */
+ toString (): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/IMapStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/IMapStorage.ts
new file mode 100644
index 0000000..4ce5db4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/IMapStorage.ts
@@ -0,0 +1,59 @@
+import { IInitializable } from '../IInitializable';
+
+export interface IMapStorage <K, V> extends IInitializable {
+ /**
+ * @param {K} key
+ * @returns {V | undefined}
+ */
+ get (key: K): V | undefined;
+
+ /**
+ * @param {K} key
+ * @returns {V}
+ */
+ getOrThrow (key: K): V;
+
+ /**
+ * @param {V} value
+ * @returns {K | null}
+ */
+ getKeyOf (value: V): K | null;
+
+ /**
+ * @returns number
+ */
+ getLength (): number;
+
+ /**
+ * @returns {Map<K, V>}
+ */
+ getStorage (): Map <K, V>;
+
+ /**
+ * @returns string
+ */
+ getStorageId (): string;
+
+ /**
+ * @param {K} key
+ * @returns {boolean}
+ */
+ has (key: K): boolean;
+
+ /**
+ * @param storage
+ * @param mergeId
+ */
+ mergeWith (storage: this, mergeId: boolean): void;
+
+ /**
+ * @param {K} key
+ * @param {V} value
+ */
+ set (key: K, value: V): void;
+
+ /**
+ * @returns string
+ */
+ toString (): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts
new file mode 100644
index 0000000..149e0cc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage.ts
@@ -0,0 +1,26 @@
+import * as ESTree from 'estree';
+
+import { IMapStorage } from '../IMapStorage';
+import { IStringArrayStorageItemData } from './IStringArrayStorageItem';
+
+export interface ILiteralNodesCacheStorage extends IMapStorage <string, ESTree.Node> {
+ /**
+ * @param {string} literalValue
+ * @param {IStringArrayStorageItemData | undefined} stringArrayStorageItemData
+ * @returns {string}
+ */
+ buildKey (
+ literalValue: string,
+ stringArrayStorageItemData: IStringArrayStorageItemData | undefined,
+ ): string;
+
+ /**
+ * @param {string} key
+ * @param {IStringArrayStorageItemData | undefined} stringArrayStorageItemData
+ * @returns {boolean}
+ */
+ shouldUseCachedValue (
+ key: string,
+ stringArrayStorageItemData: IStringArrayStorageItemData | undefined
+ ): boolean;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts
new file mode 100644
index 0000000..0d1a49e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage.ts
@@ -0,0 +1,10 @@
+import { TNodeWithLexicalScopeStatements } from '../../../types/node/TNodeWithLexicalScopeStatements';
+
+import { IMapStorage } from '../IMapStorage';
+import { IStringArrayScopeCallsWrapperLexicalScopeData } from '../../node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData';
+
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
+export interface IStringArrayScopeCallsWrapperLexicalScopeDataStorage extends IMapStorage<
+ TNodeWithLexicalScopeStatements,
+ IStringArrayScopeCallsWrapperLexicalScopeData
+> {}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts
new file mode 100644
index 0000000..08b02df
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage.ts
@@ -0,0 +1,10 @@
+import { TNodeWithLexicalScopeStatements } from '../../../types/node/TNodeWithLexicalScopeStatements';
+import { TStringArrayScopeCallsWrapperNamesDataByEncoding } from '../../../types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding';
+
+import { IMapStorage } from '../IMapStorage';
+
+// eslint-disable-next-line @typescript-eslint/no-empty-interface
+export interface IStringArrayScopeCallsWrapperNamesDataStorage extends IMapStorage<
+ TNodeWithLexicalScopeStatements,
+ TStringArrayScopeCallsWrapperNamesDataByEncoding
+> {}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts
new file mode 100644
index 0000000..a80d3d9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorage.ts
@@ -0,0 +1,31 @@
+import { TStringArrayEncoding } from '../../../types/options/TStringArrayEncoding';
+
+import { IMapStorage } from '../IMapStorage';
+import { IStringArrayStorageItemData } from './IStringArrayStorageItem';
+
+export interface IStringArrayStorage extends IMapStorage <string, IStringArrayStorageItemData> {
+ /**
+ * @returns {number}
+ */
+ getIndexShiftAmount (): number;
+
+ /**
+ * @returns {number}
+ */
+ getRotationAmount (): number;
+
+ /**
+ * @returns {string}
+ */
+ getStorageName (): string;
+
+ /**
+ * @param {TStringArrayEncoding | null} stringArrayEncoding
+ * @returns {string}
+ */
+ getStorageCallsWrapperName (stringArrayEncoding: TStringArrayEncoding | null): string;
+
+ rotateStorage (): void;
+
+ shuffleStorage (): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorageItem.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorageItem.ts
new file mode 100644
index 0000000..d6f934b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IStringArrayStorageItem.ts
@@ -0,0 +1,6 @@
+import { IEncodedValue } from '../../IEncodedValue';
+
+export interface IStringArrayStorageItemData extends IEncodedValue {
+ index: number;
+ value: string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts
new file mode 100644
index 0000000..8d41654
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage.ts
@@ -0,0 +1,25 @@
+import { TNodeWithLexicalScopeStatements } from '../../../types/node/TNodeWithLexicalScopeStatements';
+
+import { IArrayStorage } from '../IArrayStorage';
+
+export interface IVisitedLexicalScopeNodesStackStorage extends IArrayStorage<TNodeWithLexicalScopeStatements> {
+ /**
+ * @returns {TNodeWithLexicalScopeStatements | undefined}
+ */
+ getLastElement (): TNodeWithLexicalScopeStatements | undefined;
+
+ /**
+ * @returns {TNodeWithLexicalScopeStatements | undefined}
+ */
+ getPenultimateElement (): TNodeWithLexicalScopeStatements | undefined;
+
+ /**
+ * @returns {TNodeWithLexicalScopeStatements | undefined}
+ */
+ pop (): TNodeWithLexicalScopeStatements | undefined;
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} lexicalScopeBodyNode
+ */
+ push (lexicalScopeBodyNode: TNodeWithLexicalScopeStatements): void;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/IArrayUtils.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IArrayUtils.ts
new file mode 100644
index 0000000..86f52c9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IArrayUtils.ts
@@ -0,0 +1,39 @@
+export interface IArrayUtils {
+ /**
+ * @param length
+ * @return {number[]}
+ */
+ createWithRange (length: number): number[];
+
+ /**
+ * @param {number} length
+ * @param {(index: number) => TValue} valueFunction
+ * @returns {TValue[]}
+ */
+ fillWithRange <TValue> (length: number, valueFunction: (index: number) => TValue): TValue[];
+
+ /**
+ * @param {T[]} array
+ * @returns {T | null}
+ */
+ findMostOccurringElement <T extends string | number> (array: T[]): T | null;
+
+ /**
+ * @param {T[]} array
+ * @returns {T | undefined}
+ */
+ getLastElement <T> (array: T[]): T | undefined;
+
+ /**
+ * @param array
+ * @param times
+ * @returns {T[]}
+ */
+ rotate <T> (array: T[], times: number): T[];
+
+ /**
+ * @param array
+ * @return {T[]}
+ */
+ shuffle <T> (array: T[]): T[];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtils.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtils.ts
new file mode 100644
index 0000000..49dae1a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtils.ts
@@ -0,0 +1,21 @@
+export interface ICryptUtils {
+ /**
+ * @param {string} string
+ * @returns {string}
+ */
+ btoa (string: string): string;
+
+ /**
+ * @param str
+ * @param length
+ * @returns {[string, string]}
+ */
+ hideString (str: string, length: number): [string, string];
+
+ /**
+ * @param key
+ * @param string
+ * @returns {string}
+ */
+ rc4 (string: string, key: string): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts
new file mode 100644
index 0000000..9bb691b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ICryptUtilsSwappedAlphabet.ts
@@ -0,0 +1,4 @@
+/* eslint-disable @typescript-eslint/no-empty-interface */
+import { ICryptUtils } from './ICryptUtils';
+
+export interface ICryptUtilsSwappedAlphabet extends ICryptUtils {}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/IEscapeSequenceEncoder.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IEscapeSequenceEncoder.ts
new file mode 100644
index 0000000..2394170
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IEscapeSequenceEncoder.ts
@@ -0,0 +1,8 @@
+export interface IEscapeSequenceEncoder {
+ /**
+ * @param {string} string
+ * @param {boolean} encodeAllSymbols
+ * @returns {string}
+ */
+ encode (string: string, encodeAllSymbols: boolean): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/ILevelledTopologicalSorter.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ILevelledTopologicalSorter.ts
new file mode 100644
index 0000000..137cfc2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ILevelledTopologicalSorter.ts
@@ -0,0 +1,21 @@
+export interface ILevelledTopologicalSorter <TValue extends string = string> {
+ /**
+ * @param {TValue} precedent
+ * @param {TValue | null} consequent
+ * @returns {this}
+ */
+ add (
+ precedent: TValue,
+ consequent?: TValue | null
+ ): this;
+
+ /**
+ * @returns {TValue[]}
+ */
+ sort (): TValue[];
+
+ /**
+ * @returns {TValue[][]}
+ */
+ sortByGroups (): TValue[][];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/IRandomGenerator.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IRandomGenerator.ts
new file mode 100644
index 0000000..65c5f4d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/IRandomGenerator.ts
@@ -0,0 +1,47 @@
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-ignore
+import type * as Chance from 'chance';
+
+export interface IRandomGenerator {
+ /**
+ * @returns {number}
+ */
+ getMathRandom (): number;
+
+ /**
+ * @returns {Chance.Chance}
+ */
+ getRandomGenerator (): Chance.Chance;
+
+ /**
+ * @param min
+ * @param max
+ * @returns {number}
+ */
+ getRandomInteger (min: number, max: number): number;
+
+ /**
+ * @param {number} min
+ * @param {number} max
+ * @param {number[]} valuesToExclude
+ * @returns {number}
+ */
+ getRandomIntegerExcluding (min: number, max: number, valuesToExclude: number[]): number;
+
+ /**
+ * @param length
+ * @param pool
+ * @returns {string}
+ */
+ getRandomString (length: number, pool?: string): string;
+
+ /**
+ * @returns {string}
+ */
+ getInputSeed (): string;
+
+ /**
+ * @returns {string}
+ */
+ getRawSeed (): string;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/interfaces/utils/ITransformerNamesGroupsBuilder.ts b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ITransformerNamesGroupsBuilder.ts
new file mode 100644
index 0000000..99f813c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/interfaces/utils/ITransformerNamesGroupsBuilder.ts
@@ -0,0 +1,12 @@
+import { TDictionary } from '../../types/TDictionary';
+
+export interface ITransformerNamesGroupsBuilder <
+ TTransformerName extends string,
+ TTransformer
+> {
+ /**
+ * @param {TDictionary<TTransformer>} normalizedTransformers
+ * @returns {TTransformerName[][]}
+ */
+ build (normalizedTransformers: TDictionary<TTransformer>): TTransformerName[][];
+}
diff --git a/src/node_modules/javascript-obfuscator/src/logger/Logger.ts b/src/node_modules/javascript-obfuscator/src/logger/Logger.ts
new file mode 100644
index 0000000..7a93c6c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/logger/Logger.ts
@@ -0,0 +1,95 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import chalk, { Chalk } from 'chalk';
+
+import { ILogger } from '../interfaces/logger/ILogger';
+import { IOptions } from '../interfaces/options/IOptions';
+
+import { LoggingMessage } from '../enums/logger/LoggingMessage';
+import { LoggingPrefix } from '../enums/logger/LoggingPrefix';
+
+@injectable()
+export class Logger implements ILogger {
+ /**
+ * @type {Chalk}
+ */
+ public static readonly colorInfo: Chalk = chalk.cyan;
+
+ /**
+ * @type {Chalk}
+ */
+ public static readonly colorSuccess: Chalk = chalk.green;
+
+ /**
+ * @type {Chalk}
+ */
+ public static readonly colorWarn: Chalk = chalk.yellow;
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.options = options;
+ }
+
+ /**
+ * @param {Chalk} loggingLevelColor
+ * @param {LoggingPrefix} loggingPrefix
+ * @param {string} loggingMessage
+ * @param {string | number} value
+ */
+ public static log (
+ loggingLevelColor: Chalk,
+ loggingPrefix: LoggingPrefix,
+ loggingMessage: string,
+ value?: string | number,
+ ): void {
+ const processedMessage: string = loggingLevelColor(`\n${loggingPrefix} ${loggingMessage}`);
+
+ console.log(processedMessage, value ?? '');
+ }
+
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ public info (loggingMessage: LoggingMessage, value?: string | number): void {
+ if (!this.options.log) {
+ return;
+ }
+
+ Logger.log(Logger.colorInfo, LoggingPrefix.Base, loggingMessage, value);
+ }
+
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ public success (loggingMessage: LoggingMessage, value?: string | number): void {
+ if (!this.options.log) {
+ return;
+ }
+
+ Logger.log(Logger.colorSuccess, LoggingPrefix.Base, loggingMessage, value);
+ }
+
+ /**
+ * @param {LoggingMessage} loggingMessage
+ * @param {string | number} value
+ */
+ public warn (loggingMessage: LoggingMessage, value?: string | number): void {
+ if (!this.options.log) {
+ return;
+ }
+
+ Logger.log(Logger.colorWarn, LoggingPrefix.Base, loggingMessage, value);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/AbstractNodeTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/AbstractNodeTransformer.ts
new file mode 100644
index 0000000..4200a84
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/AbstractNodeTransformer.ts
@@ -0,0 +1,56 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { INodeTransformer } from '../interfaces/node-transformers/INodeTransformer';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../enums/node-transformers/NodeTransformationStage';
+
+@injectable()
+export abstract class AbstractNodeTransformer implements INodeTransformer {
+ /**
+ * @type {NodeTransformer[] | undefined}
+ */
+ public readonly runAfter: NodeTransformer[] | undefined;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public abstract getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null;
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {Node | VisitorOption}
+ */
+ public abstract transformNode (node: ESTree.Node, parentNode: ESTree.Node): ESTree.Node | estraverse.VisitorOption;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformerNamesGroupsBuilder.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformerNamesGroupsBuilder.ts
new file mode 100644
index 0000000..d29fca7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformerNamesGroupsBuilder.ts
@@ -0,0 +1,13 @@
+import { injectable } from 'inversify';
+
+import { INodeTransformer } from '../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../enums/node-transformers/NodeTransformer';
+
+import { AbstractTransformerNamesGroupsBuilder } from '../utils/AbstractTransformerNamesGroupsBuilder';
+
+@injectable()
+export class NodeTransformerNamesGroupsBuilder extends AbstractTransformerNamesGroupsBuilder<
+ NodeTransformer,
+ INodeTransformer
+> {}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformersRunner.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformersRunner.ts
new file mode 100644
index 0000000..5626d5e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/NodeTransformersRunner.ts
@@ -0,0 +1,175 @@
+import { inject, injectable } from 'inversify';
+
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TNodeTransformerFactory } from '../types/container/node-transformers/TNodeTransformerFactory';
+import { TDictionary } from '../types/TDictionary';
+import { TVisitorDirection } from '../types/node-transformers/TVisitorDirection';
+import { TVisitorFunction } from '../types/node-transformers/TVisitorFunction';
+import { TVisitorResult } from '../types/node-transformers/TVisitorResult';
+
+import { INodeTransformer } from '../interfaces/node-transformers/INodeTransformer';
+import { INodeTransformersRunner } from '../interfaces/node-transformers/INodeTransformersRunner';
+import { ITransformerNamesGroupsBuilder } from '../interfaces/utils/ITransformerNamesGroupsBuilder';
+import { IVisitor } from '../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../enums/node-transformers/NodeTransformationStage';
+import { VisitorDirection } from '../enums/node-transformers/VisitorDirection';
+
+import { NodeGuards } from '../node/NodeGuards';
+import { NodeMetadata } from '../node/NodeMetadata';
+
+@injectable()
+export class NodeTransformersRunner implements INodeTransformersRunner {
+ /**
+ * @type {TNodeTransformerFactory}
+ */
+ private readonly nodeTransformerFactory: TNodeTransformerFactory;
+
+ /**
+ * @type {ITransformerNamesGroupsBuilder}
+ */
+ private readonly nodeTransformerNamesGroupsBuilder: ITransformerNamesGroupsBuilder<
+ NodeTransformer,
+ INodeTransformer
+ >;
+
+ /**
+ * @param {TNodeTransformerFactory} nodeTransformerFactory
+ * @param {ITransformerNamesGroupsBuilder} nodeTransformerNamesGroupsBuilder
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__INodeTransformer)
+ nodeTransformerFactory: TNodeTransformerFactory,
+ @inject(ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)
+ nodeTransformerNamesGroupsBuilder: ITransformerNamesGroupsBuilder<
+ NodeTransformer,
+ INodeTransformer
+ >,
+ ) {
+ this.nodeTransformerFactory = nodeTransformerFactory;
+ this.nodeTransformerNamesGroupsBuilder = nodeTransformerNamesGroupsBuilder;
+ }
+
+ /**
+ * @param {T} astTree
+ * @param {NodeTransformer[]} nodeTransformerNames
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {T}
+ */
+ public transform <T extends ESTree.Node = ESTree.Program> (
+ astTree: T,
+ nodeTransformerNames: NodeTransformer[],
+ nodeTransformationStage: NodeTransformationStage
+ ): T {
+ if (!nodeTransformerNames.length) {
+ return astTree;
+ }
+
+ const normalizedNodeTransformers: TDictionary<INodeTransformer> =
+ this.buildNormalizedNodeTransformers(nodeTransformerNames, nodeTransformationStage);
+ const nodeTransformerNamesGroups: NodeTransformer[][] =
+ this.nodeTransformerNamesGroupsBuilder.build(normalizedNodeTransformers);
+
+ for (const nodeTransformerNamesGroup of nodeTransformerNamesGroups) {
+ const enterVisitors: IVisitor[] = [];
+ const leaveVisitors: IVisitor[] = [];
+
+ for (const nodeTransformerName of nodeTransformerNamesGroup) {
+ const nodeTransformer: INodeTransformer = normalizedNodeTransformers[nodeTransformerName];
+ const visitor: IVisitor | null = nodeTransformer.getVisitor(nodeTransformationStage);
+
+ if (!visitor) {
+ continue;
+ }
+
+ if (visitor.enter) {
+ enterVisitors.push({ enter: visitor.enter });
+ }
+
+ if (visitor.leave) {
+ leaveVisitors.push({ leave: visitor.leave });
+ }
+ }
+
+ if (!enterVisitors.length && !leaveVisitors.length) {
+ continue;
+ }
+
+ estraverse.replace(astTree, {
+ enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection.Enter),
+ leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection.Leave)
+ });
+ }
+
+ return astTree;
+ }
+
+ /**
+ * @param {NodeTransformer[]} nodeTransformerNames
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {TDictionary<INodeTransformer>}
+ */
+ private buildNormalizedNodeTransformers (
+ nodeTransformerNames: NodeTransformer[],
+ nodeTransformationStage: NodeTransformationStage
+ ): TDictionary<INodeTransformer> {
+ return nodeTransformerNames
+ .reduce<TDictionary<INodeTransformer>>(
+ (acc: TDictionary<INodeTransformer>, nodeTransformerName: NodeTransformer) => {
+ const nodeTransformer: INodeTransformer = this.nodeTransformerFactory(nodeTransformerName);
+
+ if (!nodeTransformer.getVisitor(nodeTransformationStage)) {
+ return acc;
+ }
+
+ return <TDictionary<INodeTransformer>>{
+ ...acc,
+ [nodeTransformerName]: nodeTransformer
+ };
+ },
+ {}
+ );
+ }
+
+ /**
+ * @param {IVisitor[]} visitors
+ * @param {TVisitorDirection} direction
+ * @returns {TVisitorFunction}
+ */
+ private mergeVisitorsForDirection (visitors: IVisitor[], direction: TVisitorDirection): TVisitorFunction {
+ const visitorsLength: number = visitors.length;
+
+ if (!visitorsLength) {
+ return (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node => node;
+ }
+
+ return (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | estraverse.VisitorOption => {
+ if (NodeMetadata.isIgnoredNode(node)) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ for (let i: number = 0; i < visitorsLength; i++) {
+ const visitorFunction: TVisitorFunction | undefined = visitors[i][direction];
+
+ if (!visitorFunction) {
+ continue;
+ }
+
+ const visitorResult: TVisitorResult = visitorFunction(node, parentNode);
+
+ if (!visitorResult || !NodeGuards.isNode(visitorResult)) {
+ continue;
+ }
+
+ node = visitorResult;
+ }
+
+ return node;
+ };
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts
new file mode 100644
index 0000000..cf539af
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts
@@ -0,0 +1,151 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TInitialData } from '../../types/TInitialData';
+import { TStatement } from '../../types/node/TStatement';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { ControlFlowCustomNode } from '../../enums/custom-nodes/ControlFlowCustomNode';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { BlockStatementControlFlowFlatteningNode } from '../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class BlockStatementControlFlowTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @type {TControlFlowCustomNodeFactory}
+ */
+ private readonly controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory;
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
+ this.arrayUtils = arrayUtils;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ private static isProhibitedStatementNode (node: ESTree.Node): boolean {
+ const isBreakOrContinueStatement: boolean = NodeGuards.isBreakStatementNode(node)
+ || NodeGuards.isContinueStatementNode(node);
+ const isVariableDeclarationWithLetOrConstKind: boolean = NodeGuards.isVariableDeclarationNode(node)
+ && (node.kind === 'const' || node.kind === 'let');
+ const isClassDeclaration: boolean = NodeGuards.isClassDeclarationNode(node);
+
+ return NodeGuards.isFunctionDeclarationNode(node)
+ || isBreakOrContinueStatement
+ || isVariableDeclarationWithLetOrConstKind
+ || isClassDeclaration;
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @returns {boolean}
+ */
+ private static canTransformBlockStatementNode (blockStatementNode: ESTree.BlockStatement): boolean {
+ let canTransform: boolean = true;
+
+ estraverse.traverse(blockStatementNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (NodeGuards.isWhileStatementNode(node)) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ if (BlockStatementControlFlowTransformer.isProhibitedStatementNode(node)) {
+ canTransform = false;
+ }
+ }
+ });
+
+ if (blockStatementNode.body.length <= 4) {
+ canTransform = false;
+ }
+
+ return canTransform;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.ControlFlowFlattening:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isBlockStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (blockStatementNode: ESTree.BlockStatement, parentNode: ESTree.Node): ESTree.Node {
+ if (
+ this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold ||
+ !BlockStatementControlFlowTransformer.canTransformBlockStatementNode(blockStatementNode)
+ ) {
+ return blockStatementNode;
+ }
+
+ const blockStatementBody: ESTree.Statement[] = blockStatementNode.body;
+ const originalKeys: number[] = this.arrayUtils.createWithRange(blockStatementBody.length);
+ const shuffledKeys: number[] = this.arrayUtils.shuffle(originalKeys);
+ const originalKeysIndexesInShuffledArray: number[] = originalKeys.map((key: number) => shuffledKeys.indexOf(key));
+ const blockStatementControlFlowFlatteningCustomNode: ICustomNode<TInitialData<BlockStatementControlFlowFlatteningNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);
+
+ blockStatementControlFlowFlatteningCustomNode.initialize(
+ blockStatementBody,
+ shuffledKeys,
+ originalKeysIndexesInShuffledArray
+ );
+
+ const newBlockStatementNode: TStatement = blockStatementControlFlowFlatteningCustomNode.getNode()[0];
+
+ NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
+
+ return newBlockStatementNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts
new file mode 100644
index 0000000..f8459d6
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts
@@ -0,0 +1,265 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowReplacerFactory } from '../../types/container/node-transformers/TControlFlowReplacerFactory';
+import { TControlFlowStorage } from '../../types/storages/TControlFlowStorage';
+import { TControlFlowStorageFactory } from '../../types/container/node-transformers/TControlFlowStorageFactory';
+import { TInitialData } from '../../types/TInitialData';
+import { TNodeWithStatements } from '../../types/node/TNodeWithStatements';
+
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { ControlFlowCustomNode } from '../../enums/custom-nodes/ControlFlowCustomNode';
+import { ControlFlowReplacer } from '../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer';
+import { NodeType } from '../../enums/node/NodeType';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { ControlFlowStorageNode } from '../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode';
+import { NodeAppender } from '../../node/NodeAppender';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeMetadata } from '../../node/NodeMetadata';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class FunctionControlFlowTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {Map <string, ControlFlowReplacer>}
+ */
+ private static readonly controlFlowReplacersMap: Map <string, ControlFlowReplacer> = new Map([
+ [NodeType.BinaryExpression, ControlFlowReplacer.BinaryExpressionControlFlowReplacer],
+ [NodeType.CallExpression, ControlFlowReplacer.CallExpressionControlFlowReplacer],
+ [NodeType.LogicalExpression, ControlFlowReplacer.LogicalExpressionControlFlowReplacer],
+ [NodeType.Literal, ControlFlowReplacer.StringLiteralControlFlowReplacer]
+ ]);
+
+ /**
+ * @type {number}
+ */
+ private static readonly hostNodeSearchMinDepth: number = 0;
+
+ /**
+ * @type {number}
+ */
+ private static readonly hostNodeSearchMaxDepth: number = 2;
+
+ /**
+ * @type {Map<ESTree.Node, TControlFlowStorage>}
+ */
+ private readonly controlFlowData: Map <ESTree.Node, TControlFlowStorage> = new Map();
+
+ /**
+ * @type {Set<ESTree.Function>}
+ */
+ private readonly visitedFunctionNodes: Set<ESTree.Function> = new Set();
+
+ /**
+ * @type {Set<TNodeWithStatements>}
+ */
+ private readonly hostNodesWithControlFlowNode: Set<TNodeWithStatements> = new Set();
+
+ /**
+ * @type {TControlFlowReplacerFactory}
+ */
+ private readonly controlFlowReplacerFactory: TControlFlowReplacerFactory;
+
+ /**
+ * @type {TControlFlowStorageFactory}
+ */
+ private readonly controlFlowStorageFactory: TControlFlowStorageFactory;
+
+ /**
+ * @type {TControlFlowCustomNodeFactory}
+ */
+ private readonly controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory;
+
+ /**
+ * @param {TControlFlowStorageFactory} controlFlowStorageFactory
+ * @param {TControlFlowReplacerFactory} controlFlowReplacerFactory
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__TControlFlowStorage)
+ controlFlowStorageFactory: TControlFlowStorageFactory,
+ @inject(ServiceIdentifiers.Factory__IControlFlowReplacer)
+ controlFlowReplacerFactory: TControlFlowReplacerFactory,
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.controlFlowStorageFactory = controlFlowStorageFactory;
+ this.controlFlowReplacerFactory = controlFlowReplacerFactory;
+ this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.ControlFlowFlattening:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (
+ parentNode && (
+ NodeGuards.isFunctionDeclarationNode(node) ||
+ NodeGuards.isFunctionExpressionNode(node) ||
+ NodeGuards.isArrowFunctionExpressionNode(node)
+ )
+ ) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Function} functionNode
+ * @param {NodeGuards} parentNode
+ * @returns {Function}
+ */
+ public transformNode (functionNode: ESTree.Function, parentNode: ESTree.Node): ESTree.Function {
+ this.visitedFunctionNodes.add(functionNode);
+
+ if (!NodeGuards.isBlockStatementNode(functionNode.body)) {
+ return functionNode;
+ }
+
+ const hostNode: TNodeWithStatements = this.getHostNode(functionNode.body);
+ const controlFlowStorage: TControlFlowStorage = this.getControlFlowStorage(hostNode);
+
+ this.controlFlowData.set(hostNode, controlFlowStorage);
+ this.transformFunctionBody(functionNode.body, controlFlowStorage);
+
+ if (!controlFlowStorage.getLength()) {
+ return functionNode;
+ }
+
+ const controlFlowStorageCustomNode: ICustomNode<TInitialData<ControlFlowStorageNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.ControlFlowStorageNode);
+
+ controlFlowStorageCustomNode.initialize(controlFlowStorage);
+ NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode());
+ this.hostNodesWithControlFlowNode.add(hostNode);
+
+ NodeUtils.parentizeAst(functionNode);
+
+ return functionNode;
+ }
+
+ /**
+ * @param {TNodeWithStatements} hostNode
+ * @returns {TControlFlowStorage}
+ */
+ private getControlFlowStorage (hostNode: TNodeWithStatements): TControlFlowStorage {
+ const controlFlowStorage: TControlFlowStorage = this.controlFlowStorageFactory();
+
+ if (this.controlFlowData.has(hostNode)) {
+ if (this.hostNodesWithControlFlowNode.has(hostNode)) {
+ if (NodeGuards.isSwitchCaseNode(hostNode)) {
+ hostNode.consequent.shift();
+ } else {
+ hostNode.body.shift();
+ }
+ }
+
+ const hostControlFlowStorage: TControlFlowStorage = <TControlFlowStorage>this.controlFlowData.get(hostNode);
+
+ controlFlowStorage.mergeWith(hostControlFlowStorage, true);
+ }
+
+ return controlFlowStorage;
+ }
+
+ /**
+ * @param {BlockStatement} functionNodeBody
+ * @returns {TNodeWithStatements}
+ */
+ private getHostNode (functionNodeBody: ESTree.BlockStatement): TNodeWithStatements {
+ const blockScopesOfNode: TNodeWithStatements[] = NodeStatementUtils.getParentNodesWithStatements(functionNodeBody);
+
+ if (blockScopesOfNode.length === 1) {
+ return functionNodeBody;
+ } else {
+ blockScopesOfNode.pop();
+ }
+
+ if (blockScopesOfNode.length > FunctionControlFlowTransformer.hostNodeSearchMinDepth) {
+ blockScopesOfNode.splice(0, FunctionControlFlowTransformer.hostNodeSearchMinDepth);
+ }
+
+ if (blockScopesOfNode.length > FunctionControlFlowTransformer.hostNodeSearchMaxDepth) {
+ blockScopesOfNode.length = FunctionControlFlowTransformer.hostNodeSearchMaxDepth;
+ }
+
+ return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode);
+ }
+
+ /**
+ * @param {NodeGuards} node
+ * @returns {boolean}
+ */
+ private isVisitedFunctionNode (node: ESTree.Node): boolean {
+ return (
+ NodeGuards.isFunctionDeclarationNode(node) ||
+ NodeGuards.isFunctionExpressionNode(node) ||
+ NodeGuards.isArrowFunctionExpressionNode(node)
+ ) && this.visitedFunctionNodes.has(node);
+ }
+
+ /**
+ * @param {BlockStatement} functionNodeBody
+ * @param {TControlFlowStorage} controlFlowStorage
+ */
+ private transformFunctionBody (functionNodeBody: ESTree.BlockStatement, controlFlowStorage: TControlFlowStorage): void {
+ estraverse.replace(functionNodeBody, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): estraverse.VisitorOption | ESTree.Node => {
+ if (NodeMetadata.isIgnoredNode(node)) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ if (this.isVisitedFunctionNode(node) || !parentNode) {
+ return estraverse.VisitorOption.Skip;
+ }
+
+ if (!FunctionControlFlowTransformer.controlFlowReplacersMap.has(node.type)) {
+ return node;
+ }
+
+ if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold) {
+ return node;
+ }
+
+ const controlFlowReplacerName: ControlFlowReplacer = <ControlFlowReplacer>FunctionControlFlowTransformer
+ .controlFlowReplacersMap.get(node.type);
+
+ if (controlFlowReplacerName === undefined) {
+ return node;
+ }
+
+ return {
+ ...this.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage),
+ parentNode
+ };
+ }
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts
new file mode 100644
index 0000000..cef3113
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts
@@ -0,0 +1,123 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+
+import { IControlFlowReplacer } from '../../../interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer';
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+@injectable()
+export abstract class AbstractControlFlowReplacer implements IControlFlowReplacer {
+ /**
+ * @type {TControlFlowCustomNodeFactory}
+ */
+ protected readonly controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {Map<string, Map<string, string[]>>}
+ */
+ protected readonly replacerDataByControlFlowStorageId: Map <string, Map<string, string[]>> = new Map();
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory;
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ /**
+ * @param {Map<string, Map<string, string[]>>} identifierDataByControlFlowStorageId
+ * @param {string} controlFlowStorageId
+ * @returns {Map<string, string[]>}
+ */
+ protected static getStorageKeysByIdForCurrentStorage (
+ identifierDataByControlFlowStorageId: Map<string, Map<string, string[]>>,
+ controlFlowStorageId: string
+ ): Map<string, string[]> {
+ let storageKeysById: Map<string, string[]>;
+
+ if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) {
+ storageKeysById = <Map<string, string[]>>identifierDataByControlFlowStorageId.get(controlFlowStorageId);
+ } else {
+ storageKeysById = new Map <string, string[]>();
+ }
+
+ return storageKeysById;
+ }
+
+ /**
+ * @param {ICustomNode} customNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @param {string} replacerId
+ * @param {number} usingExistingIdentifierChance
+ * @returns {string}
+ */
+ protected insertCustomNodeToControlFlowStorage (
+ customNode: ICustomNode,
+ controlFlowStorage: TControlFlowStorage,
+ replacerId: string,
+ usingExistingIdentifierChance: number
+ ): string {
+ const controlFlowStorageId: string = controlFlowStorage.getStorageId();
+ const storageKeysById: Map<string, string[]> = AbstractControlFlowReplacer
+ .getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId);
+ const storageKeysForCurrentId: string[] | undefined = storageKeysById.get(replacerId);
+
+ if (
+ this.randomGenerator.getMathRandom() < usingExistingIdentifierChance &&
+ storageKeysForCurrentId &&
+ storageKeysForCurrentId.length
+ ) {
+ return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId);
+ }
+
+ const generateStorageKey: (length: number) => string = (length: number) => {
+ const key: string = this.randomGenerator.getRandomString(length);
+
+ if (controlFlowStorage.getStorage().has(key)) {
+ return generateStorageKey(length);
+ }
+
+ return key;
+ };
+ const storageKey: string = generateStorageKey(5);
+
+ storageKeysById.set(replacerId, [storageKey]);
+ this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById);
+ controlFlowStorage.set(storageKey, customNode);
+
+ return storageKey;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @returns {Node}
+ */
+ public abstract replace (node: ESTree.Node, parentNode: ESTree.Node, controlFlowStorage: TControlFlowStorage): ESTree.Node;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts
new file mode 100644
index 0000000..3dc0bbc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts
@@ -0,0 +1,71 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TInitialData } from '../../../types/TInitialData';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+import { BinaryExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode';
+import { ExpressionWithOperatorControlFlowReplacer } from './ExpressionWithOperatorControlFlowReplacer';
+
+@injectable()
+export class BinaryExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer {
+ /**
+ * @type {number}
+ */
+ private static readonly usingExistingIdentifierChance: number = 0.5;
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(controlFlowCustomNodeFactory, randomGenerator, options);
+ }
+
+ /**
+ * @param {BinaryExpression} binaryExpressionNode
+ * @param {Node} parentNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @returns {Node}
+ */
+ public replace (
+ binaryExpressionNode: ESTree.BinaryExpression,
+ parentNode: ESTree.Node,
+ controlFlowStorage: TControlFlowStorage
+ ): ESTree.Node {
+ const operator: ESTree.BinaryOperator = binaryExpressionNode.operator;
+ const binaryExpressionFunctionCustomNode: ICustomNode<TInitialData<BinaryExpressionFunctionNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.BinaryExpressionFunctionNode);
+
+ binaryExpressionFunctionCustomNode.initialize(operator);
+
+ const storageKey: string = this.insertCustomNodeToControlFlowStorage(
+ binaryExpressionFunctionCustomNode,
+ controlFlowStorage,
+ operator,
+ BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance
+ );
+
+ return this.getControlFlowStorageCallNode(
+ controlFlowStorage.getStorageId(),
+ storageKey,
+ binaryExpressionNode.left,
+ binaryExpressionNode.right
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts
new file mode 100644
index 0000000..a67e9a3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts
@@ -0,0 +1,108 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TInitialData } from '../../../types/TInitialData';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+import { AbstractControlFlowReplacer } from './AbstractControlFlowReplacer';
+import { CallExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode';
+import { CallExpressionControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode';
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class CallExpressionControlFlowReplacer extends AbstractControlFlowReplacer {
+ /**
+ * @type {number}
+ */
+ private static readonly usingExistingIdentifierChance: number = 0.5;
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(controlFlowCustomNodeFactory, randomGenerator, options);
+ }
+
+ /**
+ * @param {CallExpression} callExpressionNode
+ * @param {NodeGuards} parentNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @returns {NodeGuards}
+ */
+ public replace (
+ callExpressionNode: ESTree.CallExpression,
+ parentNode: ESTree.Node,
+ controlFlowStorage: TControlFlowStorage
+ ): ESTree.Node {
+ const callee: ESTree.Expression = <ESTree.Expression>callExpressionNode.callee;
+
+ if (!NodeGuards.isIdentifierNode(callee)) {
+ return callExpressionNode;
+ }
+
+ const replacerId: string = String(callExpressionNode.arguments.length);
+ const callExpressionFunctionCustomNode: ICustomNode<TInitialData<CallExpressionFunctionNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.CallExpressionFunctionNode);
+ const expressionArguments: (ESTree.Expression | ESTree.SpreadElement)[] = callExpressionNode.arguments;
+
+ callExpressionFunctionCustomNode.initialize(expressionArguments);
+
+ const storageKey: string = this.insertCustomNodeToControlFlowStorage(
+ callExpressionFunctionCustomNode,
+ controlFlowStorage,
+ replacerId,
+ CallExpressionControlFlowReplacer.usingExistingIdentifierChance
+ );
+
+ return this.getControlFlowStorageCallNode(
+ controlFlowStorage.getStorageId(),
+ storageKey,
+ callee,
+ expressionArguments
+ );
+ }
+
+ /**
+ * @param {string} controlFlowStorageId
+ * @param {string} storageKey
+ * @param {Expression} callee
+ * @param {(Expression | SpreadElement)[]} expressionArguments
+ * @returns {NodeGuards}
+ */
+ protected getControlFlowStorageCallNode (
+ controlFlowStorageId: string,
+ storageKey: string,
+ callee: ESTree.Expression,
+ expressionArguments: (ESTree.Expression | ESTree.SpreadElement)[]
+ ): ESTree.Node {
+ const controlFlowStorageCallCustomNode: ICustomNode<TInitialData<CallExpressionControlFlowStorageCallNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);
+
+ controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments);
+
+ const statementNode: TStatement = controlFlowStorageCallCustomNode.getNode()[0];
+
+ if (!statementNode || !NodeGuards.isExpressionStatementNode(statementNode)) {
+ throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
+ }
+
+ return statementNode.expression;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts
new file mode 100644
index 0000000..45e51ff
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts
@@ -0,0 +1,62 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TInitialData } from '../../../types/TInitialData';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+import { AbstractControlFlowReplacer } from './AbstractControlFlowReplacer';
+import { ExpressionWithOperatorControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode';
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export abstract class ExpressionWithOperatorControlFlowReplacer extends AbstractControlFlowReplacer {
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(controlFlowCustomNodeFactory, randomGenerator, options);
+ }
+
+ /**
+ * @param {string} controlFlowStorageId
+ * @param {string} storageKey
+ * @param {Expression} leftExpression
+ * @param {Expression} rightExpression
+ * @returns {NodeGuards}
+ */
+ protected getControlFlowStorageCallNode (
+ controlFlowStorageId: string,
+ storageKey: string,
+ leftExpression: ESTree.Expression,
+ rightExpression: ESTree.Expression
+ ): ESTree.Node {
+ const controlFlowStorageCallCustomNode: ICustomNode<TInitialData<ExpressionWithOperatorControlFlowStorageCallNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);
+
+ controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression);
+
+ const statementNode: TStatement = controlFlowStorageCallCustomNode.getNode()[0];
+
+ if (!statementNode || !NodeGuards.isExpressionStatementNode(statementNode)) {
+ throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
+ }
+
+ return statementNode.expression;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts
new file mode 100644
index 0000000..a03de6d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts
@@ -0,0 +1,99 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TInitialData } from '../../../types/TInitialData';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+import { ExpressionWithOperatorControlFlowReplacer } from './ExpressionWithOperatorControlFlowReplacer';
+import { LogicalExpressionFunctionNode } from '../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class LogicalExpressionControlFlowReplacer extends ExpressionWithOperatorControlFlowReplacer {
+ /**
+ * @type {number}
+ */
+ private static readonly usingExistingIdentifierChance: number = 0.5;
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(controlFlowCustomNodeFactory, randomGenerator, options);
+ }
+
+ /**
+ * @param {LogicalExpression} logicalExpressionNode
+ * @param {NodeGuards} parentNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @returns {NodeGuards}
+ */
+ public replace (
+ logicalExpressionNode: ESTree.LogicalExpression,
+ parentNode: ESTree.Node,
+ controlFlowStorage: TControlFlowStorage
+ ): ESTree.Node {
+ if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) {
+ return logicalExpressionNode;
+ }
+
+ const operator: ESTree.LogicalOperator = logicalExpressionNode.operator;
+ const logicalExpressionFunctionCustomNode: ICustomNode<TInitialData<LogicalExpressionFunctionNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.LogicalExpressionFunctionNode);
+
+ logicalExpressionFunctionCustomNode.initialize(operator);
+
+ const storageKey: string = this.insertCustomNodeToControlFlowStorage(
+ logicalExpressionFunctionCustomNode,
+ controlFlowStorage,
+ operator,
+ LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance
+ );
+
+ return this.getControlFlowStorageCallNode(
+ controlFlowStorage.getStorageId(),
+ storageKey,
+ logicalExpressionNode.left,
+ logicalExpressionNode.right
+ );
+ }
+
+ /**
+ * @param {Expression} leftExpression
+ * @param {Expression} rightExpression
+ * @returns {boolean}
+ */
+ private checkForProhibitedExpressions (leftExpression: ESTree.Expression, rightExpression: ESTree.Expression): boolean {
+ return [leftExpression, rightExpression].some((expressionNode: ESTree.Node | ESTree.Expression): boolean => {
+ let nodeForCheck: ESTree.Node | ESTree.Expression;
+
+ if (!NodeGuards.isUnaryExpressionNode(expressionNode)) {
+ nodeForCheck = expressionNode;
+ } else {
+ nodeForCheck = NodeUtils.getUnaryExpressionArgumentNode(expressionNode);
+ }
+
+ return !NodeGuards.isLiteralNode(nodeForCheck) &&
+ !NodeGuards.isIdentifierNode(nodeForCheck) &&
+ !NodeGuards.isObjectExpressionNode(nodeForCheck) &&
+ !NodeGuards.isExpressionStatementNode(nodeForCheck);
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts
new file mode 100644
index 0000000..2d20ece
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts
@@ -0,0 +1,101 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TControlFlowCustomNodeFactory } from '../../../types/container/custom-nodes/TControlFlowCustomNodeFactory';
+import { TControlFlowStorage } from '../../../types/storages/TControlFlowStorage';
+import { TInitialData } from '../../../types/TInitialData';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+import { AbstractControlFlowReplacer } from './AbstractControlFlowReplacer';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeLiteralUtils } from '../../../node/NodeLiteralUtils';
+import { StringLiteralControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode';
+import { StringLiteralNode } from '../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode';
+
+@injectable()
+export class StringLiteralControlFlowReplacer extends AbstractControlFlowReplacer {
+ /**
+ * @type {number}
+ */
+ private static readonly usingExistingIdentifierChance: number = 1;
+
+ /**
+ * @param {TControlFlowCustomNodeFactory} controlFlowCustomNodeFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IControlFlowCustomNode)
+ controlFlowCustomNodeFactory: TControlFlowCustomNodeFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(controlFlowCustomNodeFactory, randomGenerator, options);
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {NodeGuards} parentNode
+ * @param {TControlFlowStorage} controlFlowStorage
+ * @returns {NodeGuards}
+ */
+ public replace (
+ literalNode: ESTree.Literal,
+ parentNode: ESTree.Node,
+ controlFlowStorage: TControlFlowStorage
+ ): ESTree.Node {
+ if (NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) {
+ return literalNode;
+ }
+
+ if (!NodeLiteralUtils.isStringLiteralNode(literalNode) || literalNode.value.length < 3) {
+ return literalNode;
+ }
+
+ const replacerId: string = String(literalNode.value);
+ const literalFunctionCustomNode: ICustomNode<TInitialData<StringLiteralNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.StringLiteralNode);
+
+ literalFunctionCustomNode.initialize(literalNode.value);
+
+ const storageKey: string = this.insertCustomNodeToControlFlowStorage(
+ literalFunctionCustomNode,
+ controlFlowStorage,
+ replacerId,
+ StringLiteralControlFlowReplacer.usingExistingIdentifierChance
+ );
+
+ return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey);
+ }
+
+ /**
+ * @param {string} controlFlowStorageId
+ * @param {string} storageKey
+ * @returns {NodeGuards}
+ */
+ protected getControlFlowStorageCallNode (
+ controlFlowStorageId: string,
+ storageKey: string
+ ): ESTree.Node {
+ const controlFlowStorageCallCustomNode: ICustomNode<TInitialData<StringLiteralControlFlowStorageCallNode>> =
+ this.controlFlowCustomNodeFactory(ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);
+
+ controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey);
+
+ const statementNode: TStatement = controlFlowStorageCallCustomNode.getNode()[0];
+
+ if (!statementNode || !NodeGuards.isExpressionStatementNode(statementNode)) {
+ throw new Error('`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
+ }
+
+ return statementNode.expression;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts
new file mode 100644
index 0000000..ba09a60
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/BooleanLiteralTransformer.ts
@@ -0,0 +1,98 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+import { NodeFactory } from '../../node/NodeFactory';
+
+@injectable()
+export class BooleanLiteralTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Replaces:
+ * var foo = true;
+ * var bar = false;
+ *
+ * on:
+ * var foo = !![];
+ * var bar = ![];
+ *
+ * @param {Literal} literalNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): ESTree.Node {
+ if (typeof literalNode.value !== 'boolean') {
+ return literalNode;
+ }
+
+ const literalValue: ESTree.SimpleLiteral['value'] = literalNode.value;
+
+ const unaryExpressionNode: ESTree.UnaryExpression = literalValue
+ ? this.getTrueUnaryExpressionNode()
+ : this.getFalseUnaryExpressionNode();
+
+ NodeUtils.parentizeNode(unaryExpressionNode, parentNode);
+
+ return unaryExpressionNode;
+ }
+
+ /**
+ * @return {ESTree.UnaryExpression}
+ */
+ private getTrueUnaryExpressionNode (): ESTree.UnaryExpression {
+ return NodeFactory.unaryExpressionNode(
+ '!',
+ this.getFalseUnaryExpressionNode()
+ );
+ }
+
+ /**
+ * @return {ESTree.UnaryExpression}
+ */
+ private getFalseUnaryExpressionNode (): ESTree.UnaryExpression {
+ return NodeFactory.unaryExpressionNode(
+ '!',
+ NodeFactory.arrayExpressionNode()
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts
new file mode 100644
index 0000000..16a8533
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ExportSpecifierTransformer.ts
@@ -0,0 +1,67 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class ExportSpecifierTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isExportSpecifierNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Replaces:
+ * export {foo};
+ *
+ * on:
+ * export {foo as foo};
+ *
+ * @param {ExportSpecifier} exportSpecifierNode
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (exportSpecifierNode: ESTree.ExportSpecifier, parentNode: ESTree.Node): ESTree.Node {
+ if (exportSpecifierNode.local.name === exportSpecifierNode.exported.name) {
+ exportSpecifierNode.exported = NodeUtils.clone(exportSpecifierNode.local);
+ }
+
+ return exportSpecifierNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts
new file mode 100644
index 0000000..300d66c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts
@@ -0,0 +1,77 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class MemberExpressionTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isMemberExpressionNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * replaces:
+ * object.identifier = 1;
+ *
+ * on:
+ * object['identifier'] = 1;
+ *
+ * and skip:
+ * object[identifier] = 1;
+ *
+ * Literal node will be obfuscated by StringArrayTransformer
+ *
+ * @param {MemberExpression} memberExpressionNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (memberExpressionNode: ESTree.MemberExpression, parentNode: ESTree.Node): ESTree.Node {
+ if (NodeGuards.isIdentifierNode(memberExpressionNode.property)) {
+ if (memberExpressionNode.computed) {
+ return memberExpressionNode;
+ }
+
+ memberExpressionNode.computed = true;
+ memberExpressionNode.property = NodeFactory.literalNode(memberExpressionNode.property.name);
+ }
+
+ return memberExpressionNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts
new file mode 100644
index 0000000..e80c53c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts
@@ -0,0 +1,132 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+
+/**
+ * replaces:
+ * foo () { //... };
+ *
+ * or
+ * 'foo' () { //... };
+ *
+ * on:
+ * ['foo'] { //... };
+ *
+ * Literal node will be obfuscated by LiteralTransformer
+ */
+@injectable()
+export class MethodDefinitionTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {string[]}
+ */
+ private static readonly ignoredNames: string[] = ['constructor'];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isMethodDefinitionNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * replaces:
+ * object.identifier = 1;
+ *
+ * on:
+ * object['identifier'] = 1;
+ *
+ * and skip:
+ * object[identifier] = 1;
+ * Literal node will be obfuscated by LiteralTransformer
+ *
+ * @param {MethodDefinition} methodDefinitionNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (methodDefinitionNode: ESTree.MethodDefinition, parentNode: ESTree.Node): ESTree.Node {
+ if (NodeGuards.isIdentifierNode(methodDefinitionNode.key)) {
+ return this.replaceIdentifierKey(methodDefinitionNode, methodDefinitionNode.key);
+ }
+
+ if (NodeGuards.isLiteralNode(methodDefinitionNode.key)) {
+ return this.replaceLiteralKey(methodDefinitionNode, methodDefinitionNode.key);
+ }
+
+ return methodDefinitionNode;
+ }
+
+ /**
+ * @param {MethodDefinition} methodDefinitionNode
+ * @param {Identifier} keyNode
+ * @returns {MethodDefinition}
+ */
+ private replaceIdentifierKey (
+ methodDefinitionNode: ESTree.MethodDefinition,
+ keyNode: ESTree.Identifier
+ ): ESTree.MethodDefinition {
+ if (
+ !MethodDefinitionTransformer.ignoredNames.includes(keyNode.name)
+ && !methodDefinitionNode.computed
+ ) {
+ methodDefinitionNode.computed = true;
+ methodDefinitionNode.key = NodeFactory.literalNode(keyNode.name);
+ }
+
+ return methodDefinitionNode;
+ }
+
+ /**
+ * @param {MethodDefinition} methodDefinitionNode
+ * @param {Literal} keyNode
+ * @returns {MethodDefinition}
+ */
+ private replaceLiteralKey (
+ methodDefinitionNode: ESTree.MethodDefinition,
+ keyNode: ESTree.Literal
+ ): ESTree.MethodDefinition {
+ if (
+ typeof keyNode.value === 'string'
+ && !MethodDefinitionTransformer.ignoredNames.includes(keyNode.value)
+ && !methodDefinitionNode.computed
+ ) {
+ methodDefinitionNode.computed = true;
+ }
+
+ return methodDefinitionNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberLiteralTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberLiteralTransformer.ts
new file mode 100644
index 0000000..d4ba708
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberLiteralTransformer.ts
@@ -0,0 +1,99 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NumberUtils } from '../../utils/NumberUtils';
+
+@injectable()
+export class NumberLiteralTransformer extends AbstractNodeTransformer {
+ /**
+ * Have to run it after NumberToNumericalExpressionTransformer to keep logic simple
+ *
+ * @type {NodeTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.NumberToNumericalExpressionTransformer
+ ];
+
+ /**
+ * @type {Map<string, string>}
+ */
+ private readonly numberLiteralCache: Map <number, string> = new Map();
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Replaces:
+ * var foo = 1;
+ *
+ * on:
+ * var foo = 0x1;
+ *
+ * @param {Literal} literalNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): ESTree.Node {
+ if (typeof literalNode.value !== 'number' && typeof literalNode.value !== 'bigint') {
+ return literalNode;
+ }
+
+ const literalValue: ESTree.SimpleLiteral['value'] = literalNode.value;
+
+ let rawValue: string;
+
+ if (this.numberLiteralCache.has(literalValue)) {
+ rawValue = <string>this.numberLiteralCache.get(literalValue);
+ } else {
+ if (NumberUtils.isCeil(literalValue)) {
+ rawValue = NumberUtils.toHex(literalValue);
+ } else {
+ rawValue = String(literalValue);
+ }
+
+ this.numberLiteralCache.set(literalValue, rawValue);
+ }
+
+ return NodeFactory.literalNode(literalValue, rawValue);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts
new file mode 100644
index 0000000..6e5c170
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/NumberToNumericalExpressionTransformer.ts
@@ -0,0 +1,175 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TNumberNumericalExpressionData } from '../../types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData';
+
+import { INumberNumericalExpressionAnalyzer } from '../../interfaces/analyzers/number-numerical-expression-analyzer/INumberNumericalExpressionAnalyzer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NumberUtils } from '../../utils/NumberUtils';
+
+/**
+ * replaces:
+ * var number = 123;
+ *
+ * on:
+ * var number = 50 + (100 * 2) - 127;
+ */
+@injectable()
+export class NumberToNumericalExpressionTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {INumberNumericalExpressionAnalyzer}
+ */
+ private readonly numberNumericalExpressionAnalyzer: INumberNumericalExpressionAnalyzer;
+
+ /**
+ * @param {INumberNumericalExpressionAnalyzer} numberNumericalExpressionAnalyzer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.INumberNumericalExpressionAnalyzer)
+ numberNumericalExpressionAnalyzer: INumberNumericalExpressionAnalyzer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.numberNumericalExpressionAnalyzer = numberNumericalExpressionAnalyzer;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ if (!this.options.numbersToExpressions) {
+ return null;
+ }
+
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): ESTree.Node {
+ if (typeof literalNode.value !== 'number') {
+ return literalNode;
+ }
+
+ if (NodeGuards.isPropertyNode(parentNode) && !parentNode.computed) {
+ return literalNode;
+ }
+
+ const numberNumericalExpressionData: TNumberNumericalExpressionData = this.numberNumericalExpressionAnalyzer.analyze(literalNode.value);
+
+ return this.convertNumericalExpressionDataToNode(numberNumericalExpressionData);
+ }
+
+ /**
+ * @param {TNumberNumericalExpressionData} numberNumericalExpressionData
+ * @param {ESTree.BinaryOperator} operator
+ * @returns {ESTree.BinaryExpression | ESTree.Literal | ESTree.UnaryExpression}
+ */
+ private convertNumericalExpressionDataToNode (
+ numberNumericalExpressionData: TNumberNumericalExpressionData,
+ operator: ESTree.BinaryOperator = '+'
+ ): ESTree.BinaryExpression | ESTree.Literal | ESTree.UnaryExpression {
+ const numberNumericalExpressionDataLength: number = numberNumericalExpressionData.length;
+
+ const leftParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1
+ ? numberNumericalExpressionData.slice(0, numberNumericalExpressionDataLength - 1)
+ : [numberNumericalExpressionData[0]];
+ const rightParts: TNumberNumericalExpressionData = numberNumericalExpressionDataLength > 1
+ ? numberNumericalExpressionData.slice(-1)
+ : [];
+
+ // trailing iterations
+ if (rightParts.length) {
+ return this.convertPartsToBinaryExpression(operator, leftParts, rightParts);
+ }
+
+ const firstLeftPartOrNumber: number | number[] | null = leftParts[0] ?? null;
+
+ // last iteration when only single left part is left
+ return Array.isArray(firstLeftPartOrNumber)
+ ? this.convertNumericalExpressionDataToNode(firstLeftPartOrNumber, '*')
+ : this.convertPartOrNumberToLiteralNode(firstLeftPartOrNumber);
+ }
+
+ /**
+ * @param {ESTree.BinaryOperator} operator
+ * @param {TNumberNumericalExpressionData} leftParts
+ * @param {TNumberNumericalExpressionData} rightParts
+ * @returns {ESTree.BinaryExpression}
+ */
+ private convertPartsToBinaryExpression (
+ operator: ESTree.BinaryOperator,
+ leftParts: TNumberNumericalExpressionData,
+ rightParts: TNumberNumericalExpressionData
+ ): ESTree.BinaryExpression {
+ const rightPartOrNumber: number | number[] = rightParts[0];
+
+ if (Array.isArray(rightPartOrNumber)) {
+ // right part is array with multiply numbers
+ return NodeFactory.binaryExpressionNode(
+ operator,
+ this.convertNumericalExpressionDataToNode(leftParts),
+ this.convertNumericalExpressionDataToNode(rightPartOrNumber, '*')
+ );
+ } else {
+ // right part is number
+ return NodeFactory.binaryExpressionNode(
+ operator,
+ this.convertNumericalExpressionDataToNode(leftParts),
+ this.convertPartOrNumberToLiteralNode(rightPartOrNumber)
+ );
+ }
+ }
+
+ /**
+ * @param {number | number[]} partOrNumber
+ * @returns {ESTree.Literal}
+ */
+ private convertPartOrNumberToLiteralNode (
+ partOrNumber: number | number[]
+ ): ESTree.Literal | ESTree.UnaryExpression {
+ const number: number = Array.isArray(partOrNumber)
+ ? partOrNumber[0]
+ : partOrNumber;
+ const isPositiveNumber: boolean = NumberUtils.isPositive(number);
+
+ const literalNode: ESTree.Literal = NodeFactory.literalNode(Math.abs(number));
+
+ return isPositiveNumber
+ ? literalNode
+ : NodeFactory.unaryExpressionNode(
+ '-',
+ literalNode
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts
new file mode 100644
index 0000000..b52cd88
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts
@@ -0,0 +1,253 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TObjectExpressionExtractorFactory } from '../../types/container/node-transformers/TObjectExpressionExtractorFactory';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+import { ObjectExpressionExtractor } from '../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+
+@injectable()
+export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {ObjectExpressionExtractor[]}
+ */
+ private static readonly objectExpressionExtractorNames: ObjectExpressionExtractor[] = [
+ ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,
+ ObjectExpressionExtractor.BasePropertiesExtractor
+ ];
+
+ /**
+ * @type {TObjectExpressionExtractorFactory}
+ */
+ private readonly objectExpressionExtractorFactory: TObjectExpressionExtractorFactory;
+
+ /**
+ * @param {TObjectExpressionExtractorFactory} objectExpressionExtractorFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IObjectExpressionExtractor)
+ objectExpressionExtractorFactory: TObjectExpressionExtractorFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.objectExpressionExtractorFactory = objectExpressionExtractorFactory;
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Node} objectExpressionParentNode
+ * @param {Statement} objectExpressionHostStatement
+ * @returns {boolean}
+ */
+ private static isProhibitedObjectExpressionNode (
+ objectExpressionNode: ESTree.ObjectExpression,
+ objectExpressionParentNode: ESTree.Node,
+ objectExpressionHostStatement: ESTree.Statement
+ ): boolean {
+ return ObjectExpressionKeysTransformer.isReferencedIdentifierName(
+ objectExpressionNode,
+ objectExpressionHostStatement
+ )
+ || ObjectExpressionKeysTransformer.isProhibitedArrowFunctionExpression(
+ objectExpressionNode,
+ objectExpressionParentNode
+ )
+ || ObjectExpressionKeysTransformer.isProhibitedSequenceExpression(
+ objectExpressionNode,
+ objectExpressionHostStatement
+ );
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Node} objectExpressionHostNode
+ * @returns {boolean}
+ */
+ private static isReferencedIdentifierName (
+ objectExpressionNode: ESTree.ObjectExpression,
+ objectExpressionHostNode: ESTree.Node,
+ ): boolean {
+ const identifierNamesSet: string[] = [];
+
+ let isReferencedIdentifierName: boolean = false;
+ let isCurrentNode: boolean = false;
+
+ // should mark node as prohibited if identifier of node is referenced somewhere inside other nodes
+ estraverse.traverse(objectExpressionHostNode, {
+ enter: (node: ESTree.Node): void | estraverse.VisitorOption => {
+ if (node === objectExpressionNode) {
+ isCurrentNode = true;
+ }
+
+ if (!NodeGuards.isIdentifierNode(node)) {
+ return;
+ }
+
+ if (!isCurrentNode) {
+ identifierNamesSet.push(node.name);
+
+ return;
+ }
+
+ if (identifierNamesSet.includes(node.name)) {
+ isReferencedIdentifierName = true;
+ }
+ },
+ leave: (node: ESTree.Node): void | estraverse.VisitorOption => {
+ if (node === objectExpressionNode) {
+ isCurrentNode = false;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return isReferencedIdentifierName;
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Node} objectExpressionNodeParentNode
+ * @returns {boolean}
+ */
+ private static isProhibitedArrowFunctionExpression (
+ objectExpressionNode: ESTree.ObjectExpression,
+ objectExpressionNodeParentNode: ESTree.Node
+ ): boolean {
+ return NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)
+ && objectExpressionNodeParentNode.body === objectExpressionNode;
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Node} objectExpressionHostNode
+ * @returns {boolean}
+ */
+ private static isProhibitedSequenceExpression (
+ objectExpressionNode: ESTree.ObjectExpression,
+ objectExpressionHostNode: ESTree.Node,
+ ): boolean {
+ return NodeGuards.isExpressionStatementNode(objectExpressionHostNode)
+ && NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)
+ && objectExpressionHostNode.expression.expressions.some((expressionNode: ESTree.Expression) =>
+ NodeGuards.isCallExpressionNode(expressionNode)
+ && NodeGuards.isSuperNode(expressionNode.callee)
+ );
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ if (!this.options.transformObjectKeys) {
+ return null;
+ }
+
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (
+ parentNode
+ && NodeGuards.isObjectExpressionNode(node)
+ ) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * replaces:
+ * var object = {
+ * foo: 1,
+ * bar: 2
+ * };
+ *
+ * on:
+ * var _0xabc123 = {};
+ * _0xabc123['foo'] = 1;
+ * _0xabc123['bar'] = 2;
+ * var object = _0xabc123;
+ *
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Node} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (objectExpressionNode: ESTree.ObjectExpression, parentNode: ESTree.Node): ESTree.Node {
+ if (!objectExpressionNode.properties.length) {
+ return objectExpressionNode;
+ }
+
+ const hostStatement: ESTree.Statement = NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
+
+ if (ObjectExpressionKeysTransformer.isProhibitedObjectExpressionNode(
+ objectExpressionNode,
+ parentNode,
+ hostStatement
+ )) {
+ return objectExpressionNode;
+ }
+
+ return this.applyObjectExpressionKeysExtractorsRecursive(
+ ObjectExpressionKeysTransformer.objectExpressionExtractorNames,
+ objectExpressionNode,
+ hostStatement
+ );
+ }
+
+ /**
+ * @param {ObjectExpressionExtractor[]} objectExpressionExtractorNames
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @returns {Node}
+ */
+ private applyObjectExpressionKeysExtractorsRecursive (
+ objectExpressionExtractorNames: ObjectExpressionExtractor[],
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement
+ ): ESTree.Node {
+ const newObjectExpressionExtractorNames: ObjectExpressionExtractor[] = [...objectExpressionExtractorNames];
+ const objectExpressionExtractor: ObjectExpressionExtractor | undefined =
+ newObjectExpressionExtractorNames.shift();
+
+ if (!objectExpressionExtractor) {
+ return objectExpressionNode;
+ }
+
+ const {
+ nodeToReplace,
+ objectExpressionHostStatement: newObjectExpressionHostStatement,
+ objectExpressionNode: newObjectExpressionNode
+ } = this.objectExpressionExtractorFactory(objectExpressionExtractor)
+ .extract(objectExpressionNode, hostStatement);
+
+ this.applyObjectExpressionKeysExtractorsRecursive(
+ newObjectExpressionExtractorNames,
+ newObjectExpressionNode,
+ newObjectExpressionHostStatement
+ );
+
+ return nodeToReplace;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts
new file mode 100644
index 0000000..b6981d0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts
@@ -0,0 +1,107 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+
+/**
+ * replaces:
+ * var object = { PSEUDO: 1 };
+ *
+ * on:
+ * var object = { 'PSEUDO': 1 };
+ */
+@injectable()
+export class ObjectExpressionTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isObjectExpressionNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (objectExpressionNode: ESTree.ObjectExpression, parentNode: ESTree.Node): ESTree.Node {
+ objectExpressionNode.properties
+ .forEach((property: ESTree.Property | ESTree.SpreadElement) => {
+ if (!NodeGuards.isPropertyNode(property)) {
+ return;
+ }
+
+ if (!property.key) {
+ return;
+ }
+
+ if (property.computed) {
+ this.transformComputedProperty(property);
+ } else {
+ this.transformBaseProperty(property);
+ }
+ });
+
+ return objectExpressionNode;
+ }
+
+ /**
+ * @param {Property} property
+ */
+ private transformComputedProperty (property: ESTree.Property): void {
+ if (!NodeGuards.isLiteralNode(property.key) || !(typeof property.key.value === 'string')) {
+ return;
+ }
+
+ property.key = NodeFactory.literalNode(property.key.value);
+ }
+
+ /**
+ * @param {Property} property
+ */
+ private transformBaseProperty (property: ESTree.Property): void {
+ if (property.shorthand) {
+ property.shorthand = false;
+ }
+
+ if (!NodeGuards.isIdentifierNode(property.key)) {
+ return;
+ }
+
+ property.key = NodeFactory.literalNode(property.key.name);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts
new file mode 100644
index 0000000..690da5c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/ObjectPatternPropertiesTransformer.ts
@@ -0,0 +1,84 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLexicalScopeUtils } from '../../node/NodeLexicalScopeUtils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class ObjectPatternPropertiesTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isPropertyNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * replaces:
+ * const {foo} = bar;
+ *
+ * on:
+ * const {foo: foo} = bar;
+ *
+ * @param {Property} propertyNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (propertyNode: ESTree.Property, parentNode: ESTree.Node): ESTree.Node {
+ if (!NodeGuards.isObjectPatternNode(parentNode) || !propertyNode.shorthand) {
+ return propertyNode;
+ }
+
+ if (!this.options.renameGlobals) {
+ const lexicalScope: TNodeWithLexicalScope | undefined = NodeLexicalScopeUtils.getLexicalScope(propertyNode);
+ const shouldNotTransformGlobalPropertyNode: boolean = !!lexicalScope && NodeGuards.isProgramNode(lexicalScope);
+
+ if (shouldNotTransformGlobalPropertyNode) {
+ return propertyNode;
+ }
+ }
+
+ propertyNode.shorthand = false;
+ propertyNode.value = NodeUtils.clone(propertyNode.value);
+
+ NodeUtils.parentizeNode(propertyNode.value, propertyNode);
+
+ return propertyNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/SplitStringTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/SplitStringTransformer.ts
new file mode 100644
index 0000000..8de8541
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/SplitStringTransformer.ts
@@ -0,0 +1,206 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+import * as stringz from 'stringz';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLiteralUtils } from '../../node/NodeLiteralUtils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * Splits strings into parts
+ */
+@injectable()
+export class SplitStringTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {number}
+ */
+ private static readonly firstPassChunkLength: number = 1000;
+
+ /**
+ * @type {NodeTransformer[]}
+ */
+ public runAfter: NodeTransformer[] = [
+ NodeTransformer.ObjectExpressionKeysTransformer,
+ NodeTransformer.TemplateLiteralTransformer
+ ];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {string} string
+ * @param {number} stringLength
+ * @param {number} chunkSize
+ * @returns {string[]}
+ */
+ private static chunkString (
+ string: string,
+ stringLength: number,
+ chunkSize: number
+ ): string[] {
+ const chunksCount: number = Math.ceil(stringLength / chunkSize);
+ const chunks: string[] = [];
+
+ let nextChunkStartIndex: number = 0;
+
+ for (
+ let chunkIndex: number = 0;
+ chunkIndex < chunksCount;
+ ++chunkIndex, nextChunkStartIndex += chunkSize
+ ) {
+ // eslint-disable-next-line unicorn/prefer-string-slice
+ chunks[chunkIndex] = stringz.substr(string, nextChunkStartIndex, chunkSize);
+ }
+
+ return chunks;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (!this.options.splitStrings) {
+ return;
+ }
+
+ if (parentNode && NodeGuards.isLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Needs to split string on chunks of length `splitStringsChunkLength` in two pass, because of
+ * `Maximum call stack size exceeded` error in `esrecurse` package
+ *
+ * @param {Literal} literalNode
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): ESTree.Node {
+ if (NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)) {
+ return literalNode;
+ }
+
+ // pass #1: split string on a large chunks with length of `firstPassChunkLength`
+ const firstPassChunksNode: ESTree.Node = this.transformLiteralNodeByChunkLength(
+ literalNode,
+ parentNode,
+ SplitStringTransformer.firstPassChunkLength
+ );
+
+ // pass #2: split large chunks on a chunks with length of `splitStringsChunkLength`
+ const secondPassChunksNode: ESTree.Node = estraverse.replace(firstPassChunksNode, {
+ // eslint-disable-next-line @typescript-eslint/no-shadow
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
+ if (parentNode && NodeGuards.isLiteralNode(node)) {
+ return this.transformLiteralNodeByChunkLength(
+ node,
+ parentNode,
+ this.options.splitStringsChunkLength
+ );
+ }
+ }
+ });
+
+ return secondPassChunksNode;
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {Node} parentNode
+ * @param {number} chunkLength
+ * @returns {Node}
+ */
+ private transformLiteralNodeByChunkLength (
+ literalNode: ESTree.Literal,
+ parentNode: ESTree.Node,
+ chunkLength: number
+ ): ESTree.Node {
+ if (!NodeLiteralUtils.isStringLiteralNode(literalNode)) {
+ return literalNode;
+ }
+
+ const valueLength: number = stringz.length(literalNode.value);
+
+ if (chunkLength >= valueLength) {
+ return literalNode;
+ }
+
+ const stringChunks: string[] = SplitStringTransformer.chunkString(
+ literalNode.value,
+ valueLength,
+ chunkLength
+ );
+
+ const binaryExpressionNode: ESTree.BinaryExpression =
+ this.transformStringChunksToBinaryExpressionNode(stringChunks);
+
+ NodeUtils.parentizeAst(binaryExpressionNode);
+ NodeUtils.parentizeNode(binaryExpressionNode, parentNode);
+
+ return binaryExpressionNode;
+ }
+
+ /**
+ * @param {string[]} chunks
+ * @returns {BinaryExpression}
+ */
+ private transformStringChunksToBinaryExpressionNode (chunks: string[]): ESTree.BinaryExpression {
+ const firstChunk: string | undefined = chunks.shift();
+ const secondChunk: string | undefined = chunks.shift();
+
+ if (!firstChunk || !secondChunk) {
+ throw new Error('First and second chunks values should not be empty');
+ }
+
+ const initialBinaryExpressionNode: ESTree.BinaryExpression = NodeFactory.binaryExpressionNode(
+ '+',
+ NodeFactory.literalNode(firstChunk),
+ NodeFactory.literalNode(secondChunk)
+ );
+
+ return chunks.reduce<ESTree.BinaryExpression>(
+ (binaryExpressionNode: ESTree.BinaryExpression, chunk: string) => {
+ const chunkLiteralNode: ESTree.Literal = NodeFactory.literalNode(chunk);
+
+ return NodeFactory.binaryExpressionNode(
+ '+',
+ binaryExpressionNode,
+ chunkLiteralNode
+ );
+ },
+ initialBinaryExpressionNode
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts
new file mode 100644
index 0000000..49b2e38
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts
@@ -0,0 +1,133 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * Transform ES2015 template literals to ES5
+ * Thanks to Babel for algorithm
+ */
+@injectable()
+export class TemplateLiteralTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeGuards} node
+ * @returns {boolean}
+ */
+ private static isLiteralNodeWithStringValue (node: ESTree.Node | undefined): boolean {
+ return !!node && NodeGuards.isLiteralNode(node) && typeof node.value === 'string';
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Converting:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isTemplateLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ESTree.TemplateLiteral} templateLiteralNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.Node}
+ */
+ public transformNode (templateLiteralNode: ESTree.TemplateLiteral, parentNode: ESTree.Node): ESTree.Node {
+ if (NodeGuards.isTaggedTemplateExpressionNode(parentNode)) {
+ return templateLiteralNode;
+ }
+
+ return this.transformTemplateLiteralNode(templateLiteralNode, parentNode);
+ }
+
+ /**
+ * @param {ESTree.TemplateLiteral} templateLiteralNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.Expression}
+ */
+ private transformTemplateLiteralNode (templateLiteralNode: ESTree.TemplateLiteral, parentNode: ESTree.Node): ESTree.Expression {
+ const templateLiteralExpressions: ESTree.Expression[] = templateLiteralNode.expressions;
+
+ let nodes: ESTree.Expression[] = [];
+
+ templateLiteralNode.quasis.forEach((templateElement: ESTree.TemplateElement) => {
+ nodes.push(NodeFactory.literalNode(templateElement.value.cooked));
+
+ const expression: ESTree.Expression | undefined = templateLiteralExpressions.shift();
+
+ if (!expression) {
+ return;
+ }
+
+ nodes.push(expression);
+ });
+
+ nodes = nodes.filter((node: ESTree.Literal | ESTree.Expression) => {
+ return !(NodeGuards.isLiteralNode(node) && node.value === '');
+ });
+
+ // since `+` is left-to-right associative
+ // ensure the first node is a string if first/second isn't
+ if (
+ !TemplateLiteralTransformer.isLiteralNodeWithStringValue(nodes[0]) &&
+ !TemplateLiteralTransformer.isLiteralNodeWithStringValue(nodes[1])
+ ) {
+ nodes.unshift(NodeFactory.literalNode(''));
+ }
+
+ let transformedNode: ESTree.Node;
+
+ if (nodes.length > 1) {
+ let root: ESTree.BinaryExpression = NodeFactory.binaryExpressionNode(
+ '+',
+ <ESTree.Literal>nodes.shift(),
+ <ESTree.Expression>nodes.shift()
+ );
+
+ nodes.forEach((node: ESTree.Literal | ESTree.Expression) => {
+ root = NodeFactory.binaryExpressionNode('+', root, node);
+ });
+
+ transformedNode = root;
+ } else {
+ transformedNode = nodes[0];
+ }
+
+ NodeUtils.parentizeAst(transformedNode);
+ NodeUtils.parentizeNode(transformedNode, parentNode);
+
+ return transformedNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts
new file mode 100644
index 0000000..2ead24a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/BasePropertiesExtractor.ts
@@ -0,0 +1,227 @@
+import { injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+import { IObjectExpressionExtractorResult } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult';
+
+import { IObjectExpressionExtractor } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor';
+
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeFactory } from '../../../node/NodeFactory';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeStatementUtils } from '../../../node/NodeStatementUtils';
+import { NodeUtils } from '../../../node/NodeUtils';
+
+@injectable()
+export class BasePropertiesExtractor implements IObjectExpressionExtractor {
+ /**
+ * @param {Property} propertyNode
+ * @returns {string | null}
+ */
+ private static getPropertyNodeKeyName (propertyNode: ESTree.Property): string | null {
+ const propertyKeyNode: ESTree.Expression = propertyNode.key;
+
+ if (
+ NodeGuards.isLiteralNode(propertyKeyNode)
+ && (
+ typeof propertyKeyNode.value === 'string'
+ || typeof propertyKeyNode.value === 'number'
+ )
+ ) {
+ return propertyKeyNode.value.toString();
+ }
+
+ if (NodeGuards.isIdentifierNode(propertyKeyNode)) {
+ return propertyKeyNode.name;
+ }
+
+ return null;
+ }
+
+ /**
+ * @param {Property} node
+ * @returns {boolean}
+ */
+ private static isProhibitedPropertyNode (node: ESTree.Property): boolean {
+ return node.kind !== 'init';
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {propertyValueNode is Pattern}
+ */
+ private static isProhibitedPattern (node: ESTree.Node): node is ESTree.Pattern {
+ return !node
+ || NodeGuards.isObjectPatternNode(node)
+ || NodeGuards.isArrayPatternNode(node)
+ || NodeGuards.isAssignmentPatternNode(node)
+ || NodeGuards.isRestElementNode(node);
+ }
+
+ /**
+ * @param {Property} property
+ * @returns {boolean}
+ */
+ private static shouldCreateLiteralNode (property: ESTree.Property): boolean {
+ return !property.computed
+ || (property.computed && !!property.key && NodeGuards.isLiteralNode(property.key));
+ }
+
+ /**
+ * extracts object expression properties:
+ * var _0xabc123 = {
+ * foo: 1,
+ * bar: 2
+ * };
+ *
+ * to:
+ * var _0xabc123 = {};
+ * _0xabc123['foo'] = 1;
+ * _0xabc123['bar'] = 2;
+ *
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @returns {IObjectExpressionExtractorResult}
+ */
+ public extract (
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement
+ ): IObjectExpressionExtractorResult {
+ const hostNode: ESTree.Node | undefined = objectExpressionNode.parentNode;
+
+ if (
+ hostNode
+ && NodeGuards.isVariableDeclaratorNode(hostNode)
+ && NodeGuards.isIdentifierNode(hostNode.id)
+ ) {
+ return this.transformObjectExpressionNode(objectExpressionNode, hostStatement, hostNode.id);
+ }
+
+ return {
+ nodeToReplace: objectExpressionNode,
+ objectExpressionHostStatement: hostStatement,
+ objectExpressionNode: objectExpressionNode
+ };
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @param {Expression} memberExpressionHostNode
+ * @returns {IObjectExpressionExtractorResult}
+ */
+ private transformObjectExpressionNode (
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement,
+ memberExpressionHostNode: ESTree.Expression
+ ): IObjectExpressionExtractorResult {
+ const properties: (ESTree.Property | ESTree.SpreadElement)[] = objectExpressionNode.properties;
+ const [expressionStatements, removablePropertyIds]: [ESTree.ExpressionStatement[], number[]] = this
+ .extractPropertiesToExpressionStatements(
+ properties,
+ hostStatement,
+ memberExpressionHostNode
+ );
+
+ const hostNodeWithStatements: TNodeWithStatements = NodeStatementUtils.getScopeOfNode(hostStatement);
+
+ this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds);
+ NodeAppender.insertAfter(hostNodeWithStatements, expressionStatements, hostStatement);
+ NodeUtils.parentizeAst(hostNodeWithStatements);
+
+ return {
+ nodeToReplace: objectExpressionNode,
+ objectExpressionHostStatement: hostStatement,
+ objectExpressionNode: objectExpressionNode
+ };
+ }
+
+ /**
+ * @param {(Property | SpreadElement)[]} properties
+ * @param {Statement} hostStatement
+ * @param {Expression} memberExpressionHostNode
+ * @returns {[ExpressionStatement[], number[]]}
+ */
+ private extractPropertiesToExpressionStatements (
+ properties: (ESTree.Property | ESTree.SpreadElement)[],
+ hostStatement: ESTree.Statement,
+ memberExpressionHostNode: ESTree.Expression
+ ): [ESTree.ExpressionStatement[], number[]] {
+ const propertiesLength: number = properties.length;
+ const expressionStatements: ESTree.ExpressionStatement[] = [];
+ const removablePropertyIds: number[] = [];
+
+ // have to iterate in the reversed order to fast check spread elements and break iteration on them
+ for (let i: number = propertiesLength - 1; i >= 0; i--) {
+ const property: (ESTree.Property | ESTree.SpreadElement) = properties[i];
+
+ // spread element
+ if (NodeGuards.isSpreadElementNode(property)) {
+ break;
+ }
+
+ if (BasePropertiesExtractor.isProhibitedPropertyNode(property)) {
+ continue;
+ }
+
+ const propertyValue: ESTree.Expression | ESTree.Pattern = property.value;
+
+ // invalid property node value
+ if (BasePropertiesExtractor.isProhibitedPattern(propertyValue)) {
+ continue;
+ }
+
+ /**
+ * Stage 1: extract property node key names
+ */
+ const propertyKeyName: string | null = BasePropertiesExtractor.getPropertyNodeKeyName(property);
+
+ if (!propertyKeyName) {
+ continue;
+ }
+
+ /**
+ * Stage 2: creating new expression statement node with member expression based on removed property
+ */
+ const shouldCreateLiteralNode: boolean = BasePropertiesExtractor.shouldCreateLiteralNode(property);
+ const memberExpressionProperty: ESTree.Expression = shouldCreateLiteralNode
+ ? NodeFactory.literalNode(propertyKeyName)
+ : NodeFactory.identifierNode(propertyKeyName);
+ const memberExpressionNode: ESTree.MemberExpression = NodeFactory
+ .memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true);
+ const expressionStatementNode: ESTree.ExpressionStatement = NodeFactory.expressionStatementNode(
+ NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue)
+ );
+
+ /**
+ * Stage 3: recursively processing nested object expressions
+ */
+ if (NodeGuards.isObjectExpressionNode(property.value)) {
+ this.transformObjectExpressionNode(property.value, hostStatement, memberExpressionNode);
+ }
+
+ /**
+ * Stage 4: filling arrays
+ */
+ expressionStatements.unshift(expressionStatementNode);
+ removablePropertyIds.unshift(i);
+ }
+
+ return [expressionStatements, removablePropertyIds];
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {number[]} removablePropertyIds
+ */
+ private filterExtractedObjectExpressionProperties (
+ objectExpressionNode: ESTree.ObjectExpression,
+ removablePropertyIds: number[]
+ ): void {
+ objectExpressionNode.properties = objectExpressionNode.properties
+ .filter((property: ESTree.Property | ESTree.SpreadElement, index: number) =>
+ !removablePropertyIds.includes(index)
+ );
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts
new file mode 100644
index 0000000..2ec99f9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/converting-transformers/object-expression-extractors/ObjectExpressionToVariableDeclarationExtractor.ts
@@ -0,0 +1,165 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TNodeWithStatements } from '../../../types/node/TNodeWithStatements';
+import { TObjectExpressionKeysTransformerCustomNodeFactory } from '../../../types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory';
+import { IObjectExpressionExtractorResult } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractorResult';
+import { TStatement } from '../../../types/node/TStatement';
+
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { TInitialData } from '../../../types/TInitialData';
+import { IObjectExpressionExtractor } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor';
+
+import { ObjectExpressionKeysTransformerCustomNode } from '../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode';
+
+import { ObjectExpressionVariableDeclarationHostNode } from '../../../custom-nodes/object-expression-keys-transformer-nodes/ObjectExpressionVariableDeclarationHostNode';
+import { NodeAppender } from '../../../node/NodeAppender';
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeStatementUtils } from '../../../node/NodeStatementUtils';
+import { NodeUtils } from '../../../node/NodeUtils';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+import { NodeLexicalScopeUtils } from '../../../node/NodeLexicalScopeUtils';
+
+@injectable()
+export class ObjectExpressionToVariableDeclarationExtractor implements IObjectExpressionExtractor {
+ /**
+ * @type {TObjectExpressionKeysTransformerCustomNodeFactory}
+ */
+ private readonly objectExpressionKeysTransformerCustomNodeFactory: TObjectExpressionKeysTransformerCustomNodeFactory;
+
+ /**
+ * @param {TObjectExpressionKeysTransformerCustomNodeFactory} objectExpressionKeysTransformerCustomNodeFactory
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)
+ objectExpressionKeysTransformerCustomNodeFactory: TObjectExpressionKeysTransformerCustomNodeFactory,
+ ) {
+ this.objectExpressionKeysTransformerCustomNodeFactory = objectExpressionKeysTransformerCustomNodeFactory;
+ }
+
+ /**
+ * extracts object expression:
+ * var object = {
+ * foo: 1,
+ * bar: 2
+ * };
+ *
+ * to:
+ * var _0xabc123 = {
+ * foo: 1,
+ * bar: 2
+ * };
+ * var object = _0xabc123;
+ *
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @returns {IObjectExpressionExtractorResult}
+ */
+ public extract (
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement
+ ): IObjectExpressionExtractorResult {
+ return this.transformObjectExpressionToVariableDeclaration(
+ objectExpressionNode,
+ hostStatement
+ );
+ }
+
+ /**
+ * @param {ObjectExpression} objectExpressionNode
+ * @param {Statement} hostStatement
+ * @returns {Node}
+ */
+ private transformObjectExpressionToVariableDeclaration (
+ objectExpressionNode: ESTree.ObjectExpression,
+ hostStatement: ESTree.Statement
+ ): IObjectExpressionExtractorResult {
+ const hostNodeWithStatements: TNodeWithStatements = NodeStatementUtils.getScopeOfNode(hostStatement);
+ const lexicalScopeNode: TNodeWithLexicalScope | null = NodeGuards.isNodeWithLexicalScope(hostNodeWithStatements)
+ ? hostNodeWithStatements
+ : NodeLexicalScopeUtils.getLexicalScope(hostNodeWithStatements) ?? null;
+
+ if (!lexicalScopeNode) {
+ throw new Error('Cannot find lexical scope node for the host statement node');
+ }
+
+ const properties: (ESTree.Property | ESTree.SpreadElement)[] = objectExpressionNode.properties;
+
+ const newObjectExpressionHostStatement: ESTree.VariableDeclaration = this.getObjectExpressionHostNode(
+ lexicalScopeNode,
+ properties
+ );
+ const statementsToInsert: TStatement[] = [newObjectExpressionHostStatement];
+
+ NodeAppender.insertBefore(hostNodeWithStatements, statementsToInsert, hostStatement);
+ NodeUtils.parentizeAst(newObjectExpressionHostStatement);
+ NodeUtils.parentizeNode(newObjectExpressionHostStatement, hostNodeWithStatements);
+
+ const newObjectExpressionIdentifier: ESTree.Identifier = this.getObjectExpressionIdentifierNode(newObjectExpressionHostStatement);
+ const newObjectExpressionNode: ESTree.ObjectExpression = this.getObjectExpressionNode(newObjectExpressionHostStatement);
+
+ return {
+ nodeToReplace: newObjectExpressionIdentifier,
+ objectExpressionHostStatement: newObjectExpressionHostStatement,
+ objectExpressionNode: newObjectExpressionNode
+ };
+ }
+
+ /**
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {(Property | SpreadElement)[]} properties
+ * @returns {VariableDeclaration}
+ */
+ private getObjectExpressionHostNode (
+ lexicalScopeNode: TNodeWithLexicalScope,
+ properties: (ESTree.Property | ESTree.SpreadElement)[]
+ ): ESTree.VariableDeclaration {
+ const variableDeclarationHostNodeCustomNode: ICustomNode<TInitialData<ObjectExpressionVariableDeclarationHostNode>> =
+ this.objectExpressionKeysTransformerCustomNodeFactory(
+ ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode
+ );
+
+ variableDeclarationHostNodeCustomNode.initialize(lexicalScopeNode, properties);
+
+ const statementNode: TStatement = variableDeclarationHostNodeCustomNode.getNode()[0];
+
+ if (
+ !statementNode
+ || !NodeGuards.isVariableDeclarationNode(statementNode)
+ ) {
+ throw new Error('`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node');
+ }
+
+ return statementNode;
+ }
+
+ /**
+ * @param {VariableDeclaration} objectExpressionHostNode
+ * @returns {Identifier}
+ */
+ private getObjectExpressionIdentifierNode (objectExpressionHostNode: ESTree.VariableDeclaration): ESTree.Identifier {
+ const newObjectExpressionIdentifierNode: ESTree.Pattern = objectExpressionHostNode.declarations[0].id;
+
+ if (!NodeGuards.isIdentifierNode(newObjectExpressionIdentifierNode)) {
+ throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property');
+ }
+
+ return newObjectExpressionIdentifierNode;
+ }
+
+ /**
+ * @param {VariableDeclaration} objectExpressionHostNode
+ * @returns {Identifier}
+ */
+ private getObjectExpressionNode (objectExpressionHostNode: ESTree.VariableDeclaration): ESTree.ObjectExpression {
+ const newObjectExpressionNode: ESTree.Expression | null = objectExpressionHostNode.declarations[0].init ?? null;
+
+ if (!newObjectExpressionNode || !NodeGuards.isObjectExpressionNode(newObjectExpressionNode)) {
+ throw new Error('`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property');
+ }
+
+ return newObjectExpressionNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts
new file mode 100644
index 0000000..12e003d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts
@@ -0,0 +1,416 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TDeadNodeInjectionCustomNodeFactory } from '../../types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory';
+import { TInitialData } from '../../types/TInitialData';
+import { TNodeWithStatements } from '../../types/node/TNodeWithStatements';
+
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { INodeTransformersRunner } from '../../interfaces/node-transformers/INodeTransformersRunner';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { DeadCodeInjectionCustomNode } from '../../enums/custom-nodes/DeadCodeInjectionCustomNode';
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeType } from '../../enums/node/NodeType';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { BlockStatementDeadCodeInjectionNode } from '../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {string}
+ */
+ private static readonly deadCodeInjectionRootAstHostNodeName: string = 'deadCodeInjectionRootAstHostNode';
+
+ /**
+ * @type {number}
+ */
+ private static readonly maxNestedBlockStatementsCount: number = 4;
+
+ /**
+ * @type {number}
+ */
+ private static readonly minCollectedBlockStatementsCount: number = 5;
+
+ /**
+ * @type {NodeTransformer[]}
+ */
+ private static readonly transformersToRenameBlockScopeIdentifiers: NodeTransformer[] = [
+ NodeTransformer.LabeledStatementTransformer,
+ NodeTransformer.ScopeIdentifiersTransformer,
+ NodeTransformer.ScopeThroughIdentifiersTransformer
+ ];
+
+ /**
+ * @type {Set <BlockStatement>}
+ */
+ private readonly deadCodeInjectionRootAstHostNodeSet: Set <ESTree.BlockStatement> = new Set();
+
+ /**
+ * @type {ESTree.BlockStatement[]}
+ */
+ private readonly collectedBlockStatements: ESTree.BlockStatement[] = [];
+
+ /**
+ * @type {number}
+ */
+ private collectedBlockStatementsTotalLength: number = 0;
+
+ /**
+ * @type {TDeadNodeInjectionCustomNodeFactory}
+ */
+ private readonly deadCodeInjectionCustomNodeFactory: TDeadNodeInjectionCustomNodeFactory;
+
+ /**
+ * @type {INodeTransformersRunner}
+ */
+ private readonly transformersRunner: INodeTransformersRunner;
+
+ /**
+ * @param {TDeadNodeInjectionCustomNodeFactory} deadCodeInjectionCustomNodeFactory
+ * @param {INodeTransformersRunner} transformersRunner
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)
+ deadCodeInjectionCustomNodeFactory: TDeadNodeInjectionCustomNodeFactory,
+ @inject(ServiceIdentifiers.INodeTransformersRunner) transformersRunner: INodeTransformersRunner,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory;
+ this.transformersRunner = transformersRunner;
+ }
+
+ /**
+ * @param {Node} targetNode
+ * @returns {boolean}
+ */
+ private static isProhibitedNodeInsideCollectedBlockStatement (targetNode: ESTree.Node): boolean {
+ return NodeGuards.isFunctionDeclarationNode(targetNode) // can break code on strict mode
+ || NodeGuards.isBreakStatementNode(targetNode)
+ || NodeGuards.isContinueStatementNode(targetNode)
+ || NodeGuards.isAwaitExpressionNode(targetNode)
+ || NodeGuards.isYieldExpressionNode(targetNode)
+ || NodeGuards.isSuperNode(targetNode)
+ || (NodeGuards.isForOfStatementNode(targetNode) && targetNode.await);
+ }
+
+ /**
+ * @param {Node} targetNode
+ * @returns {boolean}
+ */
+ private static isScopeHoistingFunctionDeclaration (targetNode: ESTree.Node): boolean {
+ if (!NodeGuards.isFunctionDeclarationNode(targetNode)) {
+ return false;
+ }
+
+ const scopeNode: TNodeWithStatements = NodeStatementUtils.getScopeOfNode(targetNode);
+ const scopeBody: ESTree.Statement[] = !NodeGuards.isSwitchCaseNode(scopeNode)
+ ? <ESTree.Statement[]>scopeNode.body
+ : scopeNode.consequent;
+ const indexInScope: number = scopeBody.indexOf(targetNode);
+
+ if (indexInScope === 0) {
+ return false;
+ }
+
+ const slicedBody: ESTree.Statement[] = scopeBody.slice(0, indexInScope);
+ const hostBlockStatementNode: ESTree.BlockStatement = NodeFactory.blockStatementNode(slicedBody);
+ const functionDeclarationName: string = targetNode.id.name;
+
+ let isScopeHoistedFunctionDeclaration: boolean = false;
+
+ estraverse.traverse(hostBlockStatementNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) {
+ isScopeHoistedFunctionDeclaration = true;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return isScopeHoistedFunctionDeclaration;
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @returns {boolean}
+ */
+ private static isValidCollectedBlockStatementNode (blockStatementNode: ESTree.BlockStatement): boolean {
+ if (!blockStatementNode.body.length) {
+ return false;
+ }
+
+ let nestedBlockStatementsCount: number = 0;
+ let isValidBlockStatementNode: boolean = true;
+
+ estraverse.traverse(blockStatementNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (NodeGuards.isBlockStatementNode(node)) {
+ nestedBlockStatementsCount++;
+ }
+
+ if (
+ nestedBlockStatementsCount > DeadCodeInjectionTransformer.maxNestedBlockStatementsCount
+ || DeadCodeInjectionTransformer.isProhibitedNodeInsideCollectedBlockStatement(node)
+ || DeadCodeInjectionTransformer.isScopeHoistingFunctionDeclaration(node)
+ ) {
+ isValidBlockStatementNode = false;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ return isValidBlockStatementNode;
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @returns {boolean}
+ */
+ private static isValidWrappedBlockStatementNode (blockStatementNode: ESTree.BlockStatement): boolean {
+ if (!blockStatementNode.body.length) {
+ return false;
+ }
+
+ let isValidBlockStatementNode: boolean = true;
+
+ estraverse.traverse(blockStatementNode, {
+ enter: (node: ESTree.Node): estraverse.VisitorOption | void => {
+ if (DeadCodeInjectionTransformer.isScopeHoistingFunctionDeclaration(node)) {
+ isValidBlockStatementNode = false;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ });
+
+ if (!isValidBlockStatementNode) {
+ return false;
+ }
+
+ const parentNodeWithStatements: TNodeWithStatements = NodeStatementUtils
+ .getParentNodeWithStatements(blockStatementNode);
+
+ return parentNodeWithStatements.type !== NodeType.Program;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.DeadCodeInjection:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isProgramNode(node)) {
+ this.prepareNode(node, parentNode);
+
+ return node;
+ }
+ },
+ leave: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | estraverse.VisitorOption | undefined => {
+ if (parentNode && NodeGuards.isBlockStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ case NodeTransformationStage.Finalizing:
+ if (!this.deadCodeInjectionRootAstHostNodeSet.size) {
+ return null;
+ }
+
+ return {
+ enter: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | estraverse.VisitorOption |undefined => {
+ if (parentNode && this.isDeadCodeInjectionRootAstHostNode(node)) {
+ return this.restoreNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {NodeGuards} programNode
+ * @param {NodeGuards} parentNode
+ */
+ public prepareNode (programNode: ESTree.Node, parentNode: ESTree.Node): void {
+ estraverse.traverse(programNode, {
+ enter: (node: ESTree.Node): void => {
+ if (!NodeGuards.isBlockStatementNode(node)) {
+ return;
+ }
+
+ const clonedBlockStatementNode: ESTree.BlockStatement = NodeUtils.clone(node);
+
+ if (!DeadCodeInjectionTransformer.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) {
+ return;
+ }
+
+ /**
+ * We should transform identifiers in the dead code block statement to avoid conflicts with original code
+ */
+ const transformedBlockStatementNode: ESTree.BlockStatement =
+ this.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode);
+
+ this.collectedBlockStatements.push(transformedBlockStatementNode);
+ }
+ });
+
+ this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length;
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards | VisitorOption}
+ */
+ public transformNode (
+ blockStatementNode: ESTree.BlockStatement,
+ parentNode: ESTree.Node
+ ): ESTree.Node | estraverse.VisitorOption {
+ const canBreakTraverse: boolean = !this.collectedBlockStatements.length
+ || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer.minCollectedBlockStatementsCount;
+
+ if (canBreakTraverse) {
+ return estraverse.VisitorOption.Break;
+ }
+
+ if (
+ this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold
+ || !DeadCodeInjectionTransformer.isValidWrappedBlockStatementNode(blockStatementNode)
+ ) {
+ return blockStatementNode;
+ }
+
+ const minInteger: number = 0;
+ const maxInteger: number = this.collectedBlockStatements.length - 1;
+ const randomIndex: number = this.randomGenerator.getRandomInteger(minInteger, maxInteger);
+ const randomBlockStatementNode: ESTree.BlockStatement = this.collectedBlockStatements.splice(randomIndex, 1)[0];
+ const isDuplicateBlockStatementNodes: boolean = randomBlockStatementNode === blockStatementNode;
+
+ if (isDuplicateBlockStatementNodes) {
+ return blockStatementNode;
+ }
+
+ return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode);
+ }
+
+ /**
+ * @param {FunctionExpression} deadCodeInjectionRootAstHostNode
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public restoreNode (deadCodeInjectionRootAstHostNode: ESTree.BlockStatement, parentNode: ESTree.Node): ESTree.Node {
+ const hostNodeFirstStatement: ESTree.Statement = deadCodeInjectionRootAstHostNode.body[0];
+
+ if (!NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) {
+ throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node');
+ }
+
+ return hostNodeFirstStatement.body;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ private isDeadCodeInjectionRootAstHostNode (node: ESTree.Node): node is ESTree.BlockStatement {
+ return NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node);
+ }
+
+ /**
+ * Make all identifiers in cloned block statement unique
+ *
+ * @param {BlockStatement} clonedBlockStatementNode
+ * @returns {BlockStatement}
+ */
+ private makeClonedBlockStatementNodeUnique (clonedBlockStatementNode: ESTree.BlockStatement): ESTree.BlockStatement {
+ // should wrap cloned block statement node into function node for correct scope encapsulation
+ const hostNode: ESTree.Program = NodeFactory.programNode([
+ NodeFactory.expressionStatementNode(
+ NodeFactory.functionExpressionNode([], clonedBlockStatementNode)
+ )
+ ]);
+
+ NodeUtils.parentizeAst(hostNode);
+ NodeUtils.parentizeNode(hostNode, hostNode);
+
+ this.transformersRunner.transform(
+ hostNode,
+ DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers,
+ NodeTransformationStage.RenameIdentifiers
+ );
+
+ return clonedBlockStatementNode;
+ }
+
+ /**
+ * @param {BlockStatement} blockStatementNode
+ * @param {BlockStatement} randomBlockStatementNode
+ * @param {Node} parentNode
+ * @returns {BlockStatement}
+ */
+ private replaceBlockStatementNode (
+ blockStatementNode: ESTree.BlockStatement,
+ randomBlockStatementNode: ESTree.BlockStatement,
+ parentNode: ESTree.Node
+ ): ESTree.BlockStatement {
+ /**
+ * Should wrap original random block statement node into the parent block statement node (ast root host node)
+ * with function declaration node. This function declaration node will create block scope for all identifiers
+ * inside random block statement node and this identifiers won't affect identifiers of the rest AST tree.
+ */
+ const deadCodeInjectionRootAstHostNode: ESTree.BlockStatement = NodeFactory.blockStatementNode([
+ NodeFactory.functionDeclarationNode(
+ DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName,
+ [],
+ randomBlockStatementNode
+ )
+ ]);
+
+ /**
+ * Should store that host node and then extract random block statement node on the `finalizing` stage
+ */
+ this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode);
+
+ const blockStatementDeadCodeInjectionCustomNode: ICustomNode<TInitialData<BlockStatementDeadCodeInjectionNode>> =
+ this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);
+
+ blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode);
+
+ const newBlockStatementNode: ESTree.BlockStatement = <ESTree.BlockStatement>blockStatementDeadCodeInjectionCustomNode.getNode()[0];
+
+ NodeUtils.parentizeNode(newBlockStatementNode, parentNode);
+
+ return newBlockStatementNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts
new file mode 100644
index 0000000..7310753
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/finalizing-transformers/EscapeSequenceTransformer.ts
@@ -0,0 +1,89 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IEscapeSequenceEncoder } from '../../interfaces/utils/IEscapeSequenceEncoder';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLiteralUtils } from '../../node/NodeLiteralUtils';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+@injectable()
+export class EscapeSequenceTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.CustomCodeHelpersTransformer
+ ];
+
+ /**
+ * @type {IEscapeSequenceEncoder}
+ */
+ private readonly escapeSequenceEncoder: IEscapeSequenceEncoder;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IEscapeSequenceEncoder} escapeSequenceEncoder
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IEscapeSequenceEncoder) escapeSequenceEncoder: IEscapeSequenceEncoder
+ ) {
+ super(randomGenerator, options);
+
+ this.escapeSequenceEncoder = escapeSequenceEncoder;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Finalizing:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (NodeGuards.isLiteralNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {Node | null} parentNode
+ * @returns {Literal}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node | null): ESTree.Literal {
+ if (!NodeLiteralUtils.isStringLiteralNode(literalNode)) {
+ return literalNode;
+ }
+
+ const encodedValue: string = this.escapeSequenceEncoder.encode(
+ literalNode.value,
+ this.options.unicodeEscapeSequence
+ );
+ const newLiteralNode: ESTree.Literal = NodeFactory.literalNode(encodedValue);
+
+ NodeUtils.parentizeNode(newLiteralNode, parentNode);
+
+ return newLiteralNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/initializing-transformers/CommentsTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/initializing-transformers/CommentsTransformer.ts
new file mode 100644
index 0000000..de6c8b7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/initializing-transformers/CommentsTransformer.ts
@@ -0,0 +1,173 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+import * as estraverse from 'estraverse';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { ConditionalCommentObfuscatingGuard } from '../preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard';
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class CommentsTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {string[]}
+ */
+ private static readonly preservedWords: string[] = [
+ '@license',
+ '@preserve'
+ ];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Initializing:
+ return {
+ leave: (node: ESTree.Node): ESTree.Node | undefined => {
+ if (NodeGuards.isProgramNode(node)) {
+ return this.transformNode(node);
+ }
+ }
+ };
+
+ case NodeTransformationStage.Finalizing:
+ return {
+ leave: (node: ESTree.Node): ESTree.Node | undefined => {
+ if (NodeGuards.isProgramNode(node)) {
+ return this.filterCommentsOnFinalizingTraverse(node);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Moves comments to their nodes
+ */
+ public transformNode (rootNode: ESTree.Program): ESTree.Node {
+ rootNode = this.filterCommentsOnPrimaryTraverse(rootNode);
+
+ if (!rootNode.comments || !rootNode.comments.length) {
+ return rootNode;
+ }
+
+ const comments: ESTree.Comment[] = rootNode.comments.reverse();
+
+ if (comments.length === 0) {
+ return rootNode;
+ }
+
+ if (!rootNode.body.length) {
+ rootNode.leadingComments = comments;
+
+ return rootNode;
+ }
+
+ let isFirstNode: boolean = true;
+
+ estraverse.traverse(rootNode, {
+ enter: (node: ESTree.Node): void => {
+ if (node === rootNode) {
+ return;
+ }
+
+ const commentIdx: number = comments.findIndex((comment: ESTree.Comment) =>
+ comment.range && node.range && comment.range[0] < node.range[0]
+ );
+
+ if (commentIdx >= 0) {
+ (isFirstNode ? rootNode : node).leadingComments =
+ comments.splice(commentIdx, comments.length - commentIdx).reverse();
+ }
+
+ isFirstNode = false;
+ }
+ });
+
+ if (comments.length > 0) {
+ rootNode.trailingComments = comments.reverse();
+ }
+
+ return rootNode;
+ }
+
+ /**
+ * Removes all comments from node except comments that contain
+ * preserved words or `javascript-obfuscator` words
+ *
+ * @param {ESTree.Program} rootNode
+ * @returns {ESTree.Program}
+ */
+ private filterCommentsOnPrimaryTraverse (rootNode: ESTree.Program): ESTree.Program {
+ rootNode.comments = rootNode.comments?.filter((comment: ESTree.Comment) =>
+ this.filterComment(comment, true)
+ );
+
+ return rootNode;
+ }
+
+ /**
+ * Removes all comments from node except comments that contain preserved words
+ *
+ * @param {ESTree.Program} rootNode
+ * @returns {ESTree.Program}
+ */
+ private filterCommentsOnFinalizingTraverse (rootNode: ESTree.Program): ESTree.Program {
+ estraverse.replace(rootNode, {
+ enter: (node: ESTree.Node): ESTree.Node => {
+ if (node.leadingComments) {
+ node.leadingComments = node.leadingComments?.filter((comment: ESTree.Comment) =>
+ this.filterComment(comment, false)
+ );
+ }
+
+ if (node.trailingComments) {
+ node.trailingComments = node.trailingComments?.filter((comment: ESTree.Comment) =>
+ this.filterComment(comment, false)
+ );
+ }
+
+ return node;
+ }
+ });
+
+ return rootNode;
+ }
+
+ /**
+ * @param {ESTree.Comment} comment
+ * @param {boolean} keepConditionalComment
+ * @returns {boolean}
+ */
+ private filterComment (comment: ESTree.Comment, keepConditionalComment: boolean): boolean {
+ if (keepConditionalComment && ConditionalCommentObfuscatingGuard.isConditionalComment(comment)) {
+ return true;
+ }
+
+ return CommentsTransformer.preservedWords
+ .some((preservedWord: string) => comment.value.includes(preservedWord));
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts
new file mode 100644
index 0000000..727ee8e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/CustomCodeHelpersTransformer.ts
@@ -0,0 +1,163 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TCustomCodeHelperGroupStorage } from '../../types/storages/TCustomCodeHelperGroupStorage';
+
+import { ICustomCodeHelperGroup } from '../../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+import { IObfuscationEventEmitter } from '../../interfaces/event-emitters/IObfuscationEventEmitter';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { ICallsGraphAnalyzer } from '../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphAnalyzer';
+import { ICallsGraphData } from '../../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+import { IPrevailingKindOfVariablesAnalyzer } from '../../interfaces/analyzers/calls-graph-analyzer/IPrevailingKindOfVariablesAnalyzer';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { ObfuscationEvent } from '../../enums/event-emitters/ObfuscationEvent';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+
+/**
+ * Analyzing AST-tree and appending custom code helpers
+ */
+@injectable()
+export class CustomCodeHelpersTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer.ParentificationTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.ParentificationTransformer,
+ NodeTransformer.VariablePreserveTransformer
+ ];
+
+ /**
+ * @type {TCustomCodeHelperGroupStorage}
+ */
+ private readonly customCodeHelperGroupStorage: TCustomCodeHelperGroupStorage;
+
+ /**
+ * @type {IObfuscationEventEmitter}
+ */
+ private readonly obfuscationEventEmitter: IObfuscationEventEmitter;
+
+ /**
+ * @type {ICallsGraphAnalyzer}
+ */
+ private readonly callsGraphAnalyzer: ICallsGraphAnalyzer;
+
+ /**
+ * @type {ICallsGraphData[]}
+ */
+ private callsGraphData: ICallsGraphData[] = [];
+
+ /**
+ * @type {IPrevailingKindOfVariablesAnalyzer}
+ */
+ private readonly prevailingKindOfVariablesAnalyzer: IPrevailingKindOfVariablesAnalyzer;
+
+ /**
+ * @param {ICallsGraphAnalyzer} callsGraphAnalyzer
+ * @param {IPrevailingKindOfVariablesAnalyzer} prevailingKindOfVariablesAnalyzer
+ * @param {IObfuscationEventEmitter} obfuscationEventEmitter
+ * @param {TCustomCodeHelperGroupStorage} customCodeHelperGroupStorage
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.ICallsGraphAnalyzer) callsGraphAnalyzer: ICallsGraphAnalyzer,
+ @inject(ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)
+ prevailingKindOfVariablesAnalyzer: IPrevailingKindOfVariablesAnalyzer,
+ @inject(ServiceIdentifiers.IObfuscationEventEmitter) obfuscationEventEmitter: IObfuscationEventEmitter,
+ @inject(ServiceIdentifiers.TCustomNodeGroupStorage) customCodeHelperGroupStorage: TCustomCodeHelperGroupStorage,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.callsGraphAnalyzer = callsGraphAnalyzer;
+ this.prevailingKindOfVariablesAnalyzer = prevailingKindOfVariablesAnalyzer;
+ this.obfuscationEventEmitter = obfuscationEventEmitter;
+ this.customCodeHelperGroupStorage = customCodeHelperGroupStorage;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (NodeGuards.isProgramNode(node)) {
+ this.prepareNode(node, parentNode);
+ this.appendCustomNodesBeforeObfuscation(node, parentNode);
+
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ case NodeTransformationStage.Finalizing:
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): void => {
+ if (NodeGuards.isProgramNode(node)) {
+ this.appendCustomNodesAfterObfuscation(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Program} node
+ * @param {Node | null} parentNode
+ */
+ public prepareNode (node: ESTree.Program, parentNode: ESTree.Node | null): void {
+ this.callsGraphData = this.callsGraphAnalyzer.analyze(node);
+ this.prevailingKindOfVariablesAnalyzer.analyze(node);
+ }
+
+ /**
+ * @param {Program} node
+ * @param {Node | null} parentNode
+ * @returns {Node}
+ */
+ public transformNode (node: ESTree.Program, parentNode: ESTree.Node | null): ESTree.Node {
+ return node;
+ }
+
+ /**
+ * @param {Program} node
+ * @param {Node | null} parentNode
+ */
+ private appendCustomNodesBeforeObfuscation (node: ESTree.Program, parentNode: ESTree.Node | null): void {
+ this.customCodeHelperGroupStorage
+ .getStorage()
+ .forEach((customCodeHelperGroup: ICustomCodeHelperGroup) => {
+ customCodeHelperGroup.initialize();
+
+ this.obfuscationEventEmitter.once(
+ customCodeHelperGroup.getAppendEvent(),
+ customCodeHelperGroup.appendNodes.bind(customCodeHelperGroup)
+ );
+ });
+
+ this.obfuscationEventEmitter.emit(ObfuscationEvent.BeforeObfuscation, node, this.callsGraphData);
+ }
+
+ /**
+ * @param {Program} node
+ * @param {Node | null} parentNode
+ */
+ private appendCustomNodesAfterObfuscation (node: ESTree.Program, parentNode: ESTree.Node | null): void {
+ this.obfuscationEventEmitter.emit(ObfuscationEvent.AfterObfuscation, node, this.callsGraphData);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts
new file mode 100644
index 0000000..0d2a7ab
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/EvalCallExpressionTransformer.ts
@@ -0,0 +1,195 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeUtils } from '../../node/NodeUtils';
+import { StringUtils } from '../../utils/StringUtils';
+
+@injectable()
+export class EvalCallExpressionTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer.NodeTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.EscapeSequenceTransformer,
+ NodeTransformer.ParentificationTransformer,
+ NodeTransformer.VariablePreserveTransformer
+ ];
+
+ /**
+ * @type {Set <FunctionExpression>}
+ */
+ private readonly evalRootAstHostNodeSet: Set <ESTree.FunctionExpression> = new Set();
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {Expression | SpreadElement} node
+ * @returns {string | null}
+ */
+ private static extractEvalStringFromCallExpressionArgument (node: ESTree.Expression | ESTree.SpreadElement): string | null {
+ if (NodeGuards.isLiteralNode(node)) {
+ return EvalCallExpressionTransformer
+ .extractEvalStringFromLiteralNode(node);
+ }
+
+ if (NodeGuards.isTemplateLiteralNode(node)) {
+ return EvalCallExpressionTransformer
+ .extractEvalStringFromTemplateLiteralNode(node);
+ }
+
+ return null;
+ }
+
+ /**
+ * @param {Literal} node
+ * @returns {string | null}
+ */
+ private static extractEvalStringFromLiteralNode (node: ESTree.Literal): string | null {
+ return typeof node.value === 'string' ? node.value : null;
+ }
+
+ /**
+ * @param {TemplateLiteral} node
+ * @returns {string | null}
+ */
+ private static extractEvalStringFromTemplateLiteralNode (node: ESTree.TemplateLiteral): string | null {
+ const quasis: ESTree.TemplateElement[] = node.quasis;
+ const allowedQuasisLength: number = 1;
+
+ if (quasis.length !== allowedQuasisLength || node.expressions.length) {
+ return null;
+ }
+
+ return quasis[0].value.cooked;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (
+ parentNode
+ && NodeGuards.isCallExpressionNode(node)
+ && NodeGuards.isIdentifierNode(node.callee)
+ && node.callee.name === 'eval'
+ ) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ case NodeTransformationStage.Finalizing:
+ if (!this.evalRootAstHostNodeSet.size) {
+ return null;
+ }
+
+ return {
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && this.isEvalRootAstHostNode(node)) {
+ return this.restoreNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {CallExpression} callExpressionNode
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (callExpressionNode: ESTree.CallExpression, parentNode: ESTree.Node): ESTree.Node {
+ const callExpressionFirstArgument: ESTree.Expression | ESTree.SpreadElement | undefined = callExpressionNode.arguments[0];
+
+ if (!callExpressionFirstArgument) {
+ return callExpressionNode;
+ }
+
+ const evalString: string | null = EvalCallExpressionTransformer
+ .extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument);
+
+ if (!evalString) {
+ return callExpressionNode;
+ }
+
+ let ast: ESTree.Statement[];
+
+ // wrapping into try-catch to prevent parsing of incorrect `eval` string
+ try {
+ ast = NodeUtils.convertCodeToStructure(evalString);
+ } catch {
+ return callExpressionNode;
+ }
+
+ /**
+ * we should wrap AST-tree into the parent function expression node (ast root host node).
+ * This function expression node will help to correctly transform AST-tree.
+ */
+ const evalRootAstHostNode: ESTree.FunctionExpression = NodeFactory
+ .functionExpressionNode([], NodeFactory.blockStatementNode(ast));
+
+ NodeUtils.parentizeAst(evalRootAstHostNode);
+ NodeUtils.parentizeNode(evalRootAstHostNode, parentNode);
+
+ /**
+ * we should store that host node and then extract AST-tree on the `finalizing` stage
+ */
+ this.evalRootAstHostNodeSet.add(evalRootAstHostNode);
+
+ return evalRootAstHostNode;
+ }
+
+ /**
+ * @param {FunctionExpression} evalRootAstHostNode
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public restoreNode (evalRootAstHostNode: ESTree.FunctionExpression, parentNode: ESTree.Node): ESTree.Node {
+ const targetAst: ESTree.Statement[] = evalRootAstHostNode.body.body;
+ const obfuscatedCode: string = NodeUtils.convertStructureToCode(targetAst);
+
+ return NodeFactory.callExpressionNode(
+ NodeFactory.identifierNode('eval'),
+ [
+ NodeFactory.literalNode(StringUtils.escapeJsString(obfuscatedCode))
+ ]
+ );
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ private isEvalRootAstHostNode (node: ESTree.Node): node is ESTree.FunctionExpression {
+ return NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/MetadataTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/MetadataTransformer.ts
new file mode 100644
index 0000000..a9f276b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/MetadataTransformer.ts
@@ -0,0 +1,73 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeMetadata } from '../../node/NodeMetadata';
+
+/**
+ * Adds metadata properties to each node
+ */
+@injectable()
+export class MetadataTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer.ParentificationTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.ParentificationTransformer,
+ NodeTransformer.VariablePreserveTransformer
+ ];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ return this.transformNode(node, parentNode);
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node {
+ NodeMetadata.set(node, { ignoredNode: false });
+
+ if (NodeGuards.isLiteralNode(node)) {
+ NodeMetadata.set(node, { replacedLiteral: false });
+ }
+
+ return node;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts
new file mode 100644
index 0000000..ca0f8cc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts
@@ -0,0 +1,125 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TObfuscatingGuardFactory } from '../../types/container/node-transformers/TObfuscatingGuardFactory';
+
+import { IObfuscatingGuard } from '../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+import { ObfuscatingGuard } from '../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard';
+import { ObfuscatingGuardResult } from '../../enums/node/ObfuscatingGuardResult';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeMetadata } from '../../node/NodeMetadata';
+
+/**
+ * Adds `ignoredNode` properties to each node
+ */
+@injectable()
+export class ObfuscatingGuardsTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {ObfuscatingGuard[]}
+ */
+ private static readonly obfuscatingGuardsList: ObfuscatingGuard[] = [
+ ObfuscatingGuard.BlackListObfuscatingGuard,
+ ObfuscatingGuard.ConditionalCommentObfuscatingGuard,
+ ObfuscatingGuard.ForceTransformStringObfuscatingGuard,
+ ObfuscatingGuard.IgnoredRequireImportObfuscatingGuard,
+ ObfuscatingGuard.ReservedStringObfuscatingGuard
+ ];
+
+ /**
+ * @type {NodeTransformer.ParentificationTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.ParentificationTransformer,
+ NodeTransformer.VariablePreserveTransformer
+ ];
+
+ /**
+ * @type {IObfuscatingGuard[]}
+ */
+ private readonly obfuscatingGuards: IObfuscatingGuard[];
+
+ /**
+ * @param {TObfuscatingGuardFactory} obfuscatingGuardFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__INodeGuard) obfuscatingGuardFactory: TObfuscatingGuardFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.obfuscatingGuards = ObfuscatingGuardsTransformer.obfuscatingGuardsList.map(obfuscatingGuardFactory);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ return this.transformNode(node, parentNode);
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node {
+ const obfuscatingGuardResults: ObfuscatingGuardResult[] = this.obfuscatingGuards
+ .map((obfuscatingGuard: IObfuscatingGuard) => obfuscatingGuard.check(node));
+
+ this.setNodeMetadata(node, obfuscatingGuardResults);
+
+ return node;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {ObfuscatingGuardResult[]} obfuscatingGuardResults
+ */
+ private setNodeMetadata (node: ESTree.Node, obfuscatingGuardResults: ObfuscatingGuardResult[]): void {
+ const isTransformNode: boolean = obfuscatingGuardResults
+ .every((obfuscatingGuardResult: ObfuscatingGuardResult) => obfuscatingGuardResult === ObfuscatingGuardResult.Transform);
+
+ let isForceTransformNode: boolean = false;
+ let isIgnoredNode: boolean = false;
+
+ if (!isTransformNode) {
+ isForceTransformNode = obfuscatingGuardResults
+ .some((obfuscatingGuardResult: ObfuscatingGuardResult) =>
+ obfuscatingGuardResult === ObfuscatingGuardResult.ForceTransform
+ );
+ isIgnoredNode = !isForceTransformNode && obfuscatingGuardResults
+ .some((obfuscatingGuardResult: ObfuscatingGuardResult) =>
+ obfuscatingGuardResult === ObfuscatingGuardResult.Ignore
+ );
+ }
+
+ NodeMetadata.set(node, {
+ forceTransformNode: isForceTransformNode && !NodeGuards.isProgramNode(node),
+ ignoredNode: isIgnoredNode && !NodeGuards.isProgramNode(node)
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ParentificationTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ParentificationTransformer.ts
new file mode 100644
index 0000000..21ffd8d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/ParentificationTransformer.ts
@@ -0,0 +1,57 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * Adds `parentNode` properties to each node
+ */
+@injectable()
+export class ParentificationTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ return this.transformNode(node, parentNode);
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {Node}
+ */
+ public transformNode (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node {
+ return NodeUtils.parentizeNode(node, parentNode);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts
new file mode 100644
index 0000000..46f8d90
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/VariablePreserveTransformer.ts
@@ -0,0 +1,145 @@
+import { inject, injectable, } from 'inversify';
+import * as ESTree from 'estree';
+import * as eslintScope from 'eslint-scope';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierReplacer } from '../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IScopeIdentifiersTraverser } from '../../interfaces/node/IScopeIdentifiersTraverser';
+import { IScopeIdentifiersTraverserCallbackData } from '../../interfaces/node/IScopeIdentifiersTraverserCallbackData';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+
+/**
+ * Preserve non-replaceable variables
+ */
+@injectable()
+export class VariablePreserveTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer.ParentificationTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.ParentificationTransformer
+ ];
+
+ /**
+ * @type {IIdentifierReplacer}
+ */
+ private readonly identifierReplacer: IIdentifierReplacer;
+
+ /**
+ * @type {IScopeIdentifiersTraverser}
+ */
+ private readonly scopeIdentifiersTraverser: IScopeIdentifiersTraverser;
+
+ /**
+ * @param {IIdentifierReplacer} identifierReplacer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IScopeIdentifiersTraverser} scopeIdentifiersTraverser
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IIdentifierReplacer) identifierReplacer: IIdentifierReplacer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IScopeIdentifiersTraverser) scopeIdentifiersTraverser: IScopeIdentifiersTraverser
+ ) {
+ super(randomGenerator, options);
+
+ this.identifierReplacer = identifierReplacer;
+ this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
+
+ this.preserveScopeVariableIdentifiers = this.preserveScopeVariableIdentifiers.bind(this);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Preparing:
+ case NodeTransformationStage.Converting:
+ case NodeTransformationStage.RenameIdentifiers:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isProgramNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {VariableDeclaration} programNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (programNode: ESTree.Program, parentNode: ESTree.Node): ESTree.Node {
+ this.scopeIdentifiersTraverser.traverseScopeIdentifiers(
+ programNode,
+ parentNode,
+ this.preserveScopeVariableIdentifiers
+ );
+
+ return programNode;
+ }
+
+ /**
+ * @param {IScopeIdentifiersTraverserCallbackData} data
+ */
+ private preserveScopeVariableIdentifiers (data: IScopeIdentifiersTraverserCallbackData): void {
+ const {
+ isGlobalDeclaration,
+ isBubblingDeclaration,
+ variable,
+ variableScope
+ } = data;
+
+ for (const identifier of variable.identifiers) {
+ if (isGlobalDeclaration || isBubblingDeclaration) {
+ this.preserveIdentifierNameForRootLexicalScope(identifier);
+ } else {
+ this.preserveIdentifierNameForLexicalScope(identifier, variableScope);
+ }
+ }
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ */
+ private preserveIdentifierNameForRootLexicalScope (identifierNode: ESTree.Identifier): void {
+ this.identifierReplacer.preserveName(identifierNode);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {Scope} variableScope
+ */
+ private preserveIdentifierNameForLexicalScope (
+ identifierNode: ESTree.Identifier,
+ variableScope: eslintScope.Scope
+ ): void {
+ const lexicalScopeNode: TNodeWithLexicalScope | null = NodeGuards.isNodeWithLexicalScope(variableScope.block)
+ ? variableScope.block
+ : null;
+
+ if (!lexicalScopeNode) {
+ return;
+ }
+
+ this.identifierReplacer.preserveNameForLexicalScope(identifierNode, lexicalScopeNode);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts
new file mode 100644
index 0000000..33b623d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts
@@ -0,0 +1,42 @@
+import { injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+
+import { ObfuscatingGuardResult } from '../../../enums/node/ObfuscatingGuardResult';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class BlackListObfuscatingGuard implements IObfuscatingGuard {
+ /**
+ * @type {((node: Node) => boolean)[]}
+ */
+ private static readonly blackListGuards: ((node: ESTree.Node) => boolean)[] = [
+ NodeGuards.isUseStrictOperator
+ ];
+
+ /**
+ * @type {number}
+ */
+ private readonly blackListGuardsLength: number;
+
+ public constructor () {
+ this.blackListGuardsLength = BlackListObfuscatingGuard.blackListGuards.length;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {ObfuscatingGuardResult}
+ */
+ public check (node: ESTree.Node): ObfuscatingGuardResult {
+ for (let i: number = 0; i < this.blackListGuardsLength; i++) {
+ if (BlackListObfuscatingGuard.blackListGuards[i](node)) {
+ return ObfuscatingGuardResult.Ignore;
+ }
+ }
+
+ return ObfuscatingGuardResult.Transform;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts
new file mode 100644
index 0000000..e001b37
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts
@@ -0,0 +1,80 @@
+import { injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+
+import { ObfuscatingGuardResult } from '../../../enums/node/ObfuscatingGuardResult';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class ConditionalCommentObfuscatingGuard implements IObfuscatingGuard {
+ /**
+ * @type {RegExp}
+ */
+ private static readonly obfuscationEnableCommentRegExp: RegExp = new RegExp('javascript-obfuscator *: *enable');
+
+ /**
+ * @type {RegExp}
+ */
+ private static readonly obfuscationDisableCommentRegExp: RegExp = new RegExp('javascript-obfuscator *: *disable');
+
+ /**
+ * @type {boolean}
+ */
+ private obfuscationAllowed: boolean = true;
+
+ /**
+ * @param {Comment} comment
+ * @returns {boolean}
+ */
+ public static isConditionalComment (comment: ESTree.Comment): boolean {
+ return ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp.test(comment.value) ||
+ ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp.test(comment.value);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {ObfuscatingGuardResult}
+ */
+ public check (node: ESTree.Node): ObfuscatingGuardResult {
+ if (NodeGuards.isNodeWithComments(node)) {
+ const leadingComments: ESTree.Comment[] | undefined = node.leadingComments;
+
+ if (leadingComments) {
+ this.obfuscationAllowed = this.checkComments(leadingComments);
+ }
+ }
+
+ return this.obfuscationAllowed
+ ? ObfuscatingGuardResult.Transform
+ : ObfuscatingGuardResult.Ignore;
+ }
+
+ /**
+ * @param {Comment[]} comments
+ * @returns {boolean}
+ */
+ private checkComments (comments: ESTree.Comment[]): boolean {
+ const commentsLength: number = comments.length;
+
+ let obfuscationAllowed: boolean = this.obfuscationAllowed;
+
+ for (let i: number = 0; i < commentsLength; i++) {
+ const comment: ESTree.Comment = comments[i];
+
+ if (ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp.test(comment.value)) {
+ obfuscationAllowed = true;
+
+ continue;
+ }
+
+ if (ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp.test(comment.value)) {
+ obfuscationAllowed = false;
+ }
+ }
+
+ return obfuscationAllowed;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts
new file mode 100644
index 0000000..d4a066a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ForceTransformStringObfuscatingGuard.ts
@@ -0,0 +1,58 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+import { ObfuscatingGuardResult } from '../../../enums/node/ObfuscatingGuardResult';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class ForceTransformStringObfuscatingGuard implements IObfuscatingGuard {
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.options = options;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {ObfuscatingGuardResult}
+ */
+ public check (node: ESTree.Node): ObfuscatingGuardResult {
+ if (
+ this.options.forceTransformStrings.length
+ && NodeGuards.isLiteralNode(node)
+ && typeof node.value === 'string'
+ ) {
+ return !this.isForceTransformString(node.value)
+ ? ObfuscatingGuardResult.Transform
+ : ObfuscatingGuardResult.ForceTransform;
+ }
+
+ return ObfuscatingGuardResult.Transform;
+ }
+
+ /**
+ * @param {string} value
+ * @returns {boolean}
+ */
+ private isForceTransformString (value: string): boolean {
+ return this.options.forceTransformStrings
+ .some((forceTransformString: string) => {
+ return new RegExp(forceTransformString, 'g').exec(value) !== null;
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts
new file mode 100644
index 0000000..c80dbaf
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/IgnoredRequireImportObfuscatingGuard.ts
@@ -0,0 +1,46 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+import { ObfuscatingGuardResult } from '../../../enums/node/ObfuscatingGuardResult';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class IgnoredRequireImportObfuscatingGuard implements IObfuscatingGuard {
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.options = options;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {ObfuscatingGuardResult}
+ */
+ public check (node: ESTree.Node): ObfuscatingGuardResult {
+ if (
+ this.options.ignoreRequireImports
+ && NodeGuards.isCallExpressionNode(node)
+ && NodeGuards.isIdentifierNode(node.callee)
+ && node.callee.name === 'require'
+ ) {
+ return ObfuscatingGuardResult.Ignore;
+ }
+
+ return ObfuscatingGuardResult.Transform;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts
new file mode 100644
index 0000000..21005fd
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/preparing-transformers/obfuscating-guards/ReservedStringObfuscatingGuard.ts
@@ -0,0 +1,58 @@
+import { inject, injectable } from 'inversify';
+
+import * as ESTree from 'estree';
+
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+import { ObfuscatingGuardResult } from '../../../enums/node/ObfuscatingGuardResult';
+
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+
+@injectable()
+export class ReservedStringObfuscatingGuard implements IObfuscatingGuard {
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.options = options;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {ObfuscatingGuardResult}
+ */
+ public check (node: ESTree.Node): ObfuscatingGuardResult {
+ if (
+ this.options.reservedStrings.length
+ && NodeGuards.isLiteralNode(node)
+ && typeof node.value === 'string'
+ ) {
+ return !this.isReservedString(node.value)
+ ? ObfuscatingGuardResult.Transform
+ : ObfuscatingGuardResult.Ignore;
+ }
+
+ return ObfuscatingGuardResult.Transform;
+ }
+
+ /**
+ * @param {string} value
+ * @returns {boolean}
+ */
+ private isReservedString (value: string): boolean {
+ return this.options.reservedStrings
+ .some((reservedString: string) => {
+ return new RegExp(reservedString, 'g').exec(value) !== null;
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts
new file mode 100644
index 0000000..3d7f3c2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/LabeledStatementTransformer.ts
@@ -0,0 +1,126 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierReplacer } from '../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLexicalScopeUtils } from '../../node/NodeLexicalScopeUtils';
+
+/**
+ * replaces:
+ * label: {
+ * for (var i = 0; i < 1000; i++) {
+ * break label;
+ * }
+ * }
+ *
+ * on:
+ * _0x12d45f: {
+ * for (var i = 0; i < 1000; i++) {
+ * break _0x12d45f;
+ * }
+ * }
+ *
+ */
+@injectable()
+export class LabeledStatementTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IIdentifierReplacer}
+ */
+ private readonly identifierReplacer: IIdentifierReplacer;
+
+ /**
+ * @param {IIdentifierReplacer} identifierReplacer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IIdentifierReplacer) identifierReplacer: IIdentifierReplacer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.identifierReplacer = identifierReplacer;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.RenameIdentifiers:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isLabeledStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {LabeledStatement} labeledStatementNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (labeledStatementNode: ESTree.LabeledStatement, parentNode: ESTree.Node): ESTree.Node {
+ const lexicalScopeNode: TNodeWithLexicalScope | undefined = NodeLexicalScopeUtils.getLexicalScope(labeledStatementNode);
+
+ if (!lexicalScopeNode) {
+ return labeledStatementNode;
+ }
+
+ this.storeLabeledStatementName(labeledStatementNode, lexicalScopeNode);
+ this.replaceLabeledStatementName(labeledStatementNode, lexicalScopeNode);
+
+ return labeledStatementNode;
+ }
+
+ /**
+ * @param {LabeledStatement} labeledStatementNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ private storeLabeledStatementName (
+ labeledStatementNode: ESTree.LabeledStatement,
+ lexicalScopeNode: TNodeWithLexicalScope
+ ): void {
+ this.identifierReplacer.storeLocalName(labeledStatementNode.label, lexicalScopeNode);
+ }
+
+ /**
+ * @param {LabeledStatement} labeledStatementNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ private replaceLabeledStatementName (
+ labeledStatementNode: ESTree.LabeledStatement,
+ lexicalScopeNode: TNodeWithLexicalScope
+ ): void {
+ estraverse.replace(labeledStatementNode, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): void => {
+ if (parentNode && NodeGuards.isLabelIdentifierNode(node, parentNode)) {
+ const newIdentifier: ESTree.Identifier = this.identifierReplacer
+ .replace(node, lexicalScopeNode);
+
+ node.name = newIdentifier.name;
+ }
+ }
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts
new file mode 100644
index 0000000..8e18f1a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.ts
@@ -0,0 +1,396 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as eslintScope from 'eslint-scope';
+import * as ESTree from 'estree';
+import * as estraverse from 'estraverse';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierReplacer } from '../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IScopeIdentifiersTraverser } from '../../interfaces/node/IScopeIdentifiersTraverser';
+import { IScopeIdentifiersTraverserCallbackData } from '../../interfaces/node/IScopeIdentifiersTraverserCallbackData';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeMetadata } from '../../node/NodeMetadata';
+
+/**
+ * Replaces all replaceable identifiers in scope
+ */
+@injectable()
+export class ScopeIdentifiersTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IIdentifierReplacer}
+ */
+ private readonly identifierReplacer: IIdentifierReplacer;
+
+ /**
+ * @type {Map<TNodeWithLexicalScope, boolean>}
+ */
+ private readonly lexicalScopesWithObjectPatternWithoutDeclarationMap: Map<TNodeWithLexicalScope, boolean> = new Map();
+
+ /**
+ * @type {IScopeIdentifiersTraverser}
+ */
+ private readonly scopeIdentifiersTraverser: IScopeIdentifiersTraverser;
+
+ /**
+ * @param {IIdentifierReplacer} identifierReplacer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IScopeIdentifiersTraverser} scopeIdentifiersTraverser
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IIdentifierReplacer) identifierReplacer: IIdentifierReplacer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IScopeIdentifiersTraverser) scopeIdentifiersTraverser: IScopeIdentifiersTraverser
+ ) {
+ super(randomGenerator, options);
+
+ this.identifierReplacer = identifierReplacer;
+ this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.RenameIdentifiers:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isProgramNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {VariableDeclaration} programNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (programNode: ESTree.Program, parentNode: ESTree.Node): ESTree.Node {
+ this.scopeIdentifiersTraverser.traverseScopeIdentifiers(
+ programNode,
+ parentNode,
+ (data: IScopeIdentifiersTraverserCallbackData) => {
+ const {
+ isGlobalDeclaration,
+ variable,
+ variableLexicalScopeNode
+ } = data;
+
+ if (!this.options.renameGlobals && isGlobalDeclaration) {
+ const isImportBindingOrCatchClauseIdentifier: boolean = variable.defs
+ .every((definition: eslintScope.Definition) =>
+ definition.type === 'ImportBinding'
+ || definition.type === 'CatchClause'
+ );
+
+ // skip all global identifiers except import statement and catch clause parameter identifiers
+ if (!isImportBindingOrCatchClauseIdentifier) {
+ return;
+ }
+ }
+
+ this.transformScopeVariableIdentifiers(
+ variable,
+ variableLexicalScopeNode,
+ isGlobalDeclaration
+ );
+ }
+ );
+
+ return programNode;
+ }
+
+ /**
+ * @param {Variable} variable
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {boolean} isGlobalDeclaration
+ */
+ private transformScopeVariableIdentifiers (
+ variable: eslintScope.Variable,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ isGlobalDeclaration: boolean
+ ): void {
+ const firstIdentifier: ESTree.Identifier | null = variable.identifiers[0] ?? null;
+
+ if (!firstIdentifier) {
+ return;
+ }
+
+ if (!this.isReplaceableIdentifierNode(firstIdentifier, lexicalScopeNode, variable)) {
+ return;
+ }
+
+ this.storeIdentifierName(firstIdentifier, lexicalScopeNode, isGlobalDeclaration);
+ this.replaceIdentifierName(firstIdentifier, lexicalScopeNode, variable);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {boolean} isGlobalDeclaration
+ */
+ private storeIdentifierName (
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ isGlobalDeclaration: boolean
+ ): void {
+ if (isGlobalDeclaration) {
+ this.identifierReplacer.storeGlobalName(identifierNode, lexicalScopeNode);
+ } else {
+ this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);
+ }
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {Variable} variable
+ */
+ private replaceIdentifierName (
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ variable: eslintScope.Variable
+ ): void {
+ const newIdentifier: ESTree.Identifier = this.identifierReplacer
+ .replace(identifierNode, lexicalScopeNode);
+
+ // rename of identifiers
+ variable.identifiers.forEach((identifier: ESTree.Identifier) => {
+ identifier.name = newIdentifier.name;
+ });
+
+ // rename of references
+ variable.references.forEach((reference: eslintScope.Reference) => {
+ reference.identifier.name = identifierNode.name;
+ });
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {Variable} variable
+ * @returns {boolean}
+ */
+ // eslint-disable-next-line complexity
+ private isReplaceableIdentifierNode (
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ variable: eslintScope.Variable
+ ): identifierNode is ESTree.Identifier & { parentNode: ESTree.Node } {
+ const parentNode: ESTree.Node | undefined = identifierNode.parentNode;
+
+ return !!parentNode
+ && !NodeMetadata.isIgnoredNode(identifierNode)
+ && !this.isProhibitedPropertyIdentifierNode(identifierNode, parentNode)
+ && !this.isProhibitedPropertyAssignmentPatternIdentifierNode(identifierNode, parentNode)
+ && !this.isProhibitedClassDeclarationNameIdentifierNode(variable, identifierNode, parentNode)
+ && !this.isProhibitedExportNamedClassDeclarationIdentifierNode(identifierNode, parentNode)
+ && !this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(identifierNode, parentNode)
+ && !this.isProhibitedExportNamedVariableDeclarationIdentifierNode(identifierNode, parentNode)
+ && !this.isProhibitedImportSpecifierNode(identifierNode, parentNode)
+ && !this.isProhibitedVariableNameUsedInObjectPatternNode(variable, identifierNode, lexicalScopeNode)
+ && !NodeGuards.isLabelIdentifierNode(identifierNode, parentNode);
+ }
+
+ /**
+ * @param {Variable} variable
+ * @param {Identifier} identifierNode
+ * @param {Node} parentNode
+ * @returns {identifierNode is Identifier}
+ */
+ private isProhibitedClassDeclarationNameIdentifierNode (
+ variable: eslintScope.Variable,
+ identifierNode: ESTree.Identifier,
+ parentNode: ESTree.Node
+ ): identifierNode is ESTree.Identifier {
+ return NodeGuards.isClassDeclarationNode(variable.scope.block)
+ && NodeGuards.isClassDeclarationNode(parentNode)
+ && parentNode.id === identifierNode;
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {Node} parentNode
+ * @returns {identifierNode is Identifier}
+ */
+ private isProhibitedExportNamedClassDeclarationIdentifierNode (
+ identifierNode: ESTree.Identifier,
+ parentNode: ESTree.Node
+ ): identifierNode is ESTree.Identifier {
+ return NodeGuards.isClassDeclarationNode(parentNode)
+ && parentNode.id === identifierNode
+ && !!parentNode.parentNode
+ && NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {Node} parentNode
+ * @returns {identifierNode is Identifier}
+ */
+ private isProhibitedExportNamedFunctionDeclarationIdentifierNode (
+ identifierNode: ESTree.Identifier,
+ parentNode: ESTree.Node
+ ): identifierNode is ESTree.Identifier {
+ return NodeGuards.isFunctionDeclarationNode(parentNode)
+ && parentNode.id === identifierNode
+ && !!parentNode.parentNode
+ && NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {Node} parentNode
+ * @returns {identifierNode is Identifier}
+ */
+ private isProhibitedExportNamedVariableDeclarationIdentifierNode (
+ identifierNode: ESTree.Identifier,
+ parentNode: ESTree.Node
+ ): identifierNode is ESTree.Identifier {
+ return NodeGuards.isVariableDeclaratorNode(parentNode)
+ && parentNode.id === identifierNode
+ && !!parentNode.parentNode
+ && NodeGuards.isVariableDeclarationNode(parentNode.parentNode)
+ && !!parentNode.parentNode.parentNode
+ && NodeGuards.isExportNamedDeclarationNode(parentNode.parentNode.parentNode);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ private isProhibitedImportSpecifierNode (identifierNode: ESTree.Identifier, parentNode: ESTree.Node): boolean {
+ return NodeGuards.isImportSpecifierNode(parentNode)
+ && parentNode.imported.name === parentNode.local.name;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ private isProhibitedPropertyIdentifierNode (
+ node: ESTree.Node,
+ parentNode: ESTree.Node
+ ): node is ESTree.Identifier {
+ return NodeGuards.isPropertyNode(parentNode)
+ && !parentNode.computed
+ && NodeGuards.isIdentifierNode(parentNode.key)
+ && NodeGuards.isIdentifierNode(node)
+ && parentNode.shorthand
+ && parentNode.key.name === node.name;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ private isProhibitedPropertyAssignmentPatternIdentifierNode (
+ node: ESTree.Node,
+ parentNode: ESTree.Node
+ ): node is ESTree.Identifier {
+ return NodeGuards.isAssignmentPatternNode(parentNode)
+ && parentNode.left === node
+ && !!parentNode.parentNode
+ && NodeGuards.isPropertyNode(parentNode.parentNode)
+ && NodeGuards.isIdentifierNode(parentNode.left)
+ && NodeGuards.isIdentifierNode(parentNode.parentNode.key)
+ && parentNode.left.name === parentNode.parentNode.key.name;
+ }
+
+ /**
+ * Should not rename identifiers that used inside destructing assignment without declaration
+ *
+ * var a, b; // should not be renamed
+ * ({a, b} = {a: 1, b: 2});
+ *
+ * @param {Variable} variable
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @returns {boolean}
+ */
+ private isProhibitedVariableNameUsedInObjectPatternNode (
+ variable: eslintScope.Variable,
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope
+ ): boolean {
+ let isLexicalScopeHasObjectPatternWithoutDeclaration: boolean | undefined =
+ this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(lexicalScopeNode);
+
+ // lexical scope was traversed before and object pattern without declaration was not found
+ if (isLexicalScopeHasObjectPatternWithoutDeclaration === false) {
+ return false;
+ }
+
+ const hasVarDefinitions: boolean = variable.defs.some((definition: eslintScope.Definition) => (<any>definition).kind === 'var');
+
+ if (!hasVarDefinitions) {
+ return false;
+ }
+
+ let isProhibitedVariableDeclaration: boolean = false;
+
+ estraverse.traverse(lexicalScopeNode, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): void | estraverse.VisitorOption => {
+ if (
+ NodeGuards.isObjectPatternNode(node)
+ && parentNode
+ && NodeGuards.isAssignmentExpressionNode(parentNode)
+ ) {
+ isLexicalScopeHasObjectPatternWithoutDeclaration = true;
+
+ const properties: (ESTree.Property | ESTree.RestElement)[] = node.properties;
+
+ for (const property of properties) {
+ if (!NodeGuards.isPropertyNode(property)) {
+ continue;
+ }
+
+ if (property.computed || !property.shorthand) {
+ continue;
+ }
+
+ if (!NodeGuards.isIdentifierNode(property.key)) {
+ continue;
+ }
+
+ if (identifierNode.name !== property.key.name) {
+ continue;
+ }
+
+ isProhibitedVariableDeclaration = true;
+
+ return estraverse.VisitorOption.Break;
+ }
+ }
+ }
+ });
+
+ this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(
+ lexicalScopeNode,
+ isLexicalScopeHasObjectPatternWithoutDeclaration ?? false
+ );
+
+ return isProhibitedVariableDeclaration;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts
new file mode 100644
index 0000000..8828933
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.ts
@@ -0,0 +1,141 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as eslintScope from 'eslint-scope';
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierReplacer } from '../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IScopeIdentifiersTraverser } from '../../interfaces/node/IScopeIdentifiersTraverser';
+import { IScopeThroughIdentifiersTraverserCallbackData } from '../../interfaces/node/IScopeThroughIdentifiersTraverserCallbackData';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+
+/**
+ * Renames all through identifiers. Now used directly from Dead Code Injection transformer
+ */
+@injectable()
+export class ScopeThroughIdentifiersTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IIdentifierReplacer}
+ */
+ private readonly identifierReplacer: IIdentifierReplacer;
+
+ /**
+ * @type {IScopeIdentifiersTraverser}
+ */
+ private readonly scopeIdentifiersTraverser: IScopeIdentifiersTraverser;
+
+ /**
+ * @param {IIdentifierReplacer} identifierReplacer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IScopeIdentifiersTraverser} scopeIdentifiersTraverser
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IIdentifierReplacer) identifierReplacer: IIdentifierReplacer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IScopeIdentifiersTraverser) scopeIdentifiersTraverser: IScopeIdentifiersTraverser
+ ) {
+ super(randomGenerator, options);
+
+ this.identifierReplacer = identifierReplacer;
+ this.scopeIdentifiersTraverser = scopeIdentifiersTraverser;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.RenameIdentifiers:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isProgramNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {VariableDeclaration} programNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (programNode: ESTree.Program, parentNode: ESTree.Node): ESTree.Node {
+ this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(
+ programNode,
+ parentNode,
+ (data: IScopeThroughIdentifiersTraverserCallbackData) => {
+ const {
+ reference,
+ variableLexicalScopeNode
+ } = data;
+
+ this.transformScopeThroughIdentifiers(reference, variableLexicalScopeNode);
+ }
+ );
+
+ return programNode;
+ }
+
+ /**
+ * @param {Reference} reference
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ private transformScopeThroughIdentifiers (
+ reference: eslintScope.Reference,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ ): void {
+ if (reference.resolved) {
+ return;
+ }
+
+ const identifier: ESTree.Identifier = reference.identifier;
+
+ this.storeIdentifierName(identifier, lexicalScopeNode);
+ this.replaceIdentifierName(identifier, lexicalScopeNode, reference);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ private storeIdentifierName (
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope
+ ): void {
+ this.identifierReplacer.storeLocalName(identifierNode, lexicalScopeNode);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @param {Variable} reference
+ */
+ private replaceIdentifierName (
+ identifierNode: ESTree.Identifier,
+ lexicalScopeNode: TNodeWithLexicalScope,
+ reference: eslintScope.Reference
+ ): void {
+ const newIdentifier: ESTree.Identifier = this.identifierReplacer
+ .replace(identifierNode, lexicalScopeNode);
+
+ // rename of identifier
+ reference.identifier.name = newIdentifier.name;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts
new file mode 100644
index 0000000..c885281
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-identifiers-transformers/replacer/IdentifierReplacer.ts
@@ -0,0 +1,147 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TNodeWithLexicalScope } from '../../../types/node/TNodeWithLexicalScope';
+
+import { IIdentifierNamesGenerator } from '../../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IIdentifierReplacer } from '../../../interfaces/node-transformers/rename-identifiers-transformers/replacer/IIdentifierReplacer';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+import { NodeFactory } from '../../../node/NodeFactory';
+
+@injectable()
+export class IdentifierReplacer implements IIdentifierReplacer {
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ private readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {Map<TNodeWithLexicalScope, Map<string, string>>}
+ */
+ private readonly blockScopesMap: Map<TNodeWithLexicalScope, Map<string, string>> = new Map();
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.options = options;
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ }
+
+ /**
+ * Store `nodeName` of global identifiers as key in map with random name as value.
+ * Reserved name will be ignored.
+ *
+ * @param {Node} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ public storeGlobalName (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void {
+ const identifierName: string = identifierNode.name;
+
+ if (this.isReservedName(identifierName)) {
+ return;
+ }
+
+ const newIdentifierName: string = this.identifierNamesGenerator.generateForGlobalScope();
+
+ if (!this.blockScopesMap.has(lexicalScopeNode)) {
+ this.blockScopesMap.set(lexicalScopeNode, new Map());
+ }
+
+ const namesMap: Map<string, string> = <Map<string, string>>this.blockScopesMap.get(lexicalScopeNode);
+
+ namesMap.set(identifierName, newIdentifierName);
+ }
+
+ /**
+ * Store `nodeName` of local identifier as key in map with random name as value.
+ * Reserved name will be ignored.
+ *
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ public storeLocalName (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void {
+ const identifierName: string = identifierNode.name;
+
+ if (this.isReservedName(identifierName)) {
+ return;
+ }
+
+ const newIdentifierName: string = this.identifierNamesGenerator.generateForLexicalScope(lexicalScopeNode);
+
+ if (!this.blockScopesMap.has(lexicalScopeNode)) {
+ this.blockScopesMap.set(lexicalScopeNode, new Map());
+ }
+
+ const namesMap: Map<string, string> = <Map<string, string>>this.blockScopesMap.get(lexicalScopeNode);
+
+ namesMap.set(identifierName, newIdentifierName);
+ }
+
+ /**
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ * @returns {Identifier}
+ */
+ public replace (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): ESTree.Identifier {
+ let identifierName: string = identifierNode.name;
+
+ if (this.blockScopesMap.has(lexicalScopeNode)) {
+ const namesMap: Map<string, string> = <Map<string, string>>this.blockScopesMap.get(lexicalScopeNode);
+
+ if (namesMap.has(identifierName)) {
+ identifierName = <string>namesMap.get(identifierName);
+ }
+ }
+
+ return NodeFactory.identifierNode(identifierName);
+ }
+
+ /**
+ * Preserve `name` to protect it from further using
+ *
+ * @param {Identifier} identifierNode
+ */
+ public preserveName (identifierNode: ESTree.Identifier): void {
+ this.identifierNamesGenerator.preserveName(identifierNode.name);
+ }
+
+ /**
+ * Preserve `name` to protect it from further using
+ *
+ * @param {Identifier} identifierNode
+ * @param {TNodeWithLexicalScope} lexicalScopeNode
+ */
+ public preserveNameForLexicalScope (identifierNode: ESTree.Identifier, lexicalScopeNode: TNodeWithLexicalScope): void {
+ this.identifierNamesGenerator.preserveNameForLexicalScope(identifierNode.name, lexicalScopeNode);
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ private isReservedName (name: string): boolean {
+ if (!this.options.reservedNames.length) {
+ return false;
+ }
+
+ return this.options.reservedNames
+ .some((reservedName: string) => {
+ return new RegExp(reservedName, 'g').exec(name) !== null;
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts
new file mode 100644
index 0000000..310388e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts
@@ -0,0 +1,139 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IRenamePropertiesReplacer } from '../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+
+@injectable()
+export class RenamePropertiesTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IRenamePropertiesReplacer}
+ */
+ private readonly renamePropertiesReplacer: IRenamePropertiesReplacer;
+
+ /**
+ * @param {IRenamePropertiesReplacer} renamePropertiesReplacer
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRenamePropertiesReplacer) renamePropertiesReplacer: IRenamePropertiesReplacer,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.renamePropertiesReplacer = renamePropertiesReplacer;
+ }
+
+ /**
+ * @param {TNode} propertyNode
+ * @param {ESTree.Expression} propertyKeyNode
+ * @returns {boolean}
+ */
+ private static isValidPropertyNode<
+ TNode extends ESTree.Property | ESTree.MemberExpression | ESTree.MethodDefinition
+ > (
+ propertyNode: TNode,
+ propertyKeyNode: ESTree.Expression
+ ): propertyKeyNode is ESTree.Identifier | ESTree.Literal {
+ if (NodeGuards.isIdentifierNode(propertyKeyNode) && propertyNode.computed) {
+ return false;
+ }
+
+ return NodeGuards.isIdentifierNode(propertyKeyNode) || NodeGuards.isLiteralNode(propertyKeyNode);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.RenameProperties:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Node} node
+ * @param {NodeGuards} parentNode
+ * @returns {Node}
+ */
+ public transformNode (node: ESTree.Node, parentNode: ESTree.Node): ESTree.Node {
+ if (NodeGuards.isPropertyNode(node)) {
+ return this.transformPropertyNode(node);
+ }
+
+ if (NodeGuards.isMemberExpressionNode(node)) {
+ return this.transformMemberExpressionNode(node);
+ }
+
+ if (NodeGuards.isMethodDefinitionNode(node)) {
+ return this.transformMethodDefinitionNode(node);
+ }
+
+ return node;
+ }
+
+ /**
+ * @param {Property} propertyNode
+ * @returns {Property}
+ */
+ private transformPropertyNode (propertyNode: ESTree.Property): ESTree.Property {
+ const propertyKeyNode: ESTree.Expression = propertyNode.key;
+
+ if (RenamePropertiesTransformer.isValidPropertyNode(propertyNode, propertyKeyNode)) {
+ propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
+ propertyNode.shorthand = false;
+ }
+
+ return propertyNode;
+ }
+
+ /**
+ * @param {Property} memberExpressionNode
+ * @returns {Property}
+ */
+ private transformMemberExpressionNode (memberExpressionNode: ESTree.MemberExpression): ESTree.MemberExpression {
+ const propertyKeyNode: ESTree.Expression = memberExpressionNode.property;
+
+ if (RenamePropertiesTransformer.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {
+ memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);
+ }
+
+ return memberExpressionNode;
+ }
+
+ /**
+ * @param {MethodDefinition} methodDefinitionNode
+ * @returns {MethodDefinition}
+ */
+ private transformMethodDefinitionNode (methodDefinitionNode: ESTree.MethodDefinition): ESTree.MethodDefinition {
+ const propertyKeyNode: ESTree.Expression = methodDefinitionNode.key;
+
+ if (RenamePropertiesTransformer.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {
+ methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
+ }
+
+ return methodDefinitionNode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts
new file mode 100644
index 0000000..2a65a06
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts
@@ -0,0 +1,133 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
+
+import { IIdentifierNamesGenerator } from '../../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IRenamePropertiesReplacer } from '../../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+// eslint-disable-next-line import/no-internal-modules
+import ReservedDomProperties from './ReservedDomProperties.json';
+
+import { NodeGuards } from '../../../node/NodeGuards';
+import { NodeFactory } from '../../../node/NodeFactory';
+
+@injectable()
+export class RenamePropertiesReplacer implements IRenamePropertiesReplacer {
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ private readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {Map<string, string>}
+ * @private
+ */
+ private readonly propertyNamesMap: Map<string, string> = new Map();
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * Properties list taken from `UglifyJS` and `terser`
+ * https://github.com/mishoo/UglifyJS/blob/master/tools/domprops.json
+ * https://github.com/terser/terser/blob/master/tools/domprops.js
+ * Copyright 2012-2018 (c) Mihai Bazon <mihai.bazon@gmail.com>
+ *
+ * @type {Set<string>}
+ */
+ private readonly reservedDomPropertiesList: Set<string> = new Set(ReservedDomProperties);
+
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.options = options;
+ }
+
+ /**
+ * @param {ESTree.Identifier | ESTree.Literal} node
+ * @returns {ESTree.Identifier | ESTree.Literal}
+ */
+ public replace (node: ESTree.Identifier | ESTree.Literal): ESTree.Identifier | ESTree.Literal {
+ if (NodeGuards.isIdentifierNode(node)) {
+ return NodeFactory.identifierNode(
+ this.replacePropertyName(node.name)
+ );
+ }
+
+ if (NodeGuards.isLiteralNode(node) && typeof node.value === 'string') {
+ return NodeFactory.literalNode(
+ this.replacePropertyName(node.value)
+ );
+ }
+
+ return node;
+ }
+
+ /**
+ * @param {string} propertyName
+ * @returns {string}
+ * @private
+ */
+ private replacePropertyName (propertyName: string): string {
+ if (this.isReservedName(propertyName)) {
+ return propertyName;
+ }
+
+ let renamedPropertyName: string | null = this.propertyNamesMap.get(propertyName) ?? null;
+
+ if (renamedPropertyName !== null) {
+ return renamedPropertyName;
+ }
+
+ renamedPropertyName = this.identifierNamesGenerator.generateNext();
+ this.propertyNamesMap.set(propertyName, renamedPropertyName);
+
+ return renamedPropertyName;
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ private isReservedName (name: string): boolean {
+ return this.isReservedOptionName(name)
+ || this.isReservedDomPropertyName(name);
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ private isReservedOptionName (name: string): boolean {
+ if (!this.options.reservedNames.length) {
+ return false;
+ }
+
+ return this.options.reservedNames
+ .some((reservedName: string) => {
+ return new RegExp(reservedName, 'g').exec(name) !== null;
+ });
+ }
+
+ /**
+ * @param {string} name
+ * @returns {boolean}
+ */
+ private isReservedDomPropertyName (name: string): boolean {
+ return this.reservedDomPropertiesList.has(name);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json
new file mode 100644
index 0000000..2cc8e13
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/rename-properties-transformers/replacer/ReservedDomProperties.json
@@ -0,0 +1,5619 @@
+[
+ "$&",
+ "$'",
+ "$*",
+ "$+",
+ "$1",
+ "$2",
+ "$3",
+ "$4",
+ "$5",
+ "$6",
+ "$7",
+ "$8",
+ "$9",
+ "$_",
+ "$`",
+ "$input",
+ "@@iterator",
+ "ABORT_ERR",
+ "ACTIVE",
+ "ACTIVE_ATTRIBUTES",
+ "ACTIVE_TEXTURE",
+ "ACTIVE_UNIFORMS",
+ "ADDITION",
+ "ALIASED_LINE_WIDTH_RANGE",
+ "ALIASED_POINT_SIZE_RANGE",
+ "ALLOW_KEYBOARD_INPUT",
+ "ALLPASS",
+ "ALPHA",
+ "ALPHA_BITS",
+ "ALT_MASK",
+ "ALWAYS",
+ "ANY_TYPE",
+ "ANY_UNORDERED_NODE_TYPE",
+ "ARRAY_BUFFER",
+ "ARRAY_BUFFER_BINDING",
+ "ATTACHED_SHADERS",
+ "ATTRIBUTE_NODE",
+ "AT_TARGET",
+ "AddSearchProvider",
+ "AnalyserNode",
+ "AnimationEvent",
+ "AnonXMLHttpRequest",
+ "ApplicationCache",
+ "ApplicationCacheErrorEvent",
+ "Array",
+ "ArrayBuffer",
+ "Attr",
+ "Audio",
+ "AudioBuffer",
+ "AudioBufferSourceNode",
+ "AudioContext",
+ "AudioDestinationNode",
+ "AudioListener",
+ "AudioNode",
+ "AudioParam",
+ "AudioProcessingEvent",
+ "AudioStreamTrack",
+ "AutocompleteErrorEvent",
+ "BACK",
+ "BAD_BOUNDARYPOINTS_ERR",
+ "BANDPASS",
+ "BLEND",
+ "BLEND_COLOR",
+ "BLEND_DST_ALPHA",
+ "BLEND_DST_RGB",
+ "BLEND_EQUATION",
+ "BLEND_EQUATION_ALPHA",
+ "BLEND_EQUATION_RGB",
+ "BLEND_SRC_ALPHA",
+ "BLEND_SRC_RGB",
+ "BLUE_BITS",
+ "BLUR",
+ "BOOL",
+ "BOOLEAN_TYPE",
+ "BOOL_VEC2",
+ "BOOL_VEC3",
+ "BOOL_VEC4",
+ "BOTH",
+ "BROWSER_DEFAULT_WEBGL",
+ "BUBBLING_PHASE",
+ "BUFFER_SIZE",
+ "BUFFER_USAGE",
+ "BYTE",
+ "BYTES_PER_ELEMENT",
+ "BarProp",
+ "BaseHref",
+ "BatteryManager",
+ "BeforeLoadEvent",
+ "BeforeUnloadEvent",
+ "BiquadFilterNode",
+ "Blob",
+ "BlobEvent",
+ "Boolean",
+ "CAPTURING_PHASE",
+ "CCW",
+ "CDATASection",
+ "CDATA_SECTION_NODE",
+ "CHANGE",
+ "CHARSET_RULE",
+ "CHECKING",
+ "CLAMP_TO_EDGE",
+ "CLICK",
+ "CLOSED",
+ "CLOSING",
+ "COLOR_ATTACHMENT0",
+ "COLOR_BUFFER_BIT",
+ "COLOR_CLEAR_VALUE",
+ "COLOR_WRITEMASK",
+ "COMMENT_NODE",
+ "COMPILE_STATUS",
+ "COMPRESSED_RGBA_S3TC_DXT1_EXT",
+ "COMPRESSED_RGBA_S3TC_DXT3_EXT",
+ "COMPRESSED_RGBA_S3TC_DXT5_EXT",
+ "COMPRESSED_RGB_S3TC_DXT1_EXT",
+ "COMPRESSED_TEXTURE_FORMATS",
+ "CONNECTING",
+ "CONSTANT_ALPHA",
+ "CONSTANT_COLOR",
+ "CONSTRAINT_ERR",
+ "CONTEXT_LOST_WEBGL",
+ "CONTROL_MASK",
+ "COUNTER_STYLE_RULE",
+ "CSS",
+ "CSS2Properties",
+ "CSSCharsetRule",
+ "CSSConditionRule",
+ "CSSCounterStyleRule",
+ "CSSFontFaceRule",
+ "CSSFontFeatureValuesRule",
+ "CSSGroupingRule",
+ "CSSImportRule",
+ "CSSKeyframeRule",
+ "CSSKeyframesRule",
+ "CSSMediaRule",
+ "CSSMozDocumentRule",
+ "CSSNameSpaceRule",
+ "CSSPageRule",
+ "CSSPrimitiveValue",
+ "CSSRule",
+ "CSSRuleList",
+ "CSSStyleDeclaration",
+ "CSSStyleRule",
+ "CSSStyleSheet",
+ "CSSSupportsRule",
+ "CSSUnknownRule",
+ "CSSValue",
+ "CSSValueList",
+ "CSSVariablesDeclaration",
+ "CSSVariablesRule",
+ "CSSViewportRule",
+ "CSS_ATTR",
+ "CSS_CM",
+ "CSS_COUNTER",
+ "CSS_CUSTOM",
+ "CSS_DEG",
+ "CSS_DIMENSION",
+ "CSS_EMS",
+ "CSS_EXS",
+ "CSS_FILTER_BLUR",
+ "CSS_FILTER_BRIGHTNESS",
+ "CSS_FILTER_CONTRAST",
+ "CSS_FILTER_CUSTOM",
+ "CSS_FILTER_DROP_SHADOW",
+ "CSS_FILTER_GRAYSCALE",
+ "CSS_FILTER_HUE_ROTATE",
+ "CSS_FILTER_INVERT",
+ "CSS_FILTER_OPACITY",
+ "CSS_FILTER_REFERENCE",
+ "CSS_FILTER_SATURATE",
+ "CSS_FILTER_SEPIA",
+ "CSS_GRAD",
+ "CSS_HZ",
+ "CSS_IDENT",
+ "CSS_IN",
+ "CSS_INHERIT",
+ "CSS_KHZ",
+ "CSS_MATRIX",
+ "CSS_MATRIX3D",
+ "CSS_MM",
+ "CSS_MS",
+ "CSS_NUMBER",
+ "CSS_PC",
+ "CSS_PERCENTAGE",
+ "CSS_PERSPECTIVE",
+ "CSS_PRIMITIVE_VALUE",
+ "CSS_PT",
+ "CSS_PX",
+ "CSS_RAD",
+ "CSS_RECT",
+ "CSS_RGBCOLOR",
+ "CSS_ROTATE",
+ "CSS_ROTATE3D",
+ "CSS_ROTATEX",
+ "CSS_ROTATEY",
+ "CSS_ROTATEZ",
+ "CSS_S",
+ "CSS_SCALE",
+ "CSS_SCALE3D",
+ "CSS_SCALEX",
+ "CSS_SCALEY",
+ "CSS_SCALEZ",
+ "CSS_SKEW",
+ "CSS_SKEWX",
+ "CSS_SKEWY",
+ "CSS_STRING",
+ "CSS_TRANSLATE",
+ "CSS_TRANSLATE3D",
+ "CSS_TRANSLATEX",
+ "CSS_TRANSLATEY",
+ "CSS_TRANSLATEZ",
+ "CSS_UNKNOWN",
+ "CSS_URI",
+ "CSS_VALUE_LIST",
+ "CSS_VH",
+ "CSS_VMAX",
+ "CSS_VMIN",
+ "CSS_VW",
+ "CULL_FACE",
+ "CULL_FACE_MODE",
+ "CURRENT_PROGRAM",
+ "CURRENT_VERTEX_ATTRIB",
+ "CUSTOM",
+ "CW",
+ "CanvasGradient",
+ "CanvasPattern",
+ "CanvasRenderingContext2D",
+ "CaretPosition",
+ "ChannelMergerNode",
+ "ChannelSplitterNode",
+ "CharacterData",
+ "ClientRect",
+ "ClientRectList",
+ "Clipboard",
+ "ClipboardEvent",
+ "CloseEvent",
+ "Collator",
+ "CommandEvent",
+ "Comment",
+ "CompositionEvent",
+ "Console",
+ "Controllers",
+ "ConvolverNode",
+ "Counter",
+ "Crypto",
+ "CryptoKey",
+ "CustomEvent",
+ "DATABASE_ERR",
+ "DATA_CLONE_ERR",
+ "DATA_ERR",
+ "DBLCLICK",
+ "DECR",
+ "DECR_WRAP",
+ "DELETE_STATUS",
+ "DEPTH_ATTACHMENT",
+ "DEPTH_BITS",
+ "DEPTH_BUFFER_BIT",
+ "DEPTH_CLEAR_VALUE",
+ "DEPTH_COMPONENT",
+ "DEPTH_COMPONENT16",
+ "DEPTH_FUNC",
+ "DEPTH_RANGE",
+ "DEPTH_STENCIL",
+ "DEPTH_STENCIL_ATTACHMENT",
+ "DEPTH_TEST",
+ "DEPTH_WRITEMASK",
+ "DIRECTION_DOWN",
+ "DIRECTION_LEFT",
+ "DIRECTION_RIGHT",
+ "DIRECTION_UP",
+ "DISABLED",
+ "DISPATCH_REQUEST_ERR",
+ "DITHER",
+ "DOCUMENT_FRAGMENT_NODE",
+ "DOCUMENT_NODE",
+ "DOCUMENT_POSITION_CONTAINED_BY",
+ "DOCUMENT_POSITION_CONTAINS",
+ "DOCUMENT_POSITION_DISCONNECTED",
+ "DOCUMENT_POSITION_FOLLOWING",
+ "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC",
+ "DOCUMENT_POSITION_PRECEDING",
+ "DOCUMENT_TYPE_NODE",
+ "DOMCursor",
+ "DOMError",
+ "DOMException",
+ "DOMImplementation",
+ "DOMImplementationLS",
+ "DOMMatrix",
+ "DOMMatrixReadOnly",
+ "DOMParser",
+ "DOMPoint",
+ "DOMPointReadOnly",
+ "DOMQuad",
+ "DOMRect",
+ "DOMRectList",
+ "DOMRectReadOnly",
+ "DOMRequest",
+ "DOMSTRING_SIZE_ERR",
+ "DOMSettableTokenList",
+ "DOMStringList",
+ "DOMStringMap",
+ "DOMTokenList",
+ "DOMTransactionEvent",
+ "DOM_DELTA_LINE",
+ "DOM_DELTA_PAGE",
+ "DOM_DELTA_PIXEL",
+ "DOM_INPUT_METHOD_DROP",
+ "DOM_INPUT_METHOD_HANDWRITING",
+ "DOM_INPUT_METHOD_IME",
+ "DOM_INPUT_METHOD_KEYBOARD",
+ "DOM_INPUT_METHOD_MULTIMODAL",
+ "DOM_INPUT_METHOD_OPTION",
+ "DOM_INPUT_METHOD_PASTE",
+ "DOM_INPUT_METHOD_SCRIPT",
+ "DOM_INPUT_METHOD_UNKNOWN",
+ "DOM_INPUT_METHOD_VOICE",
+ "DOM_KEY_LOCATION_JOYSTICK",
+ "DOM_KEY_LOCATION_LEFT",
+ "DOM_KEY_LOCATION_MOBILE",
+ "DOM_KEY_LOCATION_NUMPAD",
+ "DOM_KEY_LOCATION_RIGHT",
+ "DOM_KEY_LOCATION_STANDARD",
+ "DOM_VK_0",
+ "DOM_VK_1",
+ "DOM_VK_2",
+ "DOM_VK_3",
+ "DOM_VK_4",
+ "DOM_VK_5",
+ "DOM_VK_6",
+ "DOM_VK_7",
+ "DOM_VK_8",
+ "DOM_VK_9",
+ "DOM_VK_A",
+ "DOM_VK_ACCEPT",
+ "DOM_VK_ADD",
+ "DOM_VK_ALT",
+ "DOM_VK_ALTGR",
+ "DOM_VK_AMPERSAND",
+ "DOM_VK_ASTERISK",
+ "DOM_VK_AT",
+ "DOM_VK_ATTN",
+ "DOM_VK_B",
+ "DOM_VK_BACKSPACE",
+ "DOM_VK_BACK_QUOTE",
+ "DOM_VK_BACK_SLASH",
+ "DOM_VK_BACK_SPACE",
+ "DOM_VK_C",
+ "DOM_VK_CANCEL",
+ "DOM_VK_CAPS_LOCK",
+ "DOM_VK_CIRCUMFLEX",
+ "DOM_VK_CLEAR",
+ "DOM_VK_CLOSE_BRACKET",
+ "DOM_VK_CLOSE_CURLY_BRACKET",
+ "DOM_VK_CLOSE_PAREN",
+ "DOM_VK_COLON",
+ "DOM_VK_COMMA",
+ "DOM_VK_CONTEXT_MENU",
+ "DOM_VK_CONTROL",
+ "DOM_VK_CONVERT",
+ "DOM_VK_CRSEL",
+ "DOM_VK_CTRL",
+ "DOM_VK_D",
+ "DOM_VK_DECIMAL",
+ "DOM_VK_DELETE",
+ "DOM_VK_DIVIDE",
+ "DOM_VK_DOLLAR",
+ "DOM_VK_DOUBLE_QUOTE",
+ "DOM_VK_DOWN",
+ "DOM_VK_E",
+ "DOM_VK_EISU",
+ "DOM_VK_END",
+ "DOM_VK_ENTER",
+ "DOM_VK_EQUALS",
+ "DOM_VK_EREOF",
+ "DOM_VK_ESCAPE",
+ "DOM_VK_EXCLAMATION",
+ "DOM_VK_EXECUTE",
+ "DOM_VK_EXSEL",
+ "DOM_VK_F",
+ "DOM_VK_F1",
+ "DOM_VK_F10",
+ "DOM_VK_F11",
+ "DOM_VK_F12",
+ "DOM_VK_F13",
+ "DOM_VK_F14",
+ "DOM_VK_F15",
+ "DOM_VK_F16",
+ "DOM_VK_F17",
+ "DOM_VK_F18",
+ "DOM_VK_F19",
+ "DOM_VK_F2",
+ "DOM_VK_F20",
+ "DOM_VK_F21",
+ "DOM_VK_F22",
+ "DOM_VK_F23",
+ "DOM_VK_F24",
+ "DOM_VK_F25",
+ "DOM_VK_F26",
+ "DOM_VK_F27",
+ "DOM_VK_F28",
+ "DOM_VK_F29",
+ "DOM_VK_F3",
+ "DOM_VK_F30",
+ "DOM_VK_F31",
+ "DOM_VK_F32",
+ "DOM_VK_F33",
+ "DOM_VK_F34",
+ "DOM_VK_F35",
+ "DOM_VK_F36",
+ "DOM_VK_F4",
+ "DOM_VK_F5",
+ "DOM_VK_F6",
+ "DOM_VK_F7",
+ "DOM_VK_F8",
+ "DOM_VK_F9",
+ "DOM_VK_FINAL",
+ "DOM_VK_FRONT",
+ "DOM_VK_G",
+ "DOM_VK_GREATER_THAN",
+ "DOM_VK_H",
+ "DOM_VK_HANGUL",
+ "DOM_VK_HANJA",
+ "DOM_VK_HASH",
+ "DOM_VK_HELP",
+ "DOM_VK_HK_TOGGLE",
+ "DOM_VK_HOME",
+ "DOM_VK_HYPHEN_MINUS",
+ "DOM_VK_I",
+ "DOM_VK_INSERT",
+ "DOM_VK_J",
+ "DOM_VK_JUNJA",
+ "DOM_VK_K",
+ "DOM_VK_KANA",
+ "DOM_VK_KANJI",
+ "DOM_VK_L",
+ "DOM_VK_LEFT",
+ "DOM_VK_LEFT_TAB",
+ "DOM_VK_LESS_THAN",
+ "DOM_VK_M",
+ "DOM_VK_META",
+ "DOM_VK_MODECHANGE",
+ "DOM_VK_MULTIPLY",
+ "DOM_VK_N",
+ "DOM_VK_NONCONVERT",
+ "DOM_VK_NUMPAD0",
+ "DOM_VK_NUMPAD1",
+ "DOM_VK_NUMPAD2",
+ "DOM_VK_NUMPAD3",
+ "DOM_VK_NUMPAD4",
+ "DOM_VK_NUMPAD5",
+ "DOM_VK_NUMPAD6",
+ "DOM_VK_NUMPAD7",
+ "DOM_VK_NUMPAD8",
+ "DOM_VK_NUMPAD9",
+ "DOM_VK_NUM_LOCK",
+ "DOM_VK_O",
+ "DOM_VK_OEM_1",
+ "DOM_VK_OEM_102",
+ "DOM_VK_OEM_2",
+ "DOM_VK_OEM_3",
+ "DOM_VK_OEM_4",
+ "DOM_VK_OEM_5",
+ "DOM_VK_OEM_6",
+ "DOM_VK_OEM_7",
+ "DOM_VK_OEM_8",
+ "DOM_VK_OEM_COMMA",
+ "DOM_VK_OEM_MINUS",
+ "DOM_VK_OEM_PERIOD",
+ "DOM_VK_OEM_PLUS",
+ "DOM_VK_OPEN_BRACKET",
+ "DOM_VK_OPEN_CURLY_BRACKET",
+ "DOM_VK_OPEN_PAREN",
+ "DOM_VK_P",
+ "DOM_VK_PA1",
+ "DOM_VK_PAGEDOWN",
+ "DOM_VK_PAGEUP",
+ "DOM_VK_PAGE_DOWN",
+ "DOM_VK_PAGE_UP",
+ "DOM_VK_PAUSE",
+ "DOM_VK_PERCENT",
+ "DOM_VK_PERIOD",
+ "DOM_VK_PIPE",
+ "DOM_VK_PLAY",
+ "DOM_VK_PLUS",
+ "DOM_VK_PRINT",
+ "DOM_VK_PRINTSCREEN",
+ "DOM_VK_PROCESSKEY",
+ "DOM_VK_PROPERITES",
+ "DOM_VK_Q",
+ "DOM_VK_QUESTION_MARK",
+ "DOM_VK_QUOTE",
+ "DOM_VK_R",
+ "DOM_VK_REDO",
+ "DOM_VK_RETURN",
+ "DOM_VK_RIGHT",
+ "DOM_VK_S",
+ "DOM_VK_SCROLL_LOCK",
+ "DOM_VK_SELECT",
+ "DOM_VK_SEMICOLON",
+ "DOM_VK_SEPARATOR",
+ "DOM_VK_SHIFT",
+ "DOM_VK_SLASH",
+ "DOM_VK_SLEEP",
+ "DOM_VK_SPACE",
+ "DOM_VK_SUBTRACT",
+ "DOM_VK_T",
+ "DOM_VK_TAB",
+ "DOM_VK_TILDE",
+ "DOM_VK_U",
+ "DOM_VK_UNDERSCORE",
+ "DOM_VK_UNDO",
+ "DOM_VK_UNICODE",
+ "DOM_VK_UP",
+ "DOM_VK_V",
+ "DOM_VK_VOLUME_DOWN",
+ "DOM_VK_VOLUME_MUTE",
+ "DOM_VK_VOLUME_UP",
+ "DOM_VK_W",
+ "DOM_VK_WIN",
+ "DOM_VK_WINDOW",
+ "DOM_VK_WIN_ICO_00",
+ "DOM_VK_WIN_ICO_CLEAR",
+ "DOM_VK_WIN_ICO_HELP",
+ "DOM_VK_WIN_OEM_ATTN",
+ "DOM_VK_WIN_OEM_AUTO",
+ "DOM_VK_WIN_OEM_BACKTAB",
+ "DOM_VK_WIN_OEM_CLEAR",
+ "DOM_VK_WIN_OEM_COPY",
+ "DOM_VK_WIN_OEM_CUSEL",
+ "DOM_VK_WIN_OEM_ENLW",
+ "DOM_VK_WIN_OEM_FINISH",
+ "DOM_VK_WIN_OEM_FJ_JISHO",
+ "DOM_VK_WIN_OEM_FJ_LOYA",
+ "DOM_VK_WIN_OEM_FJ_MASSHOU",
+ "DOM_VK_WIN_OEM_FJ_ROYA",
+ "DOM_VK_WIN_OEM_FJ_TOUROKU",
+ "DOM_VK_WIN_OEM_JUMP",
+ "DOM_VK_WIN_OEM_PA1",
+ "DOM_VK_WIN_OEM_PA2",
+ "DOM_VK_WIN_OEM_PA3",
+ "DOM_VK_WIN_OEM_RESET",
+ "DOM_VK_WIN_OEM_WSCTRL",
+ "DOM_VK_X",
+ "DOM_VK_XF86XK_ADD_FAVORITE",
+ "DOM_VK_XF86XK_APPLICATION_LEFT",
+ "DOM_VK_XF86XK_APPLICATION_RIGHT",
+ "DOM_VK_XF86XK_AUDIO_CYCLE_TRACK",
+ "DOM_VK_XF86XK_AUDIO_FORWARD",
+ "DOM_VK_XF86XK_AUDIO_LOWER_VOLUME",
+ "DOM_VK_XF86XK_AUDIO_MEDIA",
+ "DOM_VK_XF86XK_AUDIO_MUTE",
+ "DOM_VK_XF86XK_AUDIO_NEXT",
+ "DOM_VK_XF86XK_AUDIO_PAUSE",
+ "DOM_VK_XF86XK_AUDIO_PLAY",
+ "DOM_VK_XF86XK_AUDIO_PREV",
+ "DOM_VK_XF86XK_AUDIO_RAISE_VOLUME",
+ "DOM_VK_XF86XK_AUDIO_RANDOM_PLAY",
+ "DOM_VK_XF86XK_AUDIO_RECORD",
+ "DOM_VK_XF86XK_AUDIO_REPEAT",
+ "DOM_VK_XF86XK_AUDIO_REWIND",
+ "DOM_VK_XF86XK_AUDIO_STOP",
+ "DOM_VK_XF86XK_AWAY",
+ "DOM_VK_XF86XK_BACK",
+ "DOM_VK_XF86XK_BACK_FORWARD",
+ "DOM_VK_XF86XK_BATTERY",
+ "DOM_VK_XF86XK_BLUE",
+ "DOM_VK_XF86XK_BLUETOOTH",
+ "DOM_VK_XF86XK_BOOK",
+ "DOM_VK_XF86XK_BRIGHTNESS_ADJUST",
+ "DOM_VK_XF86XK_CALCULATOR",
+ "DOM_VK_XF86XK_CALENDAR",
+ "DOM_VK_XF86XK_CD",
+ "DOM_VK_XF86XK_CLOSE",
+ "DOM_VK_XF86XK_COMMUNITY",
+ "DOM_VK_XF86XK_CONTRAST_ADJUST",
+ "DOM_VK_XF86XK_COPY",
+ "DOM_VK_XF86XK_CUT",
+ "DOM_VK_XF86XK_CYCLE_ANGLE",
+ "DOM_VK_XF86XK_DISPLAY",
+ "DOM_VK_XF86XK_DOCUMENTS",
+ "DOM_VK_XF86XK_DOS",
+ "DOM_VK_XF86XK_EJECT",
+ "DOM_VK_XF86XK_EXCEL",
+ "DOM_VK_XF86XK_EXPLORER",
+ "DOM_VK_XF86XK_FAVORITES",
+ "DOM_VK_XF86XK_FINANCE",
+ "DOM_VK_XF86XK_FORWARD",
+ "DOM_VK_XF86XK_FRAME_BACK",
+ "DOM_VK_XF86XK_FRAME_FORWARD",
+ "DOM_VK_XF86XK_GAME",
+ "DOM_VK_XF86XK_GO",
+ "DOM_VK_XF86XK_GREEN",
+ "DOM_VK_XF86XK_HIBERNATE",
+ "DOM_VK_XF86XK_HISTORY",
+ "DOM_VK_XF86XK_HOME_PAGE",
+ "DOM_VK_XF86XK_HOT_LINKS",
+ "DOM_VK_XF86XK_I_TOUCH",
+ "DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN",
+ "DOM_VK_XF86XK_KBD_BRIGHTNESS_UP",
+ "DOM_VK_XF86XK_KBD_LIGHT_ON_OFF",
+ "DOM_VK_XF86XK_LAUNCH0",
+ "DOM_VK_XF86XK_LAUNCH1",
+ "DOM_VK_XF86XK_LAUNCH2",
+ "DOM_VK_XF86XK_LAUNCH3",
+ "DOM_VK_XF86XK_LAUNCH4",
+ "DOM_VK_XF86XK_LAUNCH5",
+ "DOM_VK_XF86XK_LAUNCH6",
+ "DOM_VK_XF86XK_LAUNCH7",
+ "DOM_VK_XF86XK_LAUNCH8",
+ "DOM_VK_XF86XK_LAUNCH9",
+ "DOM_VK_XF86XK_LAUNCH_A",
+ "DOM_VK_XF86XK_LAUNCH_B",
+ "DOM_VK_XF86XK_LAUNCH_C",
+ "DOM_VK_XF86XK_LAUNCH_D",
+ "DOM_VK_XF86XK_LAUNCH_E",
+ "DOM_VK_XF86XK_LAUNCH_F",
+ "DOM_VK_XF86XK_LIGHT_BULB",
+ "DOM_VK_XF86XK_LOG_OFF",
+ "DOM_VK_XF86XK_MAIL",
+ "DOM_VK_XF86XK_MAIL_FORWARD",
+ "DOM_VK_XF86XK_MARKET",
+ "DOM_VK_XF86XK_MEETING",
+ "DOM_VK_XF86XK_MEMO",
+ "DOM_VK_XF86XK_MENU_KB",
+ "DOM_VK_XF86XK_MENU_PB",
+ "DOM_VK_XF86XK_MESSENGER",
+ "DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN",
+ "DOM_VK_XF86XK_MON_BRIGHTNESS_UP",
+ "DOM_VK_XF86XK_MUSIC",
+ "DOM_VK_XF86XK_MY_COMPUTER",
+ "DOM_VK_XF86XK_MY_SITES",
+ "DOM_VK_XF86XK_NEW",
+ "DOM_VK_XF86XK_NEWS",
+ "DOM_VK_XF86XK_OFFICE_HOME",
+ "DOM_VK_XF86XK_OPEN",
+ "DOM_VK_XF86XK_OPEN_URL",
+ "DOM_VK_XF86XK_OPTION",
+ "DOM_VK_XF86XK_PASTE",
+ "DOM_VK_XF86XK_PHONE",
+ "DOM_VK_XF86XK_PICTURES",
+ "DOM_VK_XF86XK_POWER_DOWN",
+ "DOM_VK_XF86XK_POWER_OFF",
+ "DOM_VK_XF86XK_RED",
+ "DOM_VK_XF86XK_REFRESH",
+ "DOM_VK_XF86XK_RELOAD",
+ "DOM_VK_XF86XK_REPLY",
+ "DOM_VK_XF86XK_ROCKER_DOWN",
+ "DOM_VK_XF86XK_ROCKER_ENTER",
+ "DOM_VK_XF86XK_ROCKER_UP",
+ "DOM_VK_XF86XK_ROTATE_WINDOWS",
+ "DOM_VK_XF86XK_ROTATION_KB",
+ "DOM_VK_XF86XK_ROTATION_PB",
+ "DOM_VK_XF86XK_SAVE",
+ "DOM_VK_XF86XK_SCREEN_SAVER",
+ "DOM_VK_XF86XK_SCROLL_CLICK",
+ "DOM_VK_XF86XK_SCROLL_DOWN",
+ "DOM_VK_XF86XK_SCROLL_UP",
+ "DOM_VK_XF86XK_SEARCH",
+ "DOM_VK_XF86XK_SEND",
+ "DOM_VK_XF86XK_SHOP",
+ "DOM_VK_XF86XK_SPELL",
+ "DOM_VK_XF86XK_SPLIT_SCREEN",
+ "DOM_VK_XF86XK_STANDBY",
+ "DOM_VK_XF86XK_START",
+ "DOM_VK_XF86XK_STOP",
+ "DOM_VK_XF86XK_SUBTITLE",
+ "DOM_VK_XF86XK_SUPPORT",
+ "DOM_VK_XF86XK_SUSPEND",
+ "DOM_VK_XF86XK_TASK_PANE",
+ "DOM_VK_XF86XK_TERMINAL",
+ "DOM_VK_XF86XK_TIME",
+ "DOM_VK_XF86XK_TOOLS",
+ "DOM_VK_XF86XK_TOP_MENU",
+ "DOM_VK_XF86XK_TO_DO_LIST",
+ "DOM_VK_XF86XK_TRAVEL",
+ "DOM_VK_XF86XK_USER1KB",
+ "DOM_VK_XF86XK_USER2KB",
+ "DOM_VK_XF86XK_USER_PB",
+ "DOM_VK_XF86XK_UWB",
+ "DOM_VK_XF86XK_VENDOR_HOME",
+ "DOM_VK_XF86XK_VIDEO",
+ "DOM_VK_XF86XK_VIEW",
+ "DOM_VK_XF86XK_WAKE_UP",
+ "DOM_VK_XF86XK_WEB_CAM",
+ "DOM_VK_XF86XK_WHEEL_BUTTON",
+ "DOM_VK_XF86XK_WLAN",
+ "DOM_VK_XF86XK_WORD",
+ "DOM_VK_XF86XK_WWW",
+ "DOM_VK_XF86XK_XFER",
+ "DOM_VK_XF86XK_YELLOW",
+ "DOM_VK_XF86XK_ZOOM_IN",
+ "DOM_VK_XF86XK_ZOOM_OUT",
+ "DOM_VK_Y",
+ "DOM_VK_Z",
+ "DOM_VK_ZOOM",
+ "DONE",
+ "DONT_CARE",
+ "DOWNLOADING",
+ "DRAGDROP",
+ "DST_ALPHA",
+ "DST_COLOR",
+ "DYNAMIC_DRAW",
+ "DataChannel",
+ "DataTransfer",
+ "DataTransferItem",
+ "DataTransferItemList",
+ "DataView",
+ "Date",
+ "DateTimeFormat",
+ "DelayNode",
+ "DesktopNotification",
+ "DesktopNotificationCenter",
+ "DeviceLightEvent",
+ "DeviceMotionEvent",
+ "DeviceOrientationEvent",
+ "DeviceProximityEvent",
+ "DeviceStorage",
+ "DeviceStorageChangeEvent",
+ "Document",
+ "DocumentFragment",
+ "DocumentType",
+ "DragEvent",
+ "DynamicsCompressorNode",
+ "E",
+ "ELEMENT_ARRAY_BUFFER",
+ "ELEMENT_ARRAY_BUFFER_BINDING",
+ "ELEMENT_NODE",
+ "EMPTY",
+ "ENCODING_ERR",
+ "ENDED",
+ "END_TO_END",
+ "END_TO_START",
+ "ENTITY_NODE",
+ "ENTITY_REFERENCE_NODE",
+ "EPSILON",
+ "EQUAL",
+ "EQUALPOWER",
+ "ERROR",
+ "EXPONENTIAL_DISTANCE",
+ "Element",
+ "ElementQuery",
+ "Entity",
+ "EntityReference",
+ "Error",
+ "ErrorEvent",
+ "EvalError",
+ "Event",
+ "EventException",
+ "EventSource",
+ "EventTarget",
+ "External",
+ "FASTEST",
+ "FIDOSDK",
+ "FILTER_ACCEPT",
+ "FILTER_INTERRUPT",
+ "FILTER_REJECT",
+ "FILTER_SKIP",
+ "FINISHED_STATE",
+ "FIRST_ORDERED_NODE_TYPE",
+ "FLOAT",
+ "FLOAT_MAT2",
+ "FLOAT_MAT3",
+ "FLOAT_MAT4",
+ "FLOAT_VEC2",
+ "FLOAT_VEC3",
+ "FLOAT_VEC4",
+ "FOCUS",
+ "FONT_FACE_RULE",
+ "FONT_FEATURE_VALUES_RULE",
+ "FRAGMENT_SHADER",
+ "FRAGMENT_SHADER_DERIVATIVE_HINT_OES",
+ "FRAMEBUFFER",
+ "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",
+ "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",
+ "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",
+ "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",
+ "FRAMEBUFFER_BINDING",
+ "FRAMEBUFFER_COMPLETE",
+ "FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
+ "FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
+ "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
+ "FRAMEBUFFER_UNSUPPORTED",
+ "FRONT",
+ "FRONT_AND_BACK",
+ "FRONT_FACE",
+ "FUNC_ADD",
+ "FUNC_REVERSE_SUBTRACT",
+ "FUNC_SUBTRACT",
+ "Feed",
+ "FeedEntry",
+ "File",
+ "FileError",
+ "FileList",
+ "FileReader",
+ "FindInPage",
+ "Float32Array",
+ "Float64Array",
+ "FocusEvent",
+ "FontFace",
+ "FormData",
+ "Function",
+ "GENERATE_MIPMAP_HINT",
+ "GEQUAL",
+ "GREATER",
+ "GREEN_BITS",
+ "GainNode",
+ "Gamepad",
+ "GamepadButton",
+ "GamepadEvent",
+ "GestureEvent",
+ "HAVE_CURRENT_DATA",
+ "HAVE_ENOUGH_DATA",
+ "HAVE_FUTURE_DATA",
+ "HAVE_METADATA",
+ "HAVE_NOTHING",
+ "HEADERS_RECEIVED",
+ "HIDDEN",
+ "HIERARCHY_REQUEST_ERR",
+ "HIGHPASS",
+ "HIGHSHELF",
+ "HIGH_FLOAT",
+ "HIGH_INT",
+ "HORIZONTAL",
+ "HORIZONTAL_AXIS",
+ "HRTF",
+ "HTMLAllCollection",
+ "HTMLAnchorElement",
+ "HTMLAppletElement",
+ "HTMLAreaElement",
+ "HTMLAudioElement",
+ "HTMLBRElement",
+ "HTMLBaseElement",
+ "HTMLBaseFontElement",
+ "HTMLBlockquoteElement",
+ "HTMLBodyElement",
+ "HTMLButtonElement",
+ "HTMLCanvasElement",
+ "HTMLCollection",
+ "HTMLCommandElement",
+ "HTMLContentElement",
+ "HTMLDListElement",
+ "HTMLDataElement",
+ "HTMLDataListElement",
+ "HTMLDetailsElement",
+ "HTMLDialogElement",
+ "HTMLDirectoryElement",
+ "HTMLDivElement",
+ "HTMLDocument",
+ "HTMLElement",
+ "HTMLEmbedElement",
+ "HTMLFieldSetElement",
+ "HTMLFontElement",
+ "HTMLFormControlsCollection",
+ "HTMLFormElement",
+ "HTMLFrameElement",
+ "HTMLFrameSetElement",
+ "HTMLHRElement",
+ "HTMLHeadElement",
+ "HTMLHeadingElement",
+ "HTMLHtmlElement",
+ "HTMLIFrameElement",
+ "HTMLImageElement",
+ "HTMLInputElement",
+ "HTMLIsIndexElement",
+ "HTMLKeygenElement",
+ "HTMLLIElement",
+ "HTMLLabelElement",
+ "HTMLLegendElement",
+ "HTMLLinkElement",
+ "HTMLMapElement",
+ "HTMLMarqueeElement",
+ "HTMLMediaElement",
+ "HTMLMenuElement",
+ "HTMLMenuItemElement",
+ "HTMLMetaElement",
+ "HTMLMeterElement",
+ "HTMLModElement",
+ "HTMLOListElement",
+ "HTMLObjectElement",
+ "HTMLOptGroupElement",
+ "HTMLOptionElement",
+ "HTMLOptionsCollection",
+ "HTMLOutputElement",
+ "HTMLParagraphElement",
+ "HTMLParamElement",
+ "HTMLPictureElement",
+ "HTMLPreElement",
+ "HTMLProgressElement",
+ "HTMLPropertiesCollection",
+ "HTMLQuoteElement",
+ "HTMLScriptElement",
+ "HTMLSelectElement",
+ "HTMLShadowElement",
+ "HTMLSourceElement",
+ "HTMLSpanElement",
+ "HTMLStyleElement",
+ "HTMLTableCaptionElement",
+ "HTMLTableCellElement",
+ "HTMLTableColElement",
+ "HTMLTableElement",
+ "HTMLTableRowElement",
+ "HTMLTableSectionElement",
+ "HTMLTemplateElement",
+ "HTMLTextAreaElement",
+ "HTMLTimeElement",
+ "HTMLTitleElement",
+ "HTMLTrackElement",
+ "HTMLUListElement",
+ "HTMLUnknownElement",
+ "HTMLVideoElement",
+ "HashChangeEvent",
+ "Headers",
+ "History",
+ "ICE_CHECKING",
+ "ICE_CLOSED",
+ "ICE_COMPLETED",
+ "ICE_CONNECTED",
+ "ICE_FAILED",
+ "ICE_GATHERING",
+ "ICE_WAITING",
+ "IDBCursor",
+ "IDBCursorWithValue",
+ "IDBDatabase",
+ "IDBDatabaseException",
+ "IDBFactory",
+ "IDBFileHandle",
+ "IDBFileRequest",
+ "IDBIndex",
+ "IDBKeyRange",
+ "IDBMutableFile",
+ "IDBObjectStore",
+ "IDBOpenDBRequest",
+ "IDBRequest",
+ "IDBTransaction",
+ "IDBVersionChangeEvent",
+ "IDLE",
+ "IMPLEMENTATION_COLOR_READ_FORMAT",
+ "IMPLEMENTATION_COLOR_READ_TYPE",
+ "IMPORT_RULE",
+ "INCR",
+ "INCR_WRAP",
+ "INDEX_SIZE_ERR",
+ "INT",
+ "INT_VEC2",
+ "INT_VEC3",
+ "INT_VEC4",
+ "INUSE_ATTRIBUTE_ERR",
+ "INVALID_ACCESS_ERR",
+ "INVALID_CHARACTER_ERR",
+ "INVALID_ENUM",
+ "INVALID_EXPRESSION_ERR",
+ "INVALID_FRAMEBUFFER_OPERATION",
+ "INVALID_MODIFICATION_ERR",
+ "INVALID_NODE_TYPE_ERR",
+ "INVALID_OPERATION",
+ "INVALID_STATE_ERR",
+ "INVALID_VALUE",
+ "INVERSE_DISTANCE",
+ "INVERT",
+ "IceCandidate",
+ "Image",
+ "ImageBitmap",
+ "ImageData",
+ "Infinity",
+ "InputEvent",
+ "InputMethodContext",
+ "InstallTrigger",
+ "Int16Array",
+ "Int32Array",
+ "Int8Array",
+ "Intent",
+ "InternalError",
+ "Intl",
+ "IsSearchProviderInstalled",
+ "Iterator",
+ "JSON",
+ "KEEP",
+ "KEYDOWN",
+ "KEYFRAMES_RULE",
+ "KEYFRAME_RULE",
+ "KEYPRESS",
+ "KEYUP",
+ "KeyEvent",
+ "KeyboardEvent",
+ "LENGTHADJUST_SPACING",
+ "LENGTHADJUST_SPACINGANDGLYPHS",
+ "LENGTHADJUST_UNKNOWN",
+ "LEQUAL",
+ "LESS",
+ "LINEAR",
+ "LINEAR_DISTANCE",
+ "LINEAR_MIPMAP_LINEAR",
+ "LINEAR_MIPMAP_NEAREST",
+ "LINES",
+ "LINE_LOOP",
+ "LINE_STRIP",
+ "LINE_WIDTH",
+ "LINK_STATUS",
+ "LIVE",
+ "LN10",
+ "LN2",
+ "LOADED",
+ "LOADING",
+ "LOG10E",
+ "LOG2E",
+ "LOWPASS",
+ "LOWSHELF",
+ "LOW_FLOAT",
+ "LOW_INT",
+ "LSException",
+ "LSParserFilter",
+ "LUMINANCE",
+ "LUMINANCE_ALPHA",
+ "LocalMediaStream",
+ "Location",
+ "MAX_COMBINED_TEXTURE_IMAGE_UNITS",
+ "MAX_CUBE_MAP_TEXTURE_SIZE",
+ "MAX_FRAGMENT_UNIFORM_VECTORS",
+ "MAX_RENDERBUFFER_SIZE",
+ "MAX_SAFE_INTEGER",
+ "MAX_TEXTURE_IMAGE_UNITS",
+ "MAX_TEXTURE_MAX_ANISOTROPY_EXT",
+ "MAX_TEXTURE_SIZE",
+ "MAX_VALUE",
+ "MAX_VARYING_VECTORS",
+ "MAX_VERTEX_ATTRIBS",
+ "MAX_VERTEX_TEXTURE_IMAGE_UNITS",
+ "MAX_VERTEX_UNIFORM_VECTORS",
+ "MAX_VIEWPORT_DIMS",
+ "MEDIA_ERR_ABORTED",
+ "MEDIA_ERR_DECODE",
+ "MEDIA_ERR_ENCRYPTED",
+ "MEDIA_ERR_NETWORK",
+ "MEDIA_ERR_SRC_NOT_SUPPORTED",
+ "MEDIA_KEYERR_CLIENT",
+ "MEDIA_KEYERR_DOMAIN",
+ "MEDIA_KEYERR_HARDWARECHANGE",
+ "MEDIA_KEYERR_OUTPUT",
+ "MEDIA_KEYERR_SERVICE",
+ "MEDIA_KEYERR_UNKNOWN",
+ "MEDIA_RULE",
+ "MEDIUM_FLOAT",
+ "MEDIUM_INT",
+ "META_MASK",
+ "MIN_SAFE_INTEGER",
+ "MIN_VALUE",
+ "MIRRORED_REPEAT",
+ "MODE_ASYNCHRONOUS",
+ "MODE_SYNCHRONOUS",
+ "MODIFICATION",
+ "MOUSEDOWN",
+ "MOUSEDRAG",
+ "MOUSEMOVE",
+ "MOUSEOUT",
+ "MOUSEOVER",
+ "MOUSEUP",
+ "MOZ_KEYFRAMES_RULE",
+ "MOZ_KEYFRAME_RULE",
+ "MOZ_SOURCE_CURSOR",
+ "MOZ_SOURCE_ERASER",
+ "MOZ_SOURCE_KEYBOARD",
+ "MOZ_SOURCE_MOUSE",
+ "MOZ_SOURCE_PEN",
+ "MOZ_SOURCE_TOUCH",
+ "MOZ_SOURCE_UNKNOWN",
+ "MSGESTURE_FLAG_BEGIN",
+ "MSGESTURE_FLAG_CANCEL",
+ "MSGESTURE_FLAG_END",
+ "MSGESTURE_FLAG_INERTIA",
+ "MSGESTURE_FLAG_NONE",
+ "MSPOINTER_TYPE_MOUSE",
+ "MSPOINTER_TYPE_PEN",
+ "MSPOINTER_TYPE_TOUCH",
+ "MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE",
+ "MS_ASYNC_CALLBACK_STATUS_CANCEL",
+ "MS_ASYNC_CALLBACK_STATUS_CHOOSEANY",
+ "MS_ASYNC_CALLBACK_STATUS_ERROR",
+ "MS_ASYNC_CALLBACK_STATUS_JOIN",
+ "MS_ASYNC_OP_STATUS_CANCELED",
+ "MS_ASYNC_OP_STATUS_ERROR",
+ "MS_ASYNC_OP_STATUS_SUCCESS",
+ "MS_MANIPULATION_STATE_ACTIVE",
+ "MS_MANIPULATION_STATE_CANCELLED",
+ "MS_MANIPULATION_STATE_COMMITTED",
+ "MS_MANIPULATION_STATE_DRAGGING",
+ "MS_MANIPULATION_STATE_INERTIA",
+ "MS_MANIPULATION_STATE_PRESELECT",
+ "MS_MANIPULATION_STATE_SELECTING",
+ "MS_MANIPULATION_STATE_STOPPED",
+ "MS_MEDIA_ERR_ENCRYPTED",
+ "MS_MEDIA_KEYERR_CLIENT",
+ "MS_MEDIA_KEYERR_DOMAIN",
+ "MS_MEDIA_KEYERR_HARDWARECHANGE",
+ "MS_MEDIA_KEYERR_OUTPUT",
+ "MS_MEDIA_KEYERR_SERVICE",
+ "MS_MEDIA_KEYERR_UNKNOWN",
+ "Map",
+ "Math",
+ "MediaController",
+ "MediaDevices",
+ "MediaElementAudioSourceNode",
+ "MediaEncryptedEvent",
+ "MediaError",
+ "MediaKeyError",
+ "MediaKeyEvent",
+ "MediaKeyMessageEvent",
+ "MediaKeyNeededEvent",
+ "MediaKeySession",
+ "MediaKeyStatusMap",
+ "MediaKeySystemAccess",
+ "MediaKeys",
+ "MediaList",
+ "MediaQueryList",
+ "MediaQueryListEvent",
+ "MediaRecorder",
+ "MediaSource",
+ "MediaStream",
+ "MediaStreamAudioDestinationNode",
+ "MediaStreamAudioSourceNode",
+ "MediaStreamEvent",
+ "MediaStreamTrack",
+ "MediaStreamTrackEvent",
+ "MessageChannel",
+ "MessageEvent",
+ "MessagePort",
+ "Methods",
+ "MimeType",
+ "MimeTypeArray",
+ "MouseEvent",
+ "MouseScrollEvent",
+ "MozAnimation",
+ "MozAnimationDelay",
+ "MozAnimationDirection",
+ "MozAnimationDuration",
+ "MozAnimationFillMode",
+ "MozAnimationIterationCount",
+ "MozAnimationName",
+ "MozAnimationPlayState",
+ "MozAnimationTimingFunction",
+ "MozAppearance",
+ "MozBackfaceVisibility",
+ "MozBinding",
+ "MozBorderBottomColors",
+ "MozBorderEnd",
+ "MozBorderEndColor",
+ "MozBorderEndStyle",
+ "MozBorderEndWidth",
+ "MozBorderImage",
+ "MozBorderLeftColors",
+ "MozBorderRightColors",
+ "MozBorderStart",
+ "MozBorderStartColor",
+ "MozBorderStartStyle",
+ "MozBorderStartWidth",
+ "MozBorderTopColors",
+ "MozBoxAlign",
+ "MozBoxDirection",
+ "MozBoxFlex",
+ "MozBoxOrdinalGroup",
+ "MozBoxOrient",
+ "MozBoxPack",
+ "MozBoxSizing",
+ "MozCSSKeyframeRule",
+ "MozCSSKeyframesRule",
+ "MozColumnCount",
+ "MozColumnFill",
+ "MozColumnGap",
+ "MozColumnRule",
+ "MozColumnRuleColor",
+ "MozColumnRuleStyle",
+ "MozColumnRuleWidth",
+ "MozColumnWidth",
+ "MozColumns",
+ "MozContactChangeEvent",
+ "MozFloatEdge",
+ "MozFontFeatureSettings",
+ "MozFontLanguageOverride",
+ "MozForceBrokenImageIcon",
+ "MozHyphens",
+ "MozImageRegion",
+ "MozMarginEnd",
+ "MozMarginStart",
+ "MozMmsEvent",
+ "MozMmsMessage",
+ "MozMobileMessageThread",
+ "MozOSXFontSmoothing",
+ "MozOrient",
+ "MozOutlineRadius",
+ "MozOutlineRadiusBottomleft",
+ "MozOutlineRadiusBottomright",
+ "MozOutlineRadiusTopleft",
+ "MozOutlineRadiusTopright",
+ "MozPaddingEnd",
+ "MozPaddingStart",
+ "MozPerspective",
+ "MozPerspectiveOrigin",
+ "MozPowerManager",
+ "MozSettingsEvent",
+ "MozSmsEvent",
+ "MozSmsMessage",
+ "MozStackSizing",
+ "MozTabSize",
+ "MozTextAlignLast",
+ "MozTextDecorationColor",
+ "MozTextDecorationLine",
+ "MozTextDecorationStyle",
+ "MozTextSizeAdjust",
+ "MozTransform",
+ "MozTransformOrigin",
+ "MozTransformStyle",
+ "MozTransition",
+ "MozTransitionDelay",
+ "MozTransitionDuration",
+ "MozTransitionProperty",
+ "MozTransitionTimingFunction",
+ "MozUserFocus",
+ "MozUserInput",
+ "MozUserModify",
+ "MozUserSelect",
+ "MozWindowDragging",
+ "MozWindowShadow",
+ "MutationEvent",
+ "MutationObserver",
+ "MutationRecord",
+ "NAMESPACE_ERR",
+ "NAMESPACE_RULE",
+ "NEAREST",
+ "NEAREST_MIPMAP_LINEAR",
+ "NEAREST_MIPMAP_NEAREST",
+ "NEGATIVE_INFINITY",
+ "NETWORK_EMPTY",
+ "NETWORK_ERR",
+ "NETWORK_IDLE",
+ "NETWORK_LOADED",
+ "NETWORK_LOADING",
+ "NETWORK_NO_SOURCE",
+ "NEVER",
+ "NEW",
+ "NEXT",
+ "NEXT_NO_DUPLICATE",
+ "NICEST",
+ "NODE_AFTER",
+ "NODE_BEFORE",
+ "NODE_BEFORE_AND_AFTER",
+ "NODE_INSIDE",
+ "NONE",
+ "NON_TRANSIENT_ERR",
+ "NOTATION_NODE",
+ "NOTCH",
+ "NOTEQUAL",
+ "NOT_ALLOWED_ERR",
+ "NOT_FOUND_ERR",
+ "NOT_READABLE_ERR",
+ "NOT_SUPPORTED_ERR",
+ "NO_DATA_ALLOWED_ERR",
+ "NO_ERR",
+ "NO_ERROR",
+ "NO_MODIFICATION_ALLOWED_ERR",
+ "NUMBER_TYPE",
+ "NUM_COMPRESSED_TEXTURE_FORMATS",
+ "NaN",
+ "NamedNodeMap",
+ "Navigator",
+ "NearbyLinks",
+ "NetworkInformation",
+ "Node",
+ "NodeFilter",
+ "NodeIterator",
+ "NodeList",
+ "Notation",
+ "Notification",
+ "NotifyPaintEvent",
+ "Number",
+ "NumberFormat",
+ "OBSOLETE",
+ "ONE",
+ "ONE_MINUS_CONSTANT_ALPHA",
+ "ONE_MINUS_CONSTANT_COLOR",
+ "ONE_MINUS_DST_ALPHA",
+ "ONE_MINUS_DST_COLOR",
+ "ONE_MINUS_SRC_ALPHA",
+ "ONE_MINUS_SRC_COLOR",
+ "OPEN",
+ "OPENED",
+ "OPENING",
+ "ORDERED_NODE_ITERATOR_TYPE",
+ "ORDERED_NODE_SNAPSHOT_TYPE",
+ "OUT_OF_MEMORY",
+ "Object",
+ "OfflineAudioCompletionEvent",
+ "OfflineAudioContext",
+ "OfflineResourceList",
+ "Option",
+ "OscillatorNode",
+ "OverflowEvent",
+ "PACK_ALIGNMENT",
+ "PAGE_RULE",
+ "PARSE_ERR",
+ "PATHSEG_ARC_ABS",
+ "PATHSEG_ARC_REL",
+ "PATHSEG_CLOSEPATH",
+ "PATHSEG_CURVETO_CUBIC_ABS",
+ "PATHSEG_CURVETO_CUBIC_REL",
+ "PATHSEG_CURVETO_CUBIC_SMOOTH_ABS",
+ "PATHSEG_CURVETO_CUBIC_SMOOTH_REL",
+ "PATHSEG_CURVETO_QUADRATIC_ABS",
+ "PATHSEG_CURVETO_QUADRATIC_REL",
+ "PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS",
+ "PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL",
+ "PATHSEG_LINETO_ABS",
+ "PATHSEG_LINETO_HORIZONTAL_ABS",
+ "PATHSEG_LINETO_HORIZONTAL_REL",
+ "PATHSEG_LINETO_REL",
+ "PATHSEG_LINETO_VERTICAL_ABS",
+ "PATHSEG_LINETO_VERTICAL_REL",
+ "PATHSEG_MOVETO_ABS",
+ "PATHSEG_MOVETO_REL",
+ "PATHSEG_UNKNOWN",
+ "PATH_EXISTS_ERR",
+ "PEAKING",
+ "PERMISSION_DENIED",
+ "PERSISTENT",
+ "PI",
+ "PLAYING_STATE",
+ "POINTS",
+ "POLYGON_OFFSET_FACTOR",
+ "POLYGON_OFFSET_FILL",
+ "POLYGON_OFFSET_UNITS",
+ "POSITION_UNAVAILABLE",
+ "POSITIVE_INFINITY",
+ "PREV",
+ "PREV_NO_DUPLICATE",
+ "PROCESSING_INSTRUCTION_NODE",
+ "PageChangeEvent",
+ "PageTransitionEvent",
+ "PaintRequest",
+ "PaintRequestList",
+ "PannerNode",
+ "Path2D",
+ "Performance",
+ "PerformanceEntry",
+ "PerformanceMark",
+ "PerformanceMeasure",
+ "PerformanceNavigation",
+ "PerformanceResourceTiming",
+ "PerformanceTiming",
+ "PeriodicWave",
+ "Plugin",
+ "PluginArray",
+ "PopStateEvent",
+ "PopupBlockedEvent",
+ "ProcessingInstruction",
+ "ProgressEvent",
+ "Promise",
+ "PropertyNodeList",
+ "Proxy",
+ "PushManager",
+ "PushSubscription",
+ "Q",
+ "QUOTA_ERR",
+ "QUOTA_EXCEEDED_ERR",
+ "QueryInterface",
+ "READ_ONLY",
+ "READ_ONLY_ERR",
+ "READ_WRITE",
+ "RED_BITS",
+ "REMOVAL",
+ "RENDERBUFFER",
+ "RENDERBUFFER_ALPHA_SIZE",
+ "RENDERBUFFER_BINDING",
+ "RENDERBUFFER_BLUE_SIZE",
+ "RENDERBUFFER_DEPTH_SIZE",
+ "RENDERBUFFER_GREEN_SIZE",
+ "RENDERBUFFER_HEIGHT",
+ "RENDERBUFFER_INTERNAL_FORMAT",
+ "RENDERBUFFER_RED_SIZE",
+ "RENDERBUFFER_STENCIL_SIZE",
+ "RENDERBUFFER_WIDTH",
+ "RENDERER",
+ "RENDERING_INTENT_ABSOLUTE_COLORIMETRIC",
+ "RENDERING_INTENT_AUTO",
+ "RENDERING_INTENT_PERCEPTUAL",
+ "RENDERING_INTENT_RELATIVE_COLORIMETRIC",
+ "RENDERING_INTENT_SATURATION",
+ "RENDERING_INTENT_UNKNOWN",
+ "REPEAT",
+ "REPLACE",
+ "RGB",
+ "RGB565",
+ "RGB5_A1",
+ "RGBA",
+ "RGBA4",
+ "RGBColor",
+ "ROTATION_CLOCKWISE",
+ "ROTATION_COUNTERCLOCKWISE",
+ "RTCDataChannelEvent",
+ "RTCIceCandidate",
+ "RTCPeerConnectionIceEvent",
+ "RTCRtpReceiver",
+ "RTCRtpSender",
+ "RTCSessionDescription",
+ "RTCStatsReport",
+ "RadioNodeList",
+ "Range",
+ "RangeError",
+ "RangeException",
+ "RecordErrorEvent",
+ "Rect",
+ "ReferenceError",
+ "RegExp",
+ "Request",
+ "Response",
+ "SAMPLER_2D",
+ "SAMPLER_CUBE",
+ "SAMPLES",
+ "SAMPLE_ALPHA_TO_COVERAGE",
+ "SAMPLE_BUFFERS",
+ "SAMPLE_COVERAGE",
+ "SAMPLE_COVERAGE_INVERT",
+ "SAMPLE_COVERAGE_VALUE",
+ "SAWTOOTH",
+ "SCHEDULED_STATE",
+ "SCISSOR_BOX",
+ "SCISSOR_TEST",
+ "SCROLL_PAGE_DOWN",
+ "SCROLL_PAGE_UP",
+ "SDP_ANSWER",
+ "SDP_OFFER",
+ "SDP_PRANSWER",
+ "SECURITY_ERR",
+ "SELECT",
+ "SERIALIZE_ERR",
+ "SEVERITY_ERROR",
+ "SEVERITY_FATAL_ERROR",
+ "SEVERITY_WARNING",
+ "SHADER_COMPILER",
+ "SHADER_TYPE",
+ "SHADING_LANGUAGE_VERSION",
+ "SHIFT_MASK",
+ "SHORT",
+ "SHOWING",
+ "SHOW_ALL",
+ "SHOW_ATTRIBUTE",
+ "SHOW_CDATA_SECTION",
+ "SHOW_COMMENT",
+ "SHOW_DOCUMENT",
+ "SHOW_DOCUMENT_FRAGMENT",
+ "SHOW_DOCUMENT_TYPE",
+ "SHOW_ELEMENT",
+ "SHOW_ENTITY",
+ "SHOW_ENTITY_REFERENCE",
+ "SHOW_NOTATION",
+ "SHOW_PROCESSING_INSTRUCTION",
+ "SHOW_TEXT",
+ "SINE",
+ "SOUNDFIELD",
+ "SQLException",
+ "SQRT1_2",
+ "SQRT2",
+ "SQUARE",
+ "SRC_ALPHA",
+ "SRC_ALPHA_SATURATE",
+ "SRC_COLOR",
+ "START_TO_END",
+ "START_TO_START",
+ "STATIC_DRAW",
+ "STENCIL_ATTACHMENT",
+ "STENCIL_BACK_FAIL",
+ "STENCIL_BACK_FUNC",
+ "STENCIL_BACK_PASS_DEPTH_FAIL",
+ "STENCIL_BACK_PASS_DEPTH_PASS",
+ "STENCIL_BACK_REF",
+ "STENCIL_BACK_VALUE_MASK",
+ "STENCIL_BACK_WRITEMASK",
+ "STENCIL_BITS",
+ "STENCIL_BUFFER_BIT",
+ "STENCIL_CLEAR_VALUE",
+ "STENCIL_FAIL",
+ "STENCIL_FUNC",
+ "STENCIL_INDEX",
+ "STENCIL_INDEX8",
+ "STENCIL_PASS_DEPTH_FAIL",
+ "STENCIL_PASS_DEPTH_PASS",
+ "STENCIL_REF",
+ "STENCIL_TEST",
+ "STENCIL_VALUE_MASK",
+ "STENCIL_WRITEMASK",
+ "STREAM_DRAW",
+ "STRING_TYPE",
+ "STYLE_RULE",
+ "SUBPIXEL_BITS",
+ "SUPPORTS_RULE",
+ "SVGAElement",
+ "SVGAltGlyphDefElement",
+ "SVGAltGlyphElement",
+ "SVGAltGlyphItemElement",
+ "SVGAngle",
+ "SVGAnimateColorElement",
+ "SVGAnimateElement",
+ "SVGAnimateMotionElement",
+ "SVGAnimateTransformElement",
+ "SVGAnimatedAngle",
+ "SVGAnimatedBoolean",
+ "SVGAnimatedEnumeration",
+ "SVGAnimatedInteger",
+ "SVGAnimatedLength",
+ "SVGAnimatedLengthList",
+ "SVGAnimatedNumber",
+ "SVGAnimatedNumberList",
+ "SVGAnimatedPreserveAspectRatio",
+ "SVGAnimatedRect",
+ "SVGAnimatedString",
+ "SVGAnimatedTransformList",
+ "SVGAnimationElement",
+ "SVGCircleElement",
+ "SVGClipPathElement",
+ "SVGColor",
+ "SVGComponentTransferFunctionElement",
+ "SVGCursorElement",
+ "SVGDefsElement",
+ "SVGDescElement",
+ "SVGDiscardElement",
+ "SVGDocument",
+ "SVGElement",
+ "SVGElementInstance",
+ "SVGElementInstanceList",
+ "SVGEllipseElement",
+ "SVGException",
+ "SVGFEBlendElement",
+ "SVGFEColorMatrixElement",
+ "SVGFEComponentTransferElement",
+ "SVGFECompositeElement",
+ "SVGFEConvolveMatrixElement",
+ "SVGFEDiffuseLightingElement",
+ "SVGFEDisplacementMapElement",
+ "SVGFEDistantLightElement",
+ "SVGFEDropShadowElement",
+ "SVGFEFloodElement",
+ "SVGFEFuncAElement",
+ "SVGFEFuncBElement",
+ "SVGFEFuncGElement",
+ "SVGFEFuncRElement",
+ "SVGFEGaussianBlurElement",
+ "SVGFEImageElement",
+ "SVGFEMergeElement",
+ "SVGFEMergeNodeElement",
+ "SVGFEMorphologyElement",
+ "SVGFEOffsetElement",
+ "SVGFEPointLightElement",
+ "SVGFESpecularLightingElement",
+ "SVGFESpotLightElement",
+ "SVGFETileElement",
+ "SVGFETurbulenceElement",
+ "SVGFilterElement",
+ "SVGFontElement",
+ "SVGFontFaceElement",
+ "SVGFontFaceFormatElement",
+ "SVGFontFaceNameElement",
+ "SVGFontFaceSrcElement",
+ "SVGFontFaceUriElement",
+ "SVGForeignObjectElement",
+ "SVGGElement",
+ "SVGGeometryElement",
+ "SVGGlyphElement",
+ "SVGGlyphRefElement",
+ "SVGGradientElement",
+ "SVGGraphicsElement",
+ "SVGHKernElement",
+ "SVGImageElement",
+ "SVGLength",
+ "SVGLengthList",
+ "SVGLineElement",
+ "SVGLinearGradientElement",
+ "SVGMPathElement",
+ "SVGMarkerElement",
+ "SVGMaskElement",
+ "SVGMatrix",
+ "SVGMetadataElement",
+ "SVGMissingGlyphElement",
+ "SVGNumber",
+ "SVGNumberList",
+ "SVGPaint",
+ "SVGPathElement",
+ "SVGPathSeg",
+ "SVGPathSegArcAbs",
+ "SVGPathSegArcRel",
+ "SVGPathSegClosePath",
+ "SVGPathSegCurvetoCubicAbs",
+ "SVGPathSegCurvetoCubicRel",
+ "SVGPathSegCurvetoCubicSmoothAbs",
+ "SVGPathSegCurvetoCubicSmoothRel",
+ "SVGPathSegCurvetoQuadraticAbs",
+ "SVGPathSegCurvetoQuadraticRel",
+ "SVGPathSegCurvetoQuadraticSmoothAbs",
+ "SVGPathSegCurvetoQuadraticSmoothRel",
+ "SVGPathSegLinetoAbs",
+ "SVGPathSegLinetoHorizontalAbs",
+ "SVGPathSegLinetoHorizontalRel",
+ "SVGPathSegLinetoRel",
+ "SVGPathSegLinetoVerticalAbs",
+ "SVGPathSegLinetoVerticalRel",
+ "SVGPathSegList",
+ "SVGPathSegMovetoAbs",
+ "SVGPathSegMovetoRel",
+ "SVGPatternElement",
+ "SVGPoint",
+ "SVGPointList",
+ "SVGPolygonElement",
+ "SVGPolylineElement",
+ "SVGPreserveAspectRatio",
+ "SVGRadialGradientElement",
+ "SVGRect",
+ "SVGRectElement",
+ "SVGRenderingIntent",
+ "SVGSVGElement",
+ "SVGScriptElement",
+ "SVGSetElement",
+ "SVGStopElement",
+ "SVGStringList",
+ "SVGStyleElement",
+ "SVGSwitchElement",
+ "SVGSymbolElement",
+ "SVGTRefElement",
+ "SVGTSpanElement",
+ "SVGTextContentElement",
+ "SVGTextElement",
+ "SVGTextPathElement",
+ "SVGTextPositioningElement",
+ "SVGTitleElement",
+ "SVGTransform",
+ "SVGTransformList",
+ "SVGUnitTypes",
+ "SVGUseElement",
+ "SVGVKernElement",
+ "SVGViewElement",
+ "SVGViewSpec",
+ "SVGZoomAndPan",
+ "SVGZoomEvent",
+ "SVG_ANGLETYPE_DEG",
+ "SVG_ANGLETYPE_GRAD",
+ "SVG_ANGLETYPE_RAD",
+ "SVG_ANGLETYPE_UNKNOWN",
+ "SVG_ANGLETYPE_UNSPECIFIED",
+ "SVG_CHANNEL_A",
+ "SVG_CHANNEL_B",
+ "SVG_CHANNEL_G",
+ "SVG_CHANNEL_R",
+ "SVG_CHANNEL_UNKNOWN",
+ "SVG_COLORTYPE_CURRENTCOLOR",
+ "SVG_COLORTYPE_RGBCOLOR",
+ "SVG_COLORTYPE_RGBCOLOR_ICCCOLOR",
+ "SVG_COLORTYPE_UNKNOWN",
+ "SVG_EDGEMODE_DUPLICATE",
+ "SVG_EDGEMODE_NONE",
+ "SVG_EDGEMODE_UNKNOWN",
+ "SVG_EDGEMODE_WRAP",
+ "SVG_FEBLEND_MODE_COLOR",
+ "SVG_FEBLEND_MODE_COLOR_BURN",
+ "SVG_FEBLEND_MODE_COLOR_DODGE",
+ "SVG_FEBLEND_MODE_DARKEN",
+ "SVG_FEBLEND_MODE_DIFFERENCE",
+ "SVG_FEBLEND_MODE_EXCLUSION",
+ "SVG_FEBLEND_MODE_HARD_LIGHT",
+ "SVG_FEBLEND_MODE_HUE",
+ "SVG_FEBLEND_MODE_LIGHTEN",
+ "SVG_FEBLEND_MODE_LUMINOSITY",
+ "SVG_FEBLEND_MODE_MULTIPLY",
+ "SVG_FEBLEND_MODE_NORMAL",
+ "SVG_FEBLEND_MODE_OVERLAY",
+ "SVG_FEBLEND_MODE_SATURATION",
+ "SVG_FEBLEND_MODE_SCREEN",
+ "SVG_FEBLEND_MODE_SOFT_LIGHT",
+ "SVG_FEBLEND_MODE_UNKNOWN",
+ "SVG_FECOLORMATRIX_TYPE_HUEROTATE",
+ "SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA",
+ "SVG_FECOLORMATRIX_TYPE_MATRIX",
+ "SVG_FECOLORMATRIX_TYPE_SATURATE",
+ "SVG_FECOLORMATRIX_TYPE_UNKNOWN",
+ "SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
+ "SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
+ "SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
+ "SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
+ "SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
+ "SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
+ "SVG_FECOMPOSITE_OPERATOR_ARITHMETIC",
+ "SVG_FECOMPOSITE_OPERATOR_ATOP",
+ "SVG_FECOMPOSITE_OPERATOR_IN",
+ "SVG_FECOMPOSITE_OPERATOR_OUT",
+ "SVG_FECOMPOSITE_OPERATOR_OVER",
+ "SVG_FECOMPOSITE_OPERATOR_UNKNOWN",
+ "SVG_FECOMPOSITE_OPERATOR_XOR",
+ "SVG_INVALID_VALUE_ERR",
+ "SVG_LENGTHTYPE_CM",
+ "SVG_LENGTHTYPE_EMS",
+ "SVG_LENGTHTYPE_EXS",
+ "SVG_LENGTHTYPE_IN",
+ "SVG_LENGTHTYPE_MM",
+ "SVG_LENGTHTYPE_NUMBER",
+ "SVG_LENGTHTYPE_PC",
+ "SVG_LENGTHTYPE_PERCENTAGE",
+ "SVG_LENGTHTYPE_PT",
+ "SVG_LENGTHTYPE_PX",
+ "SVG_LENGTHTYPE_UNKNOWN",
+ "SVG_MARKERUNITS_STROKEWIDTH",
+ "SVG_MARKERUNITS_UNKNOWN",
+ "SVG_MARKERUNITS_USERSPACEONUSE",
+ "SVG_MARKER_ORIENT_ANGLE",
+ "SVG_MARKER_ORIENT_AUTO",
+ "SVG_MARKER_ORIENT_UNKNOWN",
+ "SVG_MASKTYPE_ALPHA",
+ "SVG_MASKTYPE_LUMINANCE",
+ "SVG_MATRIX_NOT_INVERTABLE",
+ "SVG_MEETORSLICE_MEET",
+ "SVG_MEETORSLICE_SLICE",
+ "SVG_MEETORSLICE_UNKNOWN",
+ "SVG_MORPHOLOGY_OPERATOR_DILATE",
+ "SVG_MORPHOLOGY_OPERATOR_ERODE",
+ "SVG_MORPHOLOGY_OPERATOR_UNKNOWN",
+ "SVG_PAINTTYPE_CURRENTCOLOR",
+ "SVG_PAINTTYPE_NONE",
+ "SVG_PAINTTYPE_RGBCOLOR",
+ "SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR",
+ "SVG_PAINTTYPE_UNKNOWN",
+ "SVG_PAINTTYPE_URI",
+ "SVG_PAINTTYPE_URI_CURRENTCOLOR",
+ "SVG_PAINTTYPE_URI_NONE",
+ "SVG_PAINTTYPE_URI_RGBCOLOR",
+ "SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR",
+ "SVG_PRESERVEASPECTRATIO_NONE",
+ "SVG_PRESERVEASPECTRATIO_UNKNOWN",
+ "SVG_PRESERVEASPECTRATIO_XMAXYMAX",
+ "SVG_PRESERVEASPECTRATIO_XMAXYMID",
+ "SVG_PRESERVEASPECTRATIO_XMAXYMIN",
+ "SVG_PRESERVEASPECTRATIO_XMIDYMAX",
+ "SVG_PRESERVEASPECTRATIO_XMIDYMID",
+ "SVG_PRESERVEASPECTRATIO_XMIDYMIN",
+ "SVG_PRESERVEASPECTRATIO_XMINYMAX",
+ "SVG_PRESERVEASPECTRATIO_XMINYMID",
+ "SVG_PRESERVEASPECTRATIO_XMINYMIN",
+ "SVG_SPREADMETHOD_PAD",
+ "SVG_SPREADMETHOD_REFLECT",
+ "SVG_SPREADMETHOD_REPEAT",
+ "SVG_SPREADMETHOD_UNKNOWN",
+ "SVG_STITCHTYPE_NOSTITCH",
+ "SVG_STITCHTYPE_STITCH",
+ "SVG_STITCHTYPE_UNKNOWN",
+ "SVG_TRANSFORM_MATRIX",
+ "SVG_TRANSFORM_ROTATE",
+ "SVG_TRANSFORM_SCALE",
+ "SVG_TRANSFORM_SKEWX",
+ "SVG_TRANSFORM_SKEWY",
+ "SVG_TRANSFORM_TRANSLATE",
+ "SVG_TRANSFORM_UNKNOWN",
+ "SVG_TURBULENCE_TYPE_FRACTALNOISE",
+ "SVG_TURBULENCE_TYPE_TURBULENCE",
+ "SVG_TURBULENCE_TYPE_UNKNOWN",
+ "SVG_UNIT_TYPE_OBJECTBOUNDINGBOX",
+ "SVG_UNIT_TYPE_UNKNOWN",
+ "SVG_UNIT_TYPE_USERSPACEONUSE",
+ "SVG_WRONG_TYPE_ERR",
+ "SVG_ZOOMANDPAN_DISABLE",
+ "SVG_ZOOMANDPAN_MAGNIFY",
+ "SVG_ZOOMANDPAN_UNKNOWN",
+ "SYNTAX_ERR",
+ "SavedPages",
+ "Screen",
+ "ScreenOrientation",
+ "Script",
+ "ScriptProcessorNode",
+ "ScrollAreaEvent",
+ "SecurityPolicyViolationEvent",
+ "Selection",
+ "ServiceWorker",
+ "ServiceWorkerContainer",
+ "ServiceWorkerRegistration",
+ "SessionDescription",
+ "Set",
+ "ShadowRoot",
+ "SharedWorker",
+ "SimpleGestureEvent",
+ "SpeechSynthesisEvent",
+ "SpeechSynthesisUtterance",
+ "StopIteration",
+ "Storage",
+ "StorageEvent",
+ "String",
+ "StyleSheet",
+ "StyleSheetList",
+ "SubtleCrypto",
+ "Symbol",
+ "SyntaxError",
+ "TEMPORARY",
+ "TEXTPATH_METHODTYPE_ALIGN",
+ "TEXTPATH_METHODTYPE_STRETCH",
+ "TEXTPATH_METHODTYPE_UNKNOWN",
+ "TEXTPATH_SPACINGTYPE_AUTO",
+ "TEXTPATH_SPACINGTYPE_EXACT",
+ "TEXTPATH_SPACINGTYPE_UNKNOWN",
+ "TEXTURE",
+ "TEXTURE0",
+ "TEXTURE1",
+ "TEXTURE10",
+ "TEXTURE11",
+ "TEXTURE12",
+ "TEXTURE13",
+ "TEXTURE14",
+ "TEXTURE15",
+ "TEXTURE16",
+ "TEXTURE17",
+ "TEXTURE18",
+ "TEXTURE19",
+ "TEXTURE2",
+ "TEXTURE20",
+ "TEXTURE21",
+ "TEXTURE22",
+ "TEXTURE23",
+ "TEXTURE24",
+ "TEXTURE25",
+ "TEXTURE26",
+ "TEXTURE27",
+ "TEXTURE28",
+ "TEXTURE29",
+ "TEXTURE3",
+ "TEXTURE30",
+ "TEXTURE31",
+ "TEXTURE4",
+ "TEXTURE5",
+ "TEXTURE6",
+ "TEXTURE7",
+ "TEXTURE8",
+ "TEXTURE9",
+ "TEXTURE_2D",
+ "TEXTURE_BINDING_2D",
+ "TEXTURE_BINDING_CUBE_MAP",
+ "TEXTURE_CUBE_MAP",
+ "TEXTURE_CUBE_MAP_NEGATIVE_X",
+ "TEXTURE_CUBE_MAP_NEGATIVE_Y",
+ "TEXTURE_CUBE_MAP_NEGATIVE_Z",
+ "TEXTURE_CUBE_MAP_POSITIVE_X",
+ "TEXTURE_CUBE_MAP_POSITIVE_Y",
+ "TEXTURE_CUBE_MAP_POSITIVE_Z",
+ "TEXTURE_MAG_FILTER",
+ "TEXTURE_MAX_ANISOTROPY_EXT",
+ "TEXTURE_MIN_FILTER",
+ "TEXTURE_WRAP_S",
+ "TEXTURE_WRAP_T",
+ "TEXT_NODE",
+ "TIMEOUT",
+ "TIMEOUT_ERR",
+ "TOO_LARGE_ERR",
+ "TRANSACTION_INACTIVE_ERR",
+ "TRIANGLE",
+ "TRIANGLES",
+ "TRIANGLE_FAN",
+ "TRIANGLE_STRIP",
+ "TYPE_BACK_FORWARD",
+ "TYPE_ERR",
+ "TYPE_MISMATCH_ERR",
+ "TYPE_NAVIGATE",
+ "TYPE_RELOAD",
+ "TYPE_RESERVED",
+ "Text",
+ "TextDecoder",
+ "TextEncoder",
+ "TextEvent",
+ "TextMetrics",
+ "TextTrack",
+ "TextTrackCue",
+ "TextTrackCueList",
+ "TextTrackList",
+ "TimeEvent",
+ "TimeRanges",
+ "Touch",
+ "TouchEvent",
+ "TouchList",
+ "TrackEvent",
+ "TransitionEvent",
+ "TreeWalker",
+ "TypeError",
+ "UIEvent",
+ "UNCACHED",
+ "UNKNOWN_ERR",
+ "UNKNOWN_RULE",
+ "UNMASKED_RENDERER_WEBGL",
+ "UNMASKED_VENDOR_WEBGL",
+ "UNORDERED_NODE_ITERATOR_TYPE",
+ "UNORDERED_NODE_SNAPSHOT_TYPE",
+ "UNPACK_ALIGNMENT",
+ "UNPACK_COLORSPACE_CONVERSION_WEBGL",
+ "UNPACK_FLIP_Y_WEBGL",
+ "UNPACK_PREMULTIPLY_ALPHA_WEBGL",
+ "UNSCHEDULED_STATE",
+ "UNSENT",
+ "UNSIGNED_BYTE",
+ "UNSIGNED_INT",
+ "UNSIGNED_SHORT",
+ "UNSIGNED_SHORT_4_4_4_4",
+ "UNSIGNED_SHORT_5_5_5_1",
+ "UNSIGNED_SHORT_5_6_5",
+ "UNSPECIFIED_EVENT_TYPE_ERR",
+ "UPDATEREADY",
+ "URIError",
+ "URL",
+ "URLSearchParams",
+ "URLUnencoded",
+ "URL_MISMATCH_ERR",
+ "UTC",
+ "Uint16Array",
+ "Uint32Array",
+ "Uint8Array",
+ "Uint8ClampedArray",
+ "UserMessageHandler",
+ "UserMessageHandlersNamespace",
+ "UserProximityEvent",
+ "VALIDATE_STATUS",
+ "VALIDATION_ERR",
+ "VARIABLES_RULE",
+ "VENDOR",
+ "VERSION",
+ "VERSION_CHANGE",
+ "VERSION_ERR",
+ "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",
+ "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",
+ "VERTEX_ATTRIB_ARRAY_ENABLED",
+ "VERTEX_ATTRIB_ARRAY_NORMALIZED",
+ "VERTEX_ATTRIB_ARRAY_POINTER",
+ "VERTEX_ATTRIB_ARRAY_SIZE",
+ "VERTEX_ATTRIB_ARRAY_STRIDE",
+ "VERTEX_ATTRIB_ARRAY_TYPE",
+ "VERTEX_SHADER",
+ "VERTICAL",
+ "VERTICAL_AXIS",
+ "VER_ERR",
+ "VIEWPORT",
+ "VIEWPORT_RULE",
+ "VTTCue",
+ "VTTRegion",
+ "ValidityState",
+ "VideoStreamTrack",
+ "WEBKIT_FILTER_RULE",
+ "WEBKIT_KEYFRAMES_RULE",
+ "WEBKIT_KEYFRAME_RULE",
+ "WEBKIT_REGION_RULE",
+ "WRONG_DOCUMENT_ERR",
+ "WaveShaperNode",
+ "WeakMap",
+ "WeakSet",
+ "WebGLActiveInfo",
+ "WebGLBuffer",
+ "WebGLContextEvent",
+ "WebGLFramebuffer",
+ "WebGLProgram",
+ "WebGLRenderbuffer",
+ "WebGLRenderingContext",
+ "WebGLShader",
+ "WebGLShaderPrecisionFormat",
+ "WebGLTexture",
+ "WebGLUniformLocation",
+ "WebGLVertexArray",
+ "WebKitAnimationEvent",
+ "WebKitBlobBuilder",
+ "WebKitCSSFilterRule",
+ "WebKitCSSFilterValue",
+ "WebKitCSSKeyframeRule",
+ "WebKitCSSKeyframesRule",
+ "WebKitCSSMatrix",
+ "WebKitCSSRegionRule",
+ "WebKitCSSTransformValue",
+ "WebKitDataCue",
+ "WebKitGamepad",
+ "WebKitMediaKeyError",
+ "WebKitMediaKeyMessageEvent",
+ "WebKitMediaKeySession",
+ "WebKitMediaKeys",
+ "WebKitMediaSource",
+ "WebKitMutationObserver",
+ "WebKitNamespace",
+ "WebKitPlaybackTargetAvailabilityEvent",
+ "WebKitPoint",
+ "WebKitShadowRoot",
+ "WebKitSourceBuffer",
+ "WebKitSourceBufferList",
+ "WebKitTransitionEvent",
+ "WebSocket",
+ "WheelEvent",
+ "Window",
+ "Worker",
+ "XMLDocument",
+ "XMLHttpRequest",
+ "XMLHttpRequestEventTarget",
+ "XMLHttpRequestException",
+ "XMLHttpRequestProgressEvent",
+ "XMLHttpRequestUpload",
+ "XMLSerializer",
+ "XMLStylesheetProcessingInstruction",
+ "XPathEvaluator",
+ "XPathException",
+ "XPathExpression",
+ "XPathNSResolver",
+ "XPathResult",
+ "XSLTProcessor",
+ "ZERO",
+ "_XD0M_",
+ "_YD0M_",
+ "__defineGetter__",
+ "__defineSetter__",
+ "__lookupGetter__",
+ "__lookupSetter__",
+ "__opera",
+ "__proto__",
+ "_browserjsran",
+ "a",
+ "aLink",
+ "abbr",
+ "abort",
+ "abs",
+ "absolute",
+ "acceleration",
+ "accelerationIncludingGravity",
+ "accelerator",
+ "accept",
+ "acceptCharset",
+ "acceptNode",
+ "accessKey",
+ "accessKeyLabel",
+ "accuracy",
+ "acos",
+ "acosh",
+ "action",
+ "actionURL",
+ "active",
+ "activeCues",
+ "activeElement",
+ "activeSourceBuffers",
+ "activeSourceCount",
+ "activeTexture",
+ "add",
+ "addBehavior",
+ "addCandidate",
+ "addColorStop",
+ "addCue",
+ "addElement",
+ "addEventListener",
+ "addFilter",
+ "addFromString",
+ "addFromUri",
+ "addIceCandidate",
+ "addImport",
+ "addListener",
+ "addNamed",
+ "addPageRule",
+ "addPath",
+ "addPointer",
+ "addRange",
+ "addRegion",
+ "addRule",
+ "addSearchEngine",
+ "addSourceBuffer",
+ "addStream",
+ "addTextTrack",
+ "addTrack",
+ "addWakeLockListener",
+ "addedNodes",
+ "additionalName",
+ "additiveSymbols",
+ "addons",
+ "adoptNode",
+ "adr",
+ "advance",
+ "alert",
+ "algorithm",
+ "align",
+ "align-content",
+ "align-items",
+ "align-self",
+ "alignContent",
+ "alignItems",
+ "alignSelf",
+ "alignmentBaseline",
+ "alinkColor",
+ "all",
+ "allSettled",
+ "allowFullscreen",
+ "allowedDirections",
+ "alpha",
+ "alt",
+ "altGraphKey",
+ "altHtml",
+ "altKey",
+ "altLeft",
+ "altitude",
+ "altitudeAccuracy",
+ "amplitude",
+ "ancestorOrigins",
+ "anchor",
+ "anchorNode",
+ "anchorOffset",
+ "anchors",
+ "angle",
+ "animVal",
+ "animate",
+ "animatedInstanceRoot",
+ "animatedNormalizedPathSegList",
+ "animatedPathSegList",
+ "animatedPoints",
+ "animation",
+ "animation-delay",
+ "animation-direction",
+ "animation-duration",
+ "animation-fill-mode",
+ "animation-iteration-count",
+ "animation-name",
+ "animation-play-state",
+ "animation-timing-function",
+ "animationDelay",
+ "animationDirection",
+ "animationDuration",
+ "animationFillMode",
+ "animationIterationCount",
+ "animationName",
+ "animationPlayState",
+ "animationStartTime",
+ "animationTimingFunction",
+ "animationsPaused",
+ "anniversary",
+ "any",
+ "app",
+ "appCodeName",
+ "appMinorVersion",
+ "appName",
+ "appNotifications",
+ "appVersion",
+ "append",
+ "appendBuffer",
+ "appendChild",
+ "appendData",
+ "appendItem",
+ "appendMedium",
+ "appendNamed",
+ "appendRule",
+ "appendStream",
+ "appendWindowEnd",
+ "appendWindowStart",
+ "applets",
+ "applicationCache",
+ "apply",
+ "applyElement",
+ "arc",
+ "arcTo",
+ "archive",
+ "areas",
+ "arguments",
+ "arrayBuffer",
+ "asin",
+ "asinh",
+ "assert",
+ "assign",
+ "async",
+ "atEnd",
+ "atan",
+ "atan2",
+ "atanh",
+ "atob",
+ "attachEvent",
+ "attachShader",
+ "attachShadow",
+ "attachments",
+ "attack",
+ "attrChange",
+ "attrName",
+ "attributeFilter",
+ "attributeName",
+ "attributeNamespace",
+ "attributeOldValue",
+ "attributes",
+ "audioTracks",
+ "autoIncrement",
+ "autobuffer",
+ "autocapitalize",
+ "autocomplete",
+ "autocorrect",
+ "autofocus",
+ "autoplay",
+ "availHeight",
+ "availLeft",
+ "availTop",
+ "availWidth",
+ "availability",
+ "available",
+ "aversion",
+ "axes",
+ "axis",
+ "azimuth",
+ "b",
+ "back",
+ "backface-visibility",
+ "backfaceVisibility",
+ "background",
+ "background-attachment",
+ "background-blend-mode",
+ "background-clip",
+ "background-color",
+ "background-image",
+ "background-origin",
+ "background-position",
+ "background-repeat",
+ "background-size",
+ "backgroundAttachment",
+ "backgroundBlendMode",
+ "backgroundClip",
+ "backgroundColor",
+ "backgroundImage",
+ "backgroundOrigin",
+ "backgroundPosition",
+ "backgroundPositionX",
+ "backgroundPositionY",
+ "backgroundRepeat",
+ "backgroundSize",
+ "badInput",
+ "balance",
+ "baseFrequencyX",
+ "baseFrequencyY",
+ "baseNode",
+ "baseOffset",
+ "baseURI",
+ "baseVal",
+ "baselineShift",
+ "battery",
+ "bday",
+ "beginElement",
+ "beginElementAt",
+ "beginPath",
+ "behavior",
+ "behaviorCookie",
+ "behaviorPart",
+ "behaviorUrns",
+ "beta",
+ "bezierCurveTo",
+ "bgColor",
+ "bgProperties",
+ "bias",
+ "big",
+ "binaryType",
+ "bind",
+ "bindAttribLocation",
+ "bindBuffer",
+ "bindFramebuffer",
+ "bindRenderbuffer",
+ "bindTexture",
+ "blendColor",
+ "blendEquation",
+ "blendEquationSeparate",
+ "blendFunc",
+ "blendFuncSeparate",
+ "blink",
+ "blob",
+ "blockDirection",
+ "blue",
+ "blur",
+ "body",
+ "bodyUsed",
+ "bold",
+ "bookmarks",
+ "booleanValue",
+ "border",
+ "border-bottom",
+ "border-bottom-color",
+ "border-bottom-left-radius",
+ "border-bottom-right-radius",
+ "border-bottom-style",
+ "border-bottom-width",
+ "border-collapse",
+ "border-color",
+ "border-image",
+ "border-image-outset",
+ "border-image-repeat",
+ "border-image-slice",
+ "border-image-source",
+ "border-image-width",
+ "border-left",
+ "border-left-color",
+ "border-left-style",
+ "border-left-width",
+ "border-radius",
+ "border-right",
+ "border-right-color",
+ "border-right-style",
+ "border-right-width",
+ "border-spacing",
+ "border-style",
+ "border-top",
+ "border-top-color",
+ "border-top-left-radius",
+ "border-top-right-radius",
+ "border-top-style",
+ "border-top-width",
+ "border-width",
+ "borderBottom",
+ "borderBottomColor",
+ "borderBottomLeftRadius",
+ "borderBottomRightRadius",
+ "borderBottomStyle",
+ "borderBottomWidth",
+ "borderCollapse",
+ "borderColor",
+ "borderColorDark",
+ "borderColorLight",
+ "borderImage",
+ "borderImageOutset",
+ "borderImageRepeat",
+ "borderImageSlice",
+ "borderImageSource",
+ "borderImageWidth",
+ "borderLeft",
+ "borderLeftColor",
+ "borderLeftStyle",
+ "borderLeftWidth",
+ "borderRadius",
+ "borderRight",
+ "borderRightColor",
+ "borderRightStyle",
+ "borderRightWidth",
+ "borderSpacing",
+ "borderStyle",
+ "borderTop",
+ "borderTopColor",
+ "borderTopLeftRadius",
+ "borderTopRightRadius",
+ "borderTopStyle",
+ "borderTopWidth",
+ "borderWidth",
+ "bottom",
+ "bottomMargin",
+ "bound",
+ "boundElements",
+ "boundingClientRect",
+ "boundingHeight",
+ "boundingLeft",
+ "boundingTop",
+ "boundingWidth",
+ "bounds",
+ "box-decoration-break",
+ "box-shadow",
+ "box-sizing",
+ "boxDecorationBreak",
+ "boxShadow",
+ "boxSizing",
+ "breakAfter",
+ "breakBefore",
+ "breakInside",
+ "browserLanguage",
+ "btoa",
+ "bubbles",
+ "buffer",
+ "bufferData",
+ "bufferDepth",
+ "bufferSize",
+ "bufferSubData",
+ "buffered",
+ "bufferedAmount",
+ "buildID",
+ "buildNumber",
+ "button",
+ "buttonID",
+ "buttons",
+ "byteLength",
+ "byteOffset",
+ "c",
+ "call",
+ "caller",
+ "canBeFormatted",
+ "canBeMounted",
+ "canBeShared",
+ "canHaveChildren",
+ "canHaveHTML",
+ "canPlayType",
+ "cancel",
+ "cancelAnimationFrame",
+ "cancelBubble",
+ "cancelScheduledValues",
+ "cancelable",
+ "candidate",
+ "canvas",
+ "caption",
+ "caption-side",
+ "captionSide",
+ "capture",
+ "captureEvents",
+ "captureStackTrace",
+ "caretPositionFromPoint",
+ "caretRangeFromPoint",
+ "cast",
+ "catch",
+ "category",
+ "cbrt",
+ "cd",
+ "ceil",
+ "cellIndex",
+ "cellPadding",
+ "cellSpacing",
+ "cells",
+ "ch",
+ "chOff",
+ "chain",
+ "challenge",
+ "changedTouches",
+ "channel",
+ "channelCount",
+ "channelCountMode",
+ "channelInterpretation",
+ "char",
+ "charAt",
+ "charCode",
+ "charCodeAt",
+ "charIndex",
+ "characterData",
+ "characterDataOldValue",
+ "characterSet",
+ "charging",
+ "chargingTime",
+ "charset",
+ "checkEnclosure",
+ "checkFramebufferStatus",
+ "checkIntersection",
+ "checkValidity",
+ "checked",
+ "childElementCount",
+ "childList",
+ "childNodes",
+ "children",
+ "chrome",
+ "ciphertext",
+ "cite",
+ "classList",
+ "className",
+ "classid",
+ "clear",
+ "clearAttributes",
+ "clearColor",
+ "clearData",
+ "clearDepth",
+ "clearImmediate",
+ "clearInterval",
+ "clearMarks",
+ "clearMeasures",
+ "clearParameters",
+ "clearRect",
+ "clearResourceTimings",
+ "clearShadow",
+ "clearStencil",
+ "clearTimeout",
+ "clearWatch",
+ "click",
+ "clickCount",
+ "clientHeight",
+ "clientInformation",
+ "clientLeft",
+ "clientRect",
+ "clientRects",
+ "clientTop",
+ "clientWidth",
+ "clientX",
+ "clientY",
+ "clip",
+ "clip-path",
+ "clip-rule",
+ "clipBottom",
+ "clipLeft",
+ "clipPath",
+ "clipPathUnits",
+ "clipRight",
+ "clipRule",
+ "clipTop",
+ "clipboardData",
+ "clone",
+ "cloneContents",
+ "cloneNode",
+ "cloneRange",
+ "close",
+ "closePath",
+ "closed",
+ "closest",
+ "clz",
+ "clz32",
+ "cmp",
+ "code",
+ "codeBase",
+ "codePointAt",
+ "codeType",
+ "colSpan",
+ "collapse",
+ "collapseToEnd",
+ "collapseToStart",
+ "collapsed",
+ "collect",
+ "colno",
+ "color",
+ "color-interpolation",
+ "color-interpolation-filters",
+ "colorDepth",
+ "colorInterpolation",
+ "colorInterpolationFilters",
+ "colorMask",
+ "colorType",
+ "cols",
+ "columnCount",
+ "columnFill",
+ "columnGap",
+ "columnNumber",
+ "columnRule",
+ "columnRuleColor",
+ "columnRuleStyle",
+ "columnRuleWidth",
+ "columnSpan",
+ "columnWidth",
+ "columns",
+ "command",
+ "commitPreferences",
+ "commonAncestorContainer",
+ "compact",
+ "compareBoundaryPoints",
+ "compareDocumentPosition",
+ "compareEndPoints",
+ "compareNode",
+ "comparePoint",
+ "compatMode",
+ "compatible",
+ "compile",
+ "compileShader",
+ "complete",
+ "componentFromPoint",
+ "compositionEndOffset",
+ "compositionStartOffset",
+ "compressedTexImage2D",
+ "compressedTexSubImage2D",
+ "concat",
+ "conditionText",
+ "coneInnerAngle",
+ "coneOuterAngle",
+ "coneOuterGain",
+ "confirm",
+ "confirmComposition",
+ "confirmSiteSpecificTrackingException",
+ "confirmWebWideTrackingException",
+ "connect",
+ "connectEnd",
+ "connectStart",
+ "connected",
+ "connection",
+ "connectionSpeed",
+ "console",
+ "consolidate",
+ "constrictionActive",
+ "constructor",
+ "contactID",
+ "contains",
+ "containsNode",
+ "content",
+ "contentDocument",
+ "contentEditable",
+ "contentOverflow",
+ "contentScriptType",
+ "contentStyleType",
+ "contentType",
+ "contentWindow",
+ "context",
+ "contextMenu",
+ "contextmenu",
+ "continue",
+ "continuous",
+ "control",
+ "controller",
+ "controls",
+ "convertToSpecifiedUnits",
+ "cookie",
+ "cookieEnabled",
+ "coords",
+ "copyFromChannel",
+ "copyTexImage2D",
+ "copyTexSubImage2D",
+ "copyToChannel",
+ "copyWithin",
+ "correspondingElement",
+ "correspondingUseElement",
+ "cos",
+ "cosh",
+ "count",
+ "counter-increment",
+ "counter-reset",
+ "counterIncrement",
+ "counterReset",
+ "cpuClass",
+ "cpuSleepAllowed",
+ "create",
+ "createAnalyser",
+ "createAnswer",
+ "createAttribute",
+ "createAttributeNS",
+ "createBiquadFilter",
+ "createBuffer",
+ "createBufferSource",
+ "createCDATASection",
+ "createCSSStyleSheet",
+ "createCaption",
+ "createChannelMerger",
+ "createChannelSplitter",
+ "createComment",
+ "createContextualFragment",
+ "createControlRange",
+ "createConvolver",
+ "createDTMFSender",
+ "createDataChannel",
+ "createDelay",
+ "createDelayNode",
+ "createDocument",
+ "createDocumentFragment",
+ "createDocumentType",
+ "createDynamicsCompressor",
+ "createElement",
+ "createElementNS",
+ "createEntityReference",
+ "createEvent",
+ "createEventObject",
+ "createExpression",
+ "createFramebuffer",
+ "createFunction",
+ "createGain",
+ "createGainNode",
+ "createHTMLDocument",
+ "createImageBitmap",
+ "createImageData",
+ "createIndex",
+ "createJavaScriptNode",
+ "createLinearGradient",
+ "createMediaElementSource",
+ "createMediaKeys",
+ "createMediaStreamDestination",
+ "createMediaStreamSource",
+ "createMutableFile",
+ "createNSResolver",
+ "createNodeIterator",
+ "createNotification",
+ "createObjectStore",
+ "createObjectURL",
+ "createOffer",
+ "createOscillator",
+ "createPanner",
+ "createPattern",
+ "createPeriodicWave",
+ "createPopup",
+ "createProcessingInstruction",
+ "createProgram",
+ "createRadialGradient",
+ "createRange",
+ "createRangeCollection",
+ "createRenderbuffer",
+ "createSVGAngle",
+ "createSVGLength",
+ "createSVGMatrix",
+ "createSVGNumber",
+ "createSVGPathSegArcAbs",
+ "createSVGPathSegArcRel",
+ "createSVGPathSegClosePath",
+ "createSVGPathSegCurvetoCubicAbs",
+ "createSVGPathSegCurvetoCubicRel",
+ "createSVGPathSegCurvetoCubicSmoothAbs",
+ "createSVGPathSegCurvetoCubicSmoothRel",
+ "createSVGPathSegCurvetoQuadraticAbs",
+ "createSVGPathSegCurvetoQuadraticRel",
+ "createSVGPathSegCurvetoQuadraticSmoothAbs",
+ "createSVGPathSegCurvetoQuadraticSmoothRel",
+ "createSVGPathSegLinetoAbs",
+ "createSVGPathSegLinetoHorizontalAbs",
+ "createSVGPathSegLinetoHorizontalRel",
+ "createSVGPathSegLinetoRel",
+ "createSVGPathSegLinetoVerticalAbs",
+ "createSVGPathSegLinetoVerticalRel",
+ "createSVGPathSegMovetoAbs",
+ "createSVGPathSegMovetoRel",
+ "createSVGPoint",
+ "createSVGRect",
+ "createSVGTransform",
+ "createSVGTransformFromMatrix",
+ "createScriptProcessor",
+ "createSession",
+ "createShader",
+ "createShadowRoot",
+ "createStereoPanner",
+ "createStyleSheet",
+ "createTBody",
+ "createTFoot",
+ "createTHead",
+ "createTextNode",
+ "createTextRange",
+ "createTexture",
+ "createTouch",
+ "createTouchList",
+ "createTreeWalker",
+ "createWaveShaper",
+ "creationTime",
+ "crossOrigin",
+ "crypto",
+ "csi",
+ "cssFloat",
+ "cssRules",
+ "cssText",
+ "cssValueType",
+ "ctrlKey",
+ "ctrlLeft",
+ "cues",
+ "cullFace",
+ "currentNode",
+ "currentPage",
+ "currentScale",
+ "currentScript",
+ "currentSrc",
+ "currentState",
+ "currentStyle",
+ "currentTarget",
+ "currentTime",
+ "currentTranslate",
+ "currentView",
+ "cursor",
+ "curve",
+ "customError",
+ "cx",
+ "cy",
+ "d",
+ "data",
+ "dataFld",
+ "dataFormatAs",
+ "dataPageSize",
+ "dataSrc",
+ "dataTransfer",
+ "database",
+ "dataset",
+ "dateTime",
+ "db",
+ "debug",
+ "debuggerEnabled",
+ "declare",
+ "decode",
+ "decodeAudioData",
+ "decodeURI",
+ "decodeURIComponent",
+ "decodingInfo",
+ "decrypt",
+ "default",
+ "defaultCharset",
+ "defaultChecked",
+ "defaultMuted",
+ "defaultPlaybackRate",
+ "defaultPrevented",
+ "defaultSelected",
+ "defaultStatus",
+ "defaultURL",
+ "defaultValue",
+ "defaultView",
+ "defaultstatus",
+ "defer",
+ "defineMagicFunction",
+ "defineMagicVariable",
+ "defineProperties",
+ "defineProperty",
+ "delayTime",
+ "delete",
+ "deleteBuffer",
+ "deleteCaption",
+ "deleteCell",
+ "deleteContents",
+ "deleteData",
+ "deleteDatabase",
+ "deleteFramebuffer",
+ "deleteFromDocument",
+ "deleteIndex",
+ "deleteMedium",
+ "deleteObjectStore",
+ "deleteProgram",
+ "deleteRenderbuffer",
+ "deleteRow",
+ "deleteRule",
+ "deleteShader",
+ "deleteTFoot",
+ "deleteTHead",
+ "deleteTexture",
+ "deliverChangeRecords",
+ "delivery",
+ "deliveryInfo",
+ "deliveryStatus",
+ "deliveryTimestamp",
+ "delta",
+ "deltaMode",
+ "deltaX",
+ "deltaY",
+ "deltaZ",
+ "depthFunc",
+ "depthMask",
+ "depthRange",
+ "deriveBits",
+ "deriveKey",
+ "description",
+ "deselectAll",
+ "designMode",
+ "destination",
+ "destinationURL",
+ "detach",
+ "detachEvent",
+ "detachShader",
+ "detail",
+ "detune",
+ "devicePixelRatio",
+ "deviceXDPI",
+ "deviceYDPI",
+ "diffuseConstant",
+ "digest",
+ "dimensions",
+ "dir",
+ "dirName",
+ "direction",
+ "dirxml",
+ "disable",
+ "disableVertexAttribArray",
+ "disabled",
+ "dischargingTime",
+ "disconnect",
+ "dispatchEvent",
+ "display",
+ "distanceModel",
+ "divisor",
+ "djsapi",
+ "djsproxy",
+ "doImport",
+ "doNotTrack",
+ "doScroll",
+ "doctype",
+ "document",
+ "documentElement",
+ "documentMode",
+ "documentURI",
+ "dolphin",
+ "dolphinGameCenter",
+ "dolphininfo",
+ "dolphinmeta",
+ "domComplete",
+ "domContentLoadedEventEnd",
+ "domContentLoadedEventStart",
+ "domInteractive",
+ "domLoading",
+ "domain",
+ "domainLookupEnd",
+ "domainLookupStart",
+ "dominant-baseline",
+ "dominantBaseline",
+ "done",
+ "dopplerFactor",
+ "download",
+ "dragDrop",
+ "draggable",
+ "drawArrays",
+ "drawArraysInstancedANGLE",
+ "drawCustomFocusRing",
+ "drawElements",
+ "drawElementsInstancedANGLE",
+ "drawFocusIfNeeded",
+ "drawImage",
+ "drawImageFromRect",
+ "drawSystemFocusRing",
+ "drawingBufferHeight",
+ "drawingBufferWidth",
+ "dropEffect",
+ "droppedVideoFrames",
+ "dropzone",
+ "dump",
+ "duplicate",
+ "duration",
+ "dvname",
+ "dvnum",
+ "dx",
+ "dy",
+ "dynsrc",
+ "e",
+ "edgeMode",
+ "effectAllowed",
+ "elapsedTime",
+ "elementFromPoint",
+ "elements",
+ "elevation",
+ "ellipse",
+ "email",
+ "embeds",
+ "empty",
+ "empty-cells",
+ "emptyCells",
+ "enable",
+ "enableBackground",
+ "enableStyleSheetsForSet",
+ "enableVertexAttribArray",
+ "enabled",
+ "enabledPlugin",
+ "encode",
+ "encodeURI",
+ "encodeURIComponent",
+ "encoding",
+ "encrypt",
+ "enctype",
+ "end",
+ "endContainer",
+ "endElement",
+ "endElementAt",
+ "endOfStream",
+ "endOffset",
+ "endTime",
+ "ended",
+ "endsWith",
+ "entities",
+ "entries",
+ "entryType",
+ "enumerate",
+ "enumerateEditable",
+ "error",
+ "errorCode",
+ "escape",
+ "eval",
+ "evaluate",
+ "event",
+ "eventPhase",
+ "every",
+ "exception",
+ "exec",
+ "execCommand",
+ "execCommandShowHelp",
+ "execScript",
+ "exitFullscreen",
+ "exitPointerLock",
+ "exp",
+ "expand",
+ "expandEntityReferences",
+ "expando",
+ "expansion",
+ "expiryDate",
+ "explicitOriginalTarget",
+ "expm1",
+ "exponent",
+ "exponentialRampToValueAtTime",
+ "exportKey",
+ "extend",
+ "extensions",
+ "extentNode",
+ "extentOffset",
+ "external",
+ "externalResourcesRequired",
+ "extractContents",
+ "extractable",
+ "f",
+ "face",
+ "factoryReset",
+ "fallback",
+ "familyName",
+ "farthestViewportElement",
+ "fastSeek",
+ "fatal",
+ "fetch",
+ "fetchStart",
+ "fftSize",
+ "fgColor",
+ "fileCreatedDate",
+ "fileHandle",
+ "fileModifiedDate",
+ "fileName",
+ "fileSize",
+ "fileUpdatedDate",
+ "filename",
+ "files",
+ "fill",
+ "fill-opacity",
+ "fill-rule",
+ "fillOpacity",
+ "fillRect",
+ "fillRule",
+ "fillStyle",
+ "fillText",
+ "filter",
+ "filterResX",
+ "filterResY",
+ "filterUnits",
+ "filters",
+ "finally",
+ "find",
+ "findIndex",
+ "findRule",
+ "findText",
+ "finish",
+ "fireEvent",
+ "firstChild",
+ "firstElementChild",
+ "firstPage",
+ "fixed",
+ "flex",
+ "flex-basis",
+ "flex-direction",
+ "flex-flow",
+ "flex-grow",
+ "flex-shrink",
+ "flex-wrap",
+ "flexBasis",
+ "flexDirection",
+ "flexFlow",
+ "flexGrow",
+ "flexShrink",
+ "flexWrap",
+ "flipX",
+ "flipY",
+ "float",
+ "flood-color",
+ "flood-opacity",
+ "floodColor",
+ "floodOpacity",
+ "floor",
+ "flush",
+ "focus",
+ "focusNode",
+ "focusOffset",
+ "font",
+ "font-family",
+ "font-feature-settings",
+ "font-kerning",
+ "font-language-override",
+ "font-size",
+ "font-size-adjust",
+ "font-stretch",
+ "font-style",
+ "font-synthesis",
+ "font-variant",
+ "font-variant-alternates",
+ "font-variant-caps",
+ "font-variant-east-asian",
+ "font-variant-ligatures",
+ "font-variant-numeric",
+ "font-variant-position",
+ "font-weight",
+ "fontFamily",
+ "fontFeatureSettings",
+ "fontKerning",
+ "fontLanguageOverride",
+ "fontSize",
+ "fontSizeAdjust",
+ "fontSmoothingEnabled",
+ "fontStretch",
+ "fontStyle",
+ "fontSynthesis",
+ "fontVariant",
+ "fontVariantAlternates",
+ "fontVariantCaps",
+ "fontVariantEastAsian",
+ "fontVariantLigatures",
+ "fontVariantNumeric",
+ "fontVariantPosition",
+ "fontWeight",
+ "fontcolor",
+ "fonts",
+ "fontsize",
+ "for",
+ "forEach",
+ "forceRedraw",
+ "form",
+ "formAction",
+ "formEnctype",
+ "formMethod",
+ "formNoValidate",
+ "formTarget",
+ "format",
+ "formatToParts",
+ "forms",
+ "forward",
+ "fr",
+ "frame",
+ "frameBorder",
+ "frameElement",
+ "frameSpacing",
+ "framebufferRenderbuffer",
+ "framebufferTexture2D",
+ "frames",
+ "freeSpace",
+ "freeze",
+ "frequency",
+ "frequencyBinCount",
+ "from",
+ "fromCharCode",
+ "fromCodePoint",
+ "fromElement",
+ "frontFace",
+ "fround",
+ "fullScreen",
+ "fullscreenElement",
+ "fullscreenEnabled",
+ "fx",
+ "fy",
+ "gain",
+ "gamepad",
+ "gamma",
+ "genderIdentity",
+ "generateKey",
+ "generateMipmap",
+ "generateRequest",
+ "geolocation",
+ "gestureObject",
+ "get",
+ "getActiveAttrib",
+ "getActiveUniform",
+ "getAdjacentText",
+ "getAll",
+ "getAllResponseHeaders",
+ "getAsFile",
+ "getAsString",
+ "getAttachedShaders",
+ "getAttribLocation",
+ "getAttribute",
+ "getAttributeNS",
+ "getAttributeNode",
+ "getAttributeNodeNS",
+ "getAudioTracks",
+ "getBBox",
+ "getBattery",
+ "getBlob",
+ "getBookmark",
+ "getBoundingClientRect",
+ "getBufferParameter",
+ "getByteFrequencyData",
+ "getByteTimeDomainData",
+ "getCSSCanvasContext",
+ "getCTM",
+ "getCandidateWindowClientRect",
+ "getChannelData",
+ "getCharNumAtPosition",
+ "getClientRect",
+ "getClientRects",
+ "getCompositionAlternatives",
+ "getComputedStyle",
+ "getComputedTextLength",
+ "getConfiguration",
+ "getContext",
+ "getContextAttributes",
+ "getCounterValue",
+ "getCueAsHTML",
+ "getCueById",
+ "getCurrentPosition",
+ "getCurrentTime",
+ "getData",
+ "getDatabaseNames",
+ "getDate",
+ "getDay",
+ "getDefaultComputedStyle",
+ "getDestinationInsertionPoints",
+ "getDistributedNodes",
+ "getEditable",
+ "getElementById",
+ "getElementsByClassName",
+ "getElementsByName",
+ "getElementsByTagName",
+ "getElementsByTagNameNS",
+ "getEnclosureList",
+ "getEndPositionOfChar",
+ "getEntries",
+ "getEntriesByName",
+ "getEntriesByType",
+ "getError",
+ "getExtension",
+ "getExtentOfChar",
+ "getFeature",
+ "getFile",
+ "getFloat32",
+ "getFloat64",
+ "getFloatFrequencyData",
+ "getFloatTimeDomainData",
+ "getFloatValue",
+ "getFramebufferAttachmentParameter",
+ "getFrequencyResponse",
+ "getFullYear",
+ "getGamepads",
+ "getHours",
+ "getImageData",
+ "getInt16",
+ "getInt32",
+ "getInt8",
+ "getIntersectionList",
+ "getItem",
+ "getItems",
+ "getKey",
+ "getLineDash",
+ "getLocalStreams",
+ "getMarks",
+ "getMatchedCSSRules",
+ "getMeasures",
+ "getMetadata",
+ "getMilliseconds",
+ "getMinutes",
+ "getModifierState",
+ "getMonth",
+ "getNamedItem",
+ "getNamedItemNS",
+ "getNotifier",
+ "getNumberOfChars",
+ "getOverrideHistoryNavigationMode",
+ "getOverrideStyle",
+ "getOwnPropertyDescriptor",
+ "getOwnPropertyNames",
+ "getOwnPropertySymbols",
+ "getParameter",
+ "getPathSegAtLength",
+ "getPointAtLength",
+ "getPreference",
+ "getPreferenceDefault",
+ "getPresentationAttribute",
+ "getPreventDefault",
+ "getProgramInfoLog",
+ "getProgramParameter",
+ "getPropertyCSSValue",
+ "getPropertyPriority",
+ "getPropertyShorthand",
+ "getPropertyValue",
+ "getPrototypeOf",
+ "getRGBColorValue",
+ "getRandomValues",
+ "getRangeAt",
+ "getReceivers",
+ "getRectValue",
+ "getRegistration",
+ "getRemoteStreams",
+ "getRenderbufferParameter",
+ "getResponseHeader",
+ "getRoot",
+ "getRotationOfChar",
+ "getSVGDocument",
+ "getScreenCTM",
+ "getSeconds",
+ "getSelection",
+ "getSenders",
+ "getShaderInfoLog",
+ "getShaderParameter",
+ "getShaderPrecisionFormat",
+ "getShaderSource",
+ "getSimpleDuration",
+ "getSiteIcons",
+ "getSources",
+ "getSpeculativeParserUrls",
+ "getStartPositionOfChar",
+ "getStartTime",
+ "getStats",
+ "getStorageUpdates",
+ "getStreamById",
+ "getStringValue",
+ "getSubStringLength",
+ "getSubscription",
+ "getSupportedExtensions",
+ "getTexParameter",
+ "getTime",
+ "getTimezoneOffset",
+ "getTotalLength",
+ "getTrackById",
+ "getTracks",
+ "getTransformToElement",
+ "getUTCDate",
+ "getUTCDay",
+ "getUTCFullYear",
+ "getUTCHours",
+ "getUTCMilliseconds",
+ "getUTCMinutes",
+ "getUTCMonth",
+ "getUTCSeconds",
+ "getUint16",
+ "getUint32",
+ "getUint8",
+ "getUniform",
+ "getUniformLocation",
+ "getUserMedia",
+ "getValues",
+ "getVarDate",
+ "getVariableValue",
+ "getVertexAttrib",
+ "getVertexAttribOffset",
+ "getVideoPlaybackQuality",
+ "getVideoTracks",
+ "getWakeLockState",
+ "getYear",
+ "givenName",
+ "global",
+ "globalAlpha",
+ "globalCompositeOperation",
+ "glyphOrientationHorizontal",
+ "glyphOrientationVertical",
+ "glyphRef",
+ "go",
+ "gradientTransform",
+ "gradientUnits",
+ "grammars",
+ "green",
+ "group",
+ "groupCollapsed",
+ "groupEnd",
+ "hardwareConcurrency",
+ "has",
+ "hasAttribute",
+ "hasAttributeNS",
+ "hasAttributes",
+ "hasChildNodes",
+ "hasComposition",
+ "hasExtension",
+ "hasFeature",
+ "hasFocus",
+ "hasLayout",
+ "hasOwnProperty",
+ "hash",
+ "head",
+ "headers",
+ "heading",
+ "height",
+ "hidden",
+ "hide",
+ "hideFocus",
+ "high",
+ "hint",
+ "history",
+ "honorificPrefix",
+ "honorificSuffix",
+ "horizontalOverflow",
+ "host",
+ "hostname",
+ "href",
+ "hreflang",
+ "hspace",
+ "html5TagCheckInerface",
+ "htmlFor",
+ "htmlText",
+ "httpEquiv",
+ "hwTimestamp",
+ "hypot",
+ "iccId",
+ "iceConnectionState",
+ "iceGatheringState",
+ "icon",
+ "id",
+ "identifier",
+ "identity",
+ "ignoreBOM",
+ "ignoreCase",
+ "image-orientation",
+ "image-rendering",
+ "imageOrientation",
+ "imageRendering",
+ "images",
+ "ime-mode",
+ "imeMode",
+ "implementation",
+ "importKey",
+ "importNode",
+ "importStylesheet",
+ "imports",
+ "impp",
+ "imul",
+ "in1",
+ "in2",
+ "inBandMetadataTrackDispatchType",
+ "inRange",
+ "includes",
+ "incremental",
+ "indeterminate",
+ "index",
+ "indexNames",
+ "indexOf",
+ "indexedDB",
+ "inertiaDestinationX",
+ "inertiaDestinationY",
+ "info",
+ "init",
+ "initAnimationEvent",
+ "initBeforeLoadEvent",
+ "initClipboardEvent",
+ "initCloseEvent",
+ "initCommandEvent",
+ "initCompositionEvent",
+ "initCustomEvent",
+ "initData",
+ "initDeviceMotionEvent",
+ "initDeviceOrientationEvent",
+ "initDragEvent",
+ "initErrorEvent",
+ "initEvent",
+ "initFocusEvent",
+ "initGestureEvent",
+ "initHashChangeEvent",
+ "initKeyEvent",
+ "initKeyboardEvent",
+ "initMSManipulationEvent",
+ "initMessageEvent",
+ "initMouseEvent",
+ "initMouseScrollEvent",
+ "initMouseWheelEvent",
+ "initMutationEvent",
+ "initNSMouseEvent",
+ "initOverflowEvent",
+ "initPageEvent",
+ "initPageTransitionEvent",
+ "initPointerEvent",
+ "initPopStateEvent",
+ "initProgressEvent",
+ "initScrollAreaEvent",
+ "initSimpleGestureEvent",
+ "initStorageEvent",
+ "initTextEvent",
+ "initTimeEvent",
+ "initTouchEvent",
+ "initTransitionEvent",
+ "initUIEvent",
+ "initWebKitAnimationEvent",
+ "initWebKitTransitionEvent",
+ "initWebKitWheelEvent",
+ "initWheelEvent",
+ "initialTime",
+ "initialize",
+ "initiatorType",
+ "inner",
+ "innerHTML",
+ "innerHeight",
+ "innerText",
+ "innerWidth",
+ "input",
+ "inputBuffer",
+ "inputEncoding",
+ "inputMethod",
+ "insertAdjacentElement",
+ "insertAdjacentHTML",
+ "insertAdjacentText",
+ "insertBefore",
+ "insertCell",
+ "insertData",
+ "insertItemBefore",
+ "insertNode",
+ "insertRow",
+ "insertRule",
+ "instanceRoot",
+ "intercept",
+ "interimResults",
+ "internalSubset",
+ "intersectsNode",
+ "interval",
+ "invalidIteratorState",
+ "inverse",
+ "invertSelf",
+ "is",
+ "is2D",
+ "isAlternate",
+ "isArray",
+ "isBingCurrentSearchDefault",
+ "isBuffer",
+ "isCandidateWindowVisible",
+ "isChar",
+ "isCollapsed",
+ "isComposing",
+ "isContentEditable",
+ "isContentHandlerRegistered",
+ "isContextLost",
+ "isDefaultNamespace",
+ "isDisabled",
+ "isEnabled",
+ "isEqual",
+ "isEqualNode",
+ "isExtensible",
+ "isFinite",
+ "isFramebuffer",
+ "isFrozen",
+ "isGenerator",
+ "isId",
+ "isInjected",
+ "isInteger",
+ "isMap",
+ "isMultiLine",
+ "isNaN",
+ "isOpen",
+ "isPointInFill",
+ "isPointInPath",
+ "isPointInRange",
+ "isPointInStroke",
+ "isPrefAlternate",
+ "isPrimary",
+ "isProgram",
+ "isPropertyImplicit",
+ "isProtocolHandlerRegistered",
+ "isPrototypeOf",
+ "isRenderbuffer",
+ "isSafeInteger",
+ "isSameNode",
+ "isSealed",
+ "isShader",
+ "isSupported",
+ "isTextEdit",
+ "isTexture",
+ "isTrusted",
+ "isTypeSupported",
+ "isView",
+ "isolation",
+ "italics",
+ "item",
+ "itemId",
+ "itemProp",
+ "itemRef",
+ "itemScope",
+ "itemType",
+ "itemValue",
+ "iterateNext",
+ "iterator",
+ "javaEnabled",
+ "jobTitle",
+ "join",
+ "json",
+ "justify-content",
+ "justifyContent",
+ "k1",
+ "k2",
+ "k3",
+ "k4",
+ "kernelMatrix",
+ "kernelUnitLengthX",
+ "kernelUnitLengthY",
+ "kerning",
+ "key",
+ "keyCode",
+ "keyFor",
+ "keyIdentifier",
+ "keyLightEnabled",
+ "keyLocation",
+ "keyPath",
+ "keySystem",
+ "keyText",
+ "keyUsage",
+ "keys",
+ "keytype",
+ "kind",
+ "knee",
+ "label",
+ "labels",
+ "lang",
+ "language",
+ "languages",
+ "largeArcFlag",
+ "lastChild",
+ "lastElementChild",
+ "lastEventId",
+ "lastIndex",
+ "lastIndexOf",
+ "lastMatch",
+ "lastMessageSubject",
+ "lastMessageType",
+ "lastModified",
+ "lastModifiedDate",
+ "lastPage",
+ "lastParen",
+ "lastState",
+ "lastStyleSheetSet",
+ "latitude",
+ "layerX",
+ "layerY",
+ "layoutFlow",
+ "layoutGrid",
+ "layoutGridChar",
+ "layoutGridLine",
+ "layoutGridMode",
+ "layoutGridType",
+ "lbound",
+ "left",
+ "leftContext",
+ "leftMargin",
+ "length",
+ "lengthAdjust",
+ "lengthComputable",
+ "letter-spacing",
+ "letterSpacing",
+ "level",
+ "lighting-color",
+ "lightingColor",
+ "limitingConeAngle",
+ "line",
+ "line-height",
+ "lineAlign",
+ "lineBreak",
+ "lineCap",
+ "lineDashOffset",
+ "lineHeight",
+ "lineJoin",
+ "lineNumber",
+ "lineTo",
+ "lineWidth",
+ "linearRampToValueAtTime",
+ "lineno",
+ "link",
+ "linkColor",
+ "linkProgram",
+ "links",
+ "list",
+ "list-style",
+ "list-style-image",
+ "list-style-position",
+ "list-style-type",
+ "listStyle",
+ "listStyleImage",
+ "listStylePosition",
+ "listStyleType",
+ "listener",
+ "load",
+ "loadEventEnd",
+ "loadEventStart",
+ "loadTimes",
+ "loaded",
+ "localDescription",
+ "localName",
+ "localStorage",
+ "locale",
+ "localeCompare",
+ "location",
+ "locationbar",
+ "lock",
+ "lockedFile",
+ "log",
+ "log10",
+ "log1p",
+ "log2",
+ "logicalXDPI",
+ "logicalYDPI",
+ "longDesc",
+ "longitude",
+ "lookupNamespaceURI",
+ "lookupPrefix",
+ "loop",
+ "loopEnd",
+ "loopStart",
+ "looping",
+ "low",
+ "lower",
+ "lowerBound",
+ "lowerOpen",
+ "lowsrc",
+ "m11",
+ "m12",
+ "m13",
+ "m14",
+ "m21",
+ "m22",
+ "m23",
+ "m24",
+ "m31",
+ "m32",
+ "m33",
+ "m34",
+ "m41",
+ "m42",
+ "m43",
+ "m44",
+ "manifest",
+ "map",
+ "mapping",
+ "margin",
+ "margin-bottom",
+ "margin-left",
+ "margin-right",
+ "margin-top",
+ "marginBottom",
+ "marginHeight",
+ "marginLeft",
+ "marginRight",
+ "marginTop",
+ "marginWidth",
+ "mark",
+ "marker",
+ "marker-end",
+ "marker-mid",
+ "marker-offset",
+ "marker-start",
+ "markerEnd",
+ "markerHeight",
+ "markerMid",
+ "markerOffset",
+ "markerStart",
+ "markerUnits",
+ "markerWidth",
+ "marks",
+ "mask",
+ "mask-type",
+ "maskContentUnits",
+ "maskType",
+ "maskUnits",
+ "match",
+ "matchMedia",
+ "matchMedium",
+ "matches",
+ "matrix",
+ "matrixTransform",
+ "max",
+ "max-height",
+ "max-width",
+ "maxAlternatives",
+ "maxChannelCount",
+ "maxConnectionsPerServer",
+ "maxDecibels",
+ "maxDistance",
+ "maxHeight",
+ "maxLength",
+ "maxTouchPoints",
+ "maxValue",
+ "maxWidth",
+ "measure",
+ "measureText",
+ "media",
+ "mediaCapabilities",
+ "mediaDevices",
+ "mediaElement",
+ "mediaGroup",
+ "mediaKeys",
+ "mediaText",
+ "meetOrSlice",
+ "memory",
+ "menubar",
+ "mergeAttributes",
+ "message",
+ "messageClass",
+ "messageHandlers",
+ "metaKey",
+ "method",
+ "mimeType",
+ "mimeTypes",
+ "min",
+ "min-height",
+ "min-width",
+ "minDecibels",
+ "minHeight",
+ "minValue",
+ "minWidth",
+ "miterLimit",
+ "mix-blend-mode",
+ "mixBlendMode",
+ "mode",
+ "modify",
+ "mount",
+ "move",
+ "moveBy",
+ "moveEnd",
+ "moveFirst",
+ "moveFocusDown",
+ "moveFocusLeft",
+ "moveFocusRight",
+ "moveFocusUp",
+ "moveNext",
+ "moveRow",
+ "moveStart",
+ "moveTo",
+ "moveToBookmark",
+ "moveToElementText",
+ "moveToPoint",
+ "mozAdd",
+ "mozAnimationStartTime",
+ "mozAnon",
+ "mozApps",
+ "mozAudioCaptured",
+ "mozAudioChannelType",
+ "mozAutoplayEnabled",
+ "mozCancelAnimationFrame",
+ "mozCancelFullScreen",
+ "mozCancelRequestAnimationFrame",
+ "mozCaptureStream",
+ "mozCaptureStreamUntilEnded",
+ "mozClearDataAt",
+ "mozContact",
+ "mozContacts",
+ "mozCreateFileHandle",
+ "mozCurrentTransform",
+ "mozCurrentTransformInverse",
+ "mozCursor",
+ "mozDash",
+ "mozDashOffset",
+ "mozDecodedFrames",
+ "mozExitPointerLock",
+ "mozFillRule",
+ "mozFragmentEnd",
+ "mozFrameDelay",
+ "mozFullScreen",
+ "mozFullScreenElement",
+ "mozFullScreenEnabled",
+ "mozGetAll",
+ "mozGetAllKeys",
+ "mozGetAsFile",
+ "mozGetDataAt",
+ "mozGetMetadata",
+ "mozGetUserMedia",
+ "mozHasAudio",
+ "mozHasItem",
+ "mozHidden",
+ "mozImageSmoothingEnabled",
+ "mozIndexedDB",
+ "mozInnerScreenX",
+ "mozInnerScreenY",
+ "mozInputSource",
+ "mozIsTextField",
+ "mozItem",
+ "mozItemCount",
+ "mozItems",
+ "mozLength",
+ "mozLockOrientation",
+ "mozMatchesSelector",
+ "mozMovementX",
+ "mozMovementY",
+ "mozOpaque",
+ "mozOrientation",
+ "mozPaintCount",
+ "mozPaintedFrames",
+ "mozParsedFrames",
+ "mozPay",
+ "mozPointerLockElement",
+ "mozPresentedFrames",
+ "mozPreservesPitch",
+ "mozPressure",
+ "mozPrintCallback",
+ "mozRTCIceCandidate",
+ "mozRTCPeerConnection",
+ "mozRTCSessionDescription",
+ "mozRemove",
+ "mozRequestAnimationFrame",
+ "mozRequestFullScreen",
+ "mozRequestPointerLock",
+ "mozSetDataAt",
+ "mozSetImageElement",
+ "mozSourceNode",
+ "mozSrcObject",
+ "mozSystem",
+ "mozTCPSocket",
+ "mozTextStyle",
+ "mozTypesAt",
+ "mozUnlockOrientation",
+ "mozUserCancelled",
+ "mozVisibilityState",
+ "msAnimation",
+ "msAnimationDelay",
+ "msAnimationDirection",
+ "msAnimationDuration",
+ "msAnimationFillMode",
+ "msAnimationIterationCount",
+ "msAnimationName",
+ "msAnimationPlayState",
+ "msAnimationStartTime",
+ "msAnimationTimingFunction",
+ "msBackfaceVisibility",
+ "msBlockProgression",
+ "msCSSOMElementFloatMetrics",
+ "msCaching",
+ "msCachingEnabled",
+ "msCancelRequestAnimationFrame",
+ "msCapsLockWarningOff",
+ "msClearImmediate",
+ "msClose",
+ "msContentZoomChaining",
+ "msContentZoomFactor",
+ "msContentZoomLimit",
+ "msContentZoomLimitMax",
+ "msContentZoomLimitMin",
+ "msContentZoomSnap",
+ "msContentZoomSnapPoints",
+ "msContentZoomSnapType",
+ "msContentZooming",
+ "msConvertURL",
+ "msCrypto",
+ "msDoNotTrack",
+ "msElementsFromPoint",
+ "msElementsFromRect",
+ "msExitFullscreen",
+ "msExtendedCode",
+ "msFillRule",
+ "msFirstPaint",
+ "msFlex",
+ "msFlexAlign",
+ "msFlexDirection",
+ "msFlexFlow",
+ "msFlexItemAlign",
+ "msFlexLinePack",
+ "msFlexNegative",
+ "msFlexOrder",
+ "msFlexPack",
+ "msFlexPositive",
+ "msFlexPreferredSize",
+ "msFlexWrap",
+ "msFlowFrom",
+ "msFlowInto",
+ "msFontFeatureSettings",
+ "msFullscreenElement",
+ "msFullscreenEnabled",
+ "msGetInputContext",
+ "msGetRegionContent",
+ "msGetUntransformedBounds",
+ "msGraphicsTrustStatus",
+ "msGridColumn",
+ "msGridColumnAlign",
+ "msGridColumnSpan",
+ "msGridColumns",
+ "msGridRow",
+ "msGridRowAlign",
+ "msGridRowSpan",
+ "msGridRows",
+ "msHidden",
+ "msHighContrastAdjust",
+ "msHyphenateLimitChars",
+ "msHyphenateLimitLines",
+ "msHyphenateLimitZone",
+ "msHyphens",
+ "msImageSmoothingEnabled",
+ "msImeAlign",
+ "msIndexedDB",
+ "msInterpolationMode",
+ "msIsStaticHTML",
+ "msKeySystem",
+ "msKeys",
+ "msLaunchUri",
+ "msLockOrientation",
+ "msManipulationViewsEnabled",
+ "msMatchMedia",
+ "msMatchesSelector",
+ "msMaxTouchPoints",
+ "msOrientation",
+ "msOverflowStyle",
+ "msPerspective",
+ "msPerspectiveOrigin",
+ "msPlayToDisabled",
+ "msPlayToPreferredSourceUri",
+ "msPlayToPrimary",
+ "msPointerEnabled",
+ "msRegionOverflow",
+ "msReleasePointerCapture",
+ "msRequestAnimationFrame",
+ "msRequestFullscreen",
+ "msSaveBlob",
+ "msSaveOrOpenBlob",
+ "msScrollChaining",
+ "msScrollLimit",
+ "msScrollLimitXMax",
+ "msScrollLimitXMin",
+ "msScrollLimitYMax",
+ "msScrollLimitYMin",
+ "msScrollRails",
+ "msScrollSnapPointsX",
+ "msScrollSnapPointsY",
+ "msScrollSnapType",
+ "msScrollSnapX",
+ "msScrollSnapY",
+ "msScrollTranslation",
+ "msSetImmediate",
+ "msSetMediaKeys",
+ "msSetPointerCapture",
+ "msTextCombineHorizontal",
+ "msTextSizeAdjust",
+ "msToBlob",
+ "msTouchAction",
+ "msTouchSelect",
+ "msTraceAsyncCallbackCompleted",
+ "msTraceAsyncCallbackStarting",
+ "msTraceAsyncOperationCompleted",
+ "msTraceAsyncOperationStarting",
+ "msTransform",
+ "msTransformOrigin",
+ "msTransformStyle",
+ "msTransition",
+ "msTransitionDelay",
+ "msTransitionDuration",
+ "msTransitionProperty",
+ "msTransitionTimingFunction",
+ "msUnlockOrientation",
+ "msUpdateAsyncCallbackRelation",
+ "msUserSelect",
+ "msVisibilityState",
+ "msWrapFlow",
+ "msWrapMargin",
+ "msWrapThrough",
+ "msWriteProfilerMark",
+ "msZoom",
+ "msZoomTo",
+ "mt",
+ "multiEntry",
+ "multiSelectionObj",
+ "multiline",
+ "multiple",
+ "multiply",
+ "multiplySelf",
+ "mutableFile",
+ "muted",
+ "n",
+ "name",
+ "nameProp",
+ "namedItem",
+ "namedRecordset",
+ "names",
+ "namespaceURI",
+ "namespaces",
+ "naturalHeight",
+ "naturalWidth",
+ "navigate",
+ "navigation",
+ "navigationMode",
+ "navigationStart",
+ "navigator",
+ "near",
+ "nearestViewportElement",
+ "negative",
+ "netscape",
+ "networkState",
+ "newScale",
+ "newTranslate",
+ "newURL",
+ "newValue",
+ "newValueSpecifiedUnits",
+ "newVersion",
+ "newhome",
+ "next",
+ "nextElementSibling",
+ "nextNode",
+ "nextPage",
+ "nextSibling",
+ "nickname",
+ "noHref",
+ "noResize",
+ "noShade",
+ "noValidate",
+ "noWrap",
+ "nodeName",
+ "nodeType",
+ "nodeValue",
+ "normalize",
+ "normalizedPathSegList",
+ "notationName",
+ "notations",
+ "note",
+ "noteGrainOn",
+ "noteOff",
+ "noteOn",
+ "now",
+ "numOctaves",
+ "number",
+ "numberOfChannels",
+ "numberOfInputs",
+ "numberOfItems",
+ "numberOfOutputs",
+ "numberValue",
+ "oMatchesSelector",
+ "object",
+ "object-fit",
+ "object-position",
+ "objectFit",
+ "objectPosition",
+ "objectStore",
+ "objectStoreNames",
+ "observe",
+ "of",
+ "offscreenBuffering",
+ "offset",
+ "offsetHeight",
+ "offsetLeft",
+ "offsetNode",
+ "offsetParent",
+ "offsetTop",
+ "offsetWidth",
+ "offsetX",
+ "offsetY",
+ "ok",
+ "oldURL",
+ "oldValue",
+ "oldVersion",
+ "olderShadowRoot",
+ "onLine",
+ "onabort",
+ "onactivate",
+ "onactive",
+ "onaddstream",
+ "onaddtrack",
+ "onafterprint",
+ "onafterscriptexecute",
+ "onafterupdate",
+ "onaudioend",
+ "onaudioprocess",
+ "onaudiostart",
+ "onautocomplete",
+ "onautocompleteerror",
+ "onbeforeactivate",
+ "onbeforecopy",
+ "onbeforecut",
+ "onbeforedeactivate",
+ "onbeforeeditfocus",
+ "onbeforepaste",
+ "onbeforeprint",
+ "onbeforescriptexecute",
+ "onbeforeunload",
+ "onbeforeupdate",
+ "onblocked",
+ "onblur",
+ "onbounce",
+ "onboundary",
+ "oncached",
+ "oncancel",
+ "oncandidatewindowhide",
+ "oncandidatewindowshow",
+ "oncandidatewindowupdate",
+ "oncanplay",
+ "oncanplaythrough",
+ "once",
+ "oncellchange",
+ "onchange",
+ "onchargingchange",
+ "onchargingtimechange",
+ "onchecking",
+ "onclick",
+ "onclose",
+ "oncompassneedscalibration",
+ "oncomplete",
+ "oncontextmenu",
+ "oncontrolselect",
+ "oncopy",
+ "oncuechange",
+ "oncut",
+ "ondataavailable",
+ "ondatachannel",
+ "ondatasetchanged",
+ "ondatasetcomplete",
+ "ondblclick",
+ "ondeactivate",
+ "ondevicelight",
+ "ondevicemotion",
+ "ondeviceorientation",
+ "ondeviceproximity",
+ "ondischargingtimechange",
+ "ondisplay",
+ "ondownloading",
+ "ondrag",
+ "ondragend",
+ "ondragenter",
+ "ondragleave",
+ "ondragover",
+ "ondragstart",
+ "ondrop",
+ "ondurationchange",
+ "onemptied",
+ "onencrypted",
+ "onend",
+ "onended",
+ "onenter",
+ "onerror",
+ "onerrorupdate",
+ "onexit",
+ "onfilterchange",
+ "onfinish",
+ "onfocus",
+ "onfocusin",
+ "onfocusout",
+ "onfullscreenchange",
+ "onfullscreenerror",
+ "ongesturechange",
+ "ongestureend",
+ "ongesturestart",
+ "ongotpointercapture",
+ "onhashchange",
+ "onhelp",
+ "onicecandidate",
+ "oniceconnectionstatechange",
+ "oninactive",
+ "oninput",
+ "oninvalid",
+ "onkeydown",
+ "onkeypress",
+ "onkeyup",
+ "onlanguagechange",
+ "onlayoutcomplete",
+ "onlevelchange",
+ "onload",
+ "onloadeddata",
+ "onloadedmetadata",
+ "onloadend",
+ "onloadstart",
+ "onlosecapture",
+ "onlostpointercapture",
+ "only",
+ "onmark",
+ "onmessage",
+ "onmousedown",
+ "onmouseenter",
+ "onmouseleave",
+ "onmousemove",
+ "onmouseout",
+ "onmouseover",
+ "onmouseup",
+ "onmousewheel",
+ "onmove",
+ "onmoveend",
+ "onmovestart",
+ "onmozfullscreenchange",
+ "onmozfullscreenerror",
+ "onmozorientationchange",
+ "onmozpointerlockchange",
+ "onmozpointerlockerror",
+ "onmscontentzoom",
+ "onmsfullscreenchange",
+ "onmsfullscreenerror",
+ "onmsgesturechange",
+ "onmsgesturedoubletap",
+ "onmsgestureend",
+ "onmsgesturehold",
+ "onmsgesturestart",
+ "onmsgesturetap",
+ "onmsgotpointercapture",
+ "onmsinertiastart",
+ "onmslostpointercapture",
+ "onmsmanipulationstatechanged",
+ "onmsneedkey",
+ "onmsorientationchange",
+ "onmspointercancel",
+ "onmspointerdown",
+ "onmspointerenter",
+ "onmspointerhover",
+ "onmspointerleave",
+ "onmspointermove",
+ "onmspointerout",
+ "onmspointerover",
+ "onmspointerup",
+ "onmssitemodejumplistitemremoved",
+ "onmsthumbnailclick",
+ "onnegotiationneeded",
+ "onnomatch",
+ "onnoupdate",
+ "onobsolete",
+ "onoffline",
+ "ononline",
+ "onopen",
+ "onorientationchange",
+ "onpagechange",
+ "onpagehide",
+ "onpageshow",
+ "onpaste",
+ "onpause",
+ "onplay",
+ "onplaying",
+ "onpluginstreamstart",
+ "onpointercancel",
+ "onpointerdown",
+ "onpointerenter",
+ "onpointerleave",
+ "onpointerlockchange",
+ "onpointerlockerror",
+ "onpointermove",
+ "onpointerout",
+ "onpointerover",
+ "onpointerup",
+ "onpopstate",
+ "onprogress",
+ "onpropertychange",
+ "onratechange",
+ "onreadystatechange",
+ "onremovestream",
+ "onremovetrack",
+ "onreset",
+ "onresize",
+ "onresizeend",
+ "onresizestart",
+ "onresourcetimingbufferfull",
+ "onresult",
+ "onresume",
+ "onrowenter",
+ "onrowexit",
+ "onrowsdelete",
+ "onrowsinserted",
+ "onscroll",
+ "onsearch",
+ "onseeked",
+ "onseeking",
+ "onselect",
+ "onselectionchange",
+ "onselectstart",
+ "onshow",
+ "onsignalingstatechange",
+ "onsoundend",
+ "onsoundstart",
+ "onspeechend",
+ "onspeechstart",
+ "onstalled",
+ "onstart",
+ "onstatechange",
+ "onstop",
+ "onstorage",
+ "onstoragecommit",
+ "onsubmit",
+ "onsuccess",
+ "onsuspend",
+ "ontextinput",
+ "ontimeout",
+ "ontimeupdate",
+ "ontoggle",
+ "ontouchcancel",
+ "ontouchend",
+ "ontouchmove",
+ "ontouchstart",
+ "ontransitionend",
+ "onunload",
+ "onupdateready",
+ "onupgradeneeded",
+ "onuserproximity",
+ "onversionchange",
+ "onvoiceschanged",
+ "onvolumechange",
+ "onwaiting",
+ "onwarning",
+ "onwebkitanimationend",
+ "onwebkitanimationiteration",
+ "onwebkitanimationstart",
+ "onwebkitcurrentplaybacktargetiswirelesschanged",
+ "onwebkitfullscreenchange",
+ "onwebkitfullscreenerror",
+ "onwebkitkeyadded",
+ "onwebkitkeyerror",
+ "onwebkitkeymessage",
+ "onwebkitneedkey",
+ "onwebkitorientationchange",
+ "onwebkitplaybacktargetavailabilitychanged",
+ "onwebkitpointerlockchange",
+ "onwebkitpointerlockerror",
+ "onwebkitresourcetimingbufferfull",
+ "onwebkittransitionend",
+ "onwheel",
+ "onzoom",
+ "opacity",
+ "open",
+ "openCursor",
+ "openDatabase",
+ "openKeyCursor",
+ "opener",
+ "opera",
+ "operationType",
+ "operator",
+ "opr",
+ "optimum",
+ "options",
+ "order",
+ "orderX",
+ "orderY",
+ "ordered",
+ "org",
+ "orient",
+ "orientAngle",
+ "orientType",
+ "orientation",
+ "origin",
+ "originalTarget",
+ "orphans",
+ "oscpu",
+ "outerHTML",
+ "outerHeight",
+ "outerText",
+ "outerWidth",
+ "outline",
+ "outline-color",
+ "outline-offset",
+ "outline-style",
+ "outline-width",
+ "outlineColor",
+ "outlineOffset",
+ "outlineStyle",
+ "outlineWidth",
+ "outputBuffer",
+ "overflow",
+ "overflow-x",
+ "overflow-y",
+ "overflowX",
+ "overflowY",
+ "overrideMimeType",
+ "oversample",
+ "ownerDocument",
+ "ownerElement",
+ "ownerNode",
+ "ownerRule",
+ "ownerSVGElement",
+ "owningElement",
+ "p1",
+ "p2",
+ "p3",
+ "p4",
+ "pad",
+ "padding",
+ "padding-bottom",
+ "padding-left",
+ "padding-right",
+ "padding-top",
+ "paddingBottom",
+ "paddingLeft",
+ "paddingRight",
+ "paddingTop",
+ "page",
+ "page-break-after",
+ "page-break-before",
+ "page-break-inside",
+ "pageBreakAfter",
+ "pageBreakBefore",
+ "pageBreakInside",
+ "pageCount",
+ "pageX",
+ "pageXOffset",
+ "pageY",
+ "pageYOffset",
+ "pages",
+ "paint-order",
+ "paintOrder",
+ "paintRequests",
+ "paintType",
+ "palette",
+ "panningModel",
+ "parent",
+ "parentElement",
+ "parentNode",
+ "parentRule",
+ "parentStyleSheet",
+ "parentTextEdit",
+ "parentWindow",
+ "parse",
+ "parseFloat",
+ "parseFromString",
+ "parseInt",
+ "participants",
+ "passive",
+ "password",
+ "pasteHTML",
+ "path",
+ "pathLength",
+ "pathSegList",
+ "pathSegType",
+ "pathSegTypeAsLetter",
+ "pathname",
+ "pattern",
+ "patternContentUnits",
+ "patternMismatch",
+ "patternTransform",
+ "patternUnits",
+ "pause",
+ "pauseAnimations",
+ "pauseOnExit",
+ "paused",
+ "pending",
+ "performance",
+ "permission",
+ "persisted",
+ "personalbar",
+ "perspective",
+ "perspective-origin",
+ "perspectiveOrigin",
+ "phoneticFamilyName",
+ "phoneticGivenName",
+ "photo",
+ "ping",
+ "pitch",
+ "pixelBottom",
+ "pixelDepth",
+ "pixelHeight",
+ "pixelLeft",
+ "pixelRight",
+ "pixelStorei",
+ "pixelTop",
+ "pixelUnitToMillimeterX",
+ "pixelUnitToMillimeterY",
+ "pixelWidth",
+ "placeholder",
+ "platform",
+ "play",
+ "playbackRate",
+ "playbackState",
+ "playbackTime",
+ "played",
+ "plugins",
+ "pluginspage",
+ "pname",
+ "pointer-events",
+ "pointerBeforeReferenceNode",
+ "pointerEnabled",
+ "pointerEvents",
+ "pointerId",
+ "pointerLockElement",
+ "pointerType",
+ "points",
+ "pointsAtX",
+ "pointsAtY",
+ "pointsAtZ",
+ "polygonOffset",
+ "pop",
+ "popupWindowFeatures",
+ "popupWindowName",
+ "popupWindowURI",
+ "port",
+ "port1",
+ "port2",
+ "ports",
+ "posBottom",
+ "posHeight",
+ "posLeft",
+ "posRight",
+ "posTop",
+ "posWidth",
+ "position",
+ "positionAlign",
+ "postError",
+ "postMessage",
+ "poster",
+ "pow",
+ "powerOff",
+ "preMultiplySelf",
+ "precision",
+ "preferredStyleSheetSet",
+ "preferredStylesheetSet",
+ "prefix",
+ "preload",
+ "prepend",
+ "preserveAlpha",
+ "preserveAspectRatio",
+ "preserveAspectRatioString",
+ "pressed",
+ "pressure",
+ "prevValue",
+ "preventDefault",
+ "preventExtensions",
+ "previousElementSibling",
+ "previousNode",
+ "previousPage",
+ "previousScale",
+ "previousSibling",
+ "previousTranslate",
+ "primaryKey",
+ "primitiveType",
+ "primitiveUnits",
+ "principals",
+ "print",
+ "privateKey",
+ "probablySupportsContext",
+ "process",
+ "processIceMessage",
+ "product",
+ "productSub",
+ "profile",
+ "profileEnd",
+ "profiles",
+ "prompt",
+ "properties",
+ "propertyIsEnumerable",
+ "propertyName",
+ "protocol",
+ "protocolLong",
+ "prototype",
+ "pseudoClass",
+ "pseudoElement",
+ "publicId",
+ "publicKey",
+ "published",
+ "push",
+ "pushNotification",
+ "pushState",
+ "put",
+ "putImageData",
+ "quadraticCurveTo",
+ "qualifier",
+ "queryCommandEnabled",
+ "queryCommandIndeterm",
+ "queryCommandState",
+ "queryCommandSupported",
+ "queryCommandText",
+ "queryCommandValue",
+ "querySelector",
+ "querySelectorAll",
+ "quote",
+ "quotes",
+ "r",
+ "r1",
+ "r2",
+ "race",
+ "radiogroup",
+ "radiusX",
+ "radiusY",
+ "random",
+ "range",
+ "rangeCount",
+ "rangeMax",
+ "rangeMin",
+ "rangeOffset",
+ "rangeOverflow",
+ "rangeParent",
+ "rangeUnderflow",
+ "rate",
+ "ratio",
+ "raw",
+ "read",
+ "readAsArrayBuffer",
+ "readAsBinaryString",
+ "readAsBlob",
+ "readAsDataURL",
+ "readAsText",
+ "readOnly",
+ "readPixels",
+ "readReportRequested",
+ "readyState",
+ "reason",
+ "reboot",
+ "receiver",
+ "receivers",
+ "recordNumber",
+ "recordset",
+ "rect",
+ "red",
+ "redirectCount",
+ "redirectEnd",
+ "redirectStart",
+ "reduce",
+ "reduceRight",
+ "reduction",
+ "refDistance",
+ "refX",
+ "refY",
+ "referenceNode",
+ "referrer",
+ "refresh",
+ "region",
+ "regionAnchorX",
+ "regionAnchorY",
+ "regionId",
+ "regions",
+ "register",
+ "registerContentHandler",
+ "registerElement",
+ "registerProtocolHandler",
+ "reject",
+ "rel",
+ "relList",
+ "relatedNode",
+ "relatedTarget",
+ "release",
+ "releaseCapture",
+ "releaseEvents",
+ "releasePointerCapture",
+ "releaseShaderCompiler",
+ "reliable",
+ "reload",
+ "remainingSpace",
+ "remoteDescription",
+ "remove",
+ "removeAllRanges",
+ "removeAttribute",
+ "removeAttributeNS",
+ "removeAttributeNode",
+ "removeBehavior",
+ "removeChild",
+ "removeCue",
+ "removeEventListener",
+ "removeFilter",
+ "removeImport",
+ "removeItem",
+ "removeListener",
+ "removeNamedItem",
+ "removeNamedItemNS",
+ "removeNode",
+ "removeParameter",
+ "removeProperty",
+ "removeRange",
+ "removeRegion",
+ "removeRule",
+ "removeSiteSpecificTrackingException",
+ "removeSourceBuffer",
+ "removeStream",
+ "removeTrack",
+ "removeVariable",
+ "removeWakeLockListener",
+ "removeWebWideTrackingException",
+ "removedNodes",
+ "renderbufferStorage",
+ "renderedBuffer",
+ "renderingMode",
+ "repeat",
+ "replace",
+ "replaceAdjacentText",
+ "replaceChild",
+ "replaceData",
+ "replaceId",
+ "replaceItem",
+ "replaceNode",
+ "replaceState",
+ "replaceTrack",
+ "replaceWholeText",
+ "reportValidity",
+ "requestAnimationFrame",
+ "requestAutocomplete",
+ "requestData",
+ "requestFullscreen",
+ "requestMediaKeySystemAccess",
+ "requestPermission",
+ "requestPointerLock",
+ "requestStart",
+ "requestingWindow",
+ "required",
+ "requiredExtensions",
+ "requiredFeatures",
+ "reset",
+ "resetTransform",
+ "resize",
+ "resizeBy",
+ "resizeTo",
+ "resolve",
+ "response",
+ "responseBody",
+ "responseEnd",
+ "responseStart",
+ "responseText",
+ "responseType",
+ "responseURL",
+ "responseXML",
+ "restore",
+ "result",
+ "resultType",
+ "resume",
+ "returnValue",
+ "rev",
+ "reverse",
+ "reversed",
+ "revocable",
+ "revokeObjectURL",
+ "rgbColor",
+ "right",
+ "rightContext",
+ "rightMargin",
+ "rolloffFactor",
+ "root",
+ "rootElement",
+ "rotate",
+ "rotateAxisAngle",
+ "rotateAxisAngleSelf",
+ "rotateFromVector",
+ "rotateFromVectorSelf",
+ "rotateSelf",
+ "rotation",
+ "rotationRate",
+ "round",
+ "rowIndex",
+ "rowSpan",
+ "rows",
+ "rubyAlign",
+ "rubyOverhang",
+ "rubyPosition",
+ "rules",
+ "runtime",
+ "runtimeStyle",
+ "rx",
+ "ry",
+ "safari",
+ "sampleCoverage",
+ "sampleRate",
+ "sandbox",
+ "save",
+ "scale",
+ "scale3d",
+ "scale3dSelf",
+ "scaleNonUniform",
+ "scaleNonUniformSelf",
+ "scaleSelf",
+ "scheme",
+ "scissor",
+ "scope",
+ "scopeName",
+ "scoped",
+ "screen",
+ "screenBrightness",
+ "screenEnabled",
+ "screenLeft",
+ "screenPixelToMillimeterX",
+ "screenPixelToMillimeterY",
+ "screenTop",
+ "screenX",
+ "screenY",
+ "scripts",
+ "scroll",
+ "scroll-behavior",
+ "scrollAmount",
+ "scrollBehavior",
+ "scrollBy",
+ "scrollByLines",
+ "scrollByPages",
+ "scrollDelay",
+ "scrollHeight",
+ "scrollIntoView",
+ "scrollIntoViewIfNeeded",
+ "scrollLeft",
+ "scrollLeftMax",
+ "scrollMaxX",
+ "scrollMaxY",
+ "scrollTo",
+ "scrollTop",
+ "scrollTopMax",
+ "scrollWidth",
+ "scrollX",
+ "scrollY",
+ "scrollbar3dLightColor",
+ "scrollbarArrowColor",
+ "scrollbarBaseColor",
+ "scrollbarDarkShadowColor",
+ "scrollbarFaceColor",
+ "scrollbarHighlightColor",
+ "scrollbarShadowColor",
+ "scrollbarTrackColor",
+ "scrollbars",
+ "scrolling",
+ "sdp",
+ "sdpMLineIndex",
+ "sdpMid",
+ "seal",
+ "search",
+ "searchBox",
+ "searchBoxJavaBridge_",
+ "searchParams",
+ "sectionRowIndex",
+ "secureConnectionStart",
+ "security",
+ "seed",
+ "seekable",
+ "seeking",
+ "select",
+ "selectAllChildren",
+ "selectNode",
+ "selectNodeContents",
+ "selectNodes",
+ "selectSingleNode",
+ "selectSubString",
+ "selected",
+ "selectedIndex",
+ "selectedOptions",
+ "selectedStyleSheetSet",
+ "selectedStylesheetSet",
+ "selection",
+ "selectionDirection",
+ "selectionEnd",
+ "selectionStart",
+ "selector",
+ "selectorText",
+ "self",
+ "send",
+ "sendAsBinary",
+ "sendBeacon",
+ "sender",
+ "sentTimestamp",
+ "separator",
+ "serializeToString",
+ "serviceWorker",
+ "sessionId",
+ "sessionStorage",
+ "set",
+ "setActive",
+ "setAlpha",
+ "setAttribute",
+ "setAttributeNS",
+ "setAttributeNode",
+ "setAttributeNodeNS",
+ "setBaseAndExtent",
+ "setBingCurrentSearchDefault",
+ "setCapture",
+ "setColor",
+ "setCompositeOperation",
+ "setCurrentTime",
+ "setCustomValidity",
+ "setData",
+ "setDate",
+ "setDragImage",
+ "setEnd",
+ "setEndAfter",
+ "setEndBefore",
+ "setEndPoint",
+ "setFillColor",
+ "setFilterRes",
+ "setFloat32",
+ "setFloat64",
+ "setFloatValue",
+ "setFullYear",
+ "setHours",
+ "setImmediate",
+ "setInt16",
+ "setInt32",
+ "setInt8",
+ "setInterval",
+ "setItem",
+ "setLineCap",
+ "setLineDash",
+ "setLineJoin",
+ "setLineWidth",
+ "setLocalDescription",
+ "setMatrix",
+ "setMatrixValue",
+ "setMediaKeys",
+ "setMilliseconds",
+ "setMinutes",
+ "setMiterLimit",
+ "setMonth",
+ "setNamedItem",
+ "setNamedItemNS",
+ "setNonUserCodeExceptions",
+ "setOrientToAngle",
+ "setOrientToAuto",
+ "setOrientation",
+ "setOverrideHistoryNavigationMode",
+ "setPaint",
+ "setParameter",
+ "setPeriodicWave",
+ "setPointerCapture",
+ "setPosition",
+ "setPreference",
+ "setProperty",
+ "setPrototypeOf",
+ "setRGBColor",
+ "setRGBColorICCColor",
+ "setRadius",
+ "setRangeText",
+ "setRemoteDescription",
+ "setRequestHeader",
+ "setResizable",
+ "setResourceTimingBufferSize",
+ "setRotate",
+ "setScale",
+ "setSeconds",
+ "setSelectionRange",
+ "setServerCertificate",
+ "setShadow",
+ "setSkewX",
+ "setSkewY",
+ "setStart",
+ "setStartAfter",
+ "setStartBefore",
+ "setStdDeviation",
+ "setStringValue",
+ "setStrokeColor",
+ "setSuggestResult",
+ "setTargetAtTime",
+ "setTargetValueAtTime",
+ "setTime",
+ "setTimeout",
+ "setTransform",
+ "setTranslate",
+ "setUTCDate",
+ "setUTCFullYear",
+ "setUTCHours",
+ "setUTCMilliseconds",
+ "setUTCMinutes",
+ "setUTCMonth",
+ "setUTCSeconds",
+ "setUint16",
+ "setUint32",
+ "setUint8",
+ "setUri",
+ "setValueAtTime",
+ "setValueCurveAtTime",
+ "setVariable",
+ "setVelocity",
+ "setVersion",
+ "setYear",
+ "settingName",
+ "settingValue",
+ "sex",
+ "shaderSource",
+ "shadowBlur",
+ "shadowColor",
+ "shadowOffsetX",
+ "shadowOffsetY",
+ "shadowRoot",
+ "shape",
+ "shape-rendering",
+ "shapeRendering",
+ "sheet",
+ "shift",
+ "shiftKey",
+ "shiftLeft",
+ "show",
+ "showHelp",
+ "showModal",
+ "showModalDialog",
+ "showModelessDialog",
+ "showNotification",
+ "sidebar",
+ "sign",
+ "signalingState",
+ "sin",
+ "singleNodeValue",
+ "sinh",
+ "size",
+ "sizeToContent",
+ "sizes",
+ "skewX",
+ "skewXSelf",
+ "skewY",
+ "skewYSelf",
+ "slice",
+ "slope",
+ "small",
+ "smil",
+ "smooth",
+ "smoothingTimeConstant",
+ "snapToLines",
+ "snapshotItem",
+ "snapshotLength",
+ "some",
+ "sort",
+ "source",
+ "sourceBuffer",
+ "sourceBuffers",
+ "sourceIndex",
+ "spacing",
+ "span",
+ "speakAs",
+ "speaking",
+ "specified",
+ "specularConstant",
+ "specularExponent",
+ "speechSynthesis",
+ "speed",
+ "speedOfSound",
+ "spellcheck",
+ "splice",
+ "split",
+ "splitText",
+ "spreadMethod",
+ "sqrt",
+ "src",
+ "srcElement",
+ "srcFilter",
+ "srcUrn",
+ "srcdoc",
+ "srclang",
+ "srcset",
+ "stack",
+ "stackTraceLimit",
+ "stacktrace",
+ "standalone",
+ "standby",
+ "start",
+ "startContainer",
+ "startIce",
+ "startOffset",
+ "startRendering",
+ "startTime",
+ "startsWith",
+ "state",
+ "status",
+ "statusMessage",
+ "statusText",
+ "statusbar",
+ "stdDeviationX",
+ "stdDeviationY",
+ "stencilFunc",
+ "stencilFuncSeparate",
+ "stencilMask",
+ "stencilMaskSeparate",
+ "stencilOp",
+ "stencilOpSeparate",
+ "step",
+ "stepDown",
+ "stepMismatch",
+ "stepUp",
+ "sticky",
+ "stitchTiles",
+ "stop",
+ "stop-color",
+ "stop-opacity",
+ "stopColor",
+ "stopImmediatePropagation",
+ "stopOpacity",
+ "stopPropagation",
+ "storageArea",
+ "storageName",
+ "storageStatus",
+ "storeSiteSpecificTrackingException",
+ "storeWebWideTrackingException",
+ "stpVersion",
+ "stream",
+ "strike",
+ "stringValue",
+ "stringify",
+ "stroke",
+ "stroke-dasharray",
+ "stroke-dashoffset",
+ "stroke-linecap",
+ "stroke-linejoin",
+ "stroke-miterlimit",
+ "stroke-opacity",
+ "stroke-width",
+ "strokeDasharray",
+ "strokeDashoffset",
+ "strokeLinecap",
+ "strokeLinejoin",
+ "strokeMiterlimit",
+ "strokeOpacity",
+ "strokeRect",
+ "strokeStyle",
+ "strokeText",
+ "strokeWidth",
+ "style",
+ "styleFloat",
+ "styleMedia",
+ "styleSheet",
+ "styleSheetSets",
+ "styleSheets",
+ "sub",
+ "subarray",
+ "subject",
+ "submit",
+ "subscribe",
+ "substr",
+ "substring",
+ "substringData",
+ "subtle",
+ "subtree",
+ "suffix",
+ "suffixes",
+ "summary",
+ "sup",
+ "supports",
+ "surfaceScale",
+ "surroundContents",
+ "suspend",
+ "suspendRedraw",
+ "swapCache",
+ "swapNode",
+ "sweepFlag",
+ "symbols",
+ "system",
+ "systemCode",
+ "systemId",
+ "systemLanguage",
+ "systemXDPI",
+ "systemYDPI",
+ "tBodies",
+ "tFoot",
+ "tHead",
+ "tabIndex",
+ "table",
+ "table-layout",
+ "tableLayout",
+ "tableValues",
+ "tag",
+ "tagName",
+ "tagUrn",
+ "tags",
+ "taintEnabled",
+ "takeRecords",
+ "tan",
+ "tanh",
+ "target",
+ "targetElement",
+ "targetTouches",
+ "targetX",
+ "targetY",
+ "tel",
+ "terminate",
+ "test",
+ "texImage2D",
+ "texParameterf",
+ "texParameteri",
+ "texSubImage2D",
+ "text",
+ "text-align",
+ "text-anchor",
+ "text-decoration",
+ "text-decoration-color",
+ "text-decoration-line",
+ "text-decoration-style",
+ "text-indent",
+ "text-overflow",
+ "text-rendering",
+ "text-shadow",
+ "text-transform",
+ "textAlign",
+ "textAlignLast",
+ "textAnchor",
+ "textAutospace",
+ "textBaseline",
+ "textContent",
+ "textDecoration",
+ "textDecorationBlink",
+ "textDecorationColor",
+ "textDecorationLine",
+ "textDecorationLineThrough",
+ "textDecorationNone",
+ "textDecorationOverline",
+ "textDecorationStyle",
+ "textDecorationUnderline",
+ "textIndent",
+ "textJustify",
+ "textJustifyTrim",
+ "textKashida",
+ "textKashidaSpace",
+ "textLength",
+ "textOverflow",
+ "textRendering",
+ "textShadow",
+ "textTracks",
+ "textTransform",
+ "textUnderlinePosition",
+ "then",
+ "threadId",
+ "threshold",
+ "tiltX",
+ "tiltY",
+ "time",
+ "timeEnd",
+ "timeStamp",
+ "timeout",
+ "timestamp",
+ "timestampOffset",
+ "timing",
+ "title",
+ "toArray",
+ "toBlob",
+ "toDataURL",
+ "toDateString",
+ "toElement",
+ "toExponential",
+ "toFixed",
+ "toFloat32Array",
+ "toFloat64Array",
+ "toGMTString",
+ "toISOString",
+ "toJSON",
+ "toLocaleDateString",
+ "toLocaleFormat",
+ "toLocaleLowerCase",
+ "toLocaleString",
+ "toLocaleTimeString",
+ "toLocaleUpperCase",
+ "toLowerCase",
+ "toMethod",
+ "toPrecision",
+ "toSdp",
+ "toSource",
+ "toStaticHTML",
+ "toString",
+ "toStringTag",
+ "toTimeString",
+ "toUTCString",
+ "toUpperCase",
+ "toggle",
+ "toggleLongPressEnabled",
+ "tooLong",
+ "toolbar",
+ "top",
+ "topMargin",
+ "total",
+ "totalFrameDelay",
+ "totalVideoFrames",
+ "touchAction",
+ "touches",
+ "trace",
+ "track",
+ "transaction",
+ "transactions",
+ "transform",
+ "transform-origin",
+ "transform-style",
+ "transformOrigin",
+ "transformPoint",
+ "transformString",
+ "transformStyle",
+ "transformToDocument",
+ "transformToFragment",
+ "transition",
+ "transition-delay",
+ "transition-duration",
+ "transition-property",
+ "transition-timing-function",
+ "transitionDelay",
+ "transitionDuration",
+ "transitionProperty",
+ "transitionTimingFunction",
+ "translate",
+ "translateSelf",
+ "translationX",
+ "translationY",
+ "trim",
+ "trimLeft",
+ "trimRight",
+ "trueSpeed",
+ "trunc",
+ "truncate",
+ "type",
+ "typeDetail",
+ "typeMismatch",
+ "typeMustMatch",
+ "types",
+ "ubound",
+ "undefined",
+ "unescape",
+ "uneval",
+ "unicode-bidi",
+ "unicodeBidi",
+ "uniform1f",
+ "uniform1fv",
+ "uniform1i",
+ "uniform1iv",
+ "uniform2f",
+ "uniform2fv",
+ "uniform2i",
+ "uniform2iv",
+ "uniform3f",
+ "uniform3fv",
+ "uniform3i",
+ "uniform3iv",
+ "uniform4f",
+ "uniform4fv",
+ "uniform4i",
+ "uniform4iv",
+ "uniformMatrix2fv",
+ "uniformMatrix3fv",
+ "uniformMatrix4fv",
+ "unique",
+ "uniqueID",
+ "uniqueNumber",
+ "unitType",
+ "units",
+ "unloadEventEnd",
+ "unloadEventStart",
+ "unlock",
+ "unmount",
+ "unobserve",
+ "unpause",
+ "unpauseAnimations",
+ "unreadCount",
+ "unregister",
+ "unregisterContentHandler",
+ "unregisterProtocolHandler",
+ "unscopables",
+ "unselectable",
+ "unshift",
+ "unsubscribe",
+ "unsuspendRedraw",
+ "unsuspendRedrawAll",
+ "unwatch",
+ "unwrapKey",
+ "update",
+ "updateCommands",
+ "updateIce",
+ "updateInterval",
+ "updateSettings",
+ "updated",
+ "updating",
+ "upload",
+ "upper",
+ "upperBound",
+ "upperOpen",
+ "uri",
+ "url",
+ "urn",
+ "urns",
+ "usages",
+ "useCurrentView",
+ "useMap",
+ "useProgram",
+ "usedSpace",
+ "userAgent",
+ "userLanguage",
+ "username",
+ "v8BreakIterator",
+ "vAlign",
+ "vLink",
+ "valid",
+ "validateProgram",
+ "validationMessage",
+ "validity",
+ "value",
+ "valueAsDate",
+ "valueAsNumber",
+ "valueAsString",
+ "valueInSpecifiedUnits",
+ "valueMissing",
+ "valueOf",
+ "valueText",
+ "valueType",
+ "values",
+ "vector-effect",
+ "vectorEffect",
+ "velocityAngular",
+ "velocityExpansion",
+ "velocityX",
+ "velocityY",
+ "vendor",
+ "vendorSub",
+ "verify",
+ "version",
+ "vertexAttrib1f",
+ "vertexAttrib1fv",
+ "vertexAttrib2f",
+ "vertexAttrib2fv",
+ "vertexAttrib3f",
+ "vertexAttrib3fv",
+ "vertexAttrib4f",
+ "vertexAttrib4fv",
+ "vertexAttribDivisorANGLE",
+ "vertexAttribPointer",
+ "vertical",
+ "vertical-align",
+ "verticalAlign",
+ "verticalOverflow",
+ "vibrate",
+ "videoHeight",
+ "videoTracks",
+ "videoWidth",
+ "view",
+ "viewBox",
+ "viewBoxString",
+ "viewTarget",
+ "viewTargetString",
+ "viewport",
+ "viewportAnchorX",
+ "viewportAnchorY",
+ "viewportElement",
+ "visibility",
+ "visibilityState",
+ "visible",
+ "vlinkColor",
+ "voice",
+ "volume",
+ "vrml",
+ "vspace",
+ "w",
+ "wand",
+ "warn",
+ "wasClean",
+ "watch",
+ "watchPosition",
+ "webdriver",
+ "webkitAddKey",
+ "webkitAnimation",
+ "webkitAnimationDelay",
+ "webkitAnimationDirection",
+ "webkitAnimationDuration",
+ "webkitAnimationFillMode",
+ "webkitAnimationIterationCount",
+ "webkitAnimationName",
+ "webkitAnimationPlayState",
+ "webkitAnimationTimingFunction",
+ "webkitAppearance",
+ "webkitAudioContext",
+ "webkitAudioDecodedByteCount",
+ "webkitAudioPannerNode",
+ "webkitBackfaceVisibility",
+ "webkitBackground",
+ "webkitBackgroundAttachment",
+ "webkitBackgroundClip",
+ "webkitBackgroundColor",
+ "webkitBackgroundImage",
+ "webkitBackgroundOrigin",
+ "webkitBackgroundPosition",
+ "webkitBackgroundPositionX",
+ "webkitBackgroundPositionY",
+ "webkitBackgroundRepeat",
+ "webkitBackgroundSize",
+ "webkitBackingStorePixelRatio",
+ "webkitBorderImage",
+ "webkitBorderImageOutset",
+ "webkitBorderImageRepeat",
+ "webkitBorderImageSlice",
+ "webkitBorderImageSource",
+ "webkitBorderImageWidth",
+ "webkitBoxAlign",
+ "webkitBoxDirection",
+ "webkitBoxFlex",
+ "webkitBoxOrdinalGroup",
+ "webkitBoxOrient",
+ "webkitBoxPack",
+ "webkitBoxSizing",
+ "webkitCancelAnimationFrame",
+ "webkitCancelFullScreen",
+ "webkitCancelKeyRequest",
+ "webkitCancelRequestAnimationFrame",
+ "webkitClearResourceTimings",
+ "webkitClosedCaptionsVisible",
+ "webkitConvertPointFromNodeToPage",
+ "webkitConvertPointFromPageToNode",
+ "webkitCreateShadowRoot",
+ "webkitCurrentFullScreenElement",
+ "webkitCurrentPlaybackTargetIsWireless",
+ "webkitDirectionInvertedFromDevice",
+ "webkitDisplayingFullscreen",
+ "webkitEnterFullScreen",
+ "webkitEnterFullscreen",
+ "webkitExitFullScreen",
+ "webkitExitFullscreen",
+ "webkitExitPointerLock",
+ "webkitFullScreenKeyboardInputAllowed",
+ "webkitFullscreenElement",
+ "webkitFullscreenEnabled",
+ "webkitGenerateKeyRequest",
+ "webkitGetAsEntry",
+ "webkitGetDatabaseNames",
+ "webkitGetEntries",
+ "webkitGetEntriesByName",
+ "webkitGetEntriesByType",
+ "webkitGetFlowByName",
+ "webkitGetGamepads",
+ "webkitGetImageDataHD",
+ "webkitGetNamedFlows",
+ "webkitGetRegionFlowRanges",
+ "webkitGetUserMedia",
+ "webkitHasClosedCaptions",
+ "webkitHidden",
+ "webkitIDBCursor",
+ "webkitIDBDatabase",
+ "webkitIDBDatabaseError",
+ "webkitIDBDatabaseException",
+ "webkitIDBFactory",
+ "webkitIDBIndex",
+ "webkitIDBKeyRange",
+ "webkitIDBObjectStore",
+ "webkitIDBRequest",
+ "webkitIDBTransaction",
+ "webkitImageSmoothingEnabled",
+ "webkitIndexedDB",
+ "webkitInitMessageEvent",
+ "webkitIsFullScreen",
+ "webkitKeys",
+ "webkitLineDashOffset",
+ "webkitLockOrientation",
+ "webkitMatchesSelector",
+ "webkitMediaStream",
+ "webkitNotifications",
+ "webkitOfflineAudioContext",
+ "webkitOrientation",
+ "webkitPeerConnection00",
+ "webkitPersistentStorage",
+ "webkitPointerLockElement",
+ "webkitPostMessage",
+ "webkitPreservesPitch",
+ "webkitPutImageDataHD",
+ "webkitRTCPeerConnection",
+ "webkitRegionOverset",
+ "webkitRequestAnimationFrame",
+ "webkitRequestFileSystem",
+ "webkitRequestFullScreen",
+ "webkitRequestFullscreen",
+ "webkitRequestPointerLock",
+ "webkitResolveLocalFileSystemURL",
+ "webkitSetMediaKeys",
+ "webkitSetResourceTimingBufferSize",
+ "webkitShadowRoot",
+ "webkitShowPlaybackTargetPicker",
+ "webkitSlice",
+ "webkitSpeechGrammar",
+ "webkitSpeechGrammarList",
+ "webkitSpeechRecognition",
+ "webkitSpeechRecognitionError",
+ "webkitSpeechRecognitionEvent",
+ "webkitStorageInfo",
+ "webkitSupportsFullscreen",
+ "webkitTemporaryStorage",
+ "webkitTextSizeAdjust",
+ "webkitTransform",
+ "webkitTransformOrigin",
+ "webkitTransition",
+ "webkitTransitionDelay",
+ "webkitTransitionDuration",
+ "webkitTransitionProperty",
+ "webkitTransitionTimingFunction",
+ "webkitURL",
+ "webkitUnlockOrientation",
+ "webkitUserSelect",
+ "webkitVideoDecodedByteCount",
+ "webkitVisibilityState",
+ "webkitWirelessVideoPlaybackDisabled",
+ "webkitdropzone",
+ "webstore",
+ "weight",
+ "whatToShow",
+ "wheelDelta",
+ "wheelDeltaX",
+ "wheelDeltaY",
+ "which",
+ "white-space",
+ "whiteSpace",
+ "wholeText",
+ "widows",
+ "width",
+ "will-change",
+ "willChange",
+ "willValidate",
+ "window",
+ "withCredentials",
+ "word-break",
+ "word-spacing",
+ "word-wrap",
+ "wordBreak",
+ "wordSpacing",
+ "wordWrap",
+ "wrap",
+ "wrapKey",
+ "write",
+ "writeln",
+ "writingMode",
+ "x",
+ "x1",
+ "x2",
+ "xChannelSelector",
+ "xmlEncoding",
+ "xmlStandalone",
+ "xmlVersion",
+ "xmlbase",
+ "xmllang",
+ "xmlspace",
+ "y",
+ "y1",
+ "y2",
+ "yChannelSelector",
+ "yandex",
+ "z",
+ "z-index",
+ "zIndex",
+ "zoom",
+ "zoomAndPan",
+ "zoomRectScreen"
+] \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts
new file mode 100644
index 0000000..2940391
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/AbstractStatementSimplifyTransformer.ts
@@ -0,0 +1,196 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IIteratedStatementsSimplifyData } from '../../interfaces/node-transformers/simplifying-transformers/IIteratedStatementsSimplifyData';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStatementSimplifyData } from '../../interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeFactory } from '../../node/NodeFactory';
+
+/**
+ * Simplifies `Statement` node
+ */
+@injectable()
+export abstract class AbstractStatementSimplifyTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {NodeTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.ExpressionStatementsMergeTransformer,
+ NodeTransformer.VariableDeclarationsMergeTransformer
+ ];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * Returns IStatementSimplifyData based on `Statement` node
+ *
+ * @param {ESTree.Statement | null | undefined} statementNode
+ * @returns {IStatementSimplifyData | null}
+ */
+ protected getStatementSimplifyData (
+ statementNode: ESTree.Statement | null | undefined
+ ): IStatementSimplifyData | null {
+ if (!statementNode) {
+ return null;
+ }
+
+ if (!NodeGuards.isBlockStatementNode(statementNode)) {
+ return {
+ leadingStatements: [statementNode],
+ trailingStatement: null,
+ hasReturnStatement: false,
+ hasSingleExpression: false
+ };
+ }
+
+ const {
+ startIndex,
+ unwrappedExpressions,
+ hasReturnStatement
+ } = this.collectIteratedStatementsSimplifyData(statementNode);
+
+ const leadingStatements: ESTree.Statement[] = this.getLeadingStatements(statementNode, startIndex);
+
+ if (!unwrappedExpressions.length) {
+ return {
+ leadingStatements,
+ trailingStatement: null,
+ hasReturnStatement,
+ hasSingleExpression: false
+ };
+ }
+
+ const hasSingleExpression: boolean = unwrappedExpressions.length === 1;
+
+ const expression: ESTree.Expression = hasSingleExpression
+ ? unwrappedExpressions[0]
+ : NodeFactory.sequenceExpressionNode(unwrappedExpressions);
+
+ const statement: ESTree.Statement = hasReturnStatement
+ ? NodeFactory.returnStatementNode(expression)
+ : NodeFactory.expressionStatementNode(expression);
+
+ return {
+ leadingStatements,
+ trailingStatement: {
+ statement,
+ expression
+ },
+ hasReturnStatement,
+ hasSingleExpression
+ };
+ }
+
+ /**
+ * Iterates over `BlockStatement` node body and collects data
+ *
+ * @param {ESTree.Statement | null | undefined} statementNode
+ * @returns {IIteratedStatementsSimplifyData}
+ */
+ protected collectIteratedStatementsSimplifyData (
+ statementNode: ESTree.BlockStatement
+ ): IIteratedStatementsSimplifyData {
+ const statementNodeBodyLength: number = statementNode.body.length;
+ const unwrappedExpressions: ESTree.Expression[] = [];
+
+ let hasReturnStatement: boolean = false;
+ let startIndex: number | null = null;
+
+ for (let i = statementNodeBodyLength - 1; i >= 0; i--) {
+ const statementBodyStatementNode: ESTree.Statement = statementNode.body[i];
+
+ if (NodeGuards.isExpressionStatementNode(statementBodyStatementNode)) {
+ if (NodeGuards.isSequenceExpressionNode(statementBodyStatementNode.expression)) {
+ unwrappedExpressions.unshift(...statementBodyStatementNode.expression.expressions);
+ } else {
+ unwrappedExpressions.unshift(statementBodyStatementNode.expression);
+ }
+
+ startIndex = i;
+ continue;
+ }
+
+ if (
+ NodeGuards.isReturnStatementNode(statementBodyStatementNode)
+ && statementBodyStatementNode.argument
+ ) {
+ unwrappedExpressions.unshift(statementBodyStatementNode.argument);
+ hasReturnStatement = true;
+ startIndex = i;
+ continue;
+ }
+
+ break;
+ }
+
+ return {
+ startIndex,
+ unwrappedExpressions,
+ hasReturnStatement
+ };
+ }
+
+ /**
+ * Returns leading statements
+ *
+ * @param {ESTree.BlockStatement} statementNode
+ * @param {number | null} startIndex
+ * @returns {ESTree.Statement[]}
+ */
+ protected getLeadingStatements (statementNode: ESTree.BlockStatement, startIndex: number | null): ESTree.Statement[] {
+ // variant #1: no valid statements inside `BlockStatement` are found
+ if (startIndex === null) {
+ return statementNode.body;
+ }
+
+ return startIndex === 0
+ // variant #2: all statements inside `BlockStatement` branch are valid
+ ? []
+ // variant #3: only last N statements inside `BlockStatement` branch are valid
+ : statementNode.body.slice(0, startIndex);
+ }
+
+ /**
+ * @param {IStatementSimplifyData} statementSimplifyData
+ * @returns {ESTree.Statement}
+ */
+ protected getPartialStatement (statementSimplifyData: IStatementSimplifyData): ESTree.Statement {
+ // variant #1: all statements inside `BlockStatement` branch are valid
+ if (!statementSimplifyData.leadingStatements.length && statementSimplifyData.trailingStatement) {
+ return statementSimplifyData.trailingStatement.statement;
+ }
+
+ // variant #2: only last N statements inside `BlockStatement` branch are valid
+ return NodeFactory.blockStatementNode([
+ ...statementSimplifyData.leadingStatements.length ? statementSimplifyData.leadingStatements : [],
+ ...statementSimplifyData.trailingStatement ? [statementSimplifyData.trailingStatement.statement] : []
+ ]);
+ }
+
+ /**
+ * @param {ESTree.Statement} statementNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.Node}
+ */
+ public abstract transformNode (
+ statementNode: ESTree.Statement,
+ parentNode: ESTree.Node
+ ): ESTree.Node;
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts
new file mode 100644
index 0000000..e47ff97
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/BlockStatementSimplifyTransformer.ts
@@ -0,0 +1,87 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStatementSimplifyData } from '../../interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformer } from '../../enums/node-transformers/NodeTransformer';
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractStatementSimplifyTransformer } from './AbstractStatementSimplifyTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * Simplifies `BlockStatement` node
+ */
+@injectable()
+export class BlockStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer {
+ /**
+ * @type {NodeTransformer[]}
+ */
+ public readonly runAfter: NodeTransformer[] = [
+ NodeTransformer.VariableDeclarationsMergeTransformer
+ ];
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Simplifying:
+ return {
+ leave: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isBlockStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ESTree.Statement} statementNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.Node}
+ */
+ public transformNode (
+ statementNode: ESTree.Statement,
+ parentNode: ESTree.Node
+ ): ESTree.Node {
+ const simplifyData: IStatementSimplifyData | null = this.getStatementSimplifyData(statementNode);
+
+ if (!simplifyData) {
+ return statementNode;
+ }
+
+ const partialStatementNode: ESTree.Statement = this.getPartialStatement(simplifyData);
+ const transformedNode: ESTree.Node = NodeGuards.isBlockStatementNode(partialStatementNode)
+ ? partialStatementNode
+ : NodeFactory.blockStatementNode([partialStatementNode]);
+
+ return NodeUtils.parentizeNode(transformedNode, parentNode);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts
new file mode 100644
index 0000000..54e15c8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/ExpressionStatementsMergeTransformer.ts
@@ -0,0 +1,99 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TStatement } from '../../types/node/TStatement';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * replaces:
+ * console.log(1);
+ * console.log(2);
+ *
+ * on:
+ * (console.log(1), console.log(2));
+ */
+@injectable()
+export class ExpressionStatementsMergeTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Simplifying:
+ return {
+ leave: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | estraverse.VisitorOption | undefined => {
+ if (parentNode && NodeGuards.isExpressionStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ESTree.ExpressionStatement} expressionStatementNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.ExpressionStatement | estraverse.VisitorOption}
+ */
+ public transformNode (
+ expressionStatementNode: ESTree.ExpressionStatement,
+ parentNode: ESTree.Node
+ ): ESTree.ExpressionStatement | estraverse.VisitorOption {
+ if (!NodeGuards.isNodeWithStatements(parentNode)) {
+ return expressionStatementNode;
+ }
+
+ const prevStatement: TStatement | null = NodeStatementUtils.getPreviousSiblingStatement(expressionStatementNode);
+
+ if (!prevStatement || !NodeGuards.isExpressionStatementNode(prevStatement)) {
+ return expressionStatementNode;
+ }
+
+ if (NodeGuards.isSequenceExpressionNode(prevStatement.expression)) {
+ prevStatement.expression.expressions.push(expressionStatementNode.expression);
+ NodeUtils.parentizeNode(expressionStatementNode.expression, prevStatement.expression);
+ } else {
+ prevStatement.expression = NodeFactory.sequenceExpressionNode([
+ prevStatement.expression,
+ expressionStatementNode.expression
+ ]);
+
+ NodeUtils.parentizeAst(prevStatement.expression);
+ NodeUtils.parentizeNode(prevStatement.expression, prevStatement);
+ }
+
+ return estraverse.VisitorOption.Remove;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts
new file mode 100644
index 0000000..bbff430
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/IfStatementSimplifyTransformer.ts
@@ -0,0 +1,321 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStatementSimplifyData } from '../../interfaces/node-transformers/simplifying-transformers/IStatementSimplifyData';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractStatementSimplifyTransformer } from './AbstractStatementSimplifyTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeFactory } from '../../node/NodeFactory';
+import { NodeUtils } from '../../node/NodeUtils';
+
+/**
+ * Simplifies `IfStatement` node
+ */
+@injectable()
+export class IfStatementSimplifyTransformer extends AbstractStatementSimplifyTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Simplifying:
+ return {
+ leave: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isIfStatementNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ESTree.IfStatement} ifStatementNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.IfStatement}
+ */
+ public transformNode (
+ ifStatementNode: ESTree.IfStatement,
+ parentNode: ESTree.Node
+ ): ESTree.Node {
+ const consequentSimplifyData: IStatementSimplifyData | null = this.getStatementSimplifyData(ifStatementNode.consequent);
+
+ // Variant #1: no valid consequent expression data
+ if (!consequentSimplifyData) {
+ return ifStatementNode;
+ }
+
+ let transformedNode: ESTree.Node;
+
+ if (!ifStatementNode.alternate) {
+ // Variant #2: valid data for consequent expression only
+ transformedNode = this.getConsequentNode(ifStatementNode, consequentSimplifyData);
+ } else {
+ const alternateSimplifyData: IStatementSimplifyData | null = this.getStatementSimplifyData(ifStatementNode.alternate);
+
+ if (!alternateSimplifyData) {
+ return ifStatementNode;
+ }
+
+ // Variant #3: valid data for consequent and alternate expressions
+ transformedNode = this.getConsequentAndAlternateNode(ifStatementNode, consequentSimplifyData, alternateSimplifyData);
+ }
+
+ return NodeUtils.parentizeNode(transformedNode, parentNode);
+ }
+
+ /**
+ * @param {ESTree.IfStatement} ifStatementNode
+ * @param {IStatementSimplifyData} consequentSimplifyData
+ * @returns {ESTree.Node}
+ */
+ protected getConsequentNode (
+ ifStatementNode: ESTree.IfStatement,
+ consequentSimplifyData: IStatementSimplifyData
+ ): ESTree.Node {
+ /**
+ * Converts:
+ * if (true) {
+ * const foo = 1;
+ * console.log(1);
+ * return 1;
+ * }
+ *
+ * to:
+ * if (true) {
+ * const foo = 1;
+ * return console.log(1), 1;
+ * }
+ */
+ if (
+ consequentSimplifyData.leadingStatements.length
+ || !consequentSimplifyData.trailingStatement
+ ) {
+ return NodeFactory.ifStatementNode(
+ ifStatementNode.test,
+ this.getPartialStatement(consequentSimplifyData)
+ );
+ }
+
+ /**
+ * Converts:
+ * if (true) {
+ * return 1;
+ * }
+ *
+ * to:
+ * if (true)
+ * return 1;
+ */
+ if (consequentSimplifyData.hasReturnStatement) {
+ return NodeFactory.ifStatementNode(
+ ifStatementNode.test,
+ consequentSimplifyData.trailingStatement.statement
+ );
+ }
+
+ /**
+ * Converts:
+ * if (true) {
+ * console.log(1);
+ * }
+ *
+ * to:
+ * true && console.log(1);
+ */
+ return NodeFactory.expressionStatementNode(
+ NodeFactory.logicalExpressionNode(
+ '&&',
+ ifStatementNode.test,
+ consequentSimplifyData.trailingStatement.expression
+ )
+ );
+ }
+
+ /**
+ * @param {ESTree.IfStatement} ifStatementNode
+ * @param {IStatementSimplifyData} consequentSimplifyData
+ * @param {IStatementSimplifyData} alternateSimplifyData
+ * @returns {ESTree.Node}
+ */
+ protected getConsequentAndAlternateNode (
+ ifStatementNode: ESTree.IfStatement,
+ consequentSimplifyData: IStatementSimplifyData,
+ alternateSimplifyData: IStatementSimplifyData
+ ): ESTree.Node {
+ /**
+ * Converts:
+ * if (true) {
+ * const foo = 1;
+ * console.log(1);
+ * return 1;
+ * }
+ *
+ * to:
+ * if (true) {
+ * const foo = 1;
+ * return console.log(1), 1;
+ * }
+ */
+ if (
+ consequentSimplifyData.leadingStatements.length
+ || alternateSimplifyData.leadingStatements.length
+ || !consequentSimplifyData.trailingStatement
+ || !alternateSimplifyData.trailingStatement
+ ) {
+ return NodeFactory.ifStatementNode(
+ ifStatementNode.test,
+ this.getPartialStatement(consequentSimplifyData),
+ this.getPartialStatement(alternateSimplifyData)
+ );
+ }
+
+ /**
+ * Converts:
+ * if (true) {
+ * return 1;
+ * } else {
+ * return 2;
+ * }
+ *
+ * to:
+ * return true ? 1 : 2;
+ */
+ if (consequentSimplifyData.hasReturnStatement && alternateSimplifyData.hasReturnStatement) {
+ return NodeFactory.returnStatementNode(
+ NodeFactory.conditionalExpressionNode(
+ ifStatementNode.test,
+ consequentSimplifyData.trailingStatement.expression,
+ alternateSimplifyData.trailingStatement.expression
+ )
+ );
+ }
+
+ /**
+ * Converts:
+ * if (true) {
+ * return 1;
+ * } else {
+ * console.log(2);
+ * }
+ *
+ * to:
+ * if (true)
+ * return 1;
+ * else
+ * console.log(2);
+ */
+ if (consequentSimplifyData.hasReturnStatement || alternateSimplifyData.hasReturnStatement) {
+ return NodeFactory.ifStatementNode(
+ ifStatementNode.test,
+ consequentSimplifyData.trailingStatement.statement,
+ alternateSimplifyData.trailingStatement.statement
+ );
+ }
+
+ /**
+ * Converts:
+ * if (true) {
+ * console.log(1);
+ * } else {
+ * console.log(2);
+ * }
+ *
+ * to:
+ * true ? console.log(1) : console.log(2);
+ */
+ return NodeFactory.expressionStatementNode(
+ NodeFactory.conditionalExpressionNode(
+ ifStatementNode.test,
+ consequentSimplifyData.trailingStatement.expression,
+ alternateSimplifyData.trailingStatement.expression
+ )
+ );
+ }
+
+ /**
+ * @param {IStatementSimplifyData} statementSimplifyData
+ * @returns {ESTree.Statement}
+ */
+ protected getPartialStatement (statementSimplifyData: IStatementSimplifyData): ESTree.Statement {
+ const partialStatement: ESTree.Statement = super.getPartialStatement(statementSimplifyData);
+
+ if (!NodeGuards.isBlockStatementNode(partialStatement)) {
+ return partialStatement;
+ }
+
+ return partialStatement.body.length === 1
+ && !this.isProhibitedSingleStatementForIfStatementBranch(partialStatement.body[0])
+ ? partialStatement.body[0]
+ : partialStatement;
+
+ }
+
+ /**
+ * @param {ESTree.Statement} statement
+ * @returns {boolean}
+ */
+ protected isProhibitedSingleStatementForIfStatementBranch (statement: ESTree.Statement): boolean {
+ /**
+ * Function declaration is not allowed outside of block in `strict` mode
+ */
+ return NodeGuards.isFunctionDeclarationNode(statement)
+ /**
+ * Without ignore it can break following code:
+ * Input:
+ * if (condition1) {
+ * if (condition2) {
+ * var foo = bar();
+ * }
+ * } else {
+ * var baz = bark();
+ * }
+ *
+ * Invalid output:
+ * if (condition1)
+ * if (condition2)
+ * var foo = bar();
+ * else
+ * var baz = bark();
+ */
+ || NodeGuards.isIfStatementNode(statement)
+
+ /**
+ * `let` and `const` variable declarations are not allowed outside of `IfStatement` block statement
+ * Input:
+ * if (condition1) {
+ * const foo = 1;
+ * }
+ *
+ * Invalid output with runtime error:
+ * if (condition1)
+ * const foo = 1;
+ */
+ || (NodeGuards.isVariableDeclarationNode(statement) && statement.kind !== 'var');
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts
new file mode 100644
index 0000000..09caf5c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/simplifying-transformers/VariableDeclarationsMergeTransformer.ts
@@ -0,0 +1,91 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { TStatement } from '../../types/node/TStatement';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeStatementUtils } from '../../node/NodeStatementUtils';
+
+/**
+ * replaces:
+ * var foo = 1;
+ * var bar = 2;
+ *
+ * on:
+ * var foo = 1,
+ * bar = 2;
+ */
+@injectable()
+export class VariableDeclarationsMergeTransformer extends AbstractNodeTransformer {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.Simplifying:
+ return {
+ leave: (
+ node: ESTree.Node,
+ parentNode: ESTree.Node | null
+ ): ESTree.Node | estraverse.VisitorOption | undefined => {
+ if (parentNode && NodeGuards.isVariableDeclarationNode(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {ESTree.VariableDeclaration} variableDeclarationNode
+ * @param {ESTree.Node} parentNode
+ * @returns {ESTree.VariableDeclaration | estraverse.VisitorOption}
+ */
+ public transformNode (
+ variableDeclarationNode: ESTree.VariableDeclaration,
+ parentNode: ESTree.Node
+ ): ESTree.VariableDeclaration | estraverse.VisitorOption {
+ if (!NodeGuards.isNodeWithStatements(parentNode)) {
+ return variableDeclarationNode;
+ }
+
+ const prevStatement: TStatement | null = NodeStatementUtils.getPreviousSiblingStatement(variableDeclarationNode);
+
+ if (!prevStatement || !NodeGuards.isVariableDeclarationNode(prevStatement)) {
+ return variableDeclarationNode;
+ }
+
+ if (variableDeclarationNode.kind !== prevStatement.kind) {
+ return variableDeclarationNode;
+ }
+
+ prevStatement.declarations.push(...variableDeclarationNode.declarations);
+
+ return estraverse.VisitorOption.Remove;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts
new file mode 100644
index 0000000..662b19f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayScopeCallsWrapperTransformer.ts
@@ -0,0 +1,354 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TInitialData } from '../../types/TInitialData';
+import { TNodeWithLexicalScopeStatements } from '../../types/node/TNodeWithLexicalScopeStatements';
+import { TStatement } from '../../types/node/TStatement';
+import { TStringArrayScopeCallsWrapperNamesDataByEncoding } from '../../types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding';
+import { TStringArrayCustomNodeFactory } from '../../types/container/custom-nodes/TStringArrayCustomNodeFactory';
+
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData';
+import { IStringArrayScopeCallsWrapperLexicalScopeData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData';
+import { IStringArrayScopeCallsWrapperLexicalScopeDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage';
+import { IStringArrayScopeCallsWrapperNamesData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData';
+import { IStringArrayScopeCallsWrapperNamesDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage';
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+import { StringArrayCustomNode } from '../../enums/custom-nodes/StringArrayCustomNode';
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeAppender } from '../../node/NodeAppender';
+import { NodeGuards } from '../../node/NodeGuards';
+import { StringArrayScopeCallsWrapperFunctionNode } from '../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperFunctionNode';
+import { StringArrayScopeCallsWrapperVariableNode } from '../../custom-nodes/string-array-nodes/StringArrayScopeCallsWrapperVariableNode';
+
+@injectable()
+export class StringArrayScopeCallsWrapperTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {IStringArrayStorage}
+ */
+ private readonly stringArrayStorage: IStringArrayStorage;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperLexicalScopeDataStorage}
+ */
+ private readonly stringArrayScopeCallsWrapperLexicalScopeDataStorage: IStringArrayScopeCallsWrapperLexicalScopeDataStorage;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperNamesDataStorage}
+ */
+ private readonly stringArrayScopeCallsWrapperNamesDataStorage: IStringArrayScopeCallsWrapperNamesDataStorage;
+
+ /**
+ * @type {TStringArrayCustomNodeFactory}
+ */
+ private readonly stringArrayTransformerCustomNodeFactory: TStringArrayCustomNodeFactory;
+
+ /**
+ * @type {IVisitedLexicalScopeNodesStackStorage}
+ */
+ private readonly visitedLexicalScopeNodesStackStorage: IVisitedLexicalScopeNodesStackStorage;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IVisitedLexicalScopeNodesStackStorage} visitedLexicalScopeNodesStackStorage
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IStringArrayScopeCallsWrapperNamesDataStorage} stringArrayScopeCallsWrapperNamesDataStorage
+ * @param {IStringArrayScopeCallsWrapperLexicalScopeDataStorage} stringArrayScopeCallsWrapperLexicalScopeDataStorage
+ * @param {TStringArrayCustomNodeFactory} stringArrayTransformerCustomNodeFactory
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage) visitedLexicalScopeNodesStackStorage: IVisitedLexicalScopeNodesStackStorage,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage) stringArrayScopeCallsWrapperNamesDataStorage: IStringArrayScopeCallsWrapperNamesDataStorage,
+ @inject(ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage) stringArrayScopeCallsWrapperLexicalScopeDataStorage: IStringArrayScopeCallsWrapperLexicalScopeDataStorage,
+ @inject(ServiceIdentifiers.Factory__IStringArrayCustomNode)
+ stringArrayTransformerCustomNodeFactory: TStringArrayCustomNodeFactory
+ ) {
+ super(randomGenerator, options);
+
+ this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;
+ this.stringArrayStorage = stringArrayStorage;
+ this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;
+ this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;
+ this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ if (!this.options.stringArrayWrappersCount) {
+ return null;
+ }
+
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.StringArray:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): void => {
+ if (parentNode && NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
+ this.onLexicalScopeNodeEnter(node);
+ }
+ },
+ leave: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (parentNode && NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode)) {
+ this.onLexicalScopeNodeLeave();
+
+ return this.transformNode(node);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} lexicalScopeBodyNode
+ * @returns {TNodeWithLexicalScopeStatements}
+ */
+ public transformNode (
+ lexicalScopeBodyNode: TNodeWithLexicalScopeStatements
+ ): TNodeWithLexicalScopeStatements {
+ const stringArrayScopeCallsWrapperNamesDataByEncoding: TStringArrayScopeCallsWrapperNamesDataByEncoding | null =
+ this.stringArrayScopeCallsWrapperNamesDataStorage.get(lexicalScopeBodyNode) ?? null;
+ const stringArrayScopeCallsWrapperLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData | null =
+ this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(lexicalScopeBodyNode) ?? null;
+
+ if (!stringArrayScopeCallsWrapperNamesDataByEncoding || !stringArrayScopeCallsWrapperLexicalScopeData) {
+ return lexicalScopeBodyNode;
+ }
+
+ const {
+ callsWrappersParameterIndexesData: stringArrayScopeCallsWrapperParameterIndexes
+ } = stringArrayScopeCallsWrapperLexicalScopeData;
+ const stringArrayScopeCallsWrapperNamesDataList: (IStringArrayScopeCallsWrapperNamesData | undefined)[] =
+ Object.values(stringArrayScopeCallsWrapperNamesDataByEncoding);
+
+ // iterates over data for each encoding type
+ for (const stringArrayScopeCallsWrapperNamesData of stringArrayScopeCallsWrapperNamesDataList) {
+ if (!stringArrayScopeCallsWrapperNamesData) {
+ continue;
+ }
+
+ const {names} = stringArrayScopeCallsWrapperNamesData;
+ const namesLength: number = names.length;
+
+ /**
+ * Iterates over each name of scope wrapper name
+ * Reverse iteration appends wrappers at index `0` at the correct order
+ */
+ for (let i = namesLength - 1; i >= 0; i--) {
+ const stringArrayScopeCallsWrapperName: string = names[i];
+ const {
+ name: upperStringArrayCallsWrapperName,
+ index: upperStringArrayCallsWrapperShiftedIndex,
+ parameterIndexesData: upperStringArrayCallsWrapperParameterIndexes
+ } = this.getUpperStringArrayCallsWrapperData(
+ stringArrayScopeCallsWrapperNamesData,
+ stringArrayScopeCallsWrapperLexicalScopeData,
+ );
+
+ const stringArrayScopeCallsWrapperNode: TStatement[] = this.getStringArrayScopeCallsWrapperNode(
+ stringArrayScopeCallsWrapperName,
+ stringArrayScopeCallsWrapperParameterIndexes,
+ upperStringArrayCallsWrapperName,
+ upperStringArrayCallsWrapperParameterIndexes,
+ upperStringArrayCallsWrapperShiftedIndex
+ );
+
+ NodeAppender.prepend(
+ lexicalScopeBodyNode,
+ stringArrayScopeCallsWrapperNode
+ );
+ }
+ }
+
+ return lexicalScopeBodyNode;
+ }
+
+ /**
+ * @param {IStringArrayScopeCallsWrapperNamesData} stringArrayScopeCallsWrapperNamesData
+ * @param {IStringArrayScopeCallsWrapperLexicalScopeData} stringArrayScopeCallsWrapperLexicalScopeData
+ * @returns {IStringArrayScopeCallsWrapperData}
+ */
+ private getRootStringArrayCallsWrapperData (
+ stringArrayScopeCallsWrapperNamesData: IStringArrayScopeCallsWrapperNamesData,
+ stringArrayScopeCallsWrapperLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData
+ ): IStringArrayScopeCallsWrapperData {
+ const {encoding} = stringArrayScopeCallsWrapperNamesData;
+ const {resultShiftedIndex} = stringArrayScopeCallsWrapperLexicalScopeData;
+
+ return {
+ name: this.stringArrayStorage.getStorageCallsWrapperName(encoding),
+ index: resultShiftedIndex,
+ parameterIndexesData: null
+ };
+ }
+
+ /**
+ * @param {IStringArrayScopeCallsWrapperNamesData} stringArrayScopeCallsWrapperNamesData
+ * @param {IStringArrayScopeCallsWrapperLexicalScopeData} stringArrayScopeCallsWrapperLexicalScopeData
+ * @returns {IStringArrayScopeCallsWrapperData}
+ */
+ private getUpperStringArrayCallsWrapperData (
+ stringArrayScopeCallsWrapperNamesData: IStringArrayScopeCallsWrapperNamesData,
+ stringArrayScopeCallsWrapperLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData
+ ): IStringArrayScopeCallsWrapperData {
+ const {encoding} = stringArrayScopeCallsWrapperNamesData;
+ const {scopeShiftedIndex} = stringArrayScopeCallsWrapperLexicalScopeData;
+
+ const rootStringArrayCallsWrapperData = this.getRootStringArrayCallsWrapperData(
+ stringArrayScopeCallsWrapperNamesData,
+ stringArrayScopeCallsWrapperLexicalScopeData
+ );
+
+ if (!this.options.stringArrayWrappersChainedCalls) {
+ return rootStringArrayCallsWrapperData;
+ }
+
+ const parentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements | null =
+ this.visitedLexicalScopeNodesStackStorage.getLastElement()
+ ?? null;
+
+ if (!parentLexicalScopeBodyNode) {
+ return rootStringArrayCallsWrapperData;
+ }
+
+ const parentLexicalScopeNamesDataByEncoding: TStringArrayScopeCallsWrapperNamesDataByEncoding | null = this.stringArrayScopeCallsWrapperNamesDataStorage
+ .get(parentLexicalScopeBodyNode) ?? null;
+ const parentScopeCallsWrapperLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData | null = this.stringArrayScopeCallsWrapperLexicalScopeDataStorage
+ .get(parentLexicalScopeBodyNode) ?? null;
+
+ const parentLexicalScopeNames: string[] | null = parentLexicalScopeNamesDataByEncoding?.[encoding]?.names ?? null;
+
+ if (!parentLexicalScopeNames?.length) {
+ return rootStringArrayCallsWrapperData;
+ }
+
+ const upperStringArrayCallsWrapperName: string = this.randomGenerator
+ .getRandomGenerator()
+ .pickone(parentLexicalScopeNames);
+ const parameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null =
+ parentScopeCallsWrapperLexicalScopeData?.callsWrappersParameterIndexesData ?? null;
+
+ return {
+ name: upperStringArrayCallsWrapperName,
+ index: scopeShiftedIndex,
+ parameterIndexesData
+ };
+ }
+
+ /**
+ * @param {string} stringArrayScopeCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} stringArrayScopeCallsWrapperParameterIndexes
+ * @param {string} upperStringArrayCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} upperStringArrayCallsWrapperParameterIndexes
+ * @param {number} stringArrayScopeCallsWrapperShiftedIndex
+ * @returns {TStatement[]}
+ */
+ private getStringArrayScopeCallsWrapperNode (
+ stringArrayScopeCallsWrapperName: string,
+ stringArrayScopeCallsWrapperParameterIndexes: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ upperStringArrayCallsWrapperName: string,
+ upperStringArrayCallsWrapperParameterIndexes: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ stringArrayScopeCallsWrapperShiftedIndex: number
+ ): TStatement[] {
+ switch (this.options.stringArrayWrappersType) {
+ case StringArrayWrappersType.Function:
+ return this.getStringArrayScopeCallsWrapperFunctionNode(
+ stringArrayScopeCallsWrapperName,
+ stringArrayScopeCallsWrapperParameterIndexes,
+ upperStringArrayCallsWrapperName,
+ upperStringArrayCallsWrapperParameterIndexes,
+ stringArrayScopeCallsWrapperShiftedIndex
+ );
+
+ case StringArrayWrappersType.Variable:
+ default:
+ return this.getStringArrayScopeCallsWrapperVariableNode(
+ stringArrayScopeCallsWrapperName,
+ upperStringArrayCallsWrapperName
+ );
+ }
+ }
+
+ /**
+ * @param {string} stringArrayScopeCallsWrapperName
+ * @param {string} upperStringArrayCallsWrapperName
+ * @returns {TStatement[]}
+ */
+ private getStringArrayScopeCallsWrapperVariableNode (
+ stringArrayScopeCallsWrapperName: string,
+ upperStringArrayCallsWrapperName: string
+ ): TStatement[] {
+ const stringArrayScopeCallsWrapperVariableNode: ICustomNode<TInitialData<StringArrayScopeCallsWrapperVariableNode>> =
+ this.stringArrayTransformerCustomNodeFactory(
+ StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode
+ );
+
+ stringArrayScopeCallsWrapperVariableNode.initialize(
+ stringArrayScopeCallsWrapperName,
+ upperStringArrayCallsWrapperName
+ );
+
+ return stringArrayScopeCallsWrapperVariableNode.getNode();
+ }
+
+ /**
+ * @param {string} stringArrayScopeCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} stringArrayScopeCallsWrapperParameterIndexes
+ * @param {string} upperStringArrayCallsWrapperName
+ * @param {IStringArrayScopeCallsWrapperParameterIndexesData | null} upperStringArrayCallsWrapperParameterIndexes
+ * @param {number} stringArrayScopeCallsWrapperShiftedIndex
+ * @returns {TStatement[]}
+ */
+ private getStringArrayScopeCallsWrapperFunctionNode (
+ stringArrayScopeCallsWrapperName: string,
+ stringArrayScopeCallsWrapperParameterIndexes: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ upperStringArrayCallsWrapperName: string,
+ upperStringArrayCallsWrapperParameterIndexes: IStringArrayScopeCallsWrapperParameterIndexesData | null,
+ stringArrayScopeCallsWrapperShiftedIndex: number
+ ): TStatement[] {
+ const stringArrayScopeCallsWrapperFunctionNode: ICustomNode<TInitialData<StringArrayScopeCallsWrapperFunctionNode>> =
+ this.stringArrayTransformerCustomNodeFactory(
+ StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode
+ );
+
+ stringArrayScopeCallsWrapperFunctionNode.initialize(
+ stringArrayScopeCallsWrapperName,
+ stringArrayScopeCallsWrapperParameterIndexes,
+ upperStringArrayCallsWrapperName,
+ upperStringArrayCallsWrapperParameterIndexes,
+ stringArrayScopeCallsWrapperShiftedIndex,
+ );
+
+ return stringArrayScopeCallsWrapperFunctionNode.getNode();
+ }
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} lexicalScopeBodyNode
+ */
+ private onLexicalScopeNodeEnter (lexicalScopeBodyNode: TNodeWithLexicalScopeStatements): void {
+ this.visitedLexicalScopeNodesStackStorage.push(lexicalScopeBodyNode);
+ }
+
+ private onLexicalScopeNodeLeave (): void {
+ this.visitedLexicalScopeNodesStackStorage.pop();
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayTransformer.ts b/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayTransformer.ts
new file mode 100644
index 0000000..6035df0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node-transformers/string-array-transformers/StringArrayTransformer.ts
@@ -0,0 +1,423 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TInitialData } from '../../types/TInitialData';
+import { TNodeWithLexicalScopeStatements } from '../../types/node/TNodeWithLexicalScopeStatements';
+import { TStatement } from '../../types/node/TStatement';
+import { TStringArrayScopeCallsWrapperNamesDataByEncoding } from '../../types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding';
+import { TStringArrayCustomNodeFactory } from '../../types/container/custom-nodes/TStringArrayCustomNodeFactory';
+
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IIdentifierNamesGenerator } from '../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { ILiteralNodesCacheStorage } from '../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperData';
+import { IStringArrayScopeCallsWrapperLexicalScopeData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData';
+import { IStringArrayScopeCallsWrapperLexicalScopeDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage';
+import { IStringArrayScopeCallsWrapperNamesDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage';
+import { IStringArrayScopeCallsWrapperParameterIndexesData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperParameterIndexesData';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IStringArrayStorageAnalyzer } from '../../interfaces/analyzers/string-array-storage-analyzer/IStringArrayStorageAnalyzer';
+import { IStringArrayStorageItemData } from '../../interfaces/storages/string-array-transformers/IStringArrayStorageItem';
+import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage';
+import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
+
+import { NodeTransformationStage } from '../../enums/node-transformers/NodeTransformationStage';
+import { StringArrayCustomNode } from '../../enums/custom-nodes/StringArrayCustomNode';
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { NodeGuards } from '../../node/NodeGuards';
+import { NodeLiteralUtils } from '../../node/NodeLiteralUtils';
+import { NodeMetadata } from '../../node/NodeMetadata';
+import { NodeUtils } from '../../node/NodeUtils';
+import { StringArrayCallNode } from '../../custom-nodes/string-array-nodes/StringArrayCallNode';
+
+@injectable()
+export class StringArrayTransformer extends AbstractNodeTransformer {
+ /**
+ * @type {number}
+ */
+ private static readonly minShiftedIndexValue: number = -1000;
+
+ /**
+ * @type {number}
+ */
+ private static readonly maxShiftedIndexValue: number = 1000;
+
+
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ private readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {ILiteralNodesCacheStorage}
+ */
+ private readonly literalNodesCacheStorage: ILiteralNodesCacheStorage;
+
+ /**
+ * @type {IStringArrayStorage}
+ */
+ private readonly stringArrayStorage: IStringArrayStorage;
+
+ /**
+ * @type {IStringArrayStorageAnalyzer}
+ */
+ private readonly stringArrayStorageAnalyzer: IStringArrayStorageAnalyzer;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperLexicalScopeDataStorage}
+ */
+ private readonly stringArrayScopeCallsWrapperLexicalScopeDataStorage: IStringArrayScopeCallsWrapperLexicalScopeDataStorage;
+
+ /**
+ * @type {IStringArrayScopeCallsWrapperNamesDataStorage}
+ */
+ private readonly stringArrayScopeCallsWrapperNamesDataStorage: IStringArrayScopeCallsWrapperNamesDataStorage;
+
+ /**
+ * @type {TStringArrayCustomNodeFactory}
+ */
+ private readonly stringArrayTransformerCustomNodeFactory: TStringArrayCustomNodeFactory;
+
+ /**
+ * @type {IVisitedLexicalScopeNodesStackStorage}
+ */
+ private readonly visitedLexicalScopeNodesStackStorage: IVisitedLexicalScopeNodesStackStorage;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {ILiteralNodesCacheStorage} literalNodesCacheStorage
+ * @param {IVisitedLexicalScopeNodesStackStorage} visitedLexicalScopeNodesStackStorage
+ * @param {IStringArrayStorage} stringArrayStorage
+ * @param {IStringArrayScopeCallsWrapperNamesDataStorage} stringArrayScopeCallsWrapperNamesDataStorage
+ * @param {IStringArrayScopeCallsWrapperLexicalScopeDataStorage} stringArrayScopeCallsWrapperLexicalScopeDataStorage
+ * @param {IStringArrayStorageAnalyzer} stringArrayStorageAnalyzer
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {TStringArrayCustomNodeFactory} stringArrayTransformerCustomNodeFactory
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.ILiteralNodesCacheStorage) literalNodesCacheStorage: ILiteralNodesCacheStorage,
+ @inject(ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage) visitedLexicalScopeNodesStackStorage: IVisitedLexicalScopeNodesStackStorage,
+ @inject(ServiceIdentifiers.IStringArrayStorage) stringArrayStorage: IStringArrayStorage,
+ @inject(ServiceIdentifiers.IStringArrayScopeCallsWrapperNamesDataStorage)
+ stringArrayScopeCallsWrapperNamesDataStorage: IStringArrayScopeCallsWrapperNamesDataStorage,
+ @inject(ServiceIdentifiers.IStringArrayScopeCallsWrapperLexicalScopeDataStorage)
+ stringArrayScopeCallsWrapperLexicalScopeDataStorage: IStringArrayScopeCallsWrapperLexicalScopeDataStorage,
+ @inject(ServiceIdentifiers.IStringArrayStorageAnalyzer) stringArrayStorageAnalyzer: IStringArrayStorageAnalyzer,
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.Factory__IStringArrayCustomNode)
+ stringArrayTransformerCustomNodeFactory: TStringArrayCustomNodeFactory
+ ) {
+ super(randomGenerator, options);
+
+ this.literalNodesCacheStorage = literalNodesCacheStorage;
+ this.visitedLexicalScopeNodesStackStorage = visitedLexicalScopeNodesStackStorage;
+ this.stringArrayStorage = stringArrayStorage;
+ this.stringArrayScopeCallsWrapperNamesDataStorage = stringArrayScopeCallsWrapperNamesDataStorage;
+ this.stringArrayScopeCallsWrapperLexicalScopeDataStorage = stringArrayScopeCallsWrapperLexicalScopeDataStorage;
+ this.stringArrayStorageAnalyzer = stringArrayStorageAnalyzer;
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.stringArrayTransformerCustomNodeFactory = stringArrayTransformerCustomNodeFactory;
+ }
+
+ /**
+ * @param {NodeTransformationStage} nodeTransformationStage
+ * @returns {IVisitor | null}
+ */
+ public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
+ switch (nodeTransformationStage) {
+ case NodeTransformationStage.StringArray:
+ return {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
+ if (NodeGuards.isProgramNode(node)) {
+ this.prepareNode(node);
+ }
+
+ if (parentNode && NodeGuards.isLiteralNode(node) && !NodeMetadata.isReplacedLiteral(node)) {
+ return this.transformNode(node, parentNode);
+ }
+ }
+ };
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * @param {Program} programNode
+ */
+ public prepareNode (programNode: ESTree.Program): void {
+ this.stringArrayStorageAnalyzer.analyze(programNode);
+
+ if (this.options.shuffleStringArray) {
+ this.stringArrayStorage.shuffleStorage();
+ }
+
+ if (this.options.rotateStringArray) {
+ this.stringArrayStorage.rotateStorage();
+ }
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {NodeGuards} parentNode
+ * @returns {NodeGuards}
+ */
+ public transformNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): ESTree.Node {
+ if (
+ !NodeLiteralUtils.isStringLiteralNode(literalNode)
+ || NodeLiteralUtils.isProhibitedLiteralNode(literalNode, parentNode)
+ ) {
+ return literalNode;
+ }
+
+ const literalValue: ESTree.SimpleLiteral['value'] = literalNode.value;
+
+ const stringArrayStorageItemData: IStringArrayStorageItemData | undefined =
+ this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(literalNode);
+ const cacheKey: string = this.literalNodesCacheStorage.buildKey(literalValue, stringArrayStorageItemData);
+ const useCachedValue: boolean = this.literalNodesCacheStorage.shouldUseCachedValue(cacheKey, stringArrayStorageItemData);
+
+ if (useCachedValue) {
+ return <ESTree.Node>this.literalNodesCacheStorage.get(cacheKey);
+ }
+
+ const resultNode: ESTree.Node = stringArrayStorageItemData
+ ? this.getStringArrayCallNode(stringArrayStorageItemData)
+ : literalNode;
+
+ this.literalNodesCacheStorage.set(cacheKey, resultNode);
+
+ NodeUtils.parentizeNode(resultNode, parentNode);
+
+ return resultNode;
+ }
+
+ /**
+ * @param {IStringArrayStorageItemData} stringArrayStorageItemData
+ * @returns {Expression}
+ */
+ private getStringArrayCallNode (stringArrayStorageItemData: IStringArrayStorageItemData): ESTree.Expression {
+ const {
+ name: stringArrayCallsWrapperName,
+ index,
+ parameterIndexesData
+ } = this.getStringArrayCallsWrapperData(stringArrayStorageItemData);
+ const {decodeKey } = stringArrayStorageItemData;
+
+ const stringArrayCallCustomNode: ICustomNode<TInitialData<StringArrayCallNode>> =
+ this.stringArrayTransformerCustomNodeFactory(StringArrayCustomNode.StringArrayCallNode);
+
+ stringArrayCallCustomNode.initialize(
+ stringArrayCallsWrapperName,
+ parameterIndexesData,
+ index,
+ this.stringArrayStorage.getIndexShiftAmount(),
+ decodeKey
+ );
+
+ const statementNode: TStatement = stringArrayCallCustomNode.getNode()[0];
+
+ if (!NodeGuards.isExpressionStatementNode(statementNode)) {
+ throw new Error('`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node');
+ }
+
+ return statementNode.expression;
+ }
+
+ /**
+ * @param {IStringArrayStorageItemData} stringArrayStorageItemData
+ * @returns {IStringArrayScopeCallsWrapperData}
+ */
+ private getStringArrayCallsWrapperData (
+ stringArrayStorageItemData: IStringArrayStorageItemData
+ ): IStringArrayScopeCallsWrapperData {
+ return !this.options.stringArrayWrappersCount
+ ? this.getRootStringArrayCallsWrapperData(stringArrayStorageItemData)
+ : this.getUpperStringArrayCallsWrapperData(stringArrayStorageItemData);
+ }
+
+ /**
+ * @param {IStringArrayStorageItemData} stringArrayStorageItemData
+ * @returns {IStringArrayScopeCallsWrapperData}
+ */
+ private getRootStringArrayCallsWrapperData (
+ stringArrayStorageItemData: IStringArrayStorageItemData
+ ): IStringArrayScopeCallsWrapperData {
+ const {encoding, index} = stringArrayStorageItemData;
+
+ const rootStringArrayCallsWrapperName: string = this.stringArrayStorage.getStorageCallsWrapperName(encoding);
+
+ return {
+ name: rootStringArrayCallsWrapperName,
+ parameterIndexesData: null,
+ index
+ };
+ }
+
+ /**
+ * @param {IStringArrayStorageItemData} stringArrayStorageItemData
+ * @returns {IStringArrayScopeCallsWrapperData}
+ */
+ private getUpperStringArrayCallsWrapperData (
+ stringArrayStorageItemData: IStringArrayStorageItemData
+ ): IStringArrayScopeCallsWrapperData {
+ const {encoding, index} = stringArrayStorageItemData;
+ const currentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements | null =
+ this.visitedLexicalScopeNodesStackStorage.getLastElement() ?? null;
+ const parentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements | null =
+ this.visitedLexicalScopeNodesStackStorage.getPenultimateElement() ?? null;
+
+ if (!currentLexicalScopeBodyNode) {
+ throw new Error('Cannot find current lexical scope body node');
+ }
+
+ const stringArrayScopeCallsWrapperNamesDataByEncoding: TStringArrayScopeCallsWrapperNamesDataByEncoding =
+ this.getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding(
+ currentLexicalScopeBodyNode,
+ stringArrayStorageItemData
+ );
+ const stringArrayScopeCallsWrapperLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData =
+ this.getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData(
+ currentLexicalScopeBodyNode,
+ parentLexicalScopeBodyNode
+ );
+
+ const stringArrayScopeCallsWrapperNames: string[] = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]?.names ?? [];
+ const randomUpperStringArrayCallsWrapperName: string = this.randomGenerator
+ .getRandomGenerator()
+ .pickone(stringArrayScopeCallsWrapperNames);
+
+ const resultIndex: number = stringArrayScopeCallsWrapperLexicalScopeData
+ ? stringArrayScopeCallsWrapperLexicalScopeData.resultShiftedIndex + index
+ : index;
+
+ return {
+ name: randomUpperStringArrayCallsWrapperName,
+ index: resultIndex,
+ parameterIndexesData: stringArrayScopeCallsWrapperLexicalScopeData.callsWrappersParameterIndexesData
+ };
+ }
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} currentLexicalScopeBodyNode
+ * @param {IStringArrayStorageItemData} stringArrayStorageItemData
+ * @returns {TStringArrayScopeCallsWrapperNamesDataByEncoding}
+ */
+ private getAndUpdateStringArrayScopeCallsWrapperNamesDataByEncoding (
+ currentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements,
+ stringArrayStorageItemData: IStringArrayStorageItemData
+ ): TStringArrayScopeCallsWrapperNamesDataByEncoding {
+ const {encoding} = stringArrayStorageItemData;
+ const stringArrayScopeCallsWrapperNamesDataByEncoding: TStringArrayScopeCallsWrapperNamesDataByEncoding =
+ this.stringArrayScopeCallsWrapperNamesDataStorage.get(currentLexicalScopeBodyNode)
+ ?? {};
+
+ const stringArrayScopeCallsWrapperNames: string[] = stringArrayScopeCallsWrapperNamesDataByEncoding[encoding]?.names ?? [];
+ const isFilledScopeCallsWrapperNamesList: boolean = stringArrayScopeCallsWrapperNames.length === this.options.stringArrayWrappersCount;
+
+ if (isFilledScopeCallsWrapperNamesList) {
+ return stringArrayScopeCallsWrapperNamesDataByEncoding;
+ }
+
+ // have to use `generateForGlobalScope` for program node for correct attach prefix to the calls wrapper name
+ const nextScopeCallsWrapperName: string = NodeGuards.isProgramNode(currentLexicalScopeBodyNode)
+ ? this.identifierNamesGenerator.generateForGlobalScope()
+ : this.identifierNamesGenerator.generateNext();
+
+ stringArrayScopeCallsWrapperNamesDataByEncoding[encoding] = {
+ encoding,
+ names: [
+ ...stringArrayScopeCallsWrapperNames,
+ nextScopeCallsWrapperName
+ ]
+ };
+
+ this.stringArrayScopeCallsWrapperNamesDataStorage.set(
+ currentLexicalScopeBodyNode,
+ stringArrayScopeCallsWrapperNamesDataByEncoding
+ );
+
+ return stringArrayScopeCallsWrapperNamesDataByEncoding;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} currentLexicalScopeBodyNode
+ * @param {TNodeWithLexicalScopeStatements | null} parentLexicalScopeBodyNode
+ * @returns {IStringArrayScopeCallsWrapperLexicalScopeData}
+ * @private
+ */
+ private getAndUpdateStringArrayScopeCallsWrapperLexicalScopeData (
+ currentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements,
+ parentLexicalScopeBodyNode: TNodeWithLexicalScopeStatements | null
+ ): IStringArrayScopeCallsWrapperLexicalScopeData {
+ const storedLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData | null =
+ this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(currentLexicalScopeBodyNode)
+ ?? null;
+
+ if (storedLexicalScopeData) {
+ return storedLexicalScopeData;
+ }
+
+ const parentLexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData | null = parentLexicalScopeBodyNode
+ ? this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.get(parentLexicalScopeBodyNode) ?? null
+ : null;
+
+ const callsWrappersParameterIndexesData: IStringArrayScopeCallsWrapperParameterIndexesData | null =
+ this.options.stringArrayWrappersType === StringArrayWrappersType.Function
+ ? this.getStringArrayCallsWrapperParameterIndexesData()
+ : null;
+ const scopeShiftedIndex: number = this.options.stringArrayWrappersType === StringArrayWrappersType.Function
+ ? this.randomGenerator.getRandomInteger(
+ StringArrayTransformer.minShiftedIndexValue,
+ StringArrayTransformer.maxShiftedIndexValue
+ )
+ : 0;
+ const resultShiftedIndex: number = parentLexicalScopeData
+ ? parentLexicalScopeData.resultShiftedIndex + scopeShiftedIndex
+ : scopeShiftedIndex;
+
+ const lexicalScopeData: IStringArrayScopeCallsWrapperLexicalScopeData = {
+ callsWrappersParameterIndexesData,
+ parentLexicalScopeBodyNode,
+ resultShiftedIndex,
+ scopeShiftedIndex
+ };
+
+ this.stringArrayScopeCallsWrapperLexicalScopeDataStorage.set(
+ currentLexicalScopeBodyNode,
+ lexicalScopeData
+ );
+
+ return lexicalScopeData;
+ }
+
+ /**
+ * @returns {IStringArrayScopeCallsWrapperParameterIndexesData}
+ */
+ private getStringArrayCallsWrapperParameterIndexesData (): IStringArrayScopeCallsWrapperParameterIndexesData {
+ const minIndexValue: number = 0;
+ const maxIndexValue: number = this.options.stringArrayWrappersParametersMaxCount - 1;
+
+ const valueIndexParameterIndex: number = this.randomGenerator
+ .getRandomInteger(minIndexValue, maxIndexValue);
+ const decodeKeyParameterIndex: number = this.randomGenerator
+ .getRandomIntegerExcluding(minIndexValue, maxIndexValue, [valueIndexParameterIndex]);
+
+ return {
+ valueIndexParameterIndex,
+ decodeKeyParameterIndex
+ };
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeAppender.ts b/src/node_modules/javascript-obfuscator/src/node/NodeAppender.ts
new file mode 100644
index 0000000..90497fc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeAppender.ts
@@ -0,0 +1,192 @@
+import * as ESTree from 'estree';
+
+import { TNodeWithStatements } from '../types/node/TNodeWithStatements';
+import { TStatement } from '../types/node/TStatement';
+
+import { ICallsGraphData } from '../interfaces/analyzers/calls-graph-analyzer/ICallsGraphData';
+
+import { NodeGuards } from './NodeGuards';
+
+export class NodeAppender {
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ */
+ public static append (nodeWithStatements: TNodeWithStatements, statements: TStatement[]): void {
+ statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
+
+ NodeAppender.setScopeStatements(nodeWithStatements, [
+ ...NodeAppender.getScopeStatements(nodeWithStatements),
+ ...statements
+ ]);
+ }
+
+ /**
+ * Appends node into a first deepest BlockStatement in order of function calls
+ *
+ * For example:
+ *
+ * function Foo () {
+ * var baz = function () {
+ *
+ * }
+ *
+ * baz();
+ * }
+ *
+ * foo();
+ *
+ * Appends node into block statement of `baz` function expression
+ *
+ * @param {ICallsGraphData[]} callsGraphData
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} bodyStatements
+ * @param {number} index
+ */
+ public static appendToOptimalBlockScope (
+ callsGraphData: ICallsGraphData[],
+ nodeWithStatements: TNodeWithStatements,
+ bodyStatements: TStatement[],
+ index: number = 0
+ ): void {
+ const targetBlockScope: TNodeWithStatements = callsGraphData.length
+ ? NodeAppender.getOptimalBlockScope(callsGraphData, index)
+ : nodeWithStatements;
+
+ NodeAppender.prepend(targetBlockScope, bodyStatements);
+ }
+
+ /**
+ * Returns deepest block scope node at given deep.
+ *
+ * @param {ICallsGraphData[]} callsGraphData
+ * @param {number} index
+ * @param {number} deep
+ * @returns {BlockStatement}
+ */
+ public static getOptimalBlockScope (
+ callsGraphData: ICallsGraphData[],
+ index: number,
+ deep: number = Infinity
+ ): ESTree.BlockStatement {
+ const firstCall: ICallsGraphData = callsGraphData[index];
+
+ if (deep <= 0) {
+ throw new Error('Invalid `deep` argument value. Value should be bigger then 0.');
+ }
+
+ if (deep > 1 && firstCall.callsGraph.length) {
+ return NodeAppender.getOptimalBlockScope(firstCall.callsGraph, 0, --deep);
+ } else {
+ return firstCall.callee;
+ }
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ * @param {Node} target
+ */
+ public static insertBefore (
+ nodeWithStatements: TNodeWithStatements,
+ statements: TStatement[],
+ target: ESTree.Statement
+ ): void {
+ const indexInScopeStatement: number = NodeAppender
+ .getScopeStatements(nodeWithStatements)
+ .indexOf(target);
+
+ NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement);
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ * @param {Node} target
+ */
+ public static insertAfter (
+ nodeWithStatements: TNodeWithStatements,
+ statements: TStatement[],
+ target: ESTree.Statement
+ ): void {
+ const indexInScopeStatement: number = NodeAppender
+ .getScopeStatements(nodeWithStatements)
+ .indexOf(target);
+
+ NodeAppender.insertAtIndex(nodeWithStatements, statements, indexInScopeStatement + 1);
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ * @param {number} index
+ */
+ public static insertAtIndex (
+ nodeWithStatements: TNodeWithStatements,
+ statements: TStatement[],
+ index: number
+ ): void {
+ statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
+
+ NodeAppender.setScopeStatements(nodeWithStatements, [
+ ...NodeAppender.getScopeStatements(nodeWithStatements).slice(0, index),
+ ...statements,
+ ...NodeAppender.getScopeStatements(nodeWithStatements).slice(index)
+ ]);
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ */
+ public static prepend (nodeWithStatements: TNodeWithStatements, statements: TStatement[]): void {
+ statements = NodeAppender.parentizeScopeStatementsBeforeAppend(nodeWithStatements, statements);
+
+ NodeAppender.setScopeStatements(nodeWithStatements, [
+ ...statements,
+ ...NodeAppender.getScopeStatements(nodeWithStatements),
+ ]);
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @returns {TStatement[]}
+ */
+ private static getScopeStatements (nodeWithStatements: TNodeWithStatements): TStatement[] {
+ if (NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
+ return nodeWithStatements.consequent;
+ }
+
+ return nodeWithStatements.body;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ * @returns {TStatement[]}
+ */
+ private static parentizeScopeStatementsBeforeAppend (
+ nodeWithStatements: TNodeWithStatements,
+ statements: TStatement[]
+ ): TStatement[] {
+ statements.forEach((statement: TStatement) => {
+ statement.parentNode = nodeWithStatements;
+ });
+
+ return statements;
+ }
+
+ /**
+ * @param {TNodeWithStatements} nodeWithStatements
+ * @param {TStatement[]} statements
+ */
+ private static setScopeStatements (nodeWithStatements: TNodeWithStatements, statements: TStatement[]): void {
+ if (NodeGuards.isSwitchCaseNode(nodeWithStatements)) {
+ nodeWithStatements.consequent = <ESTree.Statement[]>statements;
+
+ return;
+ }
+
+ nodeWithStatements.body = statements;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeFactory.ts b/src/node_modules/javascript-obfuscator/src/node/NodeFactory.ts
new file mode 100644
index 0000000..88a256c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeFactory.ts
@@ -0,0 +1,586 @@
+/* eslint-disable max-lines */
+import * as escodegen from '@javascript-obfuscator/escodegen';
+import * as ESTree from 'estree';
+
+import { TStatement } from '../types/node/TStatement';
+
+import { NodeType } from '../enums/node/NodeType';
+
+export class NodeFactory {
+ /**
+ * @param {TStatement[]} body
+ * @returns {Program}
+ */
+ public static programNode (body: TStatement[] = []): ESTree.Program {
+ return {
+ type: NodeType.Program,
+ body,
+ sourceType: 'script',
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {(Expression | SpreadElement)[]} elements
+ * @returns {ArrayExpression}
+ */
+ public static arrayExpressionNode (
+ elements: (ESTree.Expression | ESTree.SpreadElement)[] = []
+ ): ESTree.ArrayExpression {
+ return {
+ type: NodeType.ArrayExpression,
+ elements,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Pattern[]} params
+ * @param {boolean} expression
+ * @param {BlockStatement | Expression} body
+ * @returns {ArrowFunctionExpression}
+ */
+ public static arrowFunctionExpressionNode (
+ params: ESTree.Pattern[],
+ expression: boolean,
+ body: ESTree.BlockStatement | ESTree.Expression
+ ): ESTree.ArrowFunctionExpression {
+ return {
+ type: NodeType.ArrowFunctionExpression,
+ params,
+ expression,
+ body
+ };
+ }
+
+ /**
+ * @param {AssignmentOperator} operator
+ * @param {Pattern | MemberExpression} left
+ * @param {Expression} right
+ * @returns {AssignmentExpression}
+ */
+ public static assignmentExpressionNode (
+ operator: ESTree.AssignmentOperator,
+ left: ESTree.Pattern | ESTree.MemberExpression,
+ right: ESTree.Expression
+ ): ESTree.AssignmentExpression {
+ return {
+ type: NodeType.AssignmentExpression,
+ operator,
+ left,
+ right,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {BinaryOperator} operator
+ * @param {Expression} left
+ * @param {Expression} right
+ * @returns {BinaryExpression}
+ */
+ public static binaryExpressionNode (
+ operator: ESTree.BinaryOperator,
+ left: ESTree.Expression,
+ right: ESTree.Expression,
+ ): ESTree.BinaryExpression {
+ return {
+ type: NodeType.BinaryExpression,
+ operator,
+ left,
+ right,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Statement[]} body
+ * @returns {BlockStatement}
+ */
+ public static blockStatementNode (body: ESTree.Statement[] = []): ESTree.BlockStatement {
+ return {
+ type: NodeType.BlockStatement,
+ body,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Identifier} label
+ * @returns {BreakStatement}
+ */
+ public static breakStatement (label?: ESTree.Identifier): ESTree.BreakStatement {
+ return {
+ type: NodeType.BreakStatement,
+ label,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} callee
+ * @param {(Expression | SpreadElement)[]} args
+ * @param {boolean} optional
+ * @returns {CallExpression}
+ */
+ public static callExpressionNode (
+ callee: ESTree.Expression,
+ args: (ESTree.Expression | ESTree.SpreadElement)[] = [],
+ optional: boolean = false,
+ ): ESTree.CallExpression {
+ return {
+ type: NodeType.CallExpression,
+ callee,
+ optional,
+ arguments: args,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ESTree.Expression} test
+ * @param {ESTree.Expression} consequent
+ * @param {ESTree.Expression} alternate
+ * @returns {ESTree.ConditionalExpression}
+ */
+ public static conditionalExpressionNode (
+ test: ESTree.Expression,
+ consequent: ESTree.Expression,
+ alternate: ESTree.Expression
+ ): ESTree.ConditionalExpression {
+ return {
+ type: NodeType.ConditionalExpression,
+ test,
+ consequent,
+ alternate,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Identifier} label
+ * @returns {ContinueStatement}
+ */
+ public static continueStatement (label?: ESTree.Identifier): ESTree.ContinueStatement {
+ return {
+ type: NodeType.ContinueStatement,
+ label,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Literal} expression
+ * @param {string} directive
+ * @returns {Directive}
+ */
+ public static directiveNode (
+ expression: ESTree.Literal,
+ directive: string
+ ): ESTree.Directive {
+ return {
+ type: NodeType.ExpressionStatement,
+ expression,
+ directive,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Literal} source
+ * @returns {ExportAllDeclaration}
+ */
+ public static exportAllDeclarationNode (
+ source: ESTree.Literal
+ ): ESTree.ExportAllDeclaration {
+ return {
+ type: NodeType.ExportAllDeclaration,
+ source,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ExportSpecifier[]} specifiers
+ * @param {Literal} source
+ * @returns {ExportNamedDeclaration}
+ */
+ public static exportNamedDeclarationNode (
+ specifiers: ESTree.ExportSpecifier[],
+ source: ESTree.Literal
+ ): ESTree.ExportNamedDeclaration {
+ return {
+ type: NodeType.ExportNamedDeclaration,
+ specifiers,
+ source,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} expression
+ * @returns {ExpressionStatement}
+ */
+ public static expressionStatementNode (expression: ESTree.Expression): ESTree.ExpressionStatement {
+ return {
+ type: NodeType.ExpressionStatement,
+ expression,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {string} functionName
+ * @param {Identifier[]} params
+ * @param {BlockStatement} body
+ * @returns {FunctionDeclaration}
+ */
+ public static functionDeclarationNode (
+ functionName: string,
+ params: ESTree.Identifier[],
+ body: ESTree.BlockStatement
+ ): ESTree.FunctionDeclaration {
+ return {
+ type: NodeType.FunctionDeclaration,
+ id: NodeFactory.identifierNode(functionName),
+ params,
+ body,
+ generator: false,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Identifier[]} params
+ * @param {BlockStatement} body
+ * @returns {FunctionExpression}
+ */
+ public static functionExpressionNode (
+ params: ESTree.Identifier[],
+ body: ESTree.BlockStatement
+ ): ESTree.FunctionExpression {
+ return {
+ type: NodeType.FunctionExpression,
+ params,
+ body,
+ generator: false,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ESTree.Expression} test
+ * @param {ESTree.Statement} consequent
+ * @param {ESTree.Statement | null} alternate
+ * @returns {ESTree.IfStatement}
+ */
+ public static ifStatementNode (
+ test: ESTree.Expression,
+ consequent: ESTree.Statement,
+ alternate?: ESTree.Statement | null
+ ): ESTree.IfStatement {
+ return {
+ type: NodeType.IfStatement,
+ test,
+ consequent,
+ ...alternate && { alternate },
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {string} name
+ * @returns {Identifier}
+ */
+ public static identifierNode (name: string): ESTree.Identifier {
+ return {
+ type: NodeType.Identifier,
+ name,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {(ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[]} specifiers
+ * @param {Literal} source
+ * @returns {ImportDeclaration}
+ */
+ public static importDeclarationNode (
+ specifiers: (ESTree.ImportSpecifier | ESTree.ImportDefaultSpecifier | ESTree.ImportNamespaceSpecifier)[],
+ source: ESTree.Literal
+ ): ESTree.ImportDeclaration {
+ return {
+ type: NodeType.ImportDeclaration,
+ specifiers,
+ source,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {boolean | number | string} value
+ * @param {string} raw
+ * @returns {Literal}
+ */
+ public static literalNode (value: boolean | number | string, raw?: string): ESTree.Literal {
+ raw = raw !== undefined ? raw : `'${value}'`;
+
+ return {
+ type: NodeType.Literal,
+ value,
+ raw,
+ 'x-verbatim-property': {
+ content: raw,
+ precedence: escodegen.Precedence.Primary
+ },
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {LogicalOperator} operator
+ * @param {Expression} left
+ * @param {Expression} right
+ * @returns {LogicalExpression}
+ */
+ public static logicalExpressionNode (
+ operator: ESTree.LogicalOperator,
+ left: ESTree.Expression,
+ right: ESTree.Expression,
+ ): ESTree.LogicalExpression {
+ return {
+ type: NodeType.LogicalExpression,
+ operator,
+ left,
+ right,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression | Super} object
+ * @param {Expression} property
+ * @param {boolean} computed
+ * @param {boolean} optional
+ * @returns {MemberExpression}
+ */
+ public static memberExpressionNode (
+ object: ESTree.Expression | ESTree.Super,
+ property: ESTree.Expression,
+ computed: boolean = false,
+ optional: boolean = false,
+ ): ESTree.MemberExpression {
+ return {
+ type: NodeType.MemberExpression,
+ computed,
+ object,
+ optional,
+ property,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {(ESTree.Property | ESTree.SpreadElement)[]} properties
+ * @returns {ESTree.ObjectExpression}
+ */
+ public static objectExpressionNode (properties: (ESTree.Property | ESTree.SpreadElement)[]): ESTree.ObjectExpression {
+ return {
+ type: NodeType.ObjectExpression,
+ properties,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} key
+ * @param {Expression | Pattern} value
+ * @param {boolean} computed
+ * @returns {Property}
+ */
+ public static propertyNode (
+ key: ESTree.Expression,
+ value: ESTree.Expression | ESTree.Pattern,
+ computed: boolean = false
+ ): ESTree.Property {
+ return {
+ type: NodeType.Property,
+ key,
+ value,
+ kind: 'init',
+ method: false,
+ shorthand: false,
+ computed,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} argument
+ * @returns {ReturnStatement}
+ */
+ public static returnStatementNode (argument: ESTree.Expression): ESTree.ReturnStatement {
+ return {
+ type: NodeType.ReturnStatement,
+ argument,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ESTree.Expression[]} expressions
+ * @returns {ESTree.SequenceExpression}
+ */
+ public static sequenceExpressionNode (expressions: ESTree.Expression[]): ESTree.SequenceExpression {
+ return {
+ type: NodeType.SequenceExpression,
+ expressions,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} discriminant
+ * @param {SwitchCase[]} cases
+ * @returns {SwitchStatement}
+ */
+ public static switchStatementNode (
+ discriminant: ESTree.Expression,
+ cases: ESTree.SwitchCase[]
+ ): ESTree.SwitchStatement {
+ return {
+ type: NodeType.SwitchStatement,
+ discriminant,
+ cases,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} test
+ * @param {Statement[]} consequent
+ * @returns {SwitchCase}
+ */
+ public static switchCaseNode (test: ESTree.Expression, consequent: ESTree.Statement[]): ESTree.SwitchCase {
+ return {
+ type: NodeType.SwitchCase,
+ test,
+ consequent,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {UnaryOperator} operator
+ * @param {Expression} argument
+ * @param {true} prefix
+ * @returns {UnaryExpression}
+ */
+ public static unaryExpressionNode (
+ operator: ESTree.UnaryOperator,
+ argument: ESTree.Expression,
+ prefix: true = true
+ ): ESTree.UnaryExpression {
+ return {
+ type: NodeType.UnaryExpression,
+ operator,
+ argument,
+ prefix,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {UpdateOperator} operator
+ * @param {Expression} argumentExpr
+ * @returns {UpdateExpression}
+ */
+ public static updateExpressionNode (operator: ESTree.UpdateOperator, argumentExpr: ESTree.Expression): ESTree.UpdateExpression {
+ return {
+ type: NodeType.UpdateExpression,
+ operator,
+ argument: argumentExpr,
+ prefix: false,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ESTree.TemplateElement["value"]} value
+ * @param {boolean} tail
+ * @returns {ESTree.TemplateElement}
+ */
+ public static templateElement (
+ value: ESTree.TemplateElement['value'],
+ tail: boolean
+ ): ESTree.TemplateElement {
+ return {
+ type: NodeType.TemplateElement,
+ value,
+ tail,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {ESTree.Expression[]} expressions
+ * @param {ESTree.TemplateElement[]} quasis
+ * @returns {ESTree.TemplateLiteral}
+ */
+ public static templateLiteral (
+ expressions: ESTree.Expression[],
+ quasis: ESTree.TemplateElement[]
+ ): ESTree.TemplateLiteral {
+ return {
+ type: NodeType.TemplateLiteral,
+ expressions,
+ quasis,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {VariableDeclarator[]} declarations
+ * @param {string} kind
+ * @returns {VariableDeclaration}
+ */
+ public static variableDeclarationNode (
+ declarations: ESTree.VariableDeclarator[] = [],
+ kind: 'var' | 'let' | 'const' = 'var'
+ ): ESTree.VariableDeclaration {
+ return {
+ type: NodeType.VariableDeclaration,
+ declarations,
+ kind,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Identifier} id
+ * @param {Expression | null} init
+ * @returns {VariableDeclarator}
+ */
+ public static variableDeclaratorNode (id: ESTree.Identifier, init: ESTree.Expression | null): ESTree.VariableDeclarator {
+ return {
+ type: NodeType.VariableDeclarator,
+ id,
+ init,
+ metadata: { ignoredNode: false }
+ };
+ }
+
+ /**
+ * @param {Expression} test
+ * @param {Statement} body
+ * @returns {WhileStatement}
+ */
+ public static whileStatementNode (test: ESTree.Expression, body: ESTree.Statement): ESTree.WhileStatement {
+ return {
+ type: NodeType.WhileStatement,
+ test,
+ body,
+ metadata: { ignoredNode: false }
+ };
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeGuards.ts b/src/node_modules/javascript-obfuscator/src/node/NodeGuards.ts
new file mode 100644
index 0000000..613add6
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeGuards.ts
@@ -0,0 +1,465 @@
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../types/node/TNodeWithLexicalScope';
+import { TNodeWithLexicalScopeStatements } from '../types/node/TNodeWithLexicalScopeStatements';
+import { TNodeWithStatements } from '../types/node/TNodeWithStatements';
+
+import { NodeType } from '../enums/node/NodeType';
+
+export class NodeGuards {
+ /**
+ * @type {string[]}
+ */
+ private static readonly nodesWithLexicalStatements: string[] = [
+ NodeType.ArrowFunctionExpression,
+ NodeType.FunctionDeclaration,
+ NodeType.FunctionExpression,
+ NodeType.MethodDefinition,
+ ];
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isArrayPatternNode (node: ESTree.Node): node is ESTree.ArrayPattern {
+ return node.type === NodeType.ArrayPattern;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isArrowFunctionExpressionNode (node: ESTree.Node): node is ESTree.ArrowFunctionExpression {
+ return node.type === NodeType.ArrowFunctionExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isAssignmentExpressionNode (node: ESTree.Node): node is ESTree.AssignmentExpression {
+ return node.type === NodeType.AssignmentExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isAssignmentPatternNode (node: ESTree.Node): node is ESTree.AssignmentPattern {
+ return node.type === NodeType.AssignmentPattern;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isAwaitExpressionNode (node: ESTree.Node): node is ESTree.AwaitExpression {
+ return node.type === NodeType.AwaitExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isBigIntLiteralNode (node: ESTree.Node): node is ESTree.BigIntLiteral {
+ return NodeGuards.isLiteralNode(node) && !!(<ESTree.BigIntLiteral>node).bigint;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isBlockStatementNode (node: ESTree.Node): node is ESTree.BlockStatement {
+ return node.type === NodeType.BlockStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isBreakStatementNode (node: ESTree.Node): node is ESTree.BreakStatement {
+ return node.type === NodeType.BreakStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isCallExpressionNode (node: ESTree.Node): node is ESTree.CallExpression {
+ return node.type === NodeType.CallExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isClassDeclarationNode (
+ node: ESTree.Node
+ ): node is ESTree.ClassDeclaration & { id: ESTree.Identifier } {
+ return node.type === NodeType.ClassDeclaration && node.id !== null;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isContinueStatementNode (node: ESTree.Node): node is ESTree.ContinueStatement {
+ return node.type === NodeType.ContinueStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isDirectiveNode (node: ESTree.Node): node is ESTree.Directive {
+ return node.type === NodeType.ExpressionStatement
+ && 'directive' in node;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isExportAllDeclarationNode (node: ESTree.Node): node is ESTree.ExportAllDeclaration {
+ return node.type === NodeType.ExportAllDeclaration;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isExportNamedDeclarationNode (node: ESTree.Node): node is ESTree.ExportNamedDeclaration {
+ return node.type === NodeType.ExportNamedDeclaration;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isExportSpecifierNode (node: ESTree.Node): node is ESTree.ExportSpecifier {
+ return node.type === NodeType.ExportSpecifier;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isExpressionStatementNode (node: ESTree.Node): node is ESTree.ExpressionStatement {
+ return node.type === NodeType.ExpressionStatement
+ && !('directive' in node);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isForOfStatementNode (node: ESTree.Node): node is ESTree.ForOfStatement {
+ return node.type === NodeType.ForOfStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isFunctionNode (node: ESTree.Node): node is ESTree.Function {
+ return NodeGuards.isFunctionDeclarationNode(node) ||
+ NodeGuards.isFunctionExpressionNode(node) ||
+ NodeGuards.isArrowFunctionExpressionNode(node);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isFunctionDeclarationNode (
+ node: ESTree.Node
+ ): node is ESTree.FunctionDeclaration & { id: ESTree.Identifier } {
+ return node.type === NodeType.FunctionDeclaration && node.id !== null;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isFunctionExpressionNode (node: ESTree.Node): node is ESTree.FunctionExpression {
+ return node.type === NodeType.FunctionExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isIdentifierNode (node: ESTree.Node): node is ESTree.Identifier {
+ return node.type === NodeType.Identifier;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isIfStatementNode (node: ESTree.Node): node is ESTree.IfStatement {
+ return node.type === NodeType.IfStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isImportDeclarationNode (node: ESTree.Node): node is ESTree.ImportDeclaration {
+ return node.type === NodeType.ImportDeclaration;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isImportSpecifierNode (node: ESTree.Node): node is ESTree.ImportSpecifier {
+ return node.type === NodeType.ImportSpecifier;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ public static isLabelIdentifierNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier {
+ const parentNodeIsLabeledStatementNode: boolean = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node;
+ const parentNodeIsContinueStatementNode: boolean = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node;
+ const parentNodeIsBreakStatementNode: boolean = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node;
+
+ return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isLabeledStatementNode (node: ESTree.Node): node is ESTree.LabeledStatement {
+ return node.type === NodeType.LabeledStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isLiteralNode (node: ESTree.Node): node is ESTree.Literal {
+ return node.type === NodeType.Literal;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isMemberExpressionNode (node: ESTree.Node): node is ESTree.MemberExpression {
+ return node.type === NodeType.MemberExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isMethodDefinitionNode (node: ESTree.Node): node is ESTree.MethodDefinition {
+ return node.type === NodeType.MethodDefinition;
+ }
+
+ /**
+ * @param {Object} object
+ * @returns {boolean}
+ */
+ // eslint-disable-next-line @typescript-eslint/ban-types
+ public static isNode (object: Object & { type?: string }): object is ESTree.Node {
+ return object && !object.type !== undefined;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isNodeWithLexicalScope (node: ESTree.Node): node is TNodeWithLexicalScope {
+ return NodeGuards.isProgramNode(node) || NodeGuards.isFunctionNode(node);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isNodeWithBlockLexicalScope (node: ESTree.Node): node is TNodeWithLexicalScope {
+ return NodeGuards.isNodeWithLexicalScope(node) || NodeGuards.isBlockStatementNode(node);
+ }
+
+ /**
+ * @param {Node} node
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ public static isNodeWithLexicalScopeStatements (
+ node: ESTree.Node,
+ parentNode: ESTree.Node
+ ): node is TNodeWithLexicalScopeStatements {
+ return NodeGuards.isProgramNode(node)
+ || (NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithLexicalStatements.includes(parentNode.type));
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isNodeWithStatements (node: ESTree.Node): node is TNodeWithStatements {
+ return NodeGuards.isProgramNode(node)
+ || NodeGuards.isBlockStatementNode(node)
+ || NodeGuards.isSwitchCaseNode(node);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isNodeWithComments (node: ESTree.Node): node is ESTree.Node {
+ return Boolean(node.leadingComments) || Boolean(node.trailingComments);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isObjectPatternNode (node: ESTree.Node): node is ESTree.ObjectPattern {
+ return node.type === NodeType.ObjectPattern;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isObjectExpressionNode (node: ESTree.Node): node is ESTree.ObjectExpression {
+ return node.type === NodeType.ObjectExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isProgramNode (node: ESTree.Node): node is ESTree.Program {
+ return node.type === NodeType.Program;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isPropertyNode (node: ESTree.Node): node is ESTree.Property {
+ return node.type === NodeType.Property;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isRestElementNode (node: ESTree.Node): node is ESTree.RestElement {
+ return node.type === NodeType.RestElement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isReturnStatementNode (node: ESTree.Node): node is ESTree.ReturnStatement {
+ return node.type === NodeType.ReturnStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isSequenceExpressionNode (node: ESTree.Node): node is ESTree.SequenceExpression {
+ return node.type === NodeType.SequenceExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isSpreadElementNode (node: ESTree.Node): node is ESTree.SpreadElement {
+ return node.type === NodeType.SpreadElement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isSuperNode (node: ESTree.Node): node is ESTree.Super {
+ return node.type === NodeType.Super;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isSwitchCaseNode (node: ESTree.Node): node is ESTree.SwitchCase {
+ return node.type === NodeType.SwitchCase;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isTaggedTemplateExpressionNode (node: ESTree.Node): node is ESTree.TaggedTemplateExpression {
+ return node.type === NodeType.TaggedTemplateExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isTemplateLiteralNode (node: ESTree.Node): node is ESTree.TemplateLiteral {
+ return node.type === NodeType.TemplateLiteral;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isUnaryExpressionNode (node: ESTree.Node): node is ESTree.UnaryExpression {
+ return node.type === NodeType.UnaryExpression;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isUseStrictOperator (node: ESTree.Node): node is ESTree.Directive {
+ return NodeGuards.isDirectiveNode(node)
+ && node.directive === 'use strict';
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isVariableDeclarationNode (node: ESTree.Node): node is ESTree.VariableDeclaration {
+ return node.type === NodeType.VariableDeclaration;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isVariableDeclaratorNode (node: ESTree.Node): node is ESTree.VariableDeclarator {
+ return node.type === NodeType.VariableDeclarator;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isWhileStatementNode (node: ESTree.Node): node is ESTree.WhileStatement {
+ return node.type === NodeType.WhileStatement;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isYieldExpressionNode (node: ESTree.Node): node is ESTree.YieldExpression {
+ return node.type === NodeType.YieldExpression;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeLexicalScopeUtils.ts b/src/node_modules/javascript-obfuscator/src/node/NodeLexicalScopeUtils.ts
new file mode 100644
index 0000000..eefdbfc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeLexicalScopeUtils.ts
@@ -0,0 +1,57 @@
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../types/node/TNodeWithLexicalScope';
+
+import { NodeGuards } from './NodeGuards';
+
+export class NodeLexicalScopeUtils {
+ /**
+ * @param {Node} node
+ * @returns {TNodeWithLexicalScope}
+ */
+ public static getLexicalScope (node: ESTree.Node): TNodeWithLexicalScope | undefined {
+ return NodeLexicalScopeUtils.getLexicalScopesRecursive(node, 1)[0];
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {TNodeWithLexicalScope[]}
+ */
+ public static getLexicalScopes (node: ESTree.Node): TNodeWithLexicalScope[] {
+ return NodeLexicalScopeUtils.getLexicalScopesRecursive(node);
+ }
+
+ /**
+ * @param {Node} node
+ * @param {number} maxSize
+ * @param {TNodeWithLexicalScope[]} nodesWithLexicalScope
+ * @param {number} depth
+ * @returns {TNodeWithLexicalScope[]}
+ */
+ private static getLexicalScopesRecursive (
+ node: ESTree.Node,
+ maxSize: number = Infinity,
+ nodesWithLexicalScope: TNodeWithLexicalScope[] = [],
+ depth: number = 0
+ ): TNodeWithLexicalScope[] {
+ if (nodesWithLexicalScope.length >= maxSize) {
+ return nodesWithLexicalScope;
+ }
+
+ const parentNode: ESTree.Node | undefined = node.parentNode;
+
+ if (!parentNode) {
+ throw new ReferenceError('`parentNode` property of given node is `undefined`');
+ }
+
+ if (NodeGuards.isNodeWithLexicalScope(node)) {
+ nodesWithLexicalScope.push(node);
+ }
+
+ if (node !== parentNode) {
+ return NodeLexicalScopeUtils.getLexicalScopesRecursive(parentNode, maxSize, nodesWithLexicalScope, ++depth);
+ }
+
+ return nodesWithLexicalScope;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeLiteralUtils.ts b/src/node_modules/javascript-obfuscator/src/node/NodeLiteralUtils.ts
new file mode 100644
index 0000000..8ac3b19
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeLiteralUtils.ts
@@ -0,0 +1,34 @@
+import * as ESTree from 'estree';
+
+import { NodeGuards } from './NodeGuards';
+
+export class NodeLiteralUtils {
+ /**
+ * @param {Literal} literalNode
+ * @returns {literalNode is (SimpleLiteral & {value: string})}
+ */
+ public static isStringLiteralNode (literalNode: ESTree.Literal): literalNode is ESTree.Literal & {value: string} {
+ return typeof literalNode.value === 'string';
+ }
+
+ /**
+ * @param {Literal} literalNode
+ * @param {Node} parentNode
+ * @returns {boolean}
+ */
+ public static isProhibitedLiteralNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): boolean {
+ if (NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === literalNode) {
+ return true;
+ }
+
+ if (NodeGuards.isImportDeclarationNode(parentNode)) {
+ return true;
+ }
+
+ if (NodeGuards.isExportAllDeclarationNode(parentNode) || NodeGuards.isExportNamedDeclarationNode(parentNode)) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeMetadata.ts b/src/node_modules/javascript-obfuscator/src/node/NodeMetadata.ts
new file mode 100644
index 0000000..11102aa
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeMetadata.ts
@@ -0,0 +1,46 @@
+import * as ESTree from 'estree';
+
+export class NodeMetadata {
+ /**
+ * @param {T} node
+ * @param {Partial<T["metadata"]>} metadata
+ */
+ public static set <T extends ESTree.Node = ESTree.Node> (node: T, metadata: Partial<T['metadata']>): void {
+ node.metadata = Object.assign(node.metadata ?? {}, metadata);
+ }
+
+ /**
+ * @param {Node} node
+ * @param {keyof T} metadataKey
+ * @returns {T[keyof T] | undefined}
+ */
+ public static get <T extends ESTree.BaseNodeMetadata> (node: ESTree.Node, metadataKey: keyof T): T[keyof T] | undefined {
+ return node.metadata !== undefined
+ ? (<T>node.metadata)[metadataKey]
+ : undefined;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isForceTransformNode (node: ESTree.Node): boolean {
+ return NodeMetadata.get(node, 'forceTransformNode') === true;
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ public static isIgnoredNode (node: ESTree.Node): boolean {
+ return NodeMetadata.get(node, 'ignoredNode') === true;
+ }
+
+ /**
+ * @param {Node} literalNode
+ * @returns {boolean}
+ */
+ public static isReplacedLiteral (literalNode: ESTree.Literal): boolean {
+ return NodeMetadata.get<ESTree.LiteralNodeMetadata>(literalNode, 'replacedLiteral') === true;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeStatementUtils.ts b/src/node_modules/javascript-obfuscator/src/node/NodeStatementUtils.ts
new file mode 100644
index 0000000..0d31aa9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeStatementUtils.ts
@@ -0,0 +1,135 @@
+import * as ESTree from 'estree';
+
+import { TNodeWithStatements } from '../types/node/TNodeWithStatements';
+import { TStatement } from '../types/node/TStatement';
+
+import { NodeGuards } from './NodeGuards';
+
+export class NodeStatementUtils {
+ /**
+ * @param {Node} node
+ * @returns {TNodeWithStatements}
+ */
+ public static getParentNodeWithStatements (node: ESTree.Node): TNodeWithStatements {
+ return NodeStatementUtils.getParentNodesWithStatementsRecursive(node, 1)[0];
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {TNodeWithStatements[]}
+ */
+ public static getParentNodesWithStatements (node: ESTree.Node): TNodeWithStatements[] {
+ return NodeStatementUtils.getParentNodesWithStatementsRecursive(node);
+ }
+
+ /**
+ * @param {Statement} statement
+ * @returns {TStatement | null}
+ */
+ public static getNextSiblingStatement (statement: ESTree.Statement): TStatement | null {
+ return NodeStatementUtils.getSiblingStatementByOffset(statement, 1);
+ }
+
+ /**
+ * @param {Statement} statement
+ * @returns {TStatement | null}
+ */
+ public static getPreviousSiblingStatement (statement: ESTree.Statement): TStatement | null {
+ return NodeStatementUtils.getSiblingStatementByOffset(statement, -1);
+ }
+
+ /**
+ * @param {Node} node
+ * @returns {Statement}
+ */
+ public static getRootStatementOfNode (node: ESTree.Node): ESTree.Statement {
+ if (NodeGuards.isProgramNode(node)) {
+ throw new Error('Unable to find root statement for `Program` node');
+ }
+
+ const parentNode: ESTree.Node | undefined = node.parentNode;
+
+ if (!parentNode) {
+ throw new ReferenceError('`parentNode` property of given node is `undefined`');
+ }
+
+ if (!NodeGuards.isNodeWithStatements(parentNode)) {
+ return NodeStatementUtils.getRootStatementOfNode(parentNode);
+ }
+
+ return <ESTree.Statement>node;
+ }
+
+ /**
+ * @param {NodeGuards} node
+ * @returns {TNodeWithStatements}
+ */
+ public static getScopeOfNode (node: ESTree.Node): TNodeWithStatements {
+ const parentNode: ESTree.Node | undefined = node.parentNode;
+
+ if (!parentNode) {
+ throw new ReferenceError('`parentNode` property of given node is `undefined`');
+ }
+
+ if (!NodeGuards.isNodeWithStatements(parentNode)) {
+ return NodeStatementUtils.getScopeOfNode(parentNode);
+ }
+
+ return parentNode;
+ }
+
+ /**
+ * @param {Node} node
+ * @param {number} maxSize
+ * @param {TNodeWithStatements[]} nodesWithStatements
+ * @param {number} depth
+ * @returns {TNodeWithStatements[]}
+ */
+ private static getParentNodesWithStatementsRecursive (
+ node: ESTree.Node,
+ maxSize: number = Infinity,
+ nodesWithStatements: TNodeWithStatements[] = [],
+ depth: number = 0
+ ): TNodeWithStatements[] {
+ if (nodesWithStatements.length >= maxSize) {
+ return nodesWithStatements;
+ }
+
+ const parentNode: ESTree.Node | undefined = node.parentNode;
+
+ if (!parentNode) {
+ throw new ReferenceError('`parentNode` property of given node is `undefined`');
+ }
+
+ if (
+ /**
+ * we can add program node instantly
+ */
+ NodeGuards.isProgramNode(node) ||
+ (NodeGuards.isNodeWithLexicalScopeStatements(node, parentNode) && depth > 0)
+ ) {
+ nodesWithStatements.push(node);
+ }
+
+ if (node !== parentNode) {
+ return NodeStatementUtils.getParentNodesWithStatementsRecursive(parentNode, maxSize, nodesWithStatements, ++depth);
+ }
+
+ return nodesWithStatements;
+ }
+
+ /**
+ * @param {Statement} statement
+ * @param {number} offset
+ * @returns {TStatement | null}
+ */
+ private static getSiblingStatementByOffset (statement: ESTree.Statement, offset: number): TStatement | null {
+ const scopeNode: TNodeWithStatements = NodeStatementUtils.getScopeOfNode(statement);
+ const scopeBody: TStatement[] = !NodeGuards.isSwitchCaseNode(scopeNode)
+ ? scopeNode.body
+ : scopeNode.consequent;
+ const indexInScope: number = scopeBody.indexOf(statement);
+
+ return scopeBody[indexInScope + offset] || null;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/NodeUtils.ts b/src/node_modules/javascript-obfuscator/src/node/NodeUtils.ts
new file mode 100644
index 0000000..217c126
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/NodeUtils.ts
@@ -0,0 +1,153 @@
+import * as escodegen from '@javascript-obfuscator/escodegen';
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+import { ecmaVersion } from '../constants/EcmaVersion';
+
+import { ASTParserFacade } from '../ASTParserFacade';
+import { NodeGuards } from './NodeGuards';
+import { NodeMetadata } from './NodeMetadata';
+
+export class NodeUtils {
+ /**
+ * @param {ESTree.Literal} literalNode
+ * @returns {ESTree.Literal}
+ */
+ public static addXVerbatimPropertyTo (literalNode: ESTree.Literal): ESTree.Literal {
+ literalNode['x-verbatim-property'] = {
+ content: literalNode.raw,
+ precedence: escodegen.Precedence.Primary
+ };
+
+ return literalNode;
+ }
+
+ /**
+ * @param {T} astTree
+ * @returns {T}
+ */
+ public static clone <T extends ESTree.Node = ESTree.Node> (astTree: T): T {
+ return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree));
+ }
+
+ /**
+ * @param {string} code
+ * @returns {ESTree.Statement[]}
+ */
+ public static convertCodeToStructure (code: string): ESTree.Statement[] {
+ const structure: ESTree.Program = ASTParserFacade.parse(
+ code,
+ {
+ ecmaVersion,
+ sourceType: 'script'
+ }
+ );
+
+ estraverse.replace(structure, {
+ enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node => {
+ NodeUtils.parentizeNode(node, parentNode);
+
+ if (NodeGuards.isLiteralNode(node)) {
+ NodeUtils.addXVerbatimPropertyTo(node);
+ }
+
+ NodeMetadata.set(node, { ignoredNode: false });
+
+ return node;
+ }
+ });
+
+ return <ESTree.Statement[]>structure.body;
+ }
+
+ /**
+ * @param {NodeGuards[]} structure
+ * @returns {string}
+ */
+ public static convertStructureToCode (structure: ESTree.Node[]): string {
+ return structure.reduce((code: string, node: ESTree.Node) => {
+ return code + escodegen.generate(node, {
+ sourceMapWithCode: true
+ }).code;
+ }, '');
+ }
+
+ /**
+ * @param {UnaryExpression} unaryExpressionNode
+ * @returns {NodeGuards}
+ */
+ public static getUnaryExpressionArgumentNode (unaryExpressionNode: ESTree.UnaryExpression): ESTree.Node {
+ if (NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) {
+ return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument);
+ }
+
+ return unaryExpressionNode.argument;
+ }
+
+ /**
+ * @param {T} astTree
+ * @returns {T}
+ */
+ public static parentizeAst <T extends ESTree.Node = ESTree.Node> (astTree: T): T {
+ const parentNode: ESTree.Node | null = astTree.parentNode ?? null;
+
+ estraverse.replace(astTree, {
+ enter: NodeUtils.parentizeNode
+ });
+
+ if (parentNode) {
+ astTree.parentNode = parentNode;
+ }
+
+ return astTree;
+ }
+
+ /**
+ * @param {T} node
+ * @param {Node} parentNode
+ * @returns {T}
+ */
+ public static parentizeNode <T extends ESTree.Node = ESTree.Node> (node: T, parentNode: ESTree.Node | null): T {
+ node.parentNode = parentNode ?? node;
+
+ return node;
+ }
+
+ /**
+ * @param {T} node
+ * @returns {T}
+ */
+ private static cloneRecursive <T> (node: T): T {
+ if (node === null) {
+ return node;
+ }
+
+ const copy: Partial<T> = {};
+ const nodeKeys: (keyof T)[] = <(keyof T)[]>Object.keys(node);
+
+ nodeKeys
+ .forEach((property: keyof T) => {
+ if (property === 'parentNode') {
+ return;
+ }
+
+ const value: T[keyof T] | T[keyof T][] | null = node[property] ?? null;
+
+ let clonedValue: T[keyof T] | T[keyof T][] | null;
+
+ if (value === null || value instanceof RegExp) {
+ clonedValue = value;
+ } else if (value instanceof Array) {
+ clonedValue = value.map(NodeUtils.cloneRecursive);
+ } else if (typeof value === 'object') {
+ clonedValue = NodeUtils.cloneRecursive(value);
+ } else {
+ clonedValue = value;
+ }
+
+ copy[property] = <T[keyof T]>clonedValue;
+ });
+
+ return <T>copy;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/node/ScopeIdentifiersTraverser.ts b/src/node_modules/javascript-obfuscator/src/node/ScopeIdentifiersTraverser.ts
new file mode 100644
index 0000000..7c0afeb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/node/ScopeIdentifiersTraverser.ts
@@ -0,0 +1,161 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import * as eslintScope from 'eslint-scope';
+import * as ESTree from 'estree';
+
+import { TNodeWithLexicalScope } from '../types/node/TNodeWithLexicalScope';
+import { TScopeIdentifiersTraverserCallback } from '../types/node/TScopeIdentifiersTraverserCallback';
+
+import { IScopeAnalyzer } from '../interfaces/analyzers/scope-analyzer/IScopeAnalyzer';
+import { IScopeIdentifiersTraverser } from '../interfaces/node/IScopeIdentifiersTraverser';
+import { IScopeIdentifiersTraverserCallbackData } from '../interfaces/node/IScopeIdentifiersTraverserCallbackData';
+import { IScopeThroughIdentifiersTraverserCallbackData } from '../interfaces/node/IScopeThroughIdentifiersTraverserCallbackData';
+
+import { NodeGuards } from './NodeGuards';
+
+/**
+ * Scope traverser
+ */
+@injectable()
+export class ScopeIdentifiersTraverser implements IScopeIdentifiersTraverser {
+ /**
+ * @type {string}
+ */
+ private static readonly argumentsVariableName: string = 'arguments';
+
+ /**
+ * @type {string[]}
+ */
+ private static readonly globalScopeNames: string[] = [
+ 'global',
+ 'module'
+ ];
+
+ /**
+ * @type {IScopeAnalyzer}
+ */
+ private readonly scopeAnalyzer: IScopeAnalyzer;
+
+ /**
+ * @param {IScopeAnalyzer} scopeAnalyzer
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IScopeAnalyzer) scopeAnalyzer: IScopeAnalyzer
+ ) {
+ this.scopeAnalyzer = scopeAnalyzer;
+ }
+
+ /**
+ * @param {Program} programNode
+ * @param {Node | null} parentNode
+ * @param {TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>} callback
+ */
+ public traverseScopeIdentifiers (
+ programNode: ESTree.Program,
+ parentNode: ESTree.Node | null,
+ callback: TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>
+ ): void {
+ this.scopeAnalyzer.analyze(programNode);
+
+ const globalScope: eslintScope.Scope = this.scopeAnalyzer.acquireScope(programNode);
+
+ this.traverseScopeIdentifiersRecursive(globalScope, globalScope, callback);
+ }
+
+ /**
+ * @param {Program} programNode
+ * @param {Node | null} parentNode
+ * @param {TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>} callback
+ */
+ public traverseScopeThroughIdentifiers (
+ programNode: ESTree.Program,
+ parentNode: ESTree.Node | null,
+ callback: TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>
+ ): void {
+ this.scopeAnalyzer.analyze(programNode);
+
+ const globalScope: eslintScope.Scope = this.scopeAnalyzer.acquireScope(programNode);
+
+ this.traverseScopeThroughIdentifiersRecursive(globalScope, globalScope, callback);
+ }
+
+ /**
+ * @param {Scope} rootScope
+ * @param {Scope} currentScope
+ * @param {TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>} callback
+ */
+ private traverseScopeIdentifiersRecursive (
+ rootScope: eslintScope.Scope,
+ currentScope: eslintScope.Scope,
+ callback: TScopeIdentifiersTraverserCallback<IScopeIdentifiersTraverserCallbackData>
+ ): void {
+ const variableScope: eslintScope.Scope = currentScope.variableScope;
+ const variableLexicalScopeNode: TNodeWithLexicalScope | null = NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)
+ ? variableScope.block
+ : null;
+ const isGlobalDeclaration: boolean = ScopeIdentifiersTraverser.globalScopeNames.includes(variableScope.type);
+
+ if (!variableLexicalScopeNode) {
+ return;
+ }
+
+ for (const variable of currentScope.variables) {
+ if (variable.name === ScopeIdentifiersTraverser.argumentsVariableName) {
+ continue;
+ }
+
+ const isBubblingDeclaration: boolean = variable
+ .identifiers
+ .some((identifier: ESTree.Node) =>
+ identifier.parentNode
+ && NodeGuards.isPropertyNode(identifier.parentNode)
+ && identifier.parentNode.shorthand
+ );
+
+ callback({
+ isGlobalDeclaration,
+ isBubblingDeclaration,
+ rootScope,
+ variable,
+ variableScope,
+ variableLexicalScopeNode
+ });
+ }
+
+ for (const childScope of currentScope.childScopes) {
+ this.traverseScopeIdentifiersRecursive(rootScope, childScope, callback);
+ }
+ }
+
+ /**
+ * @param {Scope} rootScope
+ * @param {Scope} currentScope
+ * @param {TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>} callback
+ */
+ private traverseScopeThroughIdentifiersRecursive (
+ rootScope: eslintScope.Scope,
+ currentScope: eslintScope.Scope,
+ callback: TScopeIdentifiersTraverserCallback<IScopeThroughIdentifiersTraverserCallbackData>
+ ): void {
+ const variableScope: eslintScope.Scope = currentScope.variableScope;
+ const variableLexicalScopeNode: TNodeWithLexicalScope | null = NodeGuards.isNodeWithBlockLexicalScope(variableScope.block)
+ ? variableScope.block
+ : null;
+
+ if (!variableLexicalScopeNode) {
+ return;
+ }
+
+ for (const reference of currentScope.through) {
+ callback({
+ reference,
+ variableLexicalScopeNode
+ });
+ }
+
+ for (const childScope of currentScope.childScopes) {
+ this.traverseScopeThroughIdentifiersRecursive(rootScope, childScope, callback);
+ }
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/options/Options.ts b/src/node_modules/javascript-obfuscator/src/options/Options.ts
new file mode 100644
index 0000000..582d1dc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/Options.ts
@@ -0,0 +1,427 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import {
+ ArrayNotEmpty,
+ ArrayUnique,
+ IsArray,
+ IsBoolean,
+ IsIn,
+ IsNumber,
+ IsString,
+ IsUrl,
+ Max,
+ Min,
+ ValidateIf,
+ validateSync,
+ ValidationError,
+ ValidatorOptions
+} from 'class-validator';
+
+import { TInputOptions } from '../types/options/TInputOptions';
+import { TOptionsPreset } from '../types/options/TOptionsPreset';
+import { TStringArrayIndexesType } from '../types/options/TStringArrayIndexesType';
+import { TStringArrayEncoding } from '../types/options/TStringArrayEncoding';
+import { TStringArrayWrappersType } from '../types/options/TStringArrayWrappersType';
+import { TTypeFromEnum } from '../types/utils/TTypeFromEnum';
+
+import { IOptions } from '../interfaces/options/IOptions';
+import { IOptionsNormalizer } from '../interfaces/options/IOptionsNormalizer';
+
+import { IdentifierNamesGenerator } from '../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { ObfuscationTarget } from '../enums/ObfuscationTarget';
+import { OptionsPreset } from '../enums/options/presets/OptionsPreset';
+import { SourceMapMode } from '../enums/source-map/SourceMapMode';
+import { StringArrayIndexesType } from '../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+import { StringArrayEncoding } from '../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+import { StringArrayWrappersType } from '../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+import { DEFAULT_PRESET } from './presets/Default';
+import { LOW_OBFUSCATION_PRESET } from './presets/LowObfuscation';
+import { MEDIUM_OBFUSCATION_PRESET } from './presets/MediumObfuscation';
+import { HIGH_OBFUSCATION_PRESET } from './presets/HighObfuscation';
+
+import { ValidationErrorsFormatter } from './ValidationErrorsFormatter';
+import { IsAllowedForObfuscationTargets } from './validators/IsAllowedForObfuscationTargets';
+
+@injectable()
+export class Options implements IOptions {
+ /**
+ * @type {Map<TOptionsPreset, TInputOptions>}
+ */
+ private static readonly optionPresetsMap: Map<TOptionsPreset, TInputOptions> = new Map([
+ [OptionsPreset.Default, DEFAULT_PRESET],
+ [OptionsPreset.LowObfuscation, LOW_OBFUSCATION_PRESET],
+ [OptionsPreset.MediumObfuscation, MEDIUM_OBFUSCATION_PRESET],
+ [OptionsPreset.HighObfuscation, HIGH_OBFUSCATION_PRESET]
+ ]);
+
+ /**
+ * @type {ValidatorOptions}
+ */
+ private static readonly validatorOptions: ValidatorOptions = {
+ validationError: {
+ target: false
+ }
+ };
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly compact!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly controlFlowFlattening!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsNumber()
+ @Min(0)
+ @Max(1)
+ public readonly controlFlowFlatteningThreshold!: number;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly deadCodeInjection!: boolean;
+
+ /**
+ * @type {number}
+ */
+ @IsNumber()
+ public readonly deadCodeInjectionThreshold!: number;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly debugProtection!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly debugProtectionInterval!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly disableConsoleOutput!: boolean;
+
+ /**
+ * @type {string[]}
+ */
+ @IsArray()
+ @ArrayUnique()
+ @IsString({
+ each: true
+ })
+ @IsAllowedForObfuscationTargets([
+ ObfuscationTarget.Browser,
+ ObfuscationTarget.BrowserNoEval,
+ ])
+ public readonly domainLock!: string[];
+
+ /**
+ * @type {string[]}
+ */
+ @IsArray()
+ @ArrayUnique()
+ @IsString({
+ each: true
+ })
+ public readonly forceTransformStrings!: string[];
+
+ /**
+ * @type {IdentifierNamesGenerator}
+ */
+ @IsIn([
+ IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,
+ IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
+ IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
+ IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator
+ ])
+ public readonly identifierNamesGenerator!: TTypeFromEnum<typeof IdentifierNamesGenerator>;
+
+ /**
+ * @type {string}
+ */
+ @IsString()
+ public readonly identifiersPrefix!: string;
+
+ @IsArray()
+ @ArrayUnique()
+ @IsString({
+ each: true
+ })
+ @ValidateIf((options: IOptions) =>
+ options.identifierNamesGenerator === IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator
+ )
+ @ArrayNotEmpty()
+ public readonly identifiersDictionary!: string[];
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly ignoreRequireImports!: boolean;
+
+ /**
+ * @type {string}
+ */
+ @IsString()
+ public readonly inputFileName!: string;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly log!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly numbersToExpressions!: boolean;
+
+ /**
+ * @type {TOptionsPreset}
+ */
+ @IsIn([
+ OptionsPreset.Default,
+ OptionsPreset.LowObfuscation,
+ OptionsPreset.MediumObfuscation,
+ OptionsPreset.HighObfuscation
+ ])
+ public readonly optionsPreset!: TOptionsPreset;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly renameGlobals!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly renameProperties!: boolean;
+
+ /**
+ * @type {string[]}
+ */
+ @IsArray()
+ @ArrayUnique()
+ @IsString({
+ each: true
+ })
+ public readonly reservedNames!: string[];
+
+ /**
+ * @type {string[]}
+ */
+ @IsArray()
+ @ArrayUnique()
+ @IsString({
+ each: true
+ })
+ public readonly reservedStrings!: string[];
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly rotateStringArray!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly selfDefending!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly shuffleStringArray!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly simplify!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly sourceMap!: boolean;
+
+ /**
+ * @type {string}
+ */
+ @IsString()
+ @ValidateIf((options: IOptions) => Boolean(options.sourceMapBaseUrl))
+ @IsUrl({
+ require_protocol: true,
+ require_tld: false,
+ require_valid_protocol: true
+ })
+ public readonly sourceMapBaseUrl!: string;
+
+ /**
+ * @type {string}
+ */
+ @IsString()
+ public readonly sourceMapFileName!: string;
+
+ /**
+ * @type {SourceMapMode}
+ */
+ @IsIn([SourceMapMode.Inline, SourceMapMode.Separate])
+ public readonly sourceMapMode!: TTypeFromEnum<typeof SourceMapMode>;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly splitStrings!: boolean;
+
+ /**
+ * @type {number}
+ */
+ @IsNumber()
+ @ValidateIf((options: IOptions) => Boolean(options.splitStrings))
+ @Min(1)
+ public readonly splitStringsChunkLength!: number;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly stringArray!: boolean;
+
+ /**
+ * @type {TStringArrayEncoding[]}
+ */
+ @IsArray()
+ @ArrayUnique()
+ @IsIn([StringArrayEncoding.None, StringArrayEncoding.Base64, StringArrayEncoding.Rc4], { each: true })
+ public readonly stringArrayEncoding!: TStringArrayEncoding[];
+
+ /**
+ * @type {TStringArrayIndexesType[]}
+ */
+ @IsArray()
+ @ArrayNotEmpty()
+ @ArrayUnique()
+ @IsIn([StringArrayIndexesType.HexadecimalNumber, StringArrayIndexesType.HexadecimalNumericString], { each: true })
+ public readonly stringArrayIndexesType!: TStringArrayIndexesType[];
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly stringArrayIndexShift!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly stringArrayWrappersChainedCalls!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsNumber()
+ @Min(0)
+ public readonly stringArrayWrappersCount!: number;
+
+ /**
+ * @type {boolean}
+ */
+ @IsNumber()
+ @Min(2)
+ public readonly stringArrayWrappersParametersMaxCount!: number;
+
+ /**
+ * @type {TStringArrayWrappersType}
+ */
+ @IsIn([StringArrayWrappersType.Variable, StringArrayWrappersType.Function])
+ public readonly stringArrayWrappersType!: TStringArrayWrappersType;
+
+ /**
+ * @type {number}
+ */
+ @IsNumber()
+ @Min(0)
+ @Max(1)
+ public readonly stringArrayThreshold!: number;
+
+ /**
+ * @type {ObfuscationTarget}
+ */
+ @IsIn([ObfuscationTarget.Browser, ObfuscationTarget.BrowserNoEval, ObfuscationTarget.Node])
+ public readonly target!: TTypeFromEnum<typeof ObfuscationTarget>;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly transformObjectKeys!: boolean;
+
+ /**
+ * @type {boolean}
+ */
+ @IsBoolean()
+ public readonly unicodeEscapeSequence!: boolean;
+
+ /**
+ * @type {string | number}
+ */
+ public readonly seed!: string | number;
+
+ /**
+ * @param {TInputOptions} inputOptions
+ * @param {IOptionsNormalizer} optionsNormalizer
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.TInputOptions) inputOptions: TInputOptions,
+ @inject(ServiceIdentifiers.IOptionsNormalizer) optionsNormalizer: IOptionsNormalizer
+ ) {
+ const optionsPreset: TInputOptions = Options.getOptionsByPreset(
+ inputOptions.optionsPreset ?? OptionsPreset.Default
+ );
+
+ Object.assign(this, optionsPreset, inputOptions);
+
+ const errors: ValidationError[] = validateSync(this, Options.validatorOptions);
+
+ if (errors.length) {
+ throw new ReferenceError(`Validation failed. errors:\n${ValidationErrorsFormatter.format(errors)}`);
+ }
+
+ Object.assign(this, optionsNormalizer.normalize(this));
+ }
+
+ /**
+ * @param {TOptionsPreset} optionsPreset
+ * @returns {TInputOptions}
+ */
+ public static getOptionsByPreset (optionsPreset: TOptionsPreset): TInputOptions {
+ const options: TInputOptions | null = Options.optionPresetsMap.get(optionsPreset) ?? null;
+
+ if (!options) {
+ throw new Error(`Options for preset name \`${optionsPreset}\` are not found`);
+ }
+
+ return options;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/options/OptionsNormalizer.ts b/src/node_modules/javascript-obfuscator/src/options/OptionsNormalizer.ts
new file mode 100644
index 0000000..ce164ba
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/OptionsNormalizer.ts
@@ -0,0 +1,58 @@
+import { injectable } from 'inversify';
+
+import { TOptionsNormalizerRule } from '../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../interfaces/options/IOptions';
+import { IOptionsNormalizer } from '../interfaces/options/IOptionsNormalizer';
+
+import { ControlFlowFlatteningThresholdRule } from './normalizer-rules/ControlFlowFlatteningThresholdRule';
+import { DeadCodeInjectionRule } from './normalizer-rules/DeadCodeInjectionRule';
+import { DeadCodeInjectionThresholdRule } from './normalizer-rules/DeadCodeInjectionThresholdRule';
+import { DomainLockRule } from './normalizer-rules/DomainLockRule';
+import { InputFileNameRule } from './normalizer-rules/InputFileNameRule';
+import { SeedRule } from './normalizer-rules/SeedRule';
+import { SelfDefendingRule } from './normalizer-rules/SelfDefendingRule';
+import { SourceMapBaseUrlRule } from './normalizer-rules/SourceMapBaseUrlRule';
+import { SourceMapFileNameRule } from './normalizer-rules/SourceMapFileNameRule';
+import { SplitStringsChunkLengthRule } from './normalizer-rules/SplitStringsChunkLengthRule';
+import { StringArrayRule } from './normalizer-rules/StringArrayRule';
+import { StringArrayEncodingRule } from './normalizer-rules/StringArrayEncodingRule';
+import { StringArrayWrappersChainedCallsRule } from './normalizer-rules/StringArrayWappersChainedCalls';
+
+@injectable()
+export class OptionsNormalizer implements IOptionsNormalizer {
+ /**
+ * @type {TOptionsNormalizerRule[]}
+ */
+ private static readonly normalizerRules: TOptionsNormalizerRule[] = [
+ ControlFlowFlatteningThresholdRule,
+ DeadCodeInjectionRule,
+ DeadCodeInjectionThresholdRule,
+ DomainLockRule,
+ InputFileNameRule,
+ SeedRule,
+ SelfDefendingRule,
+ SourceMapBaseUrlRule,
+ SourceMapFileNameRule,
+ SplitStringsChunkLengthRule,
+ StringArrayRule,
+ StringArrayEncodingRule,
+ StringArrayWrappersChainedCallsRule,
+ ];
+
+ /**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+ public normalize (options: IOptions): IOptions {
+ let normalizedOptions: IOptions = {
+ ...options
+ };
+
+ for (const normalizerRule of OptionsNormalizer.normalizerRules) {
+ normalizedOptions = normalizerRule(normalizedOptions);
+ }
+
+ return normalizedOptions;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/options/ValidationErrorsFormatter.ts b/src/node_modules/javascript-obfuscator/src/options/ValidationErrorsFormatter.ts
new file mode 100644
index 0000000..21c117b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/ValidationErrorsFormatter.ts
@@ -0,0 +1,41 @@
+import { ValidationError } from 'class-validator';
+
+import { TDictionary } from '../types/TDictionary';
+
+export class ValidationErrorsFormatter {
+ /**
+ * @param {ValidationError[]} errors
+ * @returns {string}
+ */
+ public static format (errors: ValidationError[]): string {
+ return errors
+ .reduce(
+ (errorMessages: string[], error: ValidationError) => [
+ ...errorMessages,
+ ValidationErrorsFormatter.formatWithNestedConstraints(error)
+ ],
+ []
+ )
+ .join('\n');
+ }
+
+ /**
+ * @param {ValidationError} error
+ * @returns {string}
+ */
+ private static formatWithNestedConstraints (error: ValidationError): string {
+ const constraints: TDictionary<string> | undefined = error.constraints;
+
+ if (!constraints) {
+ return `\`${error.property}\` error\n`;
+ }
+
+ const rootError: string = `\`${error.property}\` errors:\n`;
+ const nestedErrors: string = Object
+ .keys(constraints)
+ .map((constraint: string) => ` - ${constraints[constraint]}\n`)
+ .join();
+
+ return `${rootError}${nestedErrors}`;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts
new file mode 100644
index 0000000..5e888f4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts
@@ -0,0 +1,19 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const ControlFlowFlatteningThresholdRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.controlFlowFlatteningThreshold === 0) {
+ options = {
+ ...options,
+ controlFlowFlattening: false,
+ controlFlowFlatteningThreshold: 0
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionRule.ts
new file mode 100644
index 0000000..864c87c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionRule.ts
@@ -0,0 +1,29 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { DEFAULT_PRESET } from '../presets/Default';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const DeadCodeInjectionRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.deadCodeInjection) {
+ options = {
+ ...options,
+ deadCodeInjection: true,
+ stringArray: true
+ };
+
+ if (!options.stringArrayThreshold) {
+ options = {
+ ...options,
+ stringArray: true,
+ stringArrayThreshold: <number>DEFAULT_PRESET.stringArrayThreshold
+ };
+ }
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts
new file mode 100644
index 0000000..b28999b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts
@@ -0,0 +1,19 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const DeadCodeInjectionThresholdRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.deadCodeInjectionThreshold === 0) {
+ options = {
+ ...options,
+ deadCodeInjection: false,
+ deadCodeInjectionThreshold: 0
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DomainLockRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DomainLockRule.ts
new file mode 100644
index 0000000..030f035
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/DomainLockRule.ts
@@ -0,0 +1,26 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { Utils } from '../../utils/Utils';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const DomainLockRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.domainLock.length) {
+ const normalizedDomains: string[] = [];
+
+ for (const domain of options.domainLock) {
+ normalizedDomains.push(Utils.extractDomainFrom(domain));
+ }
+
+ options = {
+ ...options,
+ domainLock: normalizedDomains
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/InputFileNameRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/InputFileNameRule.ts
new file mode 100644
index 0000000..0afc061
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/InputFileNameRule.ts
@@ -0,0 +1,28 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { StringSeparator } from '../../enums/StringSeparator';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const InputFileNameRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ let { inputFileName } = options;
+
+ if (inputFileName) {
+ inputFileName = inputFileName
+ .replace(/^\/+/, '')
+ .split(StringSeparator.Dot)
+ .slice(0, -1)
+ .join(StringSeparator.Dot) || inputFileName;
+
+ options = {
+ ...options,
+ inputFileName: `${inputFileName}.js`
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SeedRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SeedRule.ts
new file mode 100644
index 0000000..9822d9c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SeedRule.ts
@@ -0,0 +1,25 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const SeedRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.seed) {
+ return {
+ ...options,
+ seed: options.seed
+ };
+ }
+
+ const getRandomInteger: (min: number, max: number) => number = (min: number, max: number) => {
+ return Math.floor(Math.random() * (max - min + 1) + min);
+ };
+
+ return {
+ ...options,
+ seed: getRandomInteger(0, 999_999_999)
+ };
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SelfDefendingRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SelfDefendingRule.ts
new file mode 100644
index 0000000..e2d4ba9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SelfDefendingRule.ts
@@ -0,0 +1,19 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const SelfDefendingRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.selfDefending) {
+ options = {
+ ...options,
+ compact: true,
+ selfDefending: true
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapBaseUrlRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapBaseUrlRule.ts
new file mode 100644
index 0000000..41888e0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapBaseUrlRule.ts
@@ -0,0 +1,29 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const SourceMapBaseUrlRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ const { sourceMapBaseUrl }: { sourceMapBaseUrl: string } = options;
+
+ if (!options.sourceMapFileName) {
+ options = {
+ ...options,
+ sourceMapBaseUrl: ''
+ };
+
+ return options;
+ }
+
+ if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
+ options = {
+ ...options,
+ sourceMapBaseUrl: `${sourceMapBaseUrl}/`
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapFileNameRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapFileNameRule.ts
new file mode 100644
index 0000000..e2fa074
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SourceMapFileNameRule.ts
@@ -0,0 +1,37 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { StringSeparator } from '../../enums/StringSeparator';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const SourceMapFileNameRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ let { sourceMapFileName }: { sourceMapFileName: string } = options;
+
+ if (sourceMapFileName) {
+ sourceMapFileName = sourceMapFileName
+ .replace(/^\/+/, '')
+ .replace(/(?:\.js)?(?:\.map)?$/, '');
+
+ let sourceMapFileNameParts: string[] = sourceMapFileName.split(StringSeparator.Dot);
+ const sourceMapFileNamePartsCount: number = sourceMapFileNameParts.length;
+ const lastPart: string = sourceMapFileNameParts[sourceMapFileNamePartsCount - 1];
+
+ // try to predict if last part is extension or not
+ if (sourceMapFileNamePartsCount > 1 && lastPart.length <= 3) {
+ sourceMapFileNameParts = sourceMapFileNameParts.slice(0, -1);
+ }
+
+ sourceMapFileName = sourceMapFileNameParts.join(StringSeparator.Dot);
+
+ options = {
+ ...options,
+ sourceMapFileName: `${sourceMapFileName}.js.map`
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SplitStringsChunkLengthRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SplitStringsChunkLengthRule.ts
new file mode 100644
index 0000000..87ae380
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/SplitStringsChunkLengthRule.ts
@@ -0,0 +1,24 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const SplitStringsChunkLengthRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.splitStringsChunkLength === 0) {
+ options = {
+ ...options,
+ splitStrings: false,
+ splitStringsChunkLength: 0
+ };
+ } else {
+ options = {
+ ...options,
+ splitStringsChunkLength: Math.floor(options.splitStringsChunkLength)
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayEncodingRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayEncodingRule.ts
new file mode 100644
index 0000000..7782fba
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayEncodingRule.ts
@@ -0,0 +1,22 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const StringArrayEncodingRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (!options.stringArrayEncoding.length) {
+ options = {
+ ...options,
+ stringArrayEncoding: [
+ StringArrayEncoding.None
+ ]
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayRule.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayRule.ts
new file mode 100644
index 0000000..dd9ff05
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayRule.ts
@@ -0,0 +1,29 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const StringArrayRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (!options.stringArray) {
+ options = {
+ ...options,
+ rotateStringArray: false,
+ shuffleStringArray: false,
+ stringArray: false,
+ stringArrayEncoding: [
+ StringArrayEncoding.None
+ ],
+ stringArrayIndexShift: false,
+ stringArrayWrappersChainedCalls: false,
+ stringArrayWrappersCount: 0,
+ stringArrayThreshold: 0
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayWappersChainedCalls.ts b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayWappersChainedCalls.ts
new file mode 100644
index 0000000..809557f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/normalizer-rules/StringArrayWappersChainedCalls.ts
@@ -0,0 +1,19 @@
+import { TOptionsNormalizerRule } from '../../types/options/TOptionsNormalizerRule';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+/**
+ * @param {IOptions} options
+ * @returns {IOptions}
+ */
+export const StringArrayWrappersChainedCallsRule: TOptionsNormalizerRule = (options: IOptions): IOptions => {
+ if (options.stringArrayWrappersCount === 0) {
+ options = {
+ ...options,
+ stringArrayWrappersChainedCalls: false,
+ stringArrayWrappersCount: 0
+ };
+ }
+
+ return options;
+};
diff --git a/src/node_modules/javascript-obfuscator/src/options/presets/Default.ts b/src/node_modules/javascript-obfuscator/src/options/presets/Default.ts
new file mode 100644
index 0000000..c708324
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/presets/Default.ts
@@ -0,0 +1,63 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+import { IdentifierNamesGenerator } from '../../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+import { OptionsPreset } from '../../enums/options/presets/OptionsPreset';
+import { SourceMapMode } from '../../enums/source-map/SourceMapMode';
+import { StringArrayIndexesType } from '../../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+export const DEFAULT_PRESET: TInputOptions = Object.freeze({
+ compact: true,
+ config: '',
+ controlFlowFlattening: false,
+ controlFlowFlatteningThreshold: 0.75,
+ deadCodeInjection: false,
+ deadCodeInjectionThreshold: 0.4,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: false,
+ domainLock: [],
+ exclude: [],
+ forceTransformStrings: [],
+ identifierNamesGenerator: IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
+ identifiersPrefix: '',
+ identifiersDictionary: [],
+ ignoreRequireImports: false,
+ inputFileName: '',
+ log: false,
+ numbersToExpressions: false,
+ optionsPreset: OptionsPreset.Default,
+ renameGlobals: false,
+ renameProperties: false,
+ reservedNames: [],
+ reservedStrings: [],
+ rotateStringArray: true,
+ seed: 0,
+ selfDefending: false,
+ shuffleStringArray: true,
+ simplify: true,
+ sourceMap: false,
+ sourceMapBaseUrl: '',
+ sourceMapFileName: '',
+ sourceMapMode: SourceMapMode.Separate,
+ splitStrings: false,
+ splitStringsChunkLength: 10,
+ stringArray: true,
+ stringArrayEncoding: [
+ StringArrayEncoding.None
+ ],
+ stringArrayIndexesType: [
+ StringArrayIndexesType.HexadecimalNumber
+ ],
+ stringArrayIndexShift: true,
+ stringArrayWrappersChainedCalls: true,
+ stringArrayWrappersCount: 1,
+ stringArrayWrappersParametersMaxCount: 2,
+ stringArrayWrappersType: StringArrayWrappersType.Variable,
+ stringArrayThreshold: 0.75,
+ target: ObfuscationTarget.Browser,
+ transformObjectKeys: false,
+ unicodeEscapeSequence: false
+});
diff --git a/src/node_modules/javascript-obfuscator/src/options/presets/HighObfuscation.ts b/src/node_modules/javascript-obfuscator/src/options/presets/HighObfuscation.ts
new file mode 100644
index 0000000..0a01af7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/presets/HighObfuscation.ts
@@ -0,0 +1,22 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+import { OptionsPreset } from '../../enums/options/presets/OptionsPreset';
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+import { MEDIUM_OBFUSCATION_PRESET } from './MediumObfuscation';
+
+export const HIGH_OBFUSCATION_PRESET: TInputOptions = Object.freeze({
+ ...MEDIUM_OBFUSCATION_PRESET,
+ controlFlowFlatteningThreshold: 1,
+ deadCodeInjectionThreshold: 1,
+ debugProtection: true,
+ debugProtectionInterval: true,
+ optionsPreset: OptionsPreset.HighObfuscation,
+ splitStringsChunkLength: 5,
+ stringArrayEncoding: [
+ StringArrayEncoding.Rc4
+ ],
+ stringArrayWrappersCount: 5,
+ stringArrayWrappersParametersMaxCount: 5,
+ stringArrayThreshold: 1
+});
diff --git a/src/node_modules/javascript-obfuscator/src/options/presets/LowObfuscation.ts b/src/node_modules/javascript-obfuscator/src/options/presets/LowObfuscation.ts
new file mode 100644
index 0000000..8f95cf3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/presets/LowObfuscation.ts
@@ -0,0 +1,15 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+import { OptionsPreset } from '../../enums/options/presets/OptionsPreset';
+
+import { DEFAULT_PRESET } from './Default';
+
+export const LOW_OBFUSCATION_PRESET: TInputOptions = Object.freeze({
+ ...DEFAULT_PRESET,
+ disableConsoleOutput: true,
+ optionsPreset: OptionsPreset.LowObfuscation,
+ rotateStringArray: true,
+ selfDefending: true,
+ shuffleStringArray: true,
+ simplify: true
+});
diff --git a/src/node_modules/javascript-obfuscator/src/options/presets/MediumObfuscation.ts b/src/node_modules/javascript-obfuscator/src/options/presets/MediumObfuscation.ts
new file mode 100644
index 0000000..a88044e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/presets/MediumObfuscation.ts
@@ -0,0 +1,24 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+import { OptionsPreset } from '../../enums/options/presets/OptionsPreset';
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+import { LOW_OBFUSCATION_PRESET } from './LowObfuscation';
+
+export const MEDIUM_OBFUSCATION_PRESET: TInputOptions = Object.freeze({
+ ...LOW_OBFUSCATION_PRESET,
+ controlFlowFlattening: true,
+ deadCodeInjection: true,
+ numbersToExpressions: true,
+ optionsPreset: OptionsPreset.MediumObfuscation,
+ splitStrings: true,
+ splitStringsChunkLength: 10,
+ stringArrayEncoding: [
+ StringArrayEncoding.Base64
+ ],
+ stringArrayWrappersCount: 2,
+ stringArrayWrappersParametersMaxCount: 4,
+ stringArrayWrappersType: StringArrayWrappersType.Function,
+ transformObjectKeys: true
+});
diff --git a/src/node_modules/javascript-obfuscator/src/options/presets/NoCustomNodes.ts b/src/node_modules/javascript-obfuscator/src/options/presets/NoCustomNodes.ts
new file mode 100644
index 0000000..175cafe
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/presets/NoCustomNodes.ts
@@ -0,0 +1,60 @@
+import { TInputOptions } from '../../types/options/TInputOptions';
+
+import { IdentifierNamesGenerator } from '../../enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+import { SourceMapMode } from '../../enums/source-map/SourceMapMode';
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+import { StringArrayIndexesType } from '../../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+
+export const NO_ADDITIONAL_NODES_PRESET: TInputOptions = Object.freeze({
+ compact: true,
+ controlFlowFlattening: false,
+ controlFlowFlatteningThreshold: 0,
+ deadCodeInjection: false,
+ deadCodeInjectionThreshold: 0,
+ debugProtection: false,
+ debugProtectionInterval: false,
+ disableConsoleOutput: false,
+ domainLock: [],
+ exclude: [],
+ forceTransformStrings: [],
+ identifierNamesGenerator: IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,
+ identifiersPrefix: '',
+ identifiersDictionary: [],
+ ignoreRequireImports: false,
+ inputFileName: '',
+ log: false,
+ numbersToExpressions: false,
+ renameGlobals: false,
+ renameProperties: false,
+ reservedNames: [],
+ reservedStrings: [],
+ rotateStringArray: false,
+ seed: 0,
+ selfDefending: false,
+ shuffleStringArray: false,
+ simplify: false,
+ sourceMap: false,
+ sourceMapBaseUrl: '',
+ sourceMapFileName: '',
+ sourceMapMode: SourceMapMode.Separate,
+ splitStrings: false,
+ splitStringsChunkLength: 0,
+ stringArray: false,
+ stringArrayEncoding: [
+ StringArrayEncoding.None
+ ],
+ stringArrayIndexesType: [
+ StringArrayIndexesType.HexadecimalNumber
+ ],
+ stringArrayIndexShift: false,
+ stringArrayWrappersChainedCalls: false,
+ stringArrayWrappersCount: 0,
+ stringArrayWrappersParametersMaxCount: 2,
+ stringArrayWrappersType: StringArrayWrappersType.Variable,
+ stringArrayThreshold: 0,
+ target: ObfuscationTarget.Browser,
+ transformObjectKeys: false,
+ unicodeEscapeSequence: false
+});
diff --git a/src/node_modules/javascript-obfuscator/src/options/validators/IsAllowedForObfuscationTargets.ts b/src/node_modules/javascript-obfuscator/src/options/validators/IsAllowedForObfuscationTargets.ts
new file mode 100644
index 0000000..435cd44
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/options/validators/IsAllowedForObfuscationTargets.ts
@@ -0,0 +1,55 @@
+import { registerDecorator, ValidationArguments, ValidationOptions } from 'class-validator';
+import equal from 'fast-deep-equal';
+
+import { TTypeFromEnum } from '../../types/utils/TTypeFromEnum';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+import { ObfuscationTarget } from '../../enums/ObfuscationTarget';
+import { StringSeparator } from '../../enums/StringSeparator';
+
+import { DEFAULT_PRESET } from '../presets/Default';
+
+/**
+ * @param {TypeFromEnum<typeof ObfuscationTarget>[]} obfuscationTargets
+ * @param {ValidationOptions} validationOptions
+ * @returns {(options: IOptions, propertyName: keyof IOptions) => void}
+ */
+export function IsAllowedForObfuscationTargets (
+ obfuscationTargets: TTypeFromEnum<typeof ObfuscationTarget>[],
+ validationOptions?: ValidationOptions
+): (options: IOptions, propertyName: keyof IOptions) => void {
+ return (optionsObject: IOptions, propertyName: keyof IOptions): void => {
+ registerDecorator({
+ propertyName,
+ constraints: [obfuscationTargets],
+ name: 'IsAllowedForObfuscationTargets',
+ options: validationOptions,
+ target: optionsObject.constructor,
+ validator: {
+ /**
+ * @param value
+ * @param {ValidationArguments} validationArguments
+ * @returns {boolean}
+ */
+ validate (value: IOptions[keyof IOptions], validationArguments: ValidationArguments): boolean {
+ const options: IOptions = <IOptions>validationArguments.object;
+ const defaultValue: IOptions[keyof IOptions] | undefined = DEFAULT_PRESET[propertyName];
+ const isDefaultValue: boolean = equal(value, defaultValue);
+
+ return isDefaultValue || obfuscationTargets.includes(options.target);
+ },
+
+ /**
+ * @param {ValidationArguments} validationArguments
+ * @returns {string}
+ */
+ defaultMessage (validationArguments: ValidationArguments): string {
+ const requiredObfuscationTargetsString: string = obfuscationTargets.join(`${StringSeparator.Comma} `);
+
+ return `This option allowed only for obfuscation targets: ${requiredObfuscationTargetsString}`;
+ }
+ }
+ });
+ };
+}
diff --git a/src/node_modules/javascript-obfuscator/src/source-code/ObfuscatedCode.ts b/src/node_modules/javascript-obfuscator/src/source-code/ObfuscatedCode.ts
new file mode 100644
index 0000000..4f0e478
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/source-code/ObfuscatedCode.ts
@@ -0,0 +1,102 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { ICryptUtils } from '../interfaces/utils/ICryptUtils';
+import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
+
+import { initializable } from '../decorators/Initializable';
+import { SourceMapMode } from '../enums/source-map/SourceMapMode';
+import { IOptions } from '../interfaces/options/IOptions';
+
+@injectable()
+export class ObfuscatedCode implements IObfuscatedCode {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private obfuscatedCode!: string;
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ private sourceMap!: string;
+
+ /**
+ * @type {ICryptUtils}
+ */
+ private readonly cryptUtils: ICryptUtils;
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ public constructor (
+ @inject(ServiceIdentifiers.ICryptUtils) cryptUtils: ICryptUtils,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.cryptUtils = cryptUtils;
+ this.options = options;
+ }
+
+ /**
+ * @param {string} obfuscatedCode
+ * @param {string} sourceMap
+ */
+ public initialize (obfuscatedCode: string, sourceMap: string): void {
+ this.obfuscatedCode = obfuscatedCode;
+ this.sourceMap = sourceMap;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getObfuscatedCode (): string {
+ return this.correctObfuscatedCode();
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getSourceMap (): string {
+ return this.sourceMap;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public toString (): string {
+ return this.obfuscatedCode;
+ }
+
+ /**
+ * @returns {string}
+ */
+ private correctObfuscatedCode (): string {
+ if (!this.sourceMap) {
+ return this.obfuscatedCode;
+ }
+
+ const sourceMapUrl: string = this.options.sourceMapBaseUrl + this.options.sourceMapFileName;
+
+ let sourceMappingUrl: string = '//# sourceMappingURL=';
+
+ switch (this.options.sourceMapMode) {
+ case SourceMapMode.Inline:
+ sourceMappingUrl += `data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;
+
+ break;
+
+ case SourceMapMode.Separate:
+ default:
+ if (!sourceMapUrl) {
+ return this.obfuscatedCode;
+ }
+
+ sourceMappingUrl += sourceMapUrl;
+ }
+
+ return `${this.obfuscatedCode}\n${sourceMappingUrl}`;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/source-code/SourceCode.ts b/src/node_modules/javascript-obfuscator/src/source-code/SourceCode.ts
new file mode 100644
index 0000000..ece6606
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/source-code/SourceCode.ts
@@ -0,0 +1,43 @@
+import { ISourceCode } from '../interfaces/source-code/ISourceCode';
+
+export class SourceCode implements ISourceCode {
+ /**
+ * @type {string}
+ */
+ private readonly sourceCode: string;
+
+ /**
+ * @type {string}
+ */
+ private readonly sourceMap: string;
+
+ /**
+ * @param {string} sourceCode
+ * @param {string} sourceMap
+ */
+ public constructor (sourceCode: string, sourceMap: string) {
+ this.sourceCode = sourceCode;
+ this.sourceMap = sourceMap;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getSourceCode (): string {
+ return this.sourceCode;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getSourceMap (): string {
+ return this.sourceMap;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public toString (): string {
+ return this.sourceCode;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/ArrayStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/ArrayStorage.ts
new file mode 100644
index 0000000..d78856b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/ArrayStorage.ts
@@ -0,0 +1,149 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { IArrayStorage } from '../interfaces/storages/IArrayStorage';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../decorators/Initializable';
+
+@injectable()
+export abstract class ArrayStorage <V> implements IArrayStorage <V> {
+ /**
+ * @type {V[]}
+ */
+ @initializable()
+ protected storage!: V[];
+
+ /**
+ * @type {string}
+ */
+ @initializable()
+ protected storageId!: string;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {number}
+ */
+ private storageLength: number = 0;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ protected constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ this.storage = [];
+ this.storageId = this.randomGenerator.getRandomString(6);
+ }
+
+ /**
+ * @param {number} key
+ * @returns {V | undefined}
+ */
+ public delete (key: number): V | undefined {
+ const deletedElement: V | undefined = this.storage.splice(key, 1)[0] ?? undefined;
+
+ if (deletedElement) {
+ this.storageLength--;
+ }
+
+ return deletedElement;
+ }
+
+ /**
+ * @param {number} key
+ * @returns {V | undefined}
+ */
+ public get (key: number): V | undefined {
+ return this.storage[key];
+ }
+
+ /**
+ * @param {number} key
+ * @returns {V}
+ */
+ public getOrThrow (key: number): V {
+ const value: V | undefined = this.get(key);
+
+ if (!value) {
+ throw new Error(`No value found in array storage with key \`${key}\``);
+ }
+
+ return value;
+ }
+
+ /**
+ * @param {V} value
+ * @returns {number}
+ */
+ public getKeyOf (value: V): number | null {
+ const key: number = this.storage.indexOf(value);
+
+ return key >= 0 ? key : null;
+ }
+
+ /**
+ * @returns {number}
+ */
+ public getLength (): number {
+ return this.storageLength;
+ }
+
+ /**
+ * @returns {V[]}
+ */
+ public getStorage (): V[] {
+ return this.storage;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getStorageId (): string {
+ return this.storageId;
+ }
+
+ /**
+ * @param {this} storage
+ * @param {boolean} mergeId
+ */
+ public mergeWith (storage: this, mergeId: boolean = false): void {
+ this.storage = [...this.storage, ...storage.getStorage()];
+
+ if (mergeId) {
+ this.storageId = storage.getStorageId();
+ }
+ }
+
+ /**
+ * @param {number} key
+ * @param {V} value
+ */
+ public set (key: number, value: V): void {
+ if (key === this.storageLength) {
+ this.storage.push(value);
+ } else {
+ this.storage.splice(key, 0, value);
+ }
+
+ this.storageLength++;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/MapStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/MapStorage.ts
new file mode 100644
index 0000000..4ddf547
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/MapStorage.ts
@@ -0,0 +1,136 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { IMapStorage } from '../interfaces/storages/IMapStorage';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { initializable } from '../decorators/Initializable';
+
+@injectable()
+export abstract class MapStorage <K, V> implements IMapStorage <K, V> {
+ /**
+ * @type {string}
+ */
+ @initializable()
+ protected storageId!: string;
+
+ /**
+ * @type {Map <K, V>}
+ */
+ @initializable()
+ protected storage!: Map <K, V>;
+
+ /**
+ * @type {IOptions}
+ */
+ protected readonly options: IOptions;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ protected readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.randomGenerator = randomGenerator;
+ this.options = options;
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ this.storage = new Map <K, V>();
+ this.storageId = this.randomGenerator.getRandomString(6);
+ }
+
+ /**
+ * @param {K} key
+ * @returns {V | undefined}
+ */
+ public get (key: K): V | undefined {
+ return this.storage.get(key);
+ }
+
+ /**
+ * @param {K} key
+ * @returns {V}
+ */
+ public getOrThrow (key: K): V {
+ const value: V | undefined = this.get(key);
+
+ if (!value) {
+ throw new Error(`No value found in map storage with key \`${key}\``);
+ }
+
+ return value;
+ }
+
+ /**
+ * @param {V} value
+ * @returns {K | null}
+ */
+ public getKeyOf (value: V): K | null {
+ for (const [key, storageValue] of this.storage) {
+ if (value === storageValue) {
+ return key;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * @returns {number}
+ */
+ public getLength (): number {
+ return this.storage.size;
+ }
+
+ /**
+ * @returns {Map<K, V>}
+ */
+ public getStorage (): Map <K, V> {
+ return this.storage;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getStorageId (): string {
+ return this.storageId;
+ }
+
+ /**
+ * @param {K} key
+ * @returns {boolean}
+ */
+ public has (key: K): boolean {
+ return this.storage.has(key);
+ }
+
+ /**
+ * @param {this} storage
+ * @param {boolean} mergeId
+ */
+ public mergeWith (storage: this, mergeId: boolean = false): void {
+ this.storage = new Map <K, V>([...this.storage, ...storage.getStorage()]);
+
+ if (mergeId) {
+ this.storageId = storage.getStorageId();
+ }
+ }
+
+ /**
+ * @param {K} key
+ * @param {V} value
+ */
+ public set (key: K, value: V): void {
+ this.storage.set(key, value);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts
new file mode 100644
index 0000000..e6e207c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/custom-code-helpers/CustomCodeHelperGroupStorage.ts
@@ -0,0 +1,57 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TCustomCodeHelperGroupFactory } from '../../types/container/custom-code-helpers/TCustomCodeHelperGroupFactory';
+
+import { ICustomCodeHelperGroup } from '../../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { CustomCodeHelperGroup } from '../../enums/custom-code-helpers/CustomCodeHelperGroup';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class CustomCodeHelperGroupStorage extends MapStorage <string, ICustomCodeHelperGroup> {
+ /**
+ * @type {CustomCodeHelperGroup[]}
+ */
+ private static readonly customCodeHelperGroupsList: CustomCodeHelperGroup[] = [
+ CustomCodeHelperGroup.ConsoleOutput,
+ CustomCodeHelperGroup.DebugProtection,
+ CustomCodeHelperGroup.DomainLock,
+ CustomCodeHelperGroup.SelfDefending,
+ CustomCodeHelperGroup.StringArray
+ ];
+
+ /**
+ * @type {TCustomNodesFactoriesFactory}
+ */
+ private readonly customCodeHelperGroupFactory: TCustomCodeHelperGroupFactory;
+
+ /**
+ * @param {TCustomCodeHelperGroupFactory} customCodeHelperGroupFactory
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__ICustomCodeHelperGroup) customCodeHelperGroupFactory: TCustomCodeHelperGroupFactory,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+
+ this.customCodeHelperGroupFactory = customCodeHelperGroupFactory;
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ super.initialize();
+
+ CustomCodeHelperGroupStorage.customCodeHelperGroupsList.forEach((customCodeHelperGroupName: CustomCodeHelperGroup) => {
+ const customCodeHelperGroup: ICustomCodeHelperGroup = this.customCodeHelperGroupFactory(customCodeHelperGroupName);
+
+ this.storage.set(customCodeHelperGroupName, customCodeHelperGroup);
+ });
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/custom-nodes/ControlFlowStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/custom-nodes/ControlFlowStorage.ts
new file mode 100644
index 0000000..1ee3a35
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/custom-nodes/ControlFlowStorage.ts
@@ -0,0 +1,22 @@
+import { inject, injectable, } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class ControlFlowStorage extends MapStorage <string, ICustomNode> {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/LiteralNodesCacheStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/LiteralNodesCacheStorage.ts
new file mode 100644
index 0000000..2b35753
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/LiteralNodesCacheStorage.ts
@@ -0,0 +1,55 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import * as ESTree from 'estree';
+
+import { ILiteralNodesCacheStorage } from '../../interfaces/storages/string-array-transformers/ILiteralNodesCacheStorage';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorageItemData } from '../../interfaces/storages/string-array-transformers/IStringArrayStorageItem';
+
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class LiteralNodesCacheStorage extends MapStorage <string, ESTree.Node> implements ILiteralNodesCacheStorage {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+
+ /**
+ * @param {string} literalValue
+ * @param {IStringArrayStorageItemData | undefined} stringArrayStorageItemData
+ * @returns {string}
+ */
+ public buildKey (
+ literalValue: string,
+ stringArrayStorageItemData: IStringArrayStorageItemData | undefined,
+ ): string {
+ return `${literalValue}-${Boolean(stringArrayStorageItemData)}`;
+ }
+
+ /**
+ * @param {string} key
+ * @param {IStringArrayStorageItemData | undefined} stringArrayStorageItemData
+ * @returns {boolean}
+ */
+ public shouldUseCachedValue (
+ key: string,
+ stringArrayStorageItemData: IStringArrayStorageItemData | undefined
+ ): boolean {
+ // for each function scope different nodes will be created, so cache have no sense
+ return !this.options.stringArrayWrappersCount
+ // different nodes will be created with different rc4 keys, so cache have no sense
+ && stringArrayStorageItemData?.encoding !== StringArrayEncoding.Rc4
+ && this.storage.has(key);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts
new file mode 100644
index 0000000..f3b37eb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperLexicalScopeDataStorage.ts
@@ -0,0 +1,28 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScopeStatements } from '../../types/node/TNodeWithLexicalScopeStatements';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperLexicalScopeData } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeData';
+import { IStringArrayScopeCallsWrapperLexicalScopeDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperLexicalScopeDataStorage';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class StringArrayScopeCallsWrapperLexicalScopeDataStorage extends MapStorage <
+ TNodeWithLexicalScopeStatements,
+ IStringArrayScopeCallsWrapperLexicalScopeData
+> implements IStringArrayScopeCallsWrapperLexicalScopeDataStorage {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts
new file mode 100644
index 0000000..e906ff0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayScopeCallsWrapperNamesDataStorage.ts
@@ -0,0 +1,28 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScopeStatements } from '../../types/node/TNodeWithLexicalScopeStatements';
+import { TStringArrayScopeCallsWrapperNamesDataByEncoding } from '../../types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayScopeCallsWrapperNamesDataStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayScopeCallsWrapperNamesDataStorage';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class StringArrayScopeCallsWrapperNamesDataStorage extends MapStorage <
+ TNodeWithLexicalScopeStatements,
+ TStringArrayScopeCallsWrapperNamesDataByEncoding
+> implements IStringArrayScopeCallsWrapperNamesDataStorage {
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ super(randomGenerator, options);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayStorage.ts
new file mode 100644
index 0000000..1ed6a80
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/StringArrayStorage.ts
@@ -0,0 +1,340 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TIdentifierNamesGeneratorFactory } from '../../types/container/generators/TIdentifierNamesGeneratorFactory';
+import { TStringArrayEncoding } from '../../types/options/TStringArrayEncoding';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { ICryptUtilsSwappedAlphabet } from '../../interfaces/utils/ICryptUtilsSwappedAlphabet';
+import { IEncodedValue } from '../../interfaces/IEncodedValue';
+import { IIdentifierNamesGenerator } from '../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IStringArrayStorage } from '../../interfaces/storages/string-array-transformers/IStringArrayStorage';
+import { IStringArrayStorageItemData } from '../../interfaces/storages/string-array-transformers/IStringArrayStorageItem';
+
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+import { MapStorage } from '../MapStorage';
+
+@injectable()
+export class StringArrayStorage extends MapStorage <string, IStringArrayStorageItemData> implements IStringArrayStorage {
+ /**
+ * @type {number}
+ */
+ private static readonly minimumRotationAmount: number = 100;
+
+ /**
+ * @type {number}
+ */
+ private static readonly maximumRotationAmount: number = 500;
+
+ /**
+ * @type {number}
+ */
+ private static readonly minimumIndexShiftAmount: number = 100;
+
+ /**
+ * @type {number}
+ */
+ private static readonly maximumIndexShiftAmount: number = 500;
+
+ /**
+ * @type {number}
+ */
+ private static readonly rc4KeyLength: number = 4;
+
+ /**
+ * @type {number}
+ */
+ private static readonly rc4KeysCount: number = 50;
+
+ /**
+ * @type {number}
+ */
+ private static readonly stringArrayNameLength: number = 4;
+
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @type {ICryptUtilsSwappedAlphabet}
+ */
+ private readonly cryptUtilsSwappedAlphabet: ICryptUtilsSwappedAlphabet;
+
+ /**
+ * @type {IIdentifierNamesGenerator}
+ */
+ private readonly identifierNamesGenerator: IIdentifierNamesGenerator;
+
+ /**
+ * @type {string[]}
+ */
+ private readonly rc4Keys: string[];
+
+ /**
+ * @type {Map<string, string[]>}
+ */
+ private readonly rc4EncodedValuesSourcesCache: Map<string, string[]> = new Map();
+
+ /**
+ * @type {number}
+ */
+ private indexShiftAmount: number = 0;
+
+ /**
+ * @type {number}
+ */
+ private rotationAmount: number = 0;
+
+ /**
+ * @type {string}
+ */
+ private stringArrayStorageName!: string;
+
+ /**
+ * @type {Map<TStringArrayEncoding | null, string>}
+ */
+ private readonly stringArrayStorageCallsWrapperNamesMap: Map<TStringArrayEncoding | null, string> = new Map();
+
+ /**
+ * @param {TIdentifierNamesGeneratorFactory} identifierNamesGeneratorFactory
+ * @param {IArrayUtils} arrayUtils
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {ICryptUtilsSwappedAlphabet} cryptUtilsSwappedAlphabet
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.Factory__IIdentifierNamesGenerator)
+ identifierNamesGeneratorFactory: TIdentifierNamesGeneratorFactory,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.ICryptUtilsSwappedAlphabet) cryptUtilsSwappedAlphabet: ICryptUtilsSwappedAlphabet
+ ) {
+ super(randomGenerator, options);
+
+ this.identifierNamesGenerator = identifierNamesGeneratorFactory(options);
+ this.arrayUtils = arrayUtils;
+ this.cryptUtilsSwappedAlphabet = cryptUtilsSwappedAlphabet;
+
+ this.rc4Keys = this.randomGenerator.getRandomGenerator()
+ .n(
+ () => this.randomGenerator.getRandomGenerator().string({
+ length: StringArrayStorage.rc4KeyLength
+ }),
+ StringArrayStorage.rc4KeysCount
+ );
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ super.initialize();
+
+ this.indexShiftAmount = this.options.stringArrayIndexShift
+ ? this.randomGenerator.getRandomInteger(
+ StringArrayStorage.minimumIndexShiftAmount,
+ StringArrayStorage.maximumIndexShiftAmount
+ )
+ : 0;
+ this.rotationAmount = this.options.rotateStringArray
+ ? this.randomGenerator.getRandomInteger(
+ StringArrayStorage.minimumRotationAmount,
+ StringArrayStorage.maximumRotationAmount
+ )
+ : 0;
+ }
+
+ /**
+ * @param {string} value
+ */
+ public get (value: string): IStringArrayStorageItemData {
+ return this.getOrSetIfDoesNotExist(value);
+ }
+
+ /**
+ * @returns {number}
+ */
+ public getIndexShiftAmount (): number {
+ return this.indexShiftAmount;
+ }
+
+ /**
+ * @returns {number}
+ */
+ public getRotationAmount (): number {
+ return this.rotationAmount;
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getStorageName (): string {
+ return this.getStorageId();
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getStorageId (): string {
+ if (!this.stringArrayStorageName) {
+ this.stringArrayStorageName = this.identifierNamesGenerator
+ .generateForGlobalScope(StringArrayStorage.stringArrayNameLength);
+ }
+
+ return this.stringArrayStorageName;
+ }
+
+ /**
+ * @param {TStringArrayEncoding | null} stringArrayEncoding
+ * @returns {IStringArrayCallsWrapperNames}
+ */
+ public getStorageCallsWrapperName (stringArrayEncoding: TStringArrayEncoding | null): string {
+ const storageCallsWrapperName: string | null = this.stringArrayStorageCallsWrapperNamesMap
+ .get(stringArrayEncoding) ?? null;
+
+ if (storageCallsWrapperName) {
+ return storageCallsWrapperName;
+ }
+
+ const newStorageCallsWrapperName: string = this.identifierNamesGenerator
+ .generateForGlobalScope(StringArrayStorage.stringArrayNameLength);
+
+ this.stringArrayStorageCallsWrapperNamesMap.set(
+ stringArrayEncoding,
+ newStorageCallsWrapperName
+ );
+
+ return newStorageCallsWrapperName;
+ }
+
+ public rotateStorage (): void {
+ if (!this.getLength()) {
+ return;
+ }
+
+ this.storage = new Map(
+ this.arrayUtils.rotate(
+ Array.from(this.storage.entries()),
+ this.rotationAmount
+ )
+ );
+ }
+
+ public shuffleStorage (): void {
+ this.storage = new Map(
+ this.arrayUtils
+ .shuffle(Array.from(this.storage.entries()))
+ .map<[string, IStringArrayStorageItemData]>(
+ (
+ [value, stringArrayStorageItemData]: [string, IStringArrayStorageItemData],
+ index: number
+ ) => {
+ stringArrayStorageItemData.index = index;
+
+ return [value, stringArrayStorageItemData];
+ }
+ )
+ .sort((
+ [, stringArrayStorageItemDataA]: [string, IStringArrayStorageItemData],
+ [, stringArrayStorageItemDataB]: [string, IStringArrayStorageItemData]
+ ) => stringArrayStorageItemDataA.index - stringArrayStorageItemDataB.index)
+ );
+ }
+
+ /**
+ * @param {string} value
+ * @returns {IStringArrayStorageItemData}
+ */
+ private getOrSetIfDoesNotExist (value: string): IStringArrayStorageItemData {
+ const { encodedValue, encoding, decodeKey }: IEncodedValue = this.getEncodedValue(value);
+ const storedStringArrayStorageItemData: IStringArrayStorageItemData | undefined = this.storage.get(encodedValue);
+
+ if (storedStringArrayStorageItemData) {
+ return storedStringArrayStorageItemData;
+ }
+
+ const stringArrayStorageItemData: IStringArrayStorageItemData = {
+ encodedValue,
+ encoding,
+ decodeKey,
+ value,
+ index: this.getLength()
+ };
+
+ this.storage.set(encodedValue, stringArrayStorageItemData);
+
+ return stringArrayStorageItemData;
+ }
+
+ /**
+ * @param {string} value
+ * @returns {IEncodedValue}
+ */
+ private getEncodedValue (value: string): IEncodedValue {
+ const encoding: TStringArrayEncoding | null = this.options.stringArrayEncoding.length
+ ? this.randomGenerator
+ .getRandomGenerator()
+ .pickone(this.options.stringArrayEncoding)
+ : null;
+
+ if (!encoding) {
+ throw new Error('`stringArrayEncoding` option array is empty');
+ }
+
+ switch (encoding) {
+ /**
+ * For rc4 there is a possible chance of a collision between encoded values that were received from
+ * different source values with different keys
+ *
+ * For example:
+ * source value | key | encoded value
+ * _15 | CRDL | w74TGA==
+ * _12 | q9mB | w74TGA==
+ *
+ * Issue: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/538
+ *
+ * As a fix that keeps key size of 4 character, the simple brute-force solution is using:
+ * if collision will happen, just try to encode value again
+ */
+ case StringArrayEncoding.Rc4: {
+ const decodeKey: string = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys);
+ const encodedValue: string = this.cryptUtilsSwappedAlphabet.btoa(this.cryptUtilsSwappedAlphabet.rc4(value, decodeKey));
+
+ const encodedValueSources: string[] = this.rc4EncodedValuesSourcesCache.get(encodedValue) ?? [];
+ let encodedValueSourcesLength: number = encodedValueSources.length;
+
+ const shouldAddValueToSourcesCache: boolean = !encodedValueSourcesLength || !encodedValueSources.includes(value);
+
+ if (shouldAddValueToSourcesCache) {
+ encodedValueSources.push(value);
+ encodedValueSourcesLength++;
+ }
+
+ this.rc4EncodedValuesSourcesCache.set(encodedValue, encodedValueSources);
+
+ if (encodedValueSourcesLength > 1) {
+ return this.getEncodedValue(value);
+ }
+
+ return { encodedValue, encoding, decodeKey };
+ }
+
+ case StringArrayEncoding.Base64: {
+ const decodeKey: null = null;
+ const encodedValue: string = this.cryptUtilsSwappedAlphabet.btoa(value);
+
+ return { encodedValue, encoding, decodeKey };
+ }
+
+ default: {
+ const decodeKey: null = null;
+ const encodedValue: string = value;
+
+ return { encodedValue, encoding, decodeKey };
+ }
+ }
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts
new file mode 100644
index 0000000..b2b3255
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/storages/string-array-transformers/VisitedLexicalScopeNodesStackStorage.ts
@@ -0,0 +1,68 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
+
+import { TNodeWithLexicalScopeStatements } from '../../types/node/TNodeWithLexicalScopeStatements';
+
+import { IArrayUtils } from '../../interfaces/utils/IArrayUtils';
+import { IOptions } from '../../interfaces/options/IOptions';
+import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
+import { IVisitedLexicalScopeNodesStackStorage } from '../../interfaces/storages/string-array-transformers/IVisitedLexicalScopeNodesStackStorage';
+
+import { ArrayStorage } from '../ArrayStorage';
+
+@injectable()
+export class VisitedLexicalScopeNodesStackStorage extends ArrayStorage <TNodeWithLexicalScopeStatements> implements IVisitedLexicalScopeNodesStackStorage {
+ /**
+ * @type {IArrayUtils}
+ */
+ private readonly arrayUtils: IArrayUtils;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ * @param {IOptions} options
+ * @param {IArrayUtils} arrayUtils
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions,
+ @inject(ServiceIdentifiers.IArrayUtils) arrayUtils: IArrayUtils,
+ ) {
+ super(randomGenerator, options);
+
+ this.arrayUtils = arrayUtils;
+ }
+
+ /**
+ * @returns {TNodeWithLexicalScopeStatements | undefined}
+ */
+ public getLastElement (): TNodeWithLexicalScopeStatements | undefined {
+ return this.arrayUtils.getLastElement(this.getStorage());
+ }
+
+ /**
+ * @returns {TNodeWithLexicalScopeStatements | undefined}
+ */
+ public getPenultimateElement (): TNodeWithLexicalScopeStatements | undefined {
+ const storageLength: number = this.getLength();
+
+ return this.get(storageLength - 2) ?? undefined;
+ }
+
+ /**
+ * @param {TNodeWithLexicalScopeStatements} nodeWithLexicalScopeStatements
+ */
+ public push (nodeWithLexicalScopeStatements: TNodeWithLexicalScopeStatements): void {
+ const storageLength: number = this.getLength();
+
+ this.set(storageLength, nodeWithLexicalScopeStatements);
+ }
+
+ /**
+ * @returns {TNodeWithLexicalScopeStatements| undefined}
+ */
+ public pop (): TNodeWithLexicalScopeStatements | undefined {
+ const storageLength: number = this.getLength();
+
+ return this.delete(storageLength - 1);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/tsconfig.browser.json b/src/node_modules/javascript-obfuscator/src/tsconfig.browser.json
new file mode 100644
index 0000000..ba627a8
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/tsconfig.browser.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "sourceMap": true,
+ },
+ "exclude": [
+ "../test"
+ ]
+} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/src/tsconfig.node.json b/src/node_modules/javascript-obfuscator/src/tsconfig.node.json
new file mode 100644
index 0000000..7c881c9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/tsconfig.node.json
@@ -0,0 +1,14 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "importHelpers": true,
+ "noEmitHelpers": true,
+ "sourceMap": true
+ },
+ "include": [
+ "../src"
+ ],
+ "exclude": [
+ "../test"
+ ]
+} \ No newline at end of file
diff --git a/src/node_modules/javascript-obfuscator/src/types/TDictionary.ts b/src/node_modules/javascript-obfuscator/src/types/TDictionary.ts
new file mode 100644
index 0000000..97922b7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/TDictionary.ts
@@ -0,0 +1,3 @@
+/* eslint-disable @typescript-eslint/consistent-type-definitions */
+
+export type TDictionary <T = unknown> = {[key: string]: T};
diff --git a/src/node_modules/javascript-obfuscator/src/types/TInitialData.ts b/src/node_modules/javascript-obfuscator/src/types/TInitialData.ts
new file mode 100644
index 0000000..bdc9006
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/TInitialData.ts
@@ -0,0 +1,3 @@
+import { IInitializable } from '../interfaces/IInitializable';
+
+export type TInitialData <TClass extends IInitializable> = Parameters<TClass['initialize']>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/TObfuscationResultsObject.ts b/src/node_modules/javascript-obfuscator/src/types/TObfuscationResultsObject.ts
new file mode 100644
index 0000000..74fbfbe
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/TObfuscationResultsObject.ts
@@ -0,0 +1,3 @@
+import { IObfuscatedCode } from '../interfaces/source-code/IObfuscatedCode';
+
+export type TObfuscationResultsObject <TSourceCodesObject> = {[key in keyof TSourceCodesObject]: IObfuscatedCode};
diff --git a/src/node_modules/javascript-obfuscator/src/types/analyzers/calls-graph-analyzer/TObjectMembersCallsChain.ts b/src/node_modules/javascript-obfuscator/src/types/analyzers/calls-graph-analyzer/TObjectMembersCallsChain.ts
new file mode 100644
index 0000000..8713f65
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/analyzers/calls-graph-analyzer/TObjectMembersCallsChain.ts
@@ -0,0 +1 @@
+export type TObjectMembersCallsChain = (string | number)[];
diff --git a/src/node_modules/javascript-obfuscator/src/types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData.ts b/src/node_modules/javascript-obfuscator/src/types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData.ts
new file mode 100644
index 0000000..5f0793e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/analyzers/number-numerical-expression-analyzer/TNumberNumericalExpressionData.ts
@@ -0,0 +1 @@
+export type TNumberNumericalExpressionData = (number | number[])[];
diff --git a/src/node_modules/javascript-obfuscator/src/types/cli/TCLISanitizer.ts b/src/node_modules/javascript-obfuscator/src/types/cli/TCLISanitizer.ts
new file mode 100644
index 0000000..e105816
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/cli/TCLISanitizer.ts
@@ -0,0 +1 @@
+export type TCLISanitizer <T> = (value: string) => T;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts
new file mode 100644
index 0000000..86c309a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/calls-graph-analyzer/TCalleeDataExtractorFactory.ts
@@ -0,0 +1,5 @@
+import { ICalleeDataExtractor } from '../../../interfaces/analyzers/calls-graph-analyzer/ICalleeDataExtractor';
+
+import { CalleeDataExtractor } from '../../../enums/analyzers/calls-graph-analyzer/CalleeDataExtractor';
+
+export type TCalleeDataExtractorFactory = (calleeDataExtractorName: CalleeDataExtractor) => ICalleeDataExtractor;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/code-transformers/TCodeTransformerFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/code-transformers/TCodeTransformerFactory.ts
new file mode 100644
index 0000000..27b9f11
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/code-transformers/TCodeTransformerFactory.ts
@@ -0,0 +1,5 @@
+import { ICodeTransformer } from '../../../interfaces/code-transformers/ICodeTransformer';
+
+import { CodeTransformer } from '../../../enums/code-transformers/CodeTransformer';
+
+export type TCodeTransformerFactory = (codeTransformerName: CodeTransformer) => ICodeTransformer;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts
new file mode 100644
index 0000000..01feb86
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperFactory.ts
@@ -0,0 +1,7 @@
+import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
+
+import { CustomCodeHelper } from '../../../enums/custom-code-helpers/CustomCodeHelper';
+
+export type TCustomCodeHelperFactory = <
+ TInitialData extends unknown[] = unknown[]
+> (customCodeHelperName: CustomCodeHelper) => ICustomCodeHelper<TInitialData>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts
new file mode 100644
index 0000000..eb22c68
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-code-helpers/TCustomCodeHelperGroupFactory.ts
@@ -0,0 +1,5 @@
+import { ICustomCodeHelperGroup } from '../../../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+
+import { CustomCodeHelperGroup } from '../../../enums/custom-code-helpers/CustomCodeHelperGroup';
+
+export type TCustomCodeHelperGroupFactory = (customCodeHelperGroupName: CustomCodeHelperGroup) => ICustomCodeHelperGroup;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts
new file mode 100644
index 0000000..b917b71
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TControlFlowCustomNodeFactory.ts
@@ -0,0 +1,7 @@
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+
+import { ControlFlowCustomNode } from '../../../enums/custom-nodes/ControlFlowCustomNode';
+
+export type TControlFlowCustomNodeFactory = <
+ TInitialData extends unknown[] = unknown[]
+> (controlFlowCustomNodeName: ControlFlowCustomNode) => ICustomNode<TInitialData>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts
new file mode 100644
index 0000000..e10858f
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TDeadNodeInjectionCustomNodeFactory.ts
@@ -0,0 +1,7 @@
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+
+import { DeadCodeInjectionCustomNode } from '../../../enums/custom-nodes/DeadCodeInjectionCustomNode';
+
+export type TDeadNodeInjectionCustomNodeFactory = <
+ TInitialData extends unknown[] = unknown[]
+> (deadCodeInjectionCustomNodeName: DeadCodeInjectionCustomNode) => ICustomNode <TInitialData>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts
new file mode 100644
index 0000000..8cc94f0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TObjectExpressionKeysTransformerCustomNodeFactory.ts
@@ -0,0 +1,7 @@
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+
+import { ObjectExpressionKeysTransformerCustomNode } from '../../../enums/custom-nodes/ObjectExpressionKeysTransformerCustomNode';
+
+export type TObjectExpressionKeysTransformerCustomNodeFactory = <
+ TInitialData extends unknown[] = unknown[]
+> (objectExpressionKeysTransformerNodeName: ObjectExpressionKeysTransformerCustomNode) => ICustomNode <TInitialData>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts
new file mode 100644
index 0000000..b118f2e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/TStringArrayCustomNodeFactory.ts
@@ -0,0 +1,7 @@
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+
+import { StringArrayCustomNode } from '../../../enums/custom-nodes/StringArrayCustomNode';
+
+export type TStringArrayCustomNodeFactory = <
+ TInitialData extends unknown[] = unknown[]
+> (stringArrayCustomNodeName: StringArrayCustomNode) => ICustomNode <TInitialData>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts
new file mode 100644
index 0000000..319121e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/custom-nodes/string-array-index-nodes/TStringArrayIndexNodeFactory.ts
@@ -0,0 +1,5 @@
+import { IStringArrayIndexNode } from '../../../../interfaces/custom-nodes/string-array-nodes/IStringArrayIndexNode';
+
+import { StringArrayIndexNode } from '../../../../enums/custom-nodes/string-array-index-nodes/StringArrayIndexNode';
+
+export type TStringArrayIndexNodeFactory = (stringArrayIndexNodeName: StringArrayIndexNode) => IStringArrayIndexNode;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/generators/TIdentifierNamesGeneratorFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/generators/TIdentifierNamesGeneratorFactory.ts
new file mode 100644
index 0000000..40b723d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/generators/TIdentifierNamesGeneratorFactory.ts
@@ -0,0 +1,4 @@
+import { IIdentifierNamesGenerator } from '../../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
+import { IOptions } from '../../../interfaces/options/IOptions';
+
+export type TIdentifierNamesGeneratorFactory = (options: IOptions) => IIdentifierNamesGenerator;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowReplacerFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowReplacerFactory.ts
new file mode 100644
index 0000000..0abac94
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowReplacerFactory.ts
@@ -0,0 +1,5 @@
+import { IControlFlowReplacer } from '../../../interfaces/node-transformers/control-flow-transformers/IControlFlowReplacer';
+
+import { ControlFlowReplacer } from '../../../enums/node-transformers/control-flow-transformers/control-flow-replacers/ControlFlowReplacer';
+
+export type TControlFlowReplacerFactory = (replacer: ControlFlowReplacer) => IControlFlowReplacer;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowStorageFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowStorageFactory.ts
new file mode 100644
index 0000000..5b1b9e4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TControlFlowStorageFactory.ts
@@ -0,0 +1,3 @@
+import { TControlFlowStorage } from '../../storages/TControlFlowStorage';
+
+export type TControlFlowStorageFactory = () => TControlFlowStorage;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TNodeTransformerFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TNodeTransformerFactory.ts
new file mode 100644
index 0000000..1049865
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TNodeTransformerFactory.ts
@@ -0,0 +1,5 @@
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+export type TNodeTransformerFactory = (nodeTransformerName: NodeTransformer) => INodeTransformer;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObfuscatingGuardFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObfuscatingGuardFactory.ts
new file mode 100644
index 0000000..9fdc533
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObfuscatingGuardFactory.ts
@@ -0,0 +1,5 @@
+import { IObfuscatingGuard } from '../../../interfaces/node-transformers/preparing-transformers/obfuscating-guards/IObfuscatingGuard';
+
+import { ObfuscatingGuard } from '../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard';
+
+export type TObfuscatingGuardFactory = (nodeGuard: ObfuscatingGuard) => IObfuscatingGuard;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts
new file mode 100644
index 0000000..59e1617
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/node-transformers/TObjectExpressionExtractorFactory.ts
@@ -0,0 +1,6 @@
+import { IObjectExpressionExtractor } from '../../../interfaces/node-transformers/converting-transformers/object-expression-extractors/IObjectExpressionExtractor';
+
+import { ObjectExpressionExtractor } from '../../../enums/node-transformers/converting-transformers/properties-extractors/ObjectExpressionExtractor';
+
+export type TObjectExpressionExtractorFactory =
+ (objectExpressionExtractorName: ObjectExpressionExtractor) => IObjectExpressionExtractor;
diff --git a/src/node_modules/javascript-obfuscator/src/types/container/source-code/TObfuscatedCodeFactory.ts b/src/node_modules/javascript-obfuscator/src/types/container/source-code/TObfuscatedCodeFactory.ts
new file mode 100644
index 0000000..3f5c3cb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/container/source-code/TObfuscatedCodeFactory.ts
@@ -0,0 +1,3 @@
+import { IObfuscatedCode } from '../../../interfaces/source-code/IObfuscatedCode';
+
+export type TObfuscatedCodeFactory = (obfuscatedCode: string, sourceMap: string) => IObfuscatedCode;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorDirection.ts b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorDirection.ts
new file mode 100644
index 0000000..830fc4b
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorDirection.ts
@@ -0,0 +1 @@
+export type TVisitorDirection = 'enter' | 'leave';
diff --git a/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorFunction.ts b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorFunction.ts
new file mode 100644
index 0000000..fd1458c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorFunction.ts
@@ -0,0 +1,5 @@
+import * as ESTree from 'estree';
+
+import { TVisitorResult } from './TVisitorResult';
+
+export type TVisitorFunction = (node: ESTree.Node, parentNode: ESTree.Node | null) => TVisitorResult;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorResult.ts b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorResult.ts
new file mode 100644
index 0000000..31a3bfa
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node-transformers/TVisitorResult.ts
@@ -0,0 +1,4 @@
+import * as estraverse from 'estraverse';
+import * as ESTree from 'estree';
+
+export type TVisitorResult = ESTree.Node | estraverse.VisitorOption | void;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding.ts b/src/node_modules/javascript-obfuscator/src/types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding.ts
new file mode 100644
index 0000000..0bdc447
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node-transformers/string-array-transformers/TStringArrayScopeCallsWrapperNamesDataByEncoding.ts
@@ -0,0 +1,7 @@
+import { TStringArrayEncoding } from '../../options/TStringArrayEncoding';
+
+import { IStringArrayScopeCallsWrapperNamesData } from '../../../interfaces/node-transformers/string-array-transformers/IStringArrayScopeCallsWrapperNamesData';
+
+export type TStringArrayScopeCallsWrapperNamesDataByEncoding = Partial<{
+ [key in TStringArrayEncoding]: IStringArrayScopeCallsWrapperNamesData;
+}>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScope.ts b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScope.ts
new file mode 100644
index 0000000..02792da
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScope.ts
@@ -0,0 +1,3 @@
+import * as ESTree from 'estree';
+
+export type TNodeWithLexicalScope = ESTree.Program | ESTree.Function;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScopeStatements.ts b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScopeStatements.ts
new file mode 100644
index 0000000..88475fa
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithLexicalScopeStatements.ts
@@ -0,0 +1,3 @@
+import * as ESTree from 'estree';
+
+export type TNodeWithLexicalScopeStatements = ESTree.Program | ESTree.BlockStatement;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithStatements.ts b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithStatements.ts
new file mode 100644
index 0000000..7a1813e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TNodeWithStatements.ts
@@ -0,0 +1,3 @@
+import * as ESTree from 'estree';
+
+export type TNodeWithStatements = ESTree.Program | ESTree.BlockStatement | ESTree.SwitchCase;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TObfuscatingGuard.ts b/src/node_modules/javascript-obfuscator/src/types/node/TObfuscatingGuard.ts
new file mode 100644
index 0000000..a787575
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TObfuscatingGuard.ts
@@ -0,0 +1,5 @@
+import * as ESTree from 'estree';
+
+import { ObfuscatingGuardResult } from '../../enums/node/ObfuscatingGuardResult';
+
+export type TObfuscatingGuard = (node: ESTree.Node) => ObfuscatingGuardResult;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TScopeIdentifiersTraverserCallback.ts b/src/node_modules/javascript-obfuscator/src/types/node/TScopeIdentifiersTraverserCallback.ts
new file mode 100644
index 0000000..1f79ea2
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TScopeIdentifiersTraverserCallback.ts
@@ -0,0 +1 @@
+export type TScopeIdentifiersTraverserCallback <TData> = (data: TData) => void;
diff --git a/src/node_modules/javascript-obfuscator/src/types/node/TStatement.ts b/src/node_modules/javascript-obfuscator/src/types/node/TStatement.ts
new file mode 100644
index 0000000..62b1796
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/node/TStatement.ts
@@ -0,0 +1,3 @@
+import * as ESTree from 'estree';
+
+export type TStatement = ESTree.Statement | ESTree.ModuleDeclaration;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TInputCLIOptions.ts b/src/node_modules/javascript-obfuscator/src/types/options/TInputCLIOptions.ts
new file mode 100644
index 0000000..b2d2f5c
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TInputCLIOptions.ts
@@ -0,0 +1,5 @@
+import { TDictionary } from '../TDictionary';
+
+import { ICLIOptions } from '../../interfaces/options/ICLIOptions';
+
+export type TInputCLIOptions = Partial<Pick<ICLIOptions, keyof ICLIOptions>> & TDictionary;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TInputOptions.ts b/src/node_modules/javascript-obfuscator/src/types/options/TInputOptions.ts
new file mode 100644
index 0000000..34325eb
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TInputOptions.ts
@@ -0,0 +1,5 @@
+import { TDictionary } from '../TDictionary';
+
+import { IOptions } from '../../interfaces/options/IOptions';
+
+export type TInputOptions = Partial<Pick<IOptions, keyof IOptions>> & TDictionary;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TOptionsNormalizerRule.ts b/src/node_modules/javascript-obfuscator/src/types/options/TOptionsNormalizerRule.ts
new file mode 100644
index 0000000..11fa0bc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TOptionsNormalizerRule.ts
@@ -0,0 +1,3 @@
+import { IOptions } from '../../interfaces/options/IOptions';
+
+export type TOptionsNormalizerRule = (options: IOptions) => IOptions;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TOptionsPreset.ts b/src/node_modules/javascript-obfuscator/src/types/options/TOptionsPreset.ts
new file mode 100644
index 0000000..aa3d8de
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TOptionsPreset.ts
@@ -0,0 +1,5 @@
+import { TTypeFromEnum } from '../utils/TTypeFromEnum';
+
+import { OptionsPreset } from '../../enums/options/presets/OptionsPreset';
+
+export type TOptionsPreset = TTypeFromEnum<typeof OptionsPreset>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayEncoding.ts b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayEncoding.ts
new file mode 100644
index 0000000..50e424d
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayEncoding.ts
@@ -0,0 +1,5 @@
+import { TTypeFromEnum } from '../utils/TTypeFromEnum';
+
+import { StringArrayEncoding } from '../../enums/node-transformers/string-array-transformers/StringArrayEncoding';
+
+export type TStringArrayEncoding = TTypeFromEnum<typeof StringArrayEncoding>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayIndexesType.ts b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayIndexesType.ts
new file mode 100644
index 0000000..6f611c7
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayIndexesType.ts
@@ -0,0 +1,5 @@
+import { TTypeFromEnum } from '../utils/TTypeFromEnum';
+
+import { StringArrayIndexesType } from '../../enums/node-transformers/string-array-transformers/StringArrayIndexesType';
+
+export type TStringArrayIndexesType = TTypeFromEnum<typeof StringArrayIndexesType>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayWrappersType.ts b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayWrappersType.ts
new file mode 100644
index 0000000..7464fc5
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/options/TStringArrayWrappersType.ts
@@ -0,0 +1,5 @@
+import { TTypeFromEnum } from '../utils/TTypeFromEnum';
+
+import { StringArrayWrappersType } from '../../enums/node-transformers/string-array-transformers/StringArrayWrappersType';
+
+export type TStringArrayWrappersType = TTypeFromEnum<typeof StringArrayWrappersType>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/storages/TControlFlowStorage.ts b/src/node_modules/javascript-obfuscator/src/types/storages/TControlFlowStorage.ts
new file mode 100644
index 0000000..512491a
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/storages/TControlFlowStorage.ts
@@ -0,0 +1,4 @@
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IMapStorage } from '../../interfaces/storages/IMapStorage';
+
+export type TControlFlowStorage = IMapStorage <string, ICustomNode>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/storages/TCustomCodeHelperGroupStorage.ts b/src/node_modules/javascript-obfuscator/src/types/storages/TCustomCodeHelperGroupStorage.ts
new file mode 100644
index 0000000..be1aeb0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/storages/TCustomCodeHelperGroupStorage.ts
@@ -0,0 +1,4 @@
+import { ICustomCodeHelperGroup } from '../../interfaces/custom-code-helpers/ICustomCodeHelperGroup';
+import { IMapStorage } from '../../interfaces/storages/IMapStorage';
+
+export type TCustomCodeHelperGroupStorage = IMapStorage <string, ICustomCodeHelperGroup>;
diff --git a/src/node_modules/javascript-obfuscator/src/types/utils/TTransformersRelationEdge.ts b/src/node_modules/javascript-obfuscator/src/types/utils/TTransformersRelationEdge.ts
new file mode 100644
index 0000000..87681df
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/utils/TTransformersRelationEdge.ts
@@ -0,0 +1,4 @@
+export type TTransformersRelationEdge <TTransformerName extends string> = [
+ transformerNameA: TTransformerName,
+ transformerNameB: TTransformerName | null
+];
diff --git a/src/node_modules/javascript-obfuscator/src/types/utils/TTypeFromEnum.ts b/src/node_modules/javascript-obfuscator/src/types/utils/TTypeFromEnum.ts
new file mode 100644
index 0000000..9dd551e
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/types/utils/TTypeFromEnum.ts
@@ -0,0 +1 @@
+export type TTypeFromEnum<T extends object> = (T)[keyof T];
diff --git a/src/node_modules/javascript-obfuscator/src/utils/AbstractTransformerNamesGroupsBuilder.ts b/src/node_modules/javascript-obfuscator/src/utils/AbstractTransformerNamesGroupsBuilder.ts
new file mode 100644
index 0000000..f7971b5
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/AbstractTransformerNamesGroupsBuilder.ts
@@ -0,0 +1,102 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { TDictionary } from '../types/TDictionary';
+import { TTransformersRelationEdge } from '../types/utils/TTransformersRelationEdge';
+
+import { ILevelledTopologicalSorter } from '../interfaces/utils/ILevelledTopologicalSorter';
+import { ITransformer } from '../interfaces/ITransformer';
+import { ITransformerNamesGroupsBuilder } from '../interfaces/utils/ITransformerNamesGroupsBuilder';
+
+@injectable()
+export abstract class AbstractTransformerNamesGroupsBuilder <
+ TTransformerName extends string,
+ TTransformer extends ITransformer<TTransformerName>
+> implements ITransformerNamesGroupsBuilder <
+ TTransformerName,
+ TTransformer
+> {
+ /**
+ * @type {ILevelledTopologicalSorter<TTransformerName>}
+ */
+ private readonly levelledTopologicalSorter: ILevelledTopologicalSorter<TTransformerName>;
+
+ public constructor (
+ @inject(ServiceIdentifiers.ILevelledTopologicalSorter)
+ levelledTopologicalSorter: ILevelledTopologicalSorter<TTransformerName>
+ ) {
+ this.levelledTopologicalSorter = levelledTopologicalSorter;
+ }
+
+ /**
+ * Builds sorted transformer names by topological sort with levels
+ *
+ * For example, if SplitString transformer has following dependencies inside `runAfter` property:
+ * - NodeTransformer.ObjectExpressionKeysTransformer,
+ * - NodeTransformer.TemplateLiteralTransformer
+ *
+ * Than result node transformer names groups will be like:
+ * [
+ * [
+ * SomeTransformerA,
+ * ObjectExpressionKeysTransformer,
+ * TemplateLiteralTransformer,
+ * SomeTransformerB
+ * ],
+ * [
+ * SplitStringTransformer
+ * ]
+ * ]
+ *
+ * @param {TDictionary<TTransformer>} normalizedTransformers
+ * @returns {TTransformerName[][]}
+ */
+ public build (normalizedTransformers: TDictionary<TTransformer>): TTransformerName[][] {
+ const transformerNames: TTransformerName[] = <TTransformerName[]>Object.keys(normalizedTransformers);
+ const relationEdges: TTransformersRelationEdge<TTransformerName>[] = this.buildTransformersRelationEdges(
+ transformerNames,
+ normalizedTransformers
+ );
+
+ for (const [precedent, consequent] of relationEdges) {
+ this.levelledTopologicalSorter.add(precedent, consequent);
+ }
+
+ return this.levelledTopologicalSorter.sortByGroups();
+ }
+
+ /**
+ * @param {TTransformerName[]} transformerNames
+ * @param {TDictionary<TTransformer>} normalizedTransformers
+ * @returns {TTransformersRelationEdge<TTransformerName>[]}
+ */
+ private buildTransformersRelationEdges (
+ transformerNames: TTransformerName[],
+ normalizedTransformers: TDictionary<TTransformer>
+ ): TTransformersRelationEdge<TTransformerName>[] {
+ const relationEdges: TTransformersRelationEdge<TTransformerName>[] = [];
+
+ for (const transformerName of transformerNames) {
+ const transformer: TTransformer = normalizedTransformers[transformerName];
+ const runAfterRelations: TTransformerName[] | undefined = transformer.runAfter;
+
+ if (!runAfterRelations || !runAfterRelations.length) {
+ relationEdges.push([transformerName, null]);
+ continue;
+ }
+
+ for (const runAfterRelation of runAfterRelations) {
+ const isUnknownRelation: boolean = normalizedTransformers[runAfterRelation] === undefined;
+
+ if (isUnknownRelation) {
+ relationEdges.push([transformerName, null]);
+ continue;
+ }
+
+ relationEdges.push([runAfterRelation, transformerName]);
+ }
+ }
+
+ return relationEdges;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/ArrayUtils.ts b/src/node_modules/javascript-obfuscator/src/utils/ArrayUtils.ts
new file mode 100644
index 0000000..4133fd9
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/ArrayUtils.ts
@@ -0,0 +1,137 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { IArrayUtils } from '../interfaces/utils/IArrayUtils';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+@injectable()
+export class ArrayUtils implements IArrayUtils {
+ /**
+ * @type {IRandomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator
+ ) {
+ this.randomGenerator = randomGenerator;
+ }
+
+ /**
+ * @param {number} length
+ * @returns {number[]}
+ */
+ public createWithRange (length: number): number[] {
+ const range: number[] = [];
+
+ for (let i: number = 0; i < length; i++) {
+ range.push(i);
+ }
+
+ return range;
+ }
+
+ /**
+ * @param {number} length
+ * @param {(index: number) => TValue} valueFunction
+ * @returns {TValue[]}
+ */
+ public fillWithRange <TValue> (length: number, valueFunction: (index: number) => TValue): TValue[] {
+ const range: TValue[] = [];
+
+ for (let i: number = 0; i < length; i++) {
+ range.push(valueFunction(i));
+ }
+
+ return range;
+ }
+
+ /**
+ * @param {T[]} array
+ * @returns {T | null}
+ */
+ public findMostOccurringElement <T extends string | number> (array: T[]): T | null {
+ const arrayLength: number = array.length;
+
+ if (!arrayLength) {
+ return null;
+ }
+
+ const elementsMap: Partial<{[key in T]: number}> = {};
+
+ let mostOccurringElement: T = array[0];
+ let mostOccurringElementCount: number = 1;
+
+ for (const element of array) {
+ const currentElementCount: number = elementsMap[element] ?? 0;
+ const updatedElementCount: number = currentElementCount + 1;
+
+ if (updatedElementCount > mostOccurringElementCount) {
+ mostOccurringElement = element;
+ mostOccurringElementCount = updatedElementCount;
+ }
+
+ elementsMap[element] = updatedElementCount;
+ }
+
+ return mostOccurringElement;
+ }
+
+ /**
+ * @param {T[]} array
+ * @returns {T | undefined}
+ */
+ public getLastElement <T> (array: T[]): T | undefined {
+ const arrayLength: number = array.length;
+
+ return array[arrayLength - 1] ?? undefined;
+ }
+
+ /**
+ * @param {T[]} array
+ * @param {number} times
+ * @returns {T[]}
+ */
+ public rotate <T> (array: T[], times: number): T[] {
+ if (!array.length) {
+ throw new ReferenceError('Cannot rotate empty array.');
+ }
+
+ if (times <= 0) {
+ return array;
+ }
+
+ const newArray: T[] = array;
+
+ let temp: T | undefined;
+
+ while (times--) {
+ temp = newArray.pop();
+
+ if (temp) {
+ newArray.unshift(temp);
+ }
+ }
+
+ return newArray;
+ }
+
+ /**
+ * @param {T[]} array
+ * @returns {T[]}
+ */
+ public shuffle <T> (array: T[]): T[] {
+ const shuffledArray: T[] = [...array];
+
+ for (let i: number = shuffledArray.length; i; i--) {
+ const j: number = Math.floor(this.randomGenerator.getMathRandom() * i);
+
+ [shuffledArray[i - 1], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i - 1]];
+ }
+
+ return shuffledArray;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/CryptUtils.ts b/src/node_modules/javascript-obfuscator/src/utils/CryptUtils.ts
new file mode 100644
index 0000000..84712ef
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/CryptUtils.ts
@@ -0,0 +1,149 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { ICryptUtils } from '../interfaces/utils/ICryptUtils';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { base64alphabet } from '../constants/Base64Alphabet';
+
+import { RandomGenerator } from './RandomGenerator';
+import { Utils } from './Utils';
+
+@injectable()
+export class CryptUtils implements ICryptUtils {
+ /**
+ * @type {string}
+ */
+ protected readonly base64Alphabet: string = base64alphabet;
+
+ /**
+ * @type {IRandomGenerator}
+ */
+ private readonly randomGenerator: IRandomGenerator;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator
+ ) {
+ this.randomGenerator = randomGenerator;
+ }
+
+ /**
+ * @param {string} string
+ * @returns {string}
+ */
+ public btoa (string: string): string {
+ const chars: string = this.base64Alphabet;
+
+ let output: string = '';
+
+ string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, (match: string, p1: string) => {
+ return String.fromCharCode(parseInt(`${Utils.hexadecimalPrefix}${p1}`, 16));
+ });
+
+ for (
+ let block: number | undefined, charCode: number, idx: number = 0, map: string = chars;
+ string.charAt(idx | 0) || (map = '=', idx % 1);
+ output += map.charAt(63 & block >> 8 - idx % 1 * 8)
+ ) {
+ charCode = string.charCodeAt(idx += 3/4);
+
+ if (charCode > 0xFF) {
+ throw new Error('\'btoa\' failed: The string to be encoded contains characters outside of the Latin1 range.');
+ }
+
+ block = <number>block << 8 | charCode;
+ }
+
+ return output;
+ }
+
+ /**
+ * Hides string inside a other random string with larger length
+ *
+ * @param {string} str
+ * @param {number} length
+ * @returns {[string , string]}
+ */
+ public hideString (str: string, length: number): [string, string] {
+ const escapeRegExp: (s: string) => string = (s: string) =>
+ s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+
+ const randomMerge: (s1: string, s2: string) => string = (s1: string, s2: string): string => {
+ let i1: number = -1;
+ let i2: number = -1;
+ let result: string = '';
+
+ while (i1 < s1.length || i2 < s2.length) {
+ if (this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) {
+ result += s2.charAt(++i2);
+ } else {
+ result += s1.charAt(++i1);
+ }
+ }
+
+ return result;
+ };
+
+ const randomString: string = this.randomGenerator.getRandomGenerator().string({
+ length: length,
+ pool: RandomGenerator.randomGeneratorPool
+ });
+
+ let randomStringDiff: string = randomString.replace(
+ new RegExp(`[${escapeRegExp(str)}]`, 'g'),
+ ''
+ );
+
+ const randomStringDiffArray: string[] = randomStringDiff.split('');
+
+ this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray);
+ randomStringDiff = randomStringDiffArray.join('');
+
+ return [randomMerge(str, randomStringDiff), randomStringDiff];
+ }
+
+ /**
+ * RC4 symmetric cipher encryption/decryption
+ * https://gist.github.com/farhadi/2185197
+ *
+ * @param {string} string
+ * @param {string} key
+ * @returns {string}
+ */
+ public rc4 (string: string, key: string): string {
+ const s: number[] = [];
+
+ let j: number = 0;
+ let x: number;
+ let result: string = '';
+
+ // eslint-disable-next-line no-var
+ for (var i = 0; i < 256; i++) {
+ s[i] = i;
+ }
+
+ for (i = 0; i < 256; i++) {
+ j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
+ x = s[i];
+ s[i] = s[j];
+ s[j] = x;
+ }
+
+ i = 0;
+ j = 0;
+
+ for (let y = 0; y < string.length; y++) {
+ i = (i + 1) % 256;
+ j = (j + s[i]) % 256;
+ x = s[i];
+ s[i] = s[j];
+ s[j] = x;
+ result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
+ }
+
+ return result;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/CryptUtilsSwappedAlphabet.ts b/src/node_modules/javascript-obfuscator/src/utils/CryptUtilsSwappedAlphabet.ts
new file mode 100644
index 0000000..bc7b3cc
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/CryptUtilsSwappedAlphabet.ts
@@ -0,0 +1,26 @@
+import { inject, injectable } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import { ICryptUtilsSwappedAlphabet } from '../interfaces/utils/ICryptUtilsSwappedAlphabet';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+
+import { base64alphabetSwapped } from '../constants/Base64AlphabetSwapped';
+
+import { CryptUtils } from './CryptUtils';
+
+@injectable()
+export class CryptUtilsSwappedAlphabet extends CryptUtils implements ICryptUtilsSwappedAlphabet {
+ /**
+ * @type {string}
+ */
+ protected readonly base64Alphabet: string = base64alphabetSwapped;
+
+ /**
+ * @param {IRandomGenerator} randomGenerator
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator
+ ) {
+ super(randomGenerator);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/EscapeSequenceEncoder.ts b/src/node_modules/javascript-obfuscator/src/utils/EscapeSequenceEncoder.ts
new file mode 100644
index 0000000..0600778
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/EscapeSequenceEncoder.ts
@@ -0,0 +1,69 @@
+import { injectable } from 'inversify';
+
+import { IEscapeSequenceEncoder } from '../interfaces/utils/IEscapeSequenceEncoder';
+
+@injectable()
+export class EscapeSequenceEncoder implements IEscapeSequenceEncoder {
+ /**
+ * https://bytefreaks.net/gnulinux/regular-expression-to-match-any-ascii-character
+ *
+ * @type {RegExp}
+ */
+ private static readonly ASCIICharactersRegExp: RegExp = /[\x00-\x7F]/;
+
+ /**
+ * https://en.wikipedia.org/wiki/List_of_Unicode_characters
+ * \x00-\x1F\x7F-\x9F are the control unicode characters
+ *
+ * @type {RegExp}
+ */
+ private static readonly forceEscapeCharactersRegExp: RegExp = /[\x00-\x1F\x7F-\x9F'"\\\s]/;
+
+ /**
+ * @type {Map<string, string>}
+ */
+ private readonly stringsCache: Map <string, string> = new Map();
+
+ /**
+ * @param {string} string
+ * @param {boolean} encodeAllSymbols
+ * @returns {string}
+ */
+ public encode (string: string, encodeAllSymbols: boolean): string {
+ const cacheKey: string = `${string}-${String(encodeAllSymbols)}`;
+
+ if (this.stringsCache.has(cacheKey)) {
+ return <string>this.stringsCache.get(cacheKey);
+ }
+
+ const radix: number = 16;
+ const replaceRegExp: RegExp = new RegExp('[\\s\\S]', 'g');
+
+ let prefix: string;
+ let template: string;
+
+ const result: string = string.replace(replaceRegExp, (character: string): string => {
+ const shouldEncodeCharacter: boolean = encodeAllSymbols
+ || EscapeSequenceEncoder.forceEscapeCharactersRegExp.test(character);
+
+ if (!shouldEncodeCharacter) {
+ return character;
+ }
+
+ if (EscapeSequenceEncoder.ASCIICharactersRegExp.test(character)) {
+ prefix = '\\x';
+ template = '00';
+ } else {
+ prefix = '\\u';
+ template = '0000';
+ }
+
+ return `${prefix}${(template + character.charCodeAt(0).toString(radix)).slice(-template.length)}`;
+ });
+
+ this.stringsCache.set(cacheKey, result);
+ this.stringsCache.set(`${result}-${String(encodeAllSymbols)}`, result);
+
+ return result;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/LevelledTopologicalSorter.ts b/src/node_modules/javascript-obfuscator/src/utils/LevelledTopologicalSorter.ts
new file mode 100644
index 0000000..a38b1b0
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/LevelledTopologicalSorter.ts
@@ -0,0 +1,216 @@
+import { injectable } from 'inversify';
+
+import { ILevelledTopologicalSorter } from '../interfaces/utils/ILevelledTopologicalSorter';
+
+type TVisitMark = 'ok' | 'visiting';
+
+interface IVisitMarks <TValue extends string> {
+ [key: string]: TVisitMark;
+}
+
+/**
+ * Port and rework of https://github.com/loveencounterflow/ltsort
+ */
+@injectable()
+export class LevelledTopologicalSorter <TValue extends string = string> implements ILevelledTopologicalSorter<TValue> {
+ /**
+ * @type {Map<TValue, TValue[]}
+ */
+ private readonly graph: Map<TValue, TValue[]> = new Map();
+
+ /**
+ * @param {TValue} precedent
+ * @param {TValue | null} consequent
+ * @returns {this}
+ */
+ public add (
+ precedent: TValue,
+ consequent: TValue | null = null
+ ): this {
+ if (consequent !== null) {
+ return this.link(precedent, consequent);
+ }
+
+ return this.register(precedent);
+ }
+
+ /**
+ * As given in http://en.wikipedia.org/wiki/Topological_sorting
+ *
+ * @returns {TValue[]}
+ */
+ public sort (): TValue[] {
+ const consequents: TValue[] = Array.from(this.graph.keys());
+
+ const results: TValue[] = [];
+ const marks: IVisitMarks<TValue> = {};
+
+ for (const consequent of consequents) {
+ if (marks[consequent] !== undefined) {
+ continue;
+ }
+
+ this.visit(results, marks, consequent);
+ }
+
+ return results;
+ }
+
+ /**
+ * @returns {TValue[][]}
+ */
+ public sortByGroups (): TValue[][] {
+ this.sort();
+
+ const resultItemsGroups: TValue[][] = [];
+
+ while (this.hasNodes()) {
+ const rootNodes: TValue[] = this.findRootNodes();
+
+ resultItemsGroups.push(rootNodes);
+
+ for (const rootNode of rootNodes) {
+ this.delete(rootNode);
+ }
+ }
+
+ return resultItemsGroups;
+ }
+
+ /**
+ * @param {TValue} consequent
+ */
+ private delete (consequent: TValue): void {
+ const precedents: TValue[] = this.getPrecedents(consequent);
+
+ if (precedents.length) {
+ throw new Error(`Unable to remove non-root node: ${consequent}`);
+ }
+
+ this.graph.delete(consequent);
+
+ const precedentsGroups: string[][] = Array.from(this.graph.values());
+
+ for (const precedentsGroup of precedentsGroups) {
+ const precedentsCount: number = precedentsGroup.length - 1;
+
+ for (let index: number = precedentsCount; index >= 0; index = index - 1) {
+ if (precedentsGroup[index] !== consequent) {
+ continue;
+ }
+
+ precedentsGroup.splice(index, 1);
+ }
+ }
+ }
+
+ /**
+ * @returns {TValue[]}
+ */
+ private findRootNodes (): TValue[] {
+ const consequents: TValue[] = Array.from(this.graph.keys());
+ const rootNodes: TValue[] = [];
+
+ for (const consequent of consequents) {
+ if (!this.hasPrecedents(consequent)) {
+ rootNodes.push(consequent);
+ }
+ }
+
+ return rootNodes;
+ }
+
+ /**
+ * @param {TValue} consequent
+ * @returns {TValue[]}
+ */
+ private getPrecedents (consequent: TValue): TValue[] {
+ const precedents: TValue[] | undefined = this.graph.get(consequent);
+
+ if (!precedents) {
+ throw new Error(`Unknown node: ${consequent}`);
+ }
+
+ return precedents;
+ }
+
+ /**
+ * @returns {boolean}
+ */
+ private hasNodes (): boolean {
+ return this.graph.size > 0;
+ }
+
+ /**
+ * @param {TValue} consequent
+ * @returns {boolean}
+ */
+ private hasPrecedents (consequent: TValue): boolean {
+ return this.getPrecedents(consequent).length > 0;
+ }
+
+ /**
+ * @param {TValue} precedent
+ * @param {TValue} consequent
+ * @returns {this}
+ */
+ private link (precedent: TValue, consequent: TValue): this {
+ this.register(precedent);
+ this.register(consequent);
+
+ const target: TValue[] | undefined = this.graph.get(consequent);
+
+ if (target && !target.includes(precedent)) {
+ target.push(precedent);
+ }
+
+ return this;
+ }
+
+ /**
+ * @param {TValue} name
+ * @returns {this}
+ */
+ private register (name: TValue): this {
+ if (!this.graph.has(name)) {
+ this.graph.set(name, []);
+ }
+
+ return this;
+ }
+
+ /**
+ * @param {TValue[]} results
+ * @param {IVisitMarks<TValue>} marks
+ * @param {TValue} name
+ * @returns {null}
+ */
+ private visit (
+ results: TValue[],
+ marks: IVisitMarks<TValue>,
+ name: TValue
+ ): void {
+ const mark: TVisitMark = marks[name];
+
+ if (mark === 'visiting') {
+ throw new Error(`Detected cycle involving node: ${name}`);
+ }
+
+ if (mark) {
+ return;
+ }
+
+ marks[name] = 'visiting';
+
+ const precedents: TValue[] = this.getPrecedents(name);
+
+ for (const precedent of precedents) {
+ this.visit(results, marks, precedent);
+ }
+
+ marks[name] = 'ok';
+ results.push(name);
+
+ return;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/NumberUtils.ts b/src/node_modules/javascript-obfuscator/src/utils/NumberUtils.ts
new file mode 100644
index 0000000..35fbaf3
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/NumberUtils.ts
@@ -0,0 +1,109 @@
+import { Utils } from './Utils';
+
+export class NumberUtils {
+ /**
+ * @param {number} number
+ * @returns {string}
+ */
+ public static toHex (number: number | bigint): string {
+ const radix: number = 16;
+
+ const basePart: string = typeof number === 'number'
+ ? number.toString(radix)
+ : `${number.toString(radix)}n`;
+
+ return `${Utils.hexadecimalPrefix}${basePart}`;
+ }
+
+ /**
+ * @param {number} number
+ * @returns {boolean}
+ */
+ public static isCeil (number: number | bigint): boolean {
+ return typeof number === 'number'
+ ? number % 1 === 0
+ : true;
+ }
+
+ /**
+ * @param {number} number
+ * @returns {boolean}
+ */
+ public static isPositive (number: number): boolean {
+ if (isNaN(number)) {
+ throw new Error('Given value is NaN');
+ }
+
+ if (number > 0) {
+ return true;
+ }
+
+ if (number < 0) {
+ return false;
+ }
+
+ if (1 / number === Number.POSITIVE_INFINITY) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param {number} number
+ * @returns {boolean}
+ */
+ public static isUnsafeNumber (number: number): boolean {
+ if (isNaN(number)) {
+ throw new Error('Given value is NaN');
+ }
+
+ return number < Number.MIN_SAFE_INTEGER || number > Number.MAX_SAFE_INTEGER;
+ }
+
+ /**
+ * Returns all factors of a number
+ * Based on https://stackoverflow.com/a/43204663
+ *
+ * @param {number} number
+ * @returns {number[]}
+ */
+ public static getFactors (number: number): number[] {
+ if (number === 0) {
+ throw new Error('Invalid number. Allowed only non-zero number');
+ }
+
+ number = Math.abs(number);
+
+ // special case for 1
+ if (number === 1) {
+ return [-number, number];
+ }
+
+ const factors: number[] = [];
+
+ const root: number = Math.sqrt(number);
+ const isEven: boolean = number % 2 === 0;
+ const incrementValue: number = isEven ? 1 : 2;
+
+ for (
+ let currentFactor = 1;
+ currentFactor <= root;
+ currentFactor += incrementValue
+ ) {
+ if (number % currentFactor !== 0) {
+ continue;
+ }
+
+ factors.push(...[-currentFactor, currentFactor]);
+
+ const compliment: number = number / currentFactor;
+
+ if (compliment !== currentFactor) {
+ factors.push(...[-compliment, compliment]);
+ }
+ }
+
+ return factors.sort((a: number, b: number) => a - b);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/RandomGenerator.ts b/src/node_modules/javascript-obfuscator/src/utils/RandomGenerator.ts
new file mode 100644
index 0000000..a27daf4
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/RandomGenerator.ts
@@ -0,0 +1,137 @@
+import { inject, injectable, postConstruct } from 'inversify';
+import { ServiceIdentifiers } from '../container/ServiceIdentifiers';
+
+import md5 from 'md5';
+import { Chance } from 'chance';
+
+import { IInitializable } from '../interfaces/IInitializable';
+import { IOptions } from '../interfaces/options/IOptions';
+import { IRandomGenerator } from '../interfaces/utils/IRandomGenerator';
+import { ISourceCode } from '../interfaces/source-code/ISourceCode';
+
+import { initializable } from '../decorators/Initializable';
+
+import { alphabetString } from '../constants/AlphabetString';
+import { alphabetStringUppercase } from '../constants/AlphabetStringUppercase';
+
+@injectable()
+export class RandomGenerator implements IRandomGenerator, IInitializable {
+ /**
+ * @type {string}
+ */
+ public static readonly randomGeneratorPool: string = `${alphabetString}${alphabetStringUppercase}`;
+
+ /**
+ * @type {Chance.Chance}
+ */
+ @initializable()
+ private randomGenerator!: Chance.Chance;
+
+ /**
+ * @type {IOptions}
+ */
+ private readonly options: IOptions;
+
+ /**
+ * @type {ISourceCode}
+ */
+ private readonly sourceCode: ISourceCode;
+
+ /**
+ * @param {ISourceCode} sourceCode
+ * @param {IOptions} options
+ */
+ public constructor (
+ @inject(ServiceIdentifiers.ISourceCode) sourceCode: ISourceCode,
+ @inject(ServiceIdentifiers.IOptions) options: IOptions
+ ) {
+ this.sourceCode = sourceCode;
+ this.options = options;
+ }
+
+ @postConstruct()
+ public initialize (): void {
+ this.randomGenerator = new Chance(this.getRawSeed());
+ }
+
+ /**
+ * @returns {number}
+ */
+ public getMathRandom (): number {
+ return this.getRandomInteger(0, 99999) / 100000;
+ }
+
+ /**
+ * @returns {Chance.Chance}
+ */
+ public getRandomGenerator (): Chance.Chance {
+ return this.randomGenerator;
+ }
+
+ /**
+ * @param {number} min
+ * @param {number} max
+ * @returns {number}
+ */
+ public getRandomInteger (min: number, max: number): number {
+ return this.getRandomGenerator().integer({
+ min: min,
+ max: max
+ });
+ }
+
+ /**
+ * @param {number} min
+ * @param {number} max
+ * @param {number[]} valuesToExclude
+ * @returns {number}
+ */
+ public getRandomIntegerExcluding (min: number, max: number, valuesToExclude: number[]): number {
+ const valuesToPickArray: number[] = [];
+
+ for (let value: number = min; value <= max; value++) {
+ if (valuesToExclude.includes(value)) {
+ continue;
+ }
+
+ valuesToPickArray.push(value);
+ }
+
+ return this.randomGenerator.pickone(valuesToPickArray);
+ }
+
+ /**
+ * @param {number} length
+ * @param {string} pool
+ * @returns {string}
+ */
+ public getRandomString (length: number, pool: string = RandomGenerator.randomGeneratorPool): string {
+ return this.getRandomGenerator().string({ length, pool });
+ }
+
+ /**
+ * @returns {string}
+ */
+ public getInputSeed (): string {
+ return this.options.seed.toString();
+ }
+
+ /**
+ * We need to add numbers from md5 hash of source code to input seed to prevent same String Array name
+ * for different bundles with same seed
+ *
+ * @returns {number}
+ */
+ public getRawSeed (): string {
+ const inputSeed: string = this.getInputSeed();
+ const inputSeedParts: string[] = `${inputSeed}`.split('|');
+
+ if (inputSeedParts.length > 1) {
+ return inputSeed;
+ }
+
+ const sourceCodeMD5Hash: string = md5(this.sourceCode.getSourceCode());
+
+ return `${inputSeed}|${sourceCodeMD5Hash}`;
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/StringUtils.ts b/src/node_modules/javascript-obfuscator/src/utils/StringUtils.ts
new file mode 100644
index 0000000..56c01d1
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/StringUtils.ts
@@ -0,0 +1,11 @@
+import jsStringEscape from 'js-string-escape';
+
+export class StringUtils {
+ /**
+ * @param {string} string
+ * @returns {string}
+ */
+ public static escapeJsString (string: string): string {
+ return jsStringEscape(string);
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/src/utils/Utils.ts b/src/node_modules/javascript-obfuscator/src/utils/Utils.ts
new file mode 100644
index 0000000..2e22840
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/src/utils/Utils.ts
@@ -0,0 +1,71 @@
+export class Utils {
+ /**
+ * @type {string}
+ */
+ public static readonly baseMultipleSourcesIdentifiersPrefix: string = 'a';
+
+ /**
+ * @type {string}
+ */
+ public static readonly hexadecimalPrefix: string = '0x';
+
+ /**
+ * @param {string} version
+ * @param {string} buildTimestamp
+ * @returns {string}
+ */
+ public static buildVersionMessage (version?: string, buildTimestamp?: string): string {
+ if (!version || !buildTimestamp) {
+ return 'unknown';
+ }
+
+ const buildDate: string = new Date(parseInt(buildTimestamp, 10)).toISOString();
+
+ return `${version}_${buildDate}`;
+ }
+
+ /**
+ * @param {string} url
+ * @returns {string}
+ */
+ public static extractDomainFrom (url: string): string {
+ let domain: string;
+
+ if (url.includes('://') || url.indexOf('//') === 0) {
+ domain = url.split('/')[2];
+ } else {
+ domain = url.split('/')[0];
+ }
+
+ domain = domain.split(':')[0];
+
+ return domain;
+ }
+
+ /**
+ * @param {string | undefined} identifiersPrefix
+ * @param {number} sourceCodeIndex
+ * @returns {string}
+ */
+ public static getIdentifiersPrefixForMultipleSources (
+ identifiersPrefix: string | undefined,
+ sourceCodeIndex: number
+ ): string {
+ const baseIdentifiersPrefix: string = !!identifiersPrefix
+ ? identifiersPrefix
+ : Utils.baseMultipleSourcesIdentifiersPrefix;
+
+ return `${baseIdentifiersPrefix}${sourceCodeIndex}`;
+ }
+
+ /**
+ * @param {TObject} enumLikeObject
+ * @returns {Readonly<TObject>}
+ */
+ public static makeEnum<
+ TObject extends {[index: string]: TValue},
+ TValue extends string
+ > (enumLikeObject: TObject): Readonly<TObject> {
+ return Object.freeze({...enumLikeObject});
+ }
+}
diff --git a/src/node_modules/javascript-obfuscator/tsconfig.json b/src/node_modules/javascript-obfuscator/tsconfig.json
new file mode 100644
index 0000000..3cc1add
--- /dev/null
+++ b/src/node_modules/javascript-obfuscator/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "ts-node": {
+ "files": true
+ },
+ "compilerOptions": {
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "lib": [
+ "es2017",
+ "dom"
+ ],
+ "target": "es2017",
+ "module": "commonjs",
+ "resolveJsonModule": true,
+ "esModuleInterop": true,
+ "noImplicitThis": false,
+ "noUnusedLocals": true,
+ "removeComments": true,
+ "strict": true
+ },
+ "exclude": [
+ "node_modules"
+ ],
+ "compileOnSave": false,
+ "buildOnSave": false
+} \ No newline at end of file