semantifold 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -10
- package/build/index.d.ts +32 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +99 -4
- package/build/src/acceptance.d.ts +32 -0
- package/build/src/acceptance.d.ts.map +1 -0
- package/build/src/acceptance.js +358 -0
- package/build/src/array.d.ts +7 -0
- package/build/src/array.d.ts.map +1 -0
- package/build/src/array.js +18 -0
- package/build/src/artifact-path.d.ts +13 -0
- package/build/src/artifact-path.d.ts.map +1 -0
- package/build/src/artifact-path.js +30 -0
- package/build/src/artifacts.d.ts +7 -0
- package/build/src/artifacts.d.ts.map +1 -0
- package/build/src/artifacts.js +389 -0
- package/build/src/backends/c-runtime.d.ts +3 -0
- package/build/src/backends/c-runtime.d.ts.map +1 -0
- package/build/src/backends/c-runtime.js +151 -0
- package/build/src/backends/c-validation.d.ts +12 -0
- package/build/src/backends/c-validation.d.ts.map +1 -0
- package/build/src/backends/c-validation.js +85 -0
- package/build/src/backends/c.d.ts +31 -0
- package/build/src/backends/c.d.ts.map +1 -0
- package/build/src/backends/c.js +308 -0
- package/build/src/backends/cpp-runtime.d.ts +3 -0
- package/build/src/backends/cpp-runtime.d.ts.map +1 -0
- package/build/src/backends/cpp-runtime.js +99 -0
- package/build/src/backends/cpp-validation.d.ts +9 -0
- package/build/src/backends/cpp-validation.d.ts.map +1 -0
- package/build/src/backends/cpp-validation.js +74 -0
- package/build/src/backends/cpp.d.ts +16 -0
- package/build/src/backends/cpp.d.ts.map +1 -0
- package/build/src/backends/cpp.js +285 -0
- package/build/src/backends/csharp.d.ts +20 -0
- package/build/src/backends/csharp.d.ts.map +1 -0
- package/build/src/backends/csharp.js +259 -0
- package/build/src/backends/go.d.ts +20 -0
- package/build/src/backends/go.d.ts.map +1 -0
- package/build/src/backends/go.js +374 -0
- package/build/src/backends/identifiers.d.ts +12 -0
- package/build/src/backends/identifiers.d.ts.map +1 -1
- package/build/src/backends/identifiers.js +79 -2
- package/build/src/backends/index.d.ts.map +1 -1
- package/build/src/backends/index.js +27 -37
- package/build/src/backends/native-validation.d.ts +9 -0
- package/build/src/backends/native-validation.d.ts.map +1 -0
- package/build/src/backends/native-validation.js +59 -0
- package/build/src/backends/ordered-expressions.d.ts +74 -0
- package/build/src/backends/ordered-expressions.d.ts.map +1 -0
- package/build/src/backends/ordered-expressions.js +159 -0
- package/build/src/backends/python.d.ts +8 -0
- package/build/src/backends/python.d.ts.map +1 -0
- package/build/src/backends/python.js +162 -0
- package/build/src/backends/scalars.d.ts.map +1 -1
- package/build/src/backends/scalars.js +8 -2
- package/build/src/backends/shared.d.ts.map +1 -1
- package/build/src/backends/shared.js +67 -19
- package/build/src/binary-mapping.d.ts +32 -0
- package/build/src/binary-mapping.d.ts.map +1 -0
- package/build/src/binary-mapping.js +285 -0
- package/build/src/diagnostic.d.ts +36 -4
- package/build/src/diagnostic.d.ts.map +1 -1
- package/build/src/diagnostic.js +42 -3
- package/build/src/frontends/c-parser.d.ts +20 -0
- package/build/src/frontends/c-parser.d.ts.map +1 -0
- package/build/src/frontends/c-parser.js +14 -0
- package/build/src/frontends/c.d.ts +220 -0
- package/build/src/frontends/c.d.ts.map +1 -0
- package/build/src/frontends/c.js +750 -0
- package/build/src/frontends/cpp-parser.d.ts +11 -0
- package/build/src/frontends/cpp-parser.d.ts.map +1 -0
- package/build/src/frontends/cpp-parser.js +15 -0
- package/build/src/frontends/cpp.d.ts +227 -0
- package/build/src/frontends/cpp.d.ts.map +1 -0
- package/build/src/frontends/cpp.js +784 -0
- package/build/src/frontends/csharp.d.ts +14 -0
- package/build/src/frontends/csharp.d.ts.map +1 -0
- package/build/src/frontends/csharp.js +708 -0
- package/build/src/frontends/go.d.ts +15 -0
- package/build/src/frontends/go.d.ts.map +1 -0
- package/build/src/frontends/go.js +712 -0
- package/build/src/frontends/index.d.ts.map +1 -1
- package/build/src/frontends/index.js +5 -23
- package/build/src/frontends/python.d.ts +14 -0
- package/build/src/frontends/python.d.ts.map +1 -0
- package/build/src/frontends/python.js +615 -0
- package/build/src/frontends/scalars.d.ts.map +1 -1
- package/build/src/frontends/scalars.js +21 -1
- package/build/src/language-registry.d.ts +113 -0
- package/build/src/language-registry.d.ts.map +1 -0
- package/build/src/language-registry.js +421 -0
- package/build/src/mapping.js +3 -2
- package/build/src/semantic/location.d.ts +7 -0
- package/build/src/semantic/location.d.ts.map +1 -1
- package/build/src/semantic/location.js +10 -1
- package/build/src/semantic/provenance.js +3 -3
- package/build/src/semantic/types.d.ts +399 -2
- package/build/src/semantic/types.d.ts.map +1 -1
- package/build/src/semantic/types.js +110 -2
- package/build/src/subprocess.d.ts +38 -0
- package/build/src/subprocess.d.ts.map +1 -0
- package/build/src/subprocess.js +233 -0
- package/build/src/timeout.d.ts +8 -0
- package/build/src/timeout.d.ts.map +1 -0
- package/build/src/timeout.js +11 -0
- package/build/src/toolchains.d.ts +107 -0
- package/build/src/toolchains.d.ts.map +1 -0
- package/build/src/toolchains.js +417 -0
- package/docs/architecture.md +23 -5
- package/docs/c.md +60 -0
- package/docs/cpp.md +61 -0
- package/docs/goals.md +4 -2
- package/docs/language-support.md +46 -6
- package/docs/parser-qualification.md +219 -0
- package/docs/plans/2026-09-05-standard-library-portability.md +46 -0
- package/docs/source-maps.md +38 -5
- package/docs/standard-library-portability.md +190 -0
- package/docs/testing.md +131 -3
- package/index.js +109 -4
- package/node_modules/node-addon-api/LICENSE.md +9 -0
- package/node_modules/node-addon-api/README.md +95 -0
- package/node_modules/node-addon-api/common.gypi +21 -0
- package/node_modules/node-addon-api/except.gypi +25 -0
- package/node_modules/node-addon-api/index.js +14 -0
- package/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
- package/node_modules/node-addon-api/napi-inl.h +7250 -0
- package/node_modules/node-addon-api/napi.h +3463 -0
- package/node_modules/node-addon-api/node_addon_api.gyp +42 -0
- package/node_modules/node-addon-api/node_api.gyp +9 -0
- package/node_modules/node-addon-api/noexcept.gypi +26 -0
- package/node_modules/node-addon-api/nothing.c +0 -0
- package/node_modules/node-addon-api/package-support.json +21 -0
- package/node_modules/node-addon-api/package.json +481 -0
- package/node_modules/node-addon-api/tools/README.md +73 -0
- package/node_modules/node-addon-api/tools/check-napi.js +99 -0
- package/node_modules/node-addon-api/tools/clang-format.js +71 -0
- package/node_modules/node-addon-api/tools/conversion.js +301 -0
- package/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/LICENSE +15 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/README.md +7 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/LICENSE +21 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/README.md +90 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/binding.gyp +79 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/index.js +895 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/package.json +62 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/addon_data.h +47 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/binding.cc +35 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/conversions.cc +140 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/conversions.h +22 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/language.cc +106 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/language.h +17 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/logger.cc +70 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/logger.h +19 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/node.cc +1056 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/node.h +30 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/parser.cc +298 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/parser.h +35 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/query.cc +383 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/query.h +39 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/tree.cc +307 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/tree.h +45 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/src/tree_cursor.h +52 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/tree-sitter.d.ts +211 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1266 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +290 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +501 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +221 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +299 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +419 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +49 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +14 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +774 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2151 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +230 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +62 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4134 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +899 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +133 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1060 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +382 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +165 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +714 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +50 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +23 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +109 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1294 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1823 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/LICENSE +21 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/README.md +18 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/binding.gyp +29 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/bindings/node/binding.cc +20 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/bindings/node/binding_test.js +9 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/bindings/node/index.d.ts +28 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/bindings/node/index.js +11 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/grammar.js +1470 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/package.json +60 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/darwin-arm64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/darwin-x64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/linux-arm64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/linux-x64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/win32-arm64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/prebuilds/win32-x64/tree-sitter-c.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/queries/highlights.scm +81 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/queries/tags.scm +9 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/grammar.json +9735 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/node-types.json +4614 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/parser.c +119615 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/tree_sitter/alloc.h +54 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/tree_sitter/array.h +290 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/src/tree_sitter/parser.h +266 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/tree-sitter-c.wasm +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-c/tree-sitter.json +43 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/LICENSE +21 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/README.md +22 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/binding.gyp +30 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/bindings/node/binding.cc +20 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/bindings/node/binding_test.js +9 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/bindings/node/index.d.ts +28 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/bindings/node/index.js +11 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/grammar.js +1436 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/package.json +61 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/darwin-arm64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/darwin-x64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/linux-arm64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/linux-x64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/win32-arm64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/prebuilds/win32-x64/tree-sitter-cpp.node +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/queries/highlights.scm +70 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/queries/injections.scm +3 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/queries/tags.scm +15 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/grammar.json +17084 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/node-types.json +7997 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/parser.c +530368 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/scanner.c +148 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/tree_sitter/alloc.h +54 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/tree_sitter/array.h +290 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/src/tree_sitter/parser.h +266 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/tree-sitter-cpp.wasm +0 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-cpp/tree-sitter.json +55 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/package.json +22 -0
- package/node_modules/semantifold-tree-sitter-legacy-internal/src/c.js +152 -0
- package/node_modules/tree-sitter/LICENSE +21 -0
- package/node_modules/tree-sitter/README.md +128 -0
- package/node_modules/tree-sitter/binding.gyp +88 -0
- package/node_modules/tree-sitter/index.js +950 -0
- package/node_modules/tree-sitter/package.json +76 -0
- package/node_modules/tree-sitter/prebuilds/darwin-arm64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/darwin-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/linux-arm64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/linux-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/win32-arm64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/prebuilds/win32-x64/tree-sitter.node +0 -0
- package/node_modules/tree-sitter/src/addon_data.h +47 -0
- package/node_modules/tree-sitter/src/binding.cc +35 -0
- package/node_modules/tree-sitter/src/conversions.cc +140 -0
- package/node_modules/tree-sitter/src/conversions.h +22 -0
- package/node_modules/tree-sitter/src/language.cc +105 -0
- package/node_modules/tree-sitter/src/language.h +17 -0
- package/node_modules/tree-sitter/src/logger.cc +70 -0
- package/node_modules/tree-sitter/src/logger.h +19 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.cc +122 -0
- package/node_modules/tree-sitter/src/lookaheaditerator.h +33 -0
- package/node_modules/tree-sitter/src/node.cc +1088 -0
- package/node_modules/tree-sitter/src/node.h +30 -0
- package/node_modules/tree-sitter/src/parser.cc +332 -0
- package/node_modules/tree-sitter/src/parser.h +35 -0
- package/node_modules/tree-sitter/src/query.cc +425 -0
- package/node_modules/tree-sitter/src/query.h +40 -0
- package/node_modules/tree-sitter/src/tree.cc +316 -0
- package/node_modules/tree-sitter/src/tree.h +45 -0
- package/node_modules/tree-sitter/src/tree_cursor.cc +213 -0
- package/node_modules/tree-sitter/src/tree_cursor.h +52 -0
- package/node_modules/tree-sitter/tree-sitter.d.ts +1083 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/include/tree_sitter/api.h +1478 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.c +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/alloc.h +41 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/array.h +291 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/atomic.h +68 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/clock.h +146 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/error_costs.h +11 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.c +523 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/get_changed_ranges.h +36 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/host.h +21 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.c +293 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/language.h +293 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/length.h +52 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.c +483 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lexer.h +54 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/lib.c +12 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/node.c +875 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.c +2297 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/parser.h +286 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/point.h +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/portable/endian.h +241 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/query.c +4347 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reduce_action.h +34 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/reusable_node.h +95 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.c +912 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/stack.h +133 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.c +1034 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/subtree.h +399 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.c +170 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree.h +31 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.c +716 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/tree_cursor.h +48 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/ts_assert.h +11 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ICU_SHA +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/LICENSE +414 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/README.md +29 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/ptypes.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/umachine.h +448 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/urename.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf.h +1 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf16.h +733 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode/utf8.h +881 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/unicode.h +75 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib-symbols.txt +24 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/stdlib.c +137 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm/wasm-stdlib.h +1314 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.c +1937 -0
- package/node_modules/tree-sitter/vendor/tree-sitter/lib/src/wasm_store.h +31 -0
- package/package.json +24 -6
- package/src/acceptance.js +380 -0
- package/src/array.js +19 -0
- package/src/artifact-path.js +34 -0
- package/src/artifacts.js +420 -0
- package/src/backends/c-runtime.js +151 -0
- package/src/backends/c-validation.js +83 -0
- package/src/backends/c.js +308 -0
- package/src/backends/cpp-runtime.js +99 -0
- package/src/backends/cpp-validation.js +70 -0
- package/src/backends/cpp.js +285 -0
- package/src/backends/csharp.js +270 -0
- package/src/backends/go.js +383 -0
- package/src/backends/identifiers.js +80 -1
- package/src/backends/index.js +23 -32
- package/src/backends/native-validation.js +64 -0
- package/src/backends/ordered-expressions.js +161 -0
- package/src/backends/python.js +175 -0
- package/src/backends/scalars.js +8 -1
- package/src/backends/shared.js +64 -17
- package/src/binary-mapping.js +305 -0
- package/src/diagnostic.js +34 -2
- package/src/frontends/c-parser.js +17 -0
- package/src/frontends/c.js +780 -0
- package/src/frontends/cpp-parser.js +18 -0
- package/src/frontends/cpp.js +816 -0
- package/src/frontends/csharp.js +759 -0
- package/src/frontends/go.js +770 -0
- package/src/frontends/index.js +5 -20
- package/src/frontends/python.js +689 -0
- package/src/frontends/scalars.js +20 -0
- package/src/language-registry.js +454 -0
- package/src/mapping.js +2 -1
- package/src/semantic/location.js +10 -0
- package/src/semantic/provenance.js +2 -2
- package/src/semantic/types.js +124 -1
- package/src/subprocess.js +232 -0
- package/src/timeout.js +12 -0
- package/src/toolchains.js +448 -0
- package/tsconfig.json +1 -0
|
@@ -2,14 +2,64 @@
|
|
|
2
2
|
import { unsupportedCapability } from "../diagnostic.js";
|
|
3
3
|
/** @type {Record<import("../semantic/types.js").SemanticLanguage, RegExp>} */
|
|
4
4
|
const identifierPatterns = {
|
|
5
|
+
cpp: /^[A-Za-z][A-Za-z0-9_]*$/u,
|
|
6
|
+
c: /^[A-Za-z][A-Za-z0-9_]*$/u,
|
|
7
|
+
csharp: /^[A-Za-z_][A-Za-z0-9_]*$/u,
|
|
8
|
+
go: /^[A-Za-z_][A-Za-z0-9_]*$/u,
|
|
5
9
|
java: /^[A-Za-z_$][A-Za-z0-9_$]*$/u,
|
|
6
10
|
javascript: /^[A-Za-z_$][A-Za-z0-9_$]*$/u,
|
|
7
11
|
php: /^[A-Za-z_][A-Za-z0-9_]*$/u,
|
|
12
|
+
python: /^(?:_|\p{XID_Start})(?:_|\p{XID_Continue})*$/u,
|
|
8
13
|
ruby: /^[a-z_][A-Za-z0-9_]*$/u,
|
|
9
14
|
typescript: /^[A-Za-z_$][A-Za-z0-9_$]*$/u
|
|
10
15
|
};
|
|
11
16
|
/** @type {Record<import("../semantic/types.js").SemanticLanguage, Set<string>>} */
|
|
12
17
|
const reservedWords = {
|
|
18
|
+
cpp: new Set([
|
|
19
|
+
"alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case", "catch", "char", "char8_t", "char16_t", "char32_t", "class", "compl", "concept", "const", "consteval", "constexpr", "constinit", "const_cast", "continue", "co_await", "co_return", "co_yield", "decltype", "default", "delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "noexcept", "not", "not_eq", "nullptr", "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast", "requires", "return", "short", "signed", "sizeof", "static", "static_assert", "static_cast", "struct", "switch", "template", "this", "thread_local", "throw", "true", "try", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq", "std", "string", "numeric_limits",
|
|
20
|
+
// The qualified libstdc++ <string> include chain also exposes these global names.
|
|
21
|
+
"WEOF", "wint_t"
|
|
22
|
+
]),
|
|
23
|
+
c: new Set([
|
|
24
|
+
"auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern",
|
|
25
|
+
"float", "for", "goto", "if", "inline", "int", "long", "register", "restrict", "return", "short", "signed",
|
|
26
|
+
"sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while",
|
|
27
|
+
"bool", "true", "false", "TRUE", "FALSE", "int64_t", "uint64_t", "size_t", "ptrdiff_t", "main", "NULL", "INT64_C", "UINT64_C",
|
|
28
|
+
"INT64_MIN", "INT64_MAX", "PTRDIFF_MAX", "CHAR_BIT", "stdin", "stdout", "stderr", "malloc", "free", "exit",
|
|
29
|
+
"fwrite", "fflush", "memcpy", "memcmp", "FILE", "fpos_t", "div_t", "ldiv_t", "lldiv_t", "wchar_t", "max_align_t",
|
|
30
|
+
"offsetof", "alignas", "alignof", "noreturn", "true", "false", "assert", "static_assert", "errno",
|
|
31
|
+
"EOF", "BUFSIZ", "FOPEN_MAX", "FILENAME_MAX", "L_tmpnam", "SEEK_CUR", "SEEK_END", "SEEK_SET", "TMP_MAX",
|
|
32
|
+
"EXIT_FAILURE", "EXIT_SUCCESS", "MB_CUR_MAX", "MB_LEN_MAX", "RAND_MAX",
|
|
33
|
+
"remove", "rename", "tmpfile", "tmpnam", "fclose", "fopen", "freopen", "setbuf", "setvbuf",
|
|
34
|
+
"fprintf", "fscanf", "printf", "scanf", "snprintf", "sprintf", "sscanf", "vfprintf", "vfscanf", "vprintf",
|
|
35
|
+
"vscanf", "vsnprintf", "vsprintf", "vsscanf", "fgetc", "fgets", "fputc", "fputs", "getc", "getchar",
|
|
36
|
+
"putc", "putchar", "puts", "ungetc", "fread", "fgetpos", "fseek", "fsetpos", "ftell", "rewind", "clearerr",
|
|
37
|
+
"feof", "ferror", "perror", "atof", "atoi", "atol", "atoll", "strtod", "strtof", "strtold", "strtol",
|
|
38
|
+
"strtoll", "strtoul", "strtoull", "rand", "srand", "aligned_alloc", "calloc", "realloc", "abort", "atexit",
|
|
39
|
+
"at_quick_exit", "quick_exit", "getenv", "system", "bsearch", "qsort", "abs", "labs", "llabs", "div", "ldiv",
|
|
40
|
+
"lldiv", "mblen", "mbtowc", "wctomb", "mbstowcs", "wcstombs", "memmove", "strcpy", "strncpy", "strcat",
|
|
41
|
+
"strncat", "strcmp", "strcoll", "strncmp", "strxfrm", "memchr", "strchr", "strcspn", "strpbrk", "strrchr",
|
|
42
|
+
"strspn", "strstr", "strtok", "memset", "strerror", "strlen"
|
|
43
|
+
]),
|
|
44
|
+
csharp: new Set([
|
|
45
|
+
"__arglist", "__makeref", "__reftype", "__refvalue", "abstract", "add", "alias", "allows", "and", "as",
|
|
46
|
+
"ascending", "async", "await", "base", "bool", "break",
|
|
47
|
+
"by", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "decimal", "default",
|
|
48
|
+
"delegate", "descending", "do", "double", "dynamic", "else", "enum", "equals", "event", "explicit", "extension", "extern",
|
|
49
|
+
"false", "field", "file", "finally", "fixed", "float", "for", "foreach", "from", "get", "global", "goto",
|
|
50
|
+
"group", "if", "implicit", "in", "init", "int", "interface", "internal", "into", "is", "join", "let", "lock",
|
|
51
|
+
"long", "managed", "nameof", "namespace", "new", "nint", "not", "notnull", "null", "nuint", "object", "on",
|
|
52
|
+
"operator", "or", "orderby", "out", "override", "params", "partial", "private", "protected", "public", "readonly",
|
|
53
|
+
"record", "ref", "remove", "required", "return", "sbyte", "scoped", "sealed", "select", "set", "short", "sizeof",
|
|
54
|
+
"stackalloc", "static", "string", "struct", "switch", "this", "throw", "true", "try", "typeof", "uint", "ulong",
|
|
55
|
+
"unchecked", "unmanaged", "unsafe", "ushort", "using", "value", "var", "virtual", "void", "volatile", "when",
|
|
56
|
+
"where", "while", "with", "yield"
|
|
57
|
+
]),
|
|
58
|
+
go: new Set([
|
|
59
|
+
"_", "break", "default", "func", "interface", "select", "case", "defer", "go", "map", "struct", "chan",
|
|
60
|
+
"else", "goto", "package", "switch", "const", "fallthrough", "if", "range", "type", "continue", "for",
|
|
61
|
+
"import", "return", "var"
|
|
62
|
+
]),
|
|
13
63
|
java: new Set([
|
|
14
64
|
"_", "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue",
|
|
15
65
|
"default", "do", "double", "else", "enum", "exports", "extends", "false", "final", "finally", "float", "for",
|
|
@@ -35,6 +85,12 @@ const reservedWords = {
|
|
|
35
85
|
"require_once", "return", "self", "static", "switch", "throw", "trait", "true", "try", "unset", "use", "var",
|
|
36
86
|
"void", "while", "xor", "yield"
|
|
37
87
|
]),
|
|
88
|
+
python: new Set([
|
|
89
|
+
"False", "None", "True", "and", "as", "assert", "async", "await", "bool", "break", "case", "class",
|
|
90
|
+
"continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", "from", "global", "if",
|
|
91
|
+
"import", "in", "int", "is", "lambda", "match", "nonlocal", "not", "or", "pass", "print",
|
|
92
|
+
"raise", "return", "str", "try", "type", "while", "with", "yield", "_", "__debug__"
|
|
93
|
+
]),
|
|
38
94
|
ruby: new Set([
|
|
39
95
|
"BEGIN", "END", "__ENCODING__", "__END__", "__FILE__", "__LINE__", "alias", "and", "begin", "break", "case",
|
|
40
96
|
"class", "def", "defined?", "do", "else", "elsif", "end", "ensure", "false", "for", "if", "in", "module",
|
|
@@ -67,10 +123,23 @@ export function validateTargetIdentifier(language, name, role, location) {
|
|
|
67
123
|
if (typeof name != "string")
|
|
68
124
|
unsupportedCapability(language, `${role} identifier`, location);
|
|
69
125
|
const reservedName = language == "php" ? name.toLowerCase() : name;
|
|
70
|
-
if (!identifierPatterns[language].test(name) || reservedWords[language].has(reservedName)
|
|
126
|
+
if (!identifierPatterns[language].test(name) || reservedWords[language].has(reservedName) ||
|
|
127
|
+
language == "python" && name.normalize("NFKC") != name ||
|
|
128
|
+
language == "c" && !isCIdentifier(name) ||
|
|
129
|
+
language == "cpp" && !isCppIdentifier(name)) {
|
|
71
130
|
unsupportedCapability(language, `${role} identifier '${name}'`, location);
|
|
72
131
|
}
|
|
73
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Protects the exact C header environment and implementation-reserved namespace in either direction.
|
|
135
|
+
* @param {string} name - Caller identifier.
|
|
136
|
+
* @returns {boolean} Whether the spelling is safe in the canonical translation unit.
|
|
137
|
+
*/
|
|
138
|
+
export function isCIdentifier(name) {
|
|
139
|
+
return identifierPatterns.c.test(name) && !reservedWords.c.has(name) &&
|
|
140
|
+
!/^(?:semantifold_|SEMANTIFOLD_|Semantifold|atomic_|INT[0-9_A-Z]|UINT[0-9_A-Z]|INTMAX_|UINTMAX_|SIZE_|PTRDIFF_|SIG_ATOMIC_|WCHAR_|WINT_|CHAR_|SCHAR_|UCHAR_|SHRT_|USHRT_|LONG_|ULONG_|LLONG_|ULLONG_)/u.test(name) &&
|
|
141
|
+
!/^(?:u?int(?:8|16|32|64|max|ptr|_least[0-9]+|_fast[0-9]+)_t)$/u.test(name);
|
|
142
|
+
}
|
|
74
143
|
/**
|
|
75
144
|
* Validates a binding identifier against target restrictions beyond general identifier syntax.
|
|
76
145
|
* @param {import("../semantic/types.js").SemanticLanguage} language - Target language.
|
|
@@ -90,4 +159,12 @@ export function validateTargetBindingIdentifier(language, name, role, location)
|
|
|
90
159
|
unsupportedCapability(language, `${role} identifier '${name}'`, location);
|
|
91
160
|
}
|
|
92
161
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmllcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaWRlbnRpZmllcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDhFQUE4RTtBQUM5RSxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsVUFBVSxFQUFFLDZCQUE2QjtJQUN6QyxHQUFHLEVBQUUsMkJBQTJCO0lBQ2hDLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsVUFBVSxFQUFFLDZCQUE2QjtDQUMxQyxDQUFBO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNaLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVTtRQUM1RyxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUs7UUFDNUcsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDekcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUTtRQUN6RyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFR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QUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUTtJQUM1RSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUV4RCxNQUFNLHdCQUF3QixHQUFHLFFBQVEsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQTtJQUNwRyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsSUFBSSxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksUUFBUTtRQUNyRSxDQUFDLENBQUMsSUFBSSxJQUFJLFdBQVcsSUFBSSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLG1CQUFtQixDQUFDLElBQUksMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvRixNQUFNLGtCQUFrQixHQUFHLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFbEcsSUFBSSx3QkFBd0IsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksZ0JBQWdCLElBQUksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzNFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7dW5zdXBwb3J0ZWRDYXBhYmlsaXR5fSBmcm9tIFwiLi4vZGlhZ25vc3RpYy5qc1wiXG5cbi8qKiBAdHlwZSB7UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIFJlZ0V4cD59ICovXG5jb25zdCBpZGVudGlmaWVyUGF0dGVybnMgPSB7XG4gIGphdmE6IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC91LFxuICBqYXZhc2NyaXB0OiAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvdSxcbiAgcGhwOiAvXltBLVphLXpfXVtBLVphLXowLTlfXSokL3UsXG4gIHJ1Ynk6IC9eW2Etel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgdHlwZXNjcmlwdDogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3Vcbn1cblxuLyoqIEB0eXBlIHtSZWNvcmQ8aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZSwgU2V0PHN0cmluZz4+fSAqL1xuY29uc3QgcmVzZXJ2ZWRXb3JkcyA9IHtcbiAgamF2YTogbmV3IFNldChbXG4gICAgXCJfXCIsIFwiYWJzdHJhY3RcIiwgXCJhc3NlcnRcIiwgXCJib29sZWFuXCIsIFwiYnJlYWtcIiwgXCJieXRlXCIsIFwiY2FzZVwiLCBcImNhdGNoXCIsIFwiY2hhclwiLCBcImNsYXNzXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHBvcnRzXCIsIFwiZXh0ZW5kc1wiLCBcImZhbHNlXCIsIFwiZmluYWxcIiwgXCJmaW5hbGx5XCIsIFwiZmxvYXRcIiwgXCJmb3JcIixcbiAgICBcImdvdG9cIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbXBvcnRcIiwgXCJpbnN0YW5jZW9mXCIsIFwiaW50XCIsIFwiaW50ZXJmYWNlXCIsIFwibG9uZ1wiLCBcIm1vZHVsZVwiLCBcIm5hdGl2ZVwiLCBcIm5ld1wiLFxuICAgIFwibm9uLXNlYWxlZFwiLCBcIm51bGxcIiwgXCJvcGVuXCIsIFwib3BlbnNcIiwgXCJwYWNrYWdlXCIsIFwicGVybWl0c1wiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwcm92aWRlc1wiLCBcInB1YmxpY1wiLFxuICAgIFwicmVjb3JkXCIsIFwicmVxdWlyZXNcIiwgXCJyZXR1cm5cIiwgXCJzZWFsZWRcIiwgXCJzaG9ydFwiLCBcInN0YXRpY1wiLCBcInN0cmljdGZwXCIsIFwic3VwZXJcIiwgXCJzd2l0Y2hcIiwgXCJzeW5jaHJvbml6ZWRcIixcbiAgICBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRocm93c1wiLCBcInRvXCIsIFwidHJhbnNpZW50XCIsIFwidHJhbnNpdGl2ZVwiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ1c2VzXCIsIFwidmFyXCIsIFwidm9pZFwiLCBcInZvbGF0aWxlXCIsXG4gICAgXCJ3aGVuXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIlxuICBdKSxcbiAgamF2YXNjcmlwdDogbmV3IFNldChbXG4gICAgXCJhd2FpdFwiLCBcImJyZWFrXCIsIFwiY2FzZVwiLCBcImNhdGNoXCIsIFwiY2xhc3NcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVidWdnZXJcIiwgXCJkZWZhdWx0XCIsIFwiZGVsZXRlXCIsIFwiZG9cIiwgXCJlbHNlXCIsXG4gICAgXCJlbnVtXCIsIFwiZXhwb3J0XCIsIFwiZXh0ZW5kc1wiLCBcImZhbHNlXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZ1bmN0aW9uXCIsIFwiaWZcIiwgXCJpbXBsZW1lbnRzXCIsIFwiaW1wb3J0XCIsIFwiaW5cIixcbiAgICBcImluc3RhbmNlb2ZcIiwgXCJpbnRlcmZhY2VcIiwgXCJsZXRcIiwgXCJuZXdcIiwgXCJudWxsXCIsIFwicGFja2FnZVwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZXR1cm5cIiwgXCJzdGF0aWNcIixcbiAgICBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVvZlwiLCBcInZhclwiLCBcInZvaWRcIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICBwaHA6IG5ldyBTZXQoW1xuICAgIFwiX19oYWx0X2NvbXBpbGVyXCIsIFwiYWJzdHJhY3RcIiwgXCJhbmRcIiwgXCJhcnJheVwiLCBcImFzXCIsIFwiYnJlYWtcIiwgXCJjYWxsYWJsZVwiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY2xvbmVcIixcbiAgICBcImNvbnN0XCIsIFwiY29udGludWVcIiwgXCJkZWNsYXJlXCIsIFwiZGVmYXVsdFwiLCBcImRpZVwiLCBcImRvXCIsIFwiZWNob1wiLCBcImVsc2VcIiwgXCJlbHNlaWZcIiwgXCJlbXB0eVwiLCBcImVuZGRlY2xhcmVcIixcbiAgICBcImVuZGZvclwiLCBcImVuZGZvcmVhY2hcIiwgXCJlbmRpZlwiLCBcImVuZHN3aXRjaFwiLCBcImVuZHdoaWxlXCIsIFwiZW51bVwiLCBcImV2YWxcIiwgXCJleGl0XCIsIFwiZXh0ZW5kc1wiLCBcImZhbHNlXCIsIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIiwgXCJmblwiLCBcImZvclwiLCBcImZvcmVhY2hcIiwgXCJmcm9tXCIsIFwiZnVuY3Rpb25cIiwgXCJnbG9iYWxcIiwgXCJnb3RvXCIsIFwiaWZcIiwgXCJpbXBsZW1lbnRzXCIsIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5jbHVkZV9vbmNlXCIsIFwiaW5zdGFuY2VvZlwiLCBcImluc3RlYWRvZlwiLCBcImludGVyZmFjZVwiLCBcImlzc2V0XCIsIFwiaXRlcmFibGVcIiwgXCJsaXN0XCIsIFwibWF0Y2hcIiwgXCJtaXhlZFwiLCBcIm5hbWVzcGFjZVwiLFxuICAgIFwibmV2ZXJcIiwgXCJuZXdcIiwgXCJudWxsXCIsIFwib2JqZWN0XCIsIFwib3JcIiwgXCJwYXJlbnRcIiwgXCJwcmludFwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWFkb25seVwiLCBcInJlcXVpcmVcIixcbiAgICBcInJlcXVpcmVfb25jZVwiLCBcInJldHVyblwiLCBcInNlbGZcIiwgXCJzdGF0aWNcIiwgXCJzd2l0Y2hcIiwgXCJ0aHJvd1wiLCBcInRyYWl0XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInVuc2V0XCIsIFwidXNlXCIsIFwidmFyXCIsXG4gICAgXCJ2b2lkXCIsIFwid2hpbGVcIiwgXCJ4b3JcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICBydWJ5OiBuZXcgU2V0KFtcbiAgICBcIkJFR0lOXCIsIFwiRU5EXCIsIFwiX19FTkNPRElOR19fXCIsIFwiX19FTkRfX1wiLCBcIl9fRklMRV9fXCIsIFwiX19MSU5FX19cIiwgXCJhbGlhc1wiLCBcImFuZFwiLCBcImJlZ2luXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsXG4gICAgXCJjbGFzc1wiLCBcImRlZlwiLCBcImRlZmluZWQ/XCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZWxzaWZcIiwgXCJlbmRcIiwgXCJlbnN1cmVcIiwgXCJmYWxzZVwiLCBcImZvclwiLCBcImlmXCIsIFwiaW5cIiwgXCJtb2R1bGVcIixcbiAgICBcIm5leHRcIiwgXCJuaWxcIiwgXCJub3RcIiwgXCJvclwiLCBcInJlZG9cIiwgXCJyZXNjdWVcIiwgXCJyZXRyeVwiLCBcInJldHVyblwiLCBcInNlbGZcIiwgXCJzdXBlclwiLCBcInRoZW5cIiwgXCJ0cnVlXCIsIFwidW5kZWZcIixcbiAgICBcInVubGVzc1wiLCBcInVudGlsXCIsIFwid2hlblwiLCBcIndoaWxlXCIsIFwieWllbGRcIlxuICBdKSxcbiAgdHlwZXNjcmlwdDogbmV3IFNldChbXG4gICAgXCJhYnN0cmFjdFwiLCBcImFueVwiLCBcImFzXCIsIFwiYXNzZXJ0c1wiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJib29sZWFuXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsXG4gICAgXCJjb25zdHJ1Y3RvclwiLCBcImNvbnRpbnVlXCIsIFwiZGVidWdnZXJcIiwgXCJkZWNsYXJlXCIsIFwiZGVmYXVsdFwiLCBcImRlbGV0ZVwiLCBcImRvXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHBvcnRcIiwgXCJleHRlbmRzXCIsXG4gICAgXCJmYWxzZVwiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmcm9tXCIsIFwiZnVuY3Rpb25cIiwgXCJnZXRcIiwgXCJpZlwiLCBcImltcGxlbWVudHNcIiwgXCJpbXBvcnRcIiwgXCJpblwiLCBcImluZmVyXCIsIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwiaW50ZXJmYWNlXCIsIFwiaXNcIiwgXCJrZXlvZlwiLCBcImxldFwiLCBcIm1vZHVsZVwiLCBcIm5hbWVzcGFjZVwiLCBcIm5ldmVyXCIsIFwibmV3XCIsIFwibnVsbFwiLCBcIm51bWJlclwiLCBcIm9iamVjdFwiLCBcIm9mXCIsXG4gICAgXCJvdmVycmlkZVwiLCBcInBhY2thZ2VcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmVhZG9ubHlcIiwgXCJyZXF1aXJlXCIsIFwicmV0dXJuXCIsIFwic2F0aXNmaWVzXCIsIFwic2V0XCIsXG4gICAgXCJzdGF0aWNcIiwgXCJzdHJpbmdcIiwgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInN5bWJvbFwiLCBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlXCIsIFwidHlwZW9mXCIsIFwidW5kZWZpbmVkXCIsXG4gICAgXCJ1bmlxdWVcIiwgXCJ1bmtub3duXCIsIFwidXNpbmdcIiwgXCJ2YXJcIiwgXCJ2b2lkXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIlxuICBdKVxufVxuXG5jb25zdCBwaHBJbnZhbGlkUGFyYW1ldGVyQmluZGluZ3MgPSBuZXcgU2V0KFtcbiAgXCJHTE9CQUxTXCIsIFwiX0NPT0tJRVwiLCBcIl9FTlZcIiwgXCJfRklMRVNcIiwgXCJfR0VUXCIsIFwiX1BPU1RcIiwgXCJfUkVRVUVTVFwiLCBcIl9TRVJWRVJcIiwgXCJfU0VTU0lPTlwiLCBcInRoaXNcIlxuXSlcbmNvbnN0IHBocEludmFsaWRBc3NpZ25lZEJpbmRpbmdzID0gbmV3IFNldChbXCJHTE9CQUxTXCIsIFwidGhpc1wiXSlcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYW4gaWRlbnRpZmllciBhZ2FpbnN0IHRoZSB0YXJnZXQgYmFja2VuZCdzIGRlbGliZXJhdGVseSBuYXJyb3cgbGV4aWNhbCBjb250cmFjdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IG5hbWUgLSBDYW5kaWRhdGUgc2VtYW50aWMgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSByb2xlIC0gSWRlbnRpZmllciByb2xlIGZvciBkaWFnbm9zdGljcy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gT3JpZ2luYXRpbmcgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFyZ2V0SWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgcm9sZSwgbG9jYXRpb24pIHtcbiAgaWYgKHR5cGVvZiBuYW1lICE9IFwic3RyaW5nXCIpIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgYCR7cm9sZX0gaWRlbnRpZmllcmAsIGxvY2F0aW9uKVxuXG4gIGNvbnN0IHJlc2VydmVkTmFtZSA9IGxhbmd1YWdlID09IFwicGhwXCIgPyBuYW1lLnRvTG93ZXJDYXNlKCkgOiBuYW1lXG5cbiAgaWYgKCFpZGVudGlmaWVyUGF0dGVybnNbbGFuZ3VhZ2VdLnRlc3QobmFtZSkgfHwgcmVzZXJ2ZWRXb3Jkc1tsYW5ndWFnZV0uaGFzKHJlc2VydmVkTmFtZSkpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGAke3JvbGV9IGlkZW50aWZpZXIgJyR7bmFtZX0nYCwgbG9jYXRpb24pXG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBiaW5kaW5nIGlkZW50aWZpZXIgYWdhaW5zdCB0YXJnZXQgcmVzdHJpY3Rpb25zIGJleW9uZCBnZW5lcmFsIGlkZW50aWZpZXIgc3ludGF4LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gbmFtZSAtIENhbmRpZGF0ZSBzZW1hbnRpYyBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IHJvbGUgLSBCaW5kaW5nIHJvbGUgZm9yIGRpYWdub3N0aWNzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBPcmlnaW5hdGluZyBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRCaW5kaW5nSWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgcm9sZSwgbG9jYXRpb24pIHtcbiAgdmFsaWRhdGVUYXJnZXRJZGVudGlmaWVyKGxhbmd1YWdlLCBuYW1lLCByb2xlLCBsb2NhdGlvbilcblxuICBjb25zdCBpbnZhbGlkVHlwZVNjcmlwdEJpbmRpbmcgPSBsYW5ndWFnZSA9PSBcInR5cGVzY3JpcHRcIiAmJiAobmFtZSA9PSBcImFyZ3VtZW50c1wiIHx8IG5hbWUgPT0gXCJldmFsXCIpXG4gIGNvbnN0IGludmFsaWRQaHBWYXJpYWJsZSA9IGxhbmd1YWdlID09IFwicGhwXCIgJiYgdHlwZW9mIG5hbWUgPT0gXCJzdHJpbmdcIiAmJlxuICAgICgocm9sZSA9PSBcInBhcmFtZXRlclwiICYmIHBocEludmFsaWRQYXJhbWV0ZXJCaW5kaW5ncy5oYXMobmFtZSkpIHx8XG4gICAgICAoKHJvbGUgPT0gXCJsb2NhbFwiIHx8IHJvbGUgPT0gXCJhc3NpZ25tZW50IHRhcmdldFwiKSAmJiBwaHBJbnZhbGlkQXNzaWduZWRCaW5kaW5ncy5oYXMobmFtZSkpKVxuICBjb25zdCBpbnZhbGlkUnVieUJpbmRpbmcgPSBsYW5ndWFnZSA9PSBcInJ1YnlcIiAmJiB0eXBlb2YgbmFtZSA9PSBcInN0cmluZ1wiICYmIC9eX1sxLTldJC91LnRlc3QobmFtZSlcblxuICBpZiAoaW52YWxpZFR5cGVTY3JpcHRCaW5kaW5nIHx8IGludmFsaWRQaHBWYXJpYWJsZSB8fCBpbnZhbGlkUnVieUJpbmRpbmcpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIGAke3JvbGV9IGlkZW50aWZpZXIgJyR7bmFtZX0nYCwgbG9jYXRpb24pXG4gIH1cbn1cbiJdfQ==
|
|
162
|
+
/**
|
|
163
|
+
* Protects C++ keywords, the actual included C library names/macros and the scaffold namespace.
|
|
164
|
+
* @param {string} name - Caller scalar binding or function name.
|
|
165
|
+
* @returns {boolean} Whether a canonical C++20 translation unit can represent the name.
|
|
166
|
+
*/
|
|
167
|
+
export function isCppIdentifier(name) {
|
|
168
|
+
return isCIdentifier(name) && !name.includes("__") && !reservedWords.cpp.has(name);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmllcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaWRlbnRpZmllcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDhFQUE4RTtBQUM5RSxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0IsQ0FBQyxFQUFFLDBCQUEwQjtJQUM3QixNQUFNLEVBQUUsMkJBQTJCO0lBQ25DLEVBQUUsRUFBRSwyQkFBMkI7SUFDL0IsSUFBSSxFQUFFLDZCQUE2QjtJQUNuQyxVQUFVLEVBQUUsNkJBQTZCO0lBQ3pDLEdBQUcsRUFBRSwyQkFBMkI7SUFDaEMsTUFBTSxFQUFFLCtDQUErQztJQUN2RCxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFVBQVUsRUFBRSw2QkFBNkI7Q0FDMUMsQ0FBQTtBQUVELG1GQUFtRjtBQUNuRixNQUFNLGFBQWEsR0FBRztJQUNwQixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDWCxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFB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QVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVM7UUFDbkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVU7UUFDMUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVE7UUFDcEcsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUTtRQUMxRyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTTtRQUM1RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRO1FBQ3RHLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7UUFDekcsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO0tBQzdELENBQUM7SUFDRixNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDZCxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJO1FBQ3RHLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTztRQUN0RCxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUztRQUNwRyxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVE7UUFDekgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNO1FBQ3hHLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU07UUFDNUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQzFHLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVO1FBQ2pILFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUTtRQUNoSCxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU87UUFDL0csV0FBVyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU07UUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztLQUNsQyxDQUFDO0lBQ0YsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1YsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNO1FBQ3RHLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLO1FBQ3JHLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSztLQUMxQixDQUFDO0lBQ0YsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ1osR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVO1FBQzVHLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSztRQUM1RyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLEVB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LElBQUksZ0JBQWdCLElBQUksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzNFLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBSTtJQUNsQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNwRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7dW5zdXBwb3J0ZWRDYXBhYmlsaXR5fSBmcm9tIFwiLi4vZGlhZ25vc3RpYy5qc1wiXG5cbi8qKiBAdHlwZSB7UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIFJlZ0V4cD59ICovXG5jb25zdCBpZGVudGlmaWVyUGF0dGVybnMgPSB7XG4gIGNwcDogL15bQS1aYS16XVtBLVphLXowLTlfXSokL3UsXG4gIGM6IC9eW0EtWmEtel1bQS1aYS16MC05X10qJC91LFxuICBjc2hhcnA6IC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgZ286IC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgamF2YTogL15bQS1aYS16XyRdW0EtWmEtejAtOV8kXSokL3UsXG4gIGphdmFzY3JpcHQ6IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC91LFxuICBwaHA6IC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvdSxcbiAgcHl0aG9uOiAvXig/Ol98XFxwe1hJRF9TdGFydH0pKD86X3xcXHB7WElEX0NvbnRpbnVlfSkqJC91LFxuICBydWJ5OiAvXlthLXpfXVtBLVphLXowLTlfXSokL3UsXG4gIHR5cGVzY3JpcHQ6IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC91XG59XG5cbi8qKiBAdHlwZSB7UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIFNldDxzdHJpbmc+Pn0gKi9cbmNvbnN0IHJlc2VydmVkV29yZHMgPSB7XG4gIGNwcDogbmV3IFNldChbXG4gICAgXCJhbGlnbmFzXCIsIFwiYWxpZ25vZlwiLCBcImFuZFwiLCBcImFuZF9lcVwiLCBcImFzbVwiLCBcImF1dG9cIiwgXCJiaXRhbmRcIiwgXCJiaXRvclwiLCBcImJvb2xcIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjaGFyOF90XCIsIFwiY2hhcjE2X3RcIiwgXCJjaGFyMzJfdFwiLCBcImNsYXNzXCIsIFwiY29tcGxcIiwgXCJjb25jZXB0XCIsIFwiY29uc3RcIiwgXCJjb25zdGV2YWxcIiwgXCJjb25zdGV4cHJcIiwgXCJjb25zdGluaXRcIiwgXCJjb25zdF9jYXN0XCIsIFwiY29udGludWVcIiwgXCJjb19hd2FpdFwiLCBcImNvX3JldHVyblwiLCBcImNvX3lpZWxkXCIsIFwiZGVjbHR5cGVcIiwgXCJkZWZhdWx0XCIsIFwiZGVsZXRlXCIsIFwiZG9cIiwgXCJkb3VibGVcIiwgXCJkeW5hbWljX2Nhc3RcIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4cGxpY2l0XCIsIFwiZXhwb3J0XCIsIFwiZXh0ZXJuXCIsIFwiZmFsc2VcIiwgXCJmbG9hdFwiLCBcImZvclwiLCBcImZyaWVuZFwiLCBcImdvdG9cIiwgXCJpZlwiLCBcImlubGluZVwiLCBcImludFwiLCBcImxvbmdcIiwgXCJtdXRhYmxlXCIsIFwibmFtZXNwYWNlXCIsIFwibmV3XCIsIFwibm9leGNlcHRcIiwgXCJub3RcIiwgXCJub3RfZXFcIiwgXCJudWxscHRyXCIsIFwib3BlcmF0b3JcIiwgXCJvclwiLCBcIm9yX2VxXCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInB1YmxpY1wiLCBcInJlZ2lzdGVyXCIsIFwicmVpbnRlcnByZXRfY2FzdFwiLCBcInJlcXVpcmVzXCIsIFwicmV0dXJuXCIsIFwic2hvcnRcIiwgXCJzaWduZWRcIiwgXCJzaXplb2ZcIiwgXCJzdGF0aWNcIiwgXCJzdGF0aWNfYXNzZXJ0XCIsIFwic3RhdGljX2Nhc3RcIiwgXCJzdHJ1Y3RcIiwgXCJzd2l0Y2hcIiwgXCJ0ZW1wbGF0ZVwiLCBcInRoaXNcIiwgXCJ0aHJlYWRfbG9jYWxcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlZGVmXCIsIFwidHlwZWlkXCIsIFwidHlwZW5hbWVcIiwgXCJ1bmlvblwiLCBcInVuc2lnbmVkXCIsIFwidXNpbmdcIiwgXCJ2aXJ0dWFsXCIsIFwidm9pZFwiLCBcInZvbGF0aWxlXCIsIFwid2NoYXJfdFwiLCBcIndoaWxlXCIsIFwieG9yXCIsIFwieG9yX2VxXCIsIFwic3RkXCIsIFwic3RyaW5nXCIsIFwibnVtZXJpY19saW1pdHNcIixcbiAgICAvLyBUaGUgcXVhbGlmaWVkIGxpYnN0ZGMrKyA8c3RyaW5nPiBpbmNsdWRlIGNoYWluIGFsc28gZXhwb3NlcyB0aGVzZSBnbG9iYWwgbmFtZXMuXG4gICAgXCJXRU9GXCIsIFwid2ludF90XCJcbiAgXSksXG4gIGM6IG5ldyBTZXQoW1xuICAgIFwiYXV0b1wiLCBcImJyZWFrXCIsIFwiY2FzZVwiLCBcImNoYXJcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVmYXVsdFwiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZWxzZVwiLCBcImVudW1cIiwgXCJleHRlcm5cIixcbiAgICBcImZsb2F0XCIsIFwiZm9yXCIsIFwiZ290b1wiLCBcImlmXCIsIFwiaW5saW5lXCIsIFwiaW50XCIsIFwibG9uZ1wiLCBcInJlZ2lzdGVyXCIsIFwicmVzdHJpY3RcIiwgXCJyZXR1cm5cIiwgXCJzaG9ydFwiLCBcInNpZ25lZFwiLFxuICAgIFwic2l6ZW9mXCIsIFwic3RhdGljXCIsIFwic3RydWN0XCIsIFwic3dpdGNoXCIsIFwidHlwZWRlZlwiLCBcInVuaW9uXCIsIFwidW5zaWduZWRcIiwgXCJ2b2lkXCIsIFwidm9sYXRpbGVcIiwgXCJ3aGlsZVwiLFxuICAgIFwiYm9vbFwiLCBcInRydWVcIiwgXCJmYWxzZVwiLCBcIlRSVUVcIiwgXCJGQUxTRVwiLCBcImludDY0X3RcIiwgXCJ1aW50NjRfdFwiLCBcInNpemVfdFwiLCBcInB0cmRpZmZfdFwiLCBcIm1haW5cIiwgXCJOVUxMXCIsIFwiSU5UNjRfQ1wiLCBcIlVJTlQ2NF9DXCIsXG4gICAgXCJJTlQ2NF9NSU5cIiwgXCJJTlQ2NF9NQVhcIiwgXCJQVFJESUZGX01BWFwiLCBcIkNIQVJfQklUXCIsIFwic3RkaW5cIiwgXCJzdGRvdXRcIiwgXCJzdGRlcnJcIiwgXCJtYWxsb2NcIiwgXCJmcmVlXCIsIFwiZXhpdFwiLFxuICAgIFwiZndyaXRlXCIsIFwiZmZsdXNoXCIsIFwibWVtY3B5XCIsIFwibWVtY21wXCIsIFwiRklMRVwiLCBcImZwb3NfdFwiLCBcImRpdl90XCIsIFwibGRpdl90XCIsIFwibGxkaXZfdFwiLCBcIndjaGFyX3RcIiwgXCJtYXhfYWxpZ25fdFwiLFxuICAgIFwib2Zmc2V0b2ZcIiwgXCJhbGlnbmFzXCIsIFwiYWxpZ25vZlwiLCBcIm5vcmV0dXJuXCIsIFwidHJ1ZVwiLCBcImZhbHNlXCIsIFwiYXNzZXJ0XCIsIFwic3RhdGljX2Fzc2VydFwiLCBcImVycm5vXCIsXG4gICAgXCJFT0ZcIiwgXCJCVUZTSVpcIiwgXCJGT1BFTl9NQVhcIiwgXCJGSUxFTkFNRV9NQVhcIiwgXCJMX3RtcG5hbVwiLCBcIlNFRUtfQ1VSXCIsIFwiU0VFS19FTkRcIiwgXCJTRUVLX1NFVFwiLCBcIlRNUF9NQVhcIixcbiAgICBcIkVYSVRfRkFJTFVSRVwiLCBcIkVYSVRfU1VDQ0VTU1wiLCBcIk1CX0NVUl9NQVhcIiwgXCJNQl9MRU5fTUFYXCIsIFwiUkFORF9NQVhcIixcbiAgICBcInJlbW92ZVwiLCBcInJlbmFtZVwiLCBcInRtcGZpbGVcIiwgXCJ0bXBuYW1cIiwgXCJmY2xvc2VcIiwgXCJmb3BlblwiLCBcImZyZW9wZW5cIiwgXCJzZXRidWZcIiwgXCJzZXR2YnVmXCIsXG4gICAgXCJmcHJpbnRmXCIsIFwiZnNjYW5mXCIsIFwicHJpbnRmXCIsIFwic2NhbmZcIiwgXCJzbnByaW50ZlwiLCBcInNwcmludGZcIiwgXCJzc2NhbmZcIiwgXCJ2ZnByaW50ZlwiLCBcInZmc2NhbmZcIiwgXCJ2cHJpbnRmXCIsXG4gICAgXCJ2c2NhbmZcIiwgXCJ2c25wcmludGZcIiwgXCJ2c3ByaW50ZlwiLCBcInZzc2NhbmZcIiwgXCJmZ2V0Y1wiLCBcImZnZXRzXCIsIFwiZnB1dGNcIiwgXCJmcHV0c1wiLCBcImdldGNcIiwgXCJnZXRjaGFyXCIsXG4gICAgXCJwdXRjXCIsIFwicHV0Y2hhclwiLCBcInB1dHNcIiwgXCJ1bmdldGNcIiwgXCJmcmVhZFwiLCBcImZnZXRwb3NcIiwgXCJmc2Vla1wiLCBcImZzZXRwb3NcIiwgXCJmdGVsbFwiLCBcInJld2luZFwiLCBcImNsZWFyZXJyXCIsXG4gICAgXCJmZW9mXCIsIFwiZmVycm9yXCIsIFwicGVycm9yXCIsIFwiYXRvZlwiLCBcImF0b2lcIiwgXCJhdG9sXCIsIFwiYXRvbGxcIiwgXCJzdHJ0b2RcIiwgXCJzdHJ0b2ZcIiwgXCJzdHJ0b2xkXCIsIFwic3RydG9sXCIsXG4gICAgXCJzdHJ0b2xsXCIsIFwic3RydG91bFwiLCBcInN0cnRvdWxsXCIsIFwicmFuZFwiLCBcInNyYW5kXCIsIFwiYWxpZ25lZF9hbGxvY1wiLCBcImNhbGxvY1wiLCBcInJlYWxsb2NcIiwgXCJhYm9ydFwiLCBcImF0ZXhpdFwiLFxuICAgIFwiYXRfcXVpY2tfZXhpdFwiLCBcInF1aWNrX2V4aXRcIiwgXCJnZXRlbnZcIiwgXCJzeXN0ZW1cIiwgXCJic2VhcmNoXCIsIFwicXNvcnRcIiwgXCJhYnNcIiwgXCJsYWJzXCIsIFwibGxhYnNcIiwgXCJkaXZcIiwgXCJsZGl2XCIsXG4gICAgXCJsbGRpdlwiLCBcIm1ibGVuXCIsIFwibWJ0b3djXCIsIFwid2N0b21iXCIsIFwibWJzdG93Y3NcIiwgXCJ3Y3N0b21ic1wiLCBcIm1lbW1vdmVcIiwgXCJzdHJjcHlcIiwgXCJzdHJuY3B5XCIsIFwic3RyY2F0XCIsXG4gICAgXCJzdHJuY2F0XCIsIFwic3RyY21wXCIsIFwic3RyY29sbFwiLCBcInN0cm5jbXBcIiwgXCJzdHJ4ZnJtXCIsIFwibWVtY2hyXCIsIFwic3RyY2hyXCIsIFwic3RyY3NwblwiLCBcInN0cnBicmtcIiwgXCJzdHJyY2hyXCIsXG4gICAgXCJzdHJzcG5cIiwgXCJzdHJzdHJcIiwgXCJzdHJ0b2tcIiwgXCJtZW1zZXRcIiwgXCJzdHJlcnJvclwiLCBcInN0cmxlblwiXG4gIF0pLFxuICBjc2hhcnA6IG5ldyBTZXQoW1xuICAgIFwiX19hcmdsaXN0XCIsIFwiX19tYWtlcmVmXCIsIFwiX19yZWZ0eXBlXCIsIFwiX19yZWZ2YWx1ZVwiLCBcImFic3RyYWN0XCIsIFwiYWRkXCIsIFwiYWxpYXNcIiwgXCJhbGxvd3NcIiwgXCJhbmRcIiwgXCJhc1wiLFxuICAgIFwiYXNjZW5kaW5nXCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJhc2VcIiwgXCJib29sXCIsIFwiYnJlYWtcIixcbiAgICBcImJ5XCIsIFwiYnl0ZVwiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjaGVja2VkXCIsIFwiY2xhc3NcIiwgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVjaW1hbFwiLCBcImRlZmF1bHRcIixcbiAgICBcImRlbGVnYXRlXCIsIFwiZGVzY2VuZGluZ1wiLCBcImRvXCIsIFwiZG91YmxlXCIsIFwiZHluYW1pY1wiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXF1YWxzXCIsIFwiZXZlbnRcIiwgXCJleHBsaWNpdFwiLCBcImV4dGVuc2lvblwiLCBcImV4dGVyblwiLFxuICAgIFwiZmFsc2VcIiwgXCJmaWVsZFwiLCBcImZpbGVcIiwgXCJmaW5hbGx5XCIsIFwiZml4ZWRcIiwgXCJmbG9hdFwiLCBcImZvclwiLCBcImZvcmVhY2hcIiwgXCJmcm9tXCIsIFwiZ2V0XCIsIFwiZ2xvYmFsXCIsIFwiZ290b1wiLFxuICAgIFwiZ3JvdXBcIiwgXCJpZlwiLCBcImltcGxpY2l0XCIsIFwiaW5cIiwgXCJpbml0XCIsIFwiaW50XCIsIFwiaW50ZXJmYWNlXCIsIFwiaW50ZXJuYWxcIiwgXCJpbnRvXCIsIFwiaXNcIiwgXCJqb2luXCIsIFwibGV0XCIsIFwibG9ja1wiLFxuICAgIFwibG9uZ1wiLCBcIm1hbmFnZWRcIiwgXCJuYW1lb2ZcIiwgXCJuYW1lc3BhY2VcIiwgXCJuZXdcIiwgXCJuaW50XCIsIFwibm90XCIsIFwibm90bnVsbFwiLCBcIm51bGxcIiwgXCJudWludFwiLCBcIm9iamVjdFwiLCBcIm9uXCIsXG4gICAgXCJvcGVyYXRvclwiLCBcIm9yXCIsIFwib3JkZXJieVwiLCBcIm91dFwiLCBcIm92ZXJyaWRlXCIsIFwicGFyYW1zXCIsIFwicGFydGlhbFwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWFkb25seVwiLFxuICAgIFwicmVjb3JkXCIsIFwicmVmXCIsIFwicmVtb3ZlXCIsIFwicmVxdWlyZWRcIiwgXCJyZXR1cm5cIiwgXCJzYnl0ZVwiLCBcInNjb3BlZFwiLCBcInNlYWxlZFwiLCBcInNlbGVjdFwiLCBcInNldFwiLCBcInNob3J0XCIsIFwic2l6ZW9mXCIsXG4gICAgXCJzdGFja2FsbG9jXCIsIFwic3RhdGljXCIsIFwic3RyaW5nXCIsIFwic3RydWN0XCIsIFwic3dpdGNoXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVvZlwiLCBcInVpbnRcIiwgXCJ1bG9uZ1wiLFxuICAgIFwidW5jaGVja2VkXCIsIFwidW5tYW5hZ2VkXCIsIFwidW5zYWZlXCIsIFwidXNob3J0XCIsIFwidXNpbmdcIiwgXCJ2YWx1ZVwiLCBcInZhclwiLCBcInZpcnR1YWxcIiwgXCJ2b2lkXCIsIFwidm9sYXRpbGVcIiwgXCJ3aGVuXCIsXG4gICAgXCJ3aGVyZVwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCJcbiAgXSksXG4gIGdvOiBuZXcgU2V0KFtcbiAgICBcIl9cIiwgXCJicmVha1wiLCBcImRlZmF1bHRcIiwgXCJmdW5jXCIsIFwiaW50ZXJmYWNlXCIsIFwic2VsZWN0XCIsIFwiY2FzZVwiLCBcImRlZmVyXCIsIFwiZ29cIiwgXCJtYXBcIiwgXCJzdHJ1Y3RcIiwgXCJjaGFuXCIsXG4gICAgXCJlbHNlXCIsIFwiZ290b1wiLCBcInBhY2thZ2VcIiwgXCJzd2l0Y2hcIiwgXCJjb25zdFwiLCBcImZhbGx0aHJvdWdoXCIsIFwiaWZcIiwgXCJyYW5nZVwiLCBcInR5cGVcIiwgXCJjb250aW51ZVwiLCBcImZvclwiLFxuICAgIFwiaW1wb3J0XCIsIFwicmV0dXJuXCIsIFwidmFyXCJcbiAgXSksXG4gIGphdmE6IG5ldyBTZXQoW1xuICAgIFwiX1wiLCBcImFic3RyYWN0XCIsIFwiYXNzZXJ0XCIsIFwiYm9vbGVhblwiLCBcImJyZWFrXCIsIFwiYnl0ZVwiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNoYXJcIiwgXCJjbGFzc1wiLCBcImNvbnN0XCIsIFwiY29udGludWVcIixcbiAgICBcImRlZmF1bHRcIiwgXCJkb1wiLCBcImRvdWJsZVwiLCBcImVsc2VcIiwgXCJlbnVtXCIsIFwiZXhwb3J0c1wiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsXCIsIFwiZmluYWxseVwiLCBcImZsb2F0XCIsIFwiZm9yXCIsXG4gICAgXCJnb3RvXCIsIFwiaWZcIiwgXCJpbXBsZW1lbnRzXCIsIFwiaW1wb3J0XCIsIFwiaW5zdGFuY2VvZlwiLCBcImludFwiLCBcImludGVyZmFjZVwiLCBcImxvbmdcIiwgXCJtb2R1bGVcIiwgXCJuYXRpdmVcIiwgXCJuZXdcIixcbiAgICBcIm5vbi1zZWFsZWRcIiwgXCJudWxsXCIsIFwib3BlblwiLCBcIm9wZW5zXCIsIFwicGFja2FnZVwiLCBcInBlcm1pdHNcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHJvdmlkZXNcIiwgXCJwdWJsaWNcIixcbiAgICBcInJlY29yZFwiLCBcInJlcXVpcmVzXCIsIFwicmV0dXJuXCIsIFwic2VhbGVkXCIsIFwic2hvcnRcIiwgXCJzdGF0aWNcIiwgXCJzdHJpY3RmcFwiLCBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwic3luY2hyb25pemVkXCIsXG4gICAgXCJ0aGlzXCIsIFwidGhyb3dcIiwgXCJ0aHJvd3NcIiwgXCJ0b1wiLCBcInRyYW5zaWVudFwiLCBcInRyYW5zaXRpdmVcIiwgXCJ0cnVlXCIsIFwidHJ5XCIsIFwidXNlc1wiLCBcInZhclwiLCBcInZvaWRcIiwgXCJ2b2xhdGlsZVwiLFxuICAgIFwid2hlblwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcInlpZWxkXCJcbiAgXSksXG4gIGphdmFzY3JpcHQ6IG5ldyBTZXQoW1xuICAgIFwiYXdhaXRcIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIiwgXCJjb250aW51ZVwiLCBcImRlYnVnZ2VyXCIsIFwiZGVmYXVsdFwiLCBcImRlbGV0ZVwiLCBcImRvXCIsIFwiZWxzZVwiLFxuICAgIFwiZW51bVwiLCBcImV4cG9ydFwiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmdW5jdGlvblwiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImltcG9ydFwiLCBcImluXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsIFwiaW50ZXJmYWNlXCIsIFwibGV0XCIsIFwibmV3XCIsIFwibnVsbFwiLCBcInBhY2thZ2VcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmV0dXJuXCIsIFwic3RhdGljXCIsXG4gICAgXCJzdXBlclwiLCBcInN3aXRjaFwiLCBcInRoaXNcIiwgXCJ0aHJvd1wiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ0eXBlb2ZcIiwgXCJ2YXJcIiwgXCJ2b2lkXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIlxuICBdKSxcbiAgcGhwOiBuZXcgU2V0KFtcbiAgICBcIl9faGFsdF9jb21waWxlclwiLCBcImFic3RyYWN0XCIsIFwiYW5kXCIsIFwiYXJyYXlcIiwgXCJhc1wiLCBcImJyZWFrXCIsIFwiY2FsbGFibGVcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjbGFzc1wiLCBcImNsb25lXCIsXG4gICAgXCJjb25zdFwiLCBcImNvbnRpbnVlXCIsIFwiZGVjbGFyZVwiLCBcImRlZmF1bHRcIiwgXCJkaWVcIiwgXCJkb1wiLCBcImVjaG9cIiwgXCJlbHNlXCIsIFwiZWxzZWlmXCIsIFwiZW1wdHlcIiwgXCJlbmRkZWNsYXJlXCIsXG4gICAgXCJlbmRmb3JcIiwgXCJlbmRmb3JlYWNoXCIsIFwiZW5kaWZcIiwgXCJlbmRzd2l0Y2hcIiwgXCJlbmR3aGlsZVwiLCBcImVudW1cIiwgXCJldmFsXCIsIFwiZXhpdFwiLCBcImV4dGVuZHNcIiwgXCJmYWxzZVwiLCBcImZpbmFsXCIsXG4gICAgXCJmaW5hbGx5XCIsIFwiZm5cIiwgXCJmb3JcIiwgXCJmb3JlYWNoXCIsIFwiZnJvbVwiLCBcImZ1bmN0aW9uXCIsIFwiZ2xvYmFsXCIsIFwiZ290b1wiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImluY2x1ZGVcIixcbiAgICBcImluY2x1ZGVfb25jZVwiLCBcImluc3RhbmNlb2ZcIiwgXCJpbnN0ZWFkb2ZcIiwgXCJpbnRlcmZhY2VcIiwgXCJpc3NldFwiLCBcIml0ZXJhYmxlXCIsIFwibGlzdFwiLCBcIm1hdGNoXCIsIFwibWl4ZWRcIiwgXCJuYW1lc3BhY2VcIixcbiAgICBcIm5ldmVyXCIsIFwibmV3XCIsIFwibnVsbFwiLCBcIm9iamVjdFwiLCBcIm9yXCIsIFwicGFyZW50XCIsIFwicHJpbnRcIiwgXCJwcml2YXRlXCIsIFwicHJvdGVjdGVkXCIsIFwicHVibGljXCIsIFwicmVhZG9ubHlcIiwgXCJyZXF1aXJlXCIsXG4gICAgXCJyZXF1aXJlX29uY2VcIiwgXCJyZXR1cm5cIiwgXCJzZWxmXCIsIFwic3RhdGljXCIsIFwic3dpdGNoXCIsIFwidGhyb3dcIiwgXCJ0cmFpdFwiLCBcInRydWVcIiwgXCJ0cnlcIiwgXCJ1bnNldFwiLCBcInVzZVwiLCBcInZhclwiLFxuICAgIFwidm9pZFwiLCBcIndoaWxlXCIsIFwieG9yXCIsIFwieWllbGRcIlxuICBdKSxcbiAgcHl0aG9uOiBuZXcgU2V0KFtcbiAgICBcIkZhbHNlXCIsIFwiTm9uZVwiLCBcIlRydWVcIiwgXCJhbmRcIiwgXCJhc1wiLCBcImFzc2VydFwiLCBcImFzeW5jXCIsIFwiYXdhaXRcIiwgXCJib29sXCIsIFwiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2xhc3NcIixcbiAgICBcImNvbnRpbnVlXCIsIFwiZGVmXCIsIFwiZGVsXCIsIFwiZWxpZlwiLCBcImVsc2VcIiwgXCJleGNlcHRcIiwgXCJleGVjXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZyb21cIiwgXCJnbG9iYWxcIiwgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsIFwiaW5cIiwgXCJpbnRcIiwgXCJpc1wiLCBcImxhbWJkYVwiLCBcIm1hdGNoXCIsIFwibm9ubG9jYWxcIiwgXCJub3RcIiwgXCJvclwiLCBcInBhc3NcIiwgXCJwcmludFwiLFxuICAgIFwicmFpc2VcIiwgXCJyZXR1cm5cIiwgXCJzdHJcIiwgXCJ0cnlcIiwgXCJ0eXBlXCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwieWllbGRcIiwgXCJfXCIsIFwiX19kZWJ1Z19fXCJcbiAgXSksXG4gIHJ1Ynk6IG5ldyBTZXQoW1xuICAgIFwiQkVHSU5cIiwgXCJFTkRcIiwgXCJfX0VOQ09ESU5HX19cIiwgXCJfX0VORF9fXCIsIFwiX19GSUxFX19cIiwgXCJfX0xJTkVfX1wiLCBcImFsaWFzXCIsIFwiYW5kXCIsIFwiYmVnaW5cIiwgXCJicmVha1wiLCBcImNhc2VcIixcbiAgICBcImNsYXNzXCIsIFwiZGVmXCIsIFwiZGVmaW5lZD9cIiwgXCJkb1wiLCBcImVsc2VcIiwgXCJlbHNpZlwiLCBcImVuZFwiLCBcImVuc3VyZVwiLCBcImZhbHNlXCIsIFwiZm9yXCIsIFwiaWZcIiwgXCJpblwiLCBcIm1vZHVsZVwiLFxuICAgIFwibmV4dFwiLCBcIm5pbFwiLCBcIm5vdFwiLCBcIm9yXCIsIFwicmVkb1wiLCBcInJlc2N1ZVwiLCBcInJldHJ5XCIsIFwicmV0dXJuXCIsIFwic2VsZlwiLCBcInN1cGVyXCIsIFwidGhlblwiLCBcInRydWVcIiwgXCJ1bmRlZlwiLFxuICAgIFwidW5sZXNzXCIsIFwidW50aWxcIiwgXCJ3aGVuXCIsIFwid2hpbGVcIiwgXCJ5aWVsZFwiXG4gIF0pLFxuICB0eXBlc2NyaXB0OiBuZXcgU2V0KFtcbiAgICBcImFic3RyYWN0XCIsIFwiYW55XCIsIFwiYXNcIiwgXCJhc3NlcnRzXCIsIFwiYXN5bmNcIiwgXCJhd2FpdFwiLCBcImJvb2xlYW5cIiwgXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNsYXNzXCIsIFwiY29uc3RcIixcbiAgICBcImNvbnN0cnVjdG9yXCIsIFwiY29udGludWVcIiwgXCJkZWJ1Z2dlclwiLCBcImRlY2xhcmVcIiwgXCJkZWZhdWx0XCIsIFwiZGVsZXRlXCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZW51bVwiLCBcImV4cG9ydFwiLCBcImV4dGVuZHNcIixcbiAgICBcImZhbHNlXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZyb21cIiwgXCJmdW5jdGlvblwiLCBcImdldFwiLCBcImlmXCIsIFwiaW1wbGVtZW50c1wiLCBcImltcG9ydFwiLCBcImluXCIsIFwiaW5mZXJcIiwgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJpbnRlcmZhY2VcIiwgXCJpc1wiLCBcImtleW9mXCIsIFwibGV0XCIsIFwibW9kdWxlXCIsIFwibmFtZXNwYWNlXCIsIFwibmV2ZXJcIiwgXCJuZXdcIiwgXCJudWxsXCIsIFwibnVtYmVyXCIsIFwib2JqZWN0XCIsIFwib2ZcIixcbiAgICBcIm92ZXJyaWRlXCIsIFwicGFja2FnZVwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJyZWFkb25seVwiLCBcInJlcXVpcmVcIiwgXCJyZXR1cm5cIiwgXCJzYXRpc2ZpZXNcIiwgXCJzZXRcIixcbiAgICBcInN0YXRpY1wiLCBcInN0cmluZ1wiLCBcInN1cGVyXCIsIFwic3dpdGNoXCIsIFwic3ltYm9sXCIsIFwidGhpc1wiLCBcInRocm93XCIsIFwidHJ1ZVwiLCBcInRyeVwiLCBcInR5cGVcIiwgXCJ0eXBlb2ZcIiwgXCJ1bmRlZmluZWRcIixcbiAgICBcInVuaXF1ZVwiLCBcInVua25vd25cIiwgXCJ1c2luZ1wiLCBcInZhclwiLCBcInZvaWRcIiwgXCJ3aGlsZVwiLCBcIndpdGhcIiwgXCJ5aWVsZFwiXG4gIF0pXG59XG5cbmNvbnN0IHBocEludmFsaWRQYXJhbWV0ZXJCaW5kaW5ncyA9IG5ldyBTZXQoW1xuICBcIkdMT0JBTFNcIiwgXCJfQ09PS0lFXCIsIFwiX0VOVlwiLCBcIl9GSUxFU1wiLCBcIl9HRVRcIiwgXCJfUE9TVFwiLCBcIl9SRVFVRVNUXCIsIFwiX1NFUlZFUlwiLCBcIl9TRVNTSU9OXCIsIFwidGhpc1wiXG5dKVxuY29uc3QgcGhwSW52YWxpZEFzc2lnbmVkQmluZGluZ3MgPSBuZXcgU2V0KFtcIkdMT0JBTFNcIiwgXCJ0aGlzXCJdKVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhbiBpZGVudGlmaWVyIGFnYWluc3QgdGhlIHRhcmdldCBiYWNrZW5kJ3MgZGVsaWJlcmF0ZWx5IG5hcnJvdyBsZXhpY2FsIGNvbnRyYWN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gbmFtZSAtIENhbmRpZGF0ZSBzZW1hbnRpYyBpZGVudGlmaWVyLlxuICogQHBhcmFtIHtzdHJpbmd9IHJvbGUgLSBJZGVudGlmaWVyIHJvbGUgZm9yIGRpYWdub3N0aWNzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbiB8IHVuZGVmaW5lZH0gbG9jYXRpb24gLSBPcmlnaW5hdGluZyBsb2NhdGlvbi5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRJZGVudGlmaWVyKGxhbmd1YWdlLCBuYW1lLCByb2xlLCBsb2NhdGlvbikge1xuICBpZiAodHlwZW9mIG5hbWUgIT0gXCJzdHJpbmdcIikgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBgJHtyb2xlfSBpZGVudGlmaWVyYCwgbG9jYXRpb24pXG5cbiAgY29uc3QgcmVzZXJ2ZWROYW1lID0gbGFuZ3VhZ2UgPT0gXCJwaHBcIiA/IG5hbWUudG9Mb3dlckNhc2UoKSA6IG5hbWVcblxuICBpZiAoIWlkZW50aWZpZXJQYXR0ZXJuc1tsYW5ndWFnZV0udGVzdChuYW1lKSB8fCByZXNlcnZlZFdvcmRzW2xhbmd1YWdlXS5oYXMocmVzZXJ2ZWROYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwicHl0aG9uXCIgJiYgbmFtZS5ub3JtYWxpemUoXCJORktDXCIpICE9IG5hbWUgfHxcbiAgICBsYW5ndWFnZSA9PSBcImNcIiAmJiAhaXNDSWRlbnRpZmllcihuYW1lKSB8fFxuICAgIGxhbmd1YWdlID09IFwiY3BwXCIgJiYgIWlzQ3BwSWRlbnRpZmllcihuYW1lKSkge1xuICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgYCR7cm9sZX0gaWRlbnRpZmllciAnJHtuYW1lfSdgLCBsb2NhdGlvbilcbiAgfVxufVxuXG4vKipcbiAqIFByb3RlY3RzIHRoZSBleGFjdCBDIGhlYWRlciBlbnZpcm9ubWVudCBhbmQgaW1wbGVtZW50YXRpb24tcmVzZXJ2ZWQgbmFtZXNwYWNlIGluIGVpdGhlciBkaXJlY3Rpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlciBpZGVudGlmaWVyLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHNwZWxsaW5nIGlzIHNhZmUgaW4gdGhlIGNhbm9uaWNhbCB0cmFuc2xhdGlvbiB1bml0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDSWRlbnRpZmllcihuYW1lKSB7XG4gIHJldHVybiBpZGVudGlmaWVyUGF0dGVybnMuYy50ZXN0KG5hbWUpICYmICFyZXNlcnZlZFdvcmRzLmMuaGFzKG5hbWUpICYmXG4gICAgIS9eKD86c2VtYW50aWZvbGRffFNFTUFOVElGT0xEX3xTZW1hbnRpZm9sZHxhdG9taWNffElOVFswLTlfQS1aXXxVSU5UWzAtOV9BLVpdfElOVE1BWF98VUlOVE1BWF98U0laRV98UFRSRElGRl98U0lHX0FUT01JQ198V0NIQVJffFdJTlRffENIQVJffFNDSEFSX3xVQ0hBUl98U0hSVF98VVNIUlRffExPTkdffFVMT05HX3xMTE9OR198VUxMT05HXykvdS50ZXN0KG5hbWUpICYmXG4gICAgIS9eKD86dT9pbnQoPzo4fDE2fDMyfDY0fG1heHxwdHJ8X2xlYXN0WzAtOV0rfF9mYXN0WzAtOV0rKV90KSQvdS50ZXN0KG5hbWUpXG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgYmluZGluZyBpZGVudGlmaWVyIGFnYWluc3QgdGFyZ2V0IHJlc3RyaWN0aW9ucyBiZXlvbmQgZ2VuZXJhbCBpZGVudGlmaWVyIHN5bnRheC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gbGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge3Vua25vd259IG5hbWUgLSBDYW5kaWRhdGUgc2VtYW50aWMgaWRlbnRpZmllci5cbiAqIEBwYXJhbSB7c3RyaW5nfSByb2xlIC0gQmluZGluZyByb2xlIGZvciBkaWFnbm9zdGljcy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb24gfCB1bmRlZmluZWR9IGxvY2F0aW9uIC0gT3JpZ2luYXRpbmcgbG9jYXRpb24uXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGFyZ2V0QmluZGluZ0lkZW50aWZpZXIobGFuZ3VhZ2UsIG5hbWUsIHJvbGUsIGxvY2F0aW9uKSB7XG4gIHZhbGlkYXRlVGFyZ2V0SWRlbnRpZmllcihsYW5ndWFnZSwgbmFtZSwgcm9sZSwgbG9jYXRpb24pXG5cbiAgY29uc3QgaW52YWxpZFR5cGVTY3JpcHRCaW5kaW5nID0gbGFuZ3VhZ2UgPT0gXCJ0eXBlc2NyaXB0XCIgJiYgKG5hbWUgPT0gXCJhcmd1bWVudHNcIiB8fCBuYW1lID09IFwiZXZhbFwiKVxuICBjb25zdCBpbnZhbGlkUGhwVmFyaWFibGUgPSBsYW5ndWFnZSA9PSBcInBocFwiICYmIHR5cGVvZiBuYW1lID09IFwic3RyaW5nXCIgJiZcbiAgICAoKHJvbGUgPT0gXCJwYXJhbWV0ZXJcIiAmJiBwaHBJbnZhbGlkUGFyYW1ldGVyQmluZGluZ3MuaGFzKG5hbWUpKSB8fFxuICAgICAgKChyb2xlID09IFwibG9jYWxcIiB8fCByb2xlID09IFwiYXNzaWdubWVudCB0YXJnZXRcIikgJiYgcGhwSW52YWxpZEFzc2lnbmVkQmluZGluZ3MuaGFzKG5hbWUpKSlcbiAgY29uc3QgaW52YWxpZFJ1YnlCaW5kaW5nID0gbGFuZ3VhZ2UgPT0gXCJydWJ5XCIgJiYgdHlwZW9mIG5hbWUgPT0gXCJzdHJpbmdcIiAmJiAvXl9bMS05XSQvdS50ZXN0KG5hbWUpXG5cbiAgaWYgKGludmFsaWRUeXBlU2NyaXB0QmluZGluZyB8fCBpbnZhbGlkUGhwVmFyaWFibGUgfHwgaW52YWxpZFJ1YnlCaW5kaW5nKSB7XG4gICAgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBgJHtyb2xlfSBpZGVudGlmaWVyICcke25hbWV9J2AsIGxvY2F0aW9uKVxuICB9XG59XG5cbi8qKlxuICogUHJvdGVjdHMgQysrIGtleXdvcmRzLCB0aGUgYWN0dWFsIGluY2x1ZGVkIEMgbGlicmFyeSBuYW1lcy9tYWNyb3MgYW5kIHRoZSBzY2FmZm9sZCBuYW1lc3BhY2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIENhbGxlciBzY2FsYXIgYmluZGluZyBvciBmdW5jdGlvbiBuYW1lLlxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgYSBjYW5vbmljYWwgQysrMjAgdHJhbnNsYXRpb24gdW5pdCBjYW4gcmVwcmVzZW50IHRoZSBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDcHBJZGVudGlmaWVyKG5hbWUpIHtcbiAgcmV0dXJuIGlzQ0lkZW50aWZpZXIobmFtZSkgJiYgIW5hbWUuaW5jbHVkZXMoXCJfX1wiKSAmJiAhcmVzZXJ2ZWRXb3Jkcy5jcHAuaGFzKG5hbWUpXG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/index.js"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,EAJ9C;IAA+D,QAAQ,EAA/D,OAAO,sBAAsB,EAAE,gBAAgB,CACvD;IAA6D,MAAM,EAA3D,OAAO,sBAAsB,EAAE,cAAc,CACrD;CAE8C,GAFpC,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,YAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAC,EARnH;IAA+D,QAAQ,EAA/D,OAAO,sBAAsB,EAAE,gBAAgB,CACvD;IAA6D,MAAM,EAA3D,OAAO,sBAAsB,EAAE,cAAc,CACrD;IAAuB,QAAQ,AAA/B,CACA,EADQ,MAAM,CACd;IAA+C,YAAY,AAA3D,CACA,EADQ,MAAM,GAAG,UAAU,GAAG,QAAQ,CACtC;IAAuB,iBAAiB,AAAxC,CACA,EADQ,MAAM,CACd;IAAkH,OAAO,AAAzH,CACA,EADQ;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,sBAAsB,EAAE,gBAAgB,CAAA;KAAC,EAAE,CACzG;CAEmH,GAFzG,OAAO,sBAAsB,EAAE,iBAAiB,CA4D5D"}
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { generateRuby } from "./ruby.js";
|
|
2
|
+
import { unsupportedCapability, unsupportedRole } from "../diagnostic.js";
|
|
3
|
+
import { isValidFilenameMetadata } from "../artifact-path.js";
|
|
4
|
+
import { languageRegistry } from "../language-registry.js";
|
|
5
|
+
import { validateNativeGraph } from "./native-validation.js";
|
|
7
6
|
import { validateBackendModule } from "./shared.js";
|
|
8
|
-
import { generateTypeScript } from "./typescript.js";
|
|
9
7
|
import { SourceWriter } from "./writer.js";
|
|
10
8
|
import { finalizeMapping, toSourceMapV3 } from "../mapping.js";
|
|
11
|
-
/** @type {Readonly<Record<import("../semantic/types.js").SemanticLanguage, string>>} */
|
|
12
|
-
const defaultFilenames = Object.freeze({
|
|
13
|
-
java: "Main.java",
|
|
14
|
-
javascript: "program.js",
|
|
15
|
-
php: "program.php",
|
|
16
|
-
ruby: "program.rb",
|
|
17
|
-
typescript: "program.ts"
|
|
18
|
-
});
|
|
19
|
-
const lineTerminatorPattern = /[\n\r\u2028\u2029]/u;
|
|
20
9
|
const syntheticArtifactBase = Object.freeze(["__semantifold_artifacts__"]);
|
|
21
10
|
/**
|
|
22
11
|
* Generates target source from a semantic module.
|
|
@@ -39,41 +28,42 @@ export function generateSource({ language, module }) {
|
|
|
39
28
|
* @param {{filename: string, content: string, language?: import("../semantic/types.js").SemanticLanguage}[]} [input.sources] - Source content for legacy or assembled modules.
|
|
40
29
|
* @returns {import("../semantic/types.js").GeneratedArtifact} Generated artifact.
|
|
41
30
|
*/
|
|
42
|
-
export function generateArtifactSource({ language, filename
|
|
31
|
+
export function generateArtifactSource({ language, filename, mapDirective = "none", module, sourceMapFilename, sources }) {
|
|
32
|
+
const backend = languageRegistry.resolve(language, "textBackend", module?.location);
|
|
33
|
+
const record = languageRegistry.record(language);
|
|
34
|
+
if (record.artifactMultiplicity != "single")
|
|
35
|
+
unsupportedRole(language, "single-text backend", module?.location);
|
|
36
|
+
if (filename === undefined)
|
|
37
|
+
filename = record.defaultFilename;
|
|
38
|
+
if (sourceMapFilename === undefined)
|
|
39
|
+
sourceMapFilename = `${filename}.map`;
|
|
40
|
+
if (language == "cpp")
|
|
41
|
+
validateNativeGraph(module, "cpp");
|
|
43
42
|
validateBackendModule(module, language);
|
|
44
|
-
if (
|
|
43
|
+
if (language == "cpp" && (mapDirective != "none" || sourceMapFilename != "program.cpp.map")) {
|
|
44
|
+
unsupportedCapability(language, "CPP map directive or alternate source-map filename", module.location);
|
|
45
|
+
}
|
|
46
|
+
if (!isValidFilenameMetadata(filename)) {
|
|
45
47
|
throw new TypeError("Generated filename must be a non-empty single-line string.");
|
|
46
48
|
}
|
|
47
|
-
if (
|
|
49
|
+
if (!isValidFilenameMetadata(sourceMapFilename)) {
|
|
48
50
|
throw new TypeError("Source map filename must be a non-empty single-line string.");
|
|
49
51
|
}
|
|
52
|
+
if (language == "cpp" && filename != "program.cpp")
|
|
53
|
+
unsupportedCapability(language, "artifact filename other than program.cpp", module.location);
|
|
50
54
|
if (language == "java" && filename.split(/[\\/]/u).at(-1) != "Main.java") {
|
|
51
55
|
unsupportedCapability(language, "artifact filename basename other than Main.java", module.location);
|
|
52
56
|
}
|
|
57
|
+
if (language == "python" && filename.split(/[\\/]/u).at(-1) != "program.py") {
|
|
58
|
+
unsupportedCapability(language, "artifact filename basename other than program.py", module.location);
|
|
59
|
+
}
|
|
53
60
|
if (!["none", "external", "inline"].includes(mapDirective))
|
|
54
61
|
throw new TypeError(`Unsupported map directive: ${mapDirective}`);
|
|
55
62
|
if (mapDirective != "none" && language != "javascript" && language != "typescript") {
|
|
56
63
|
throw new TypeError("Source map directives are supported only for JavaScript and TypeScript outputs.");
|
|
57
64
|
}
|
|
58
65
|
const writer = new SourceWriter({ filename, language, module, sources });
|
|
59
|
-
|
|
60
|
-
generatePhp(module, writer);
|
|
61
|
-
else if (language == "ruby")
|
|
62
|
-
generateRuby(module, writer);
|
|
63
|
-
else if (language == "javascript")
|
|
64
|
-
generateJavaScript(module, writer);
|
|
65
|
-
else if (language == "typescript")
|
|
66
|
-
generateTypeScript(module, writer);
|
|
67
|
-
else if (language == "java")
|
|
68
|
-
generateJava(module, writer);
|
|
69
|
-
else {
|
|
70
|
-
throw new SemantifoldDiagnostic({
|
|
71
|
-
code: "UNSUPPORTED_LANGUAGE",
|
|
72
|
-
language,
|
|
73
|
-
location: module.location,
|
|
74
|
-
message: "No source backend is registered for this language."
|
|
75
|
-
});
|
|
76
|
-
}
|
|
66
|
+
backend(module, writer);
|
|
77
67
|
const sourceMap = toSourceMapV3(writer.finish());
|
|
78
68
|
if (mapDirective == "external") {
|
|
79
69
|
const sourceMapUrl = encodeArtifactPath(relativeArtifactPath(filename, sourceMapFilename));
|
|
@@ -146,4 +136,4 @@ function base64Utf8(value) {
|
|
|
146
136
|
binary += String.fromCharCode(byte);
|
|
147
137
|
return btoa(binary);
|
|
148
138
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBQzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDdEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFDbEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFVBQVUsQ0FBQTtBQUNwQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQ3RDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUNqRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFBO0FBRTVELHdGQUF3RjtBQUN4RixNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsR0FBRyxFQUFFLGFBQWE7SUFDbEIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsVUFBVSxFQUFFLFlBQVk7Q0FDekIsQ0FBQyxDQUFBO0FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtBQUNuRCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUE7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUM7SUFDL0MsT0FBTyxzQkFBc0IsQ0FBQyxF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TSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFdkYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge1NlbWFudGlmb2xkRGlhZ25vc3RpYywgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5fSBmcm9tIFwiLi4vZGlhZ25vc3RpYy5qc1wiXG5pbXBvcnQge2dlbmVyYXRlSmF2YX0gZnJvbSBcIi4vamF2YS5qc1wiXG5pbXBvcnQge2dlbmVyYXRlSmF2YVNjcmlwdH0gZnJvbSBcIi4vamF2YXNjcmlwdC5qc1wiXG5pbXBvcnQge2dlbmVyYXRlUGhwfSBmcm9tIFwiLi9waHAuanNcIlxuaW1wb3J0IHtnZW5lcmF0ZVJ1Ynl9IGZyb20gXCIuL3J1YnkuanNcIlxuaW1wb3J0IHt2YWxpZGF0ZUJhY2tlbmRNb2R1bGV9IGZyb20gXCIuL3NoYXJlZC5qc1wiXG5pbXBvcnQge2dlbmVyYXRlVHlwZVNjcmlwdH0gZnJvbSBcIi4vdHlwZXNjcmlwdC5qc1wiXG5pbXBvcnQge1NvdXJjZVdyaXRlcn0gZnJvbSBcIi4vd3JpdGVyLmpzXCJcbmltcG9ydCB7ZmluYWxpemVNYXBwaW5nLCB0b1NvdXJjZU1hcFYzfSBmcm9tIFwiLi4vbWFwcGluZy5qc1wiXG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIHN0cmluZz4+fSAqL1xuY29uc3QgZGVmYXVsdEZpbGVuYW1lcyA9IE9iamVjdC5mcmVlemUoe1xuICBqYXZhOiBcIk1haW4uamF2YVwiLFxuICBqYXZhc2NyaXB0OiBcInByb2dyYW0uanNcIixcbiAgcGhwOiBcInByb2dyYW0ucGhwXCIsXG4gIHJ1Ynk6IFwicHJvZ3JhbS5yYlwiLFxuICB0eXBlc2NyaXB0OiBcInByb2dyYW0udHNcIlxufSlcbmNvbnN0IGxpbmVUZXJtaW5hdG9yUGF0dGVybiA9IC9bXFxuXFxyXFx1MjAyOFxcdTIwMjldL3VcbmNvbnN0IHN5bnRoZXRpY0FydGlmYWN0QmFzZSA9IE9iamVjdC5mcmVlemUoW1wiX19zZW1hbnRpZm9sZF9hcnRpZmFjdHNfX1wiXSlcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGFyZ2V0IHNvdXJjZSBmcm9tIGEgc2VtYW50aWMgbW9kdWxlLlxuICogQHBhcmFtIHtvYmplY3R9IGlucHV0IC0gR2VuZXJhdGlvbiByZXF1ZXN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBpbnB1dC5sYW5ndWFnZSAtIFRhcmdldCBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNNb2R1bGV9IGlucHV0Lm1vZHVsZSAtIFNlbWFudGljIG1vZHVsZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEdlbmVyYXRlZCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVNvdXJjZSh7bGFuZ3VhZ2UsIG1vZHVsZX0pIHtcbiAgcmV0dXJuIGdlbmVyYXRlQXJ0aWZhY3RTb3VyY2Uoe2xhbmd1YWdlLCBtb2R1bGV9KS5jb2RlXG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHNvdXJjZSB0b2dldGhlciB3aXRoIGF1dGhvcml0YXRpdmUgcmljaCBhbmQgU291cmNlIE1hcCB2MyBtYXBwaW5ncy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBpbnB1dCAtIEdlbmVyYXRpb24gcmVxdWVzdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gaW5wdXQubGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTW9kdWxlfSBpbnB1dC5tb2R1bGUgLSBTZW1hbnRpYyBtb2R1bGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2lucHV0LmZpbGVuYW1lXSAtIE91dHB1dCBmaWxlbmFtZS5cbiAqIEBwYXJhbSB7XCJub25lXCIgfCBcImV4dGVybmFsXCIgfCBcImlubGluZVwifSBbaW5wdXQubWFwRGlyZWN0aXZlXSAtIEphdmFTY3JpcHQtZmFtaWx5IHNvdXJjZSBtYXAgZGlyZWN0aXZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtpbnB1dC5zb3VyY2VNYXBGaWxlbmFtZV0gLSBFeHRlcm5hbCBzb3VyY2UgbWFwIGZpbGVuYW1lLlxuICogQHBhcmFtIHt7ZmlsZW5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBsYW5ndWFnZT86IGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9W119IFtpbnB1dC5zb3VyY2VzXSAtIFNvdXJjZSBjb250ZW50IGZvciBsZWdhY3kgb3IgYXNzZW1ibGVkIG1vZHVsZXMuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuR2VuZXJhdGVkQXJ0aWZhY3R9IEdlbmVyYXRlZCBhcnRpZmFjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQXJ0aWZhY3RTb3VyY2Uoe2xhbmd1YWdlLCBmaWxlbmFtZSA9IGRlZmF1bHRGaWxlbmFtZXNbbGFuZ3VhZ2VdLCBtYXBEaXJlY3RpdmUgPSBcIm5vbmVcIiwgbW9kdWxlLCBzb3VyY2VNYXBGaWxlbmFtZSA9IGAke2ZpbGVuYW1lfS5tYXBgLCBzb3VyY2VzfSkge1xuICB2YWxpZGF0ZUJhY2tlbmRNb2R1bGUobW9kdWxlLCBsYW5ndWFnZSlcblxuICBpZiAodHlwZW9mIGZpbGVuYW1lICE9IFwic3RyaW5nXCIgfHwgZmlsZW5hbWUubGVuZ3RoID09IDAgfHwgbGluZVRlcm1pbmF0b3JQYXR0ZXJuLnRlc3QoZmlsZW5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRlZCBmaWxlbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHNpbmdsZS1saW5lIHN0cmluZy5cIilcbiAgfVxuICBpZiAodHlwZW9mIHNvdXJjZU1hcEZpbGVuYW1lICE9IFwic3RyaW5nXCIgfHwgc291cmNlTWFwRmlsZW5hbWUubGVuZ3RoID09IDAgfHwgbGluZVRlcm1pbmF0b3JQYXR0ZXJuLnRlc3Qoc291cmNlTWFwRmlsZW5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlNvdXJjZSBtYXAgZmlsZW5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzaW5nbGUtbGluZSBzdHJpbmcuXCIpXG4gIH1cbiAgaWYgKGxhbmd1YWdlID09IFwiamF2YVwiICYmIGZpbGVuYW1lLnNwbGl0KC9bXFxcXC9dL3UpLmF0KC0xKSAhPSBcIk1haW4uamF2YVwiKSB7XG4gICAgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBcImFydGlmYWN0IGZpbGVuYW1lIGJhc2VuYW1lIG90aGVyIHRoYW4gTWFpbi5qYXZhXCIsIG1vZHVsZS5sb2NhdGlvbilcbiAgfVxuICBpZiAoIVtcIm5vbmVcIiwgXCJleHRlcm5hbFwiLCBcImlubGluZVwiXS5pbmNsdWRlcyhtYXBEaXJlY3RpdmUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCBtYXAgZGlyZWN0aXZlOiAke21hcERpcmVjdGl2ZX1gKVxuICBpZiAobWFwRGlyZWN0aXZlICE9IFwibm9uZVwiICYmIGxhbmd1YWdlICE9IFwiamF2YXNjcmlwdFwiICYmIGxhbmd1YWdlICE9IFwidHlwZXNjcmlwdFwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlNvdXJjZSBtYXAgZGlyZWN0aXZlcyBhcmUgc3VwcG9ydGVkIG9ubHkgZm9yIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQgb3V0cHV0cy5cIilcbiAgfVxuXG4gIGNvbnN0IHdyaXRlciA9IG5ldyBTb3VyY2VXcml0ZXIoe2ZpbGVuYW1lLCBsYW5ndWFnZSwgbW9kdWxlLCBzb3VyY2VzfSlcblxuICBpZiAobGFuZ3VhZ2UgPT0gXCJwaHBcIikgZ2VuZXJhdGVQaHAobW9kdWxlLCB3cml0ZXIpXG4gIGVsc2UgaWYgKGxhbmd1YWdlID09IFwicnVieVwiKSBnZW5lcmF0ZVJ1YnkobW9kdWxlLCB3cml0ZXIpXG4gIGVsc2UgaWYgKGxhbmd1YWdlID09IFwiamF2YXNjcmlwdFwiKSBnZW5lcmF0ZUphdmFTY3JpcHQobW9kdWxlLCB3cml0ZXIpXG4gIGVsc2UgaWYgKGxhbmd1YWdlID09IFwidHlwZXNjcmlwdFwiKSBnZW5lcmF0ZVR5cGVTY3JpcHQobW9kdWxlLCB3cml0ZXIpXG4gIGVsc2UgaWYgKGxhbmd1YWdlID09IFwiamF2YVwiKSBnZW5lcmF0ZUphdmEobW9kdWxlLCB3cml0ZXIpXG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBTZW1hbnRpZm9sZERpYWdub3N0aWMoe1xuICAgICAgY29kZTogXCJVTlNVUFBPUlRFRF9MQU5HVUFHRVwiLFxuICAgICAgbGFuZ3VhZ2UsXG4gICAgICBsb2NhdGlvbjogbW9kdWxlLmxvY2F0aW9uLFxuICAgICAgbWVzc2FnZTogXCJObyBzb3VyY2UgYmFja2VuZCBpcyByZWdpc3RlcmVkIGZvciB0aGlzIGxhbmd1YWdlLlwiXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZU1hcCA9IHRvU291cmNlTWFwVjMod3JpdGVyLmZpbmlzaCgpKVxuXG4gIGlmIChtYXBEaXJlY3RpdmUgPT0gXCJleHRlcm5hbFwiKSB7XG4gICAgY29uc3Qgc291cmNlTWFwVXJsID0gZW5jb2RlQXJ0aWZhY3RQYXRoKHJlbGF0aXZlQXJ0aWZhY3RQYXRoKGZpbGVuYW1lLCBzb3VyY2VNYXBGaWxlbmFtZSkpXG5cbiAgICB3cml0ZXIuc3ludGhldGljKGAvLyMgc291cmNlTWFwcGluZ1VSTD0ke3NvdXJjZU1hcFVybH1cXG5gLCBcImV4dGVybmFsIHNvdXJjZSBtYXAgZGlyZWN0aXZlXCIsIFttb2R1bGVdKVxuICB9IGVsc2UgaWYgKG1hcERpcmVjdGl2ZSA9PSBcImlubGluZVwiKSB7XG4gICAgY29uc3QgZW5jb2RlZCA9IGJhc2U2NFV0ZjgoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSlcblxuICAgIHdyaXRlci5zeW50aGV0aWMoYC8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwke2VuY29kZWR9XFxuYCwgXCJpbmxpbmUgc291cmNlIG1hcCBkaXJlY3RpdmVcIiwgW21vZHVsZV0pXG4gIH1cblxuICBjb25zdCBtYXBwaW5nID0gZmluYWxpemVNYXBwaW5nKHdyaXRlci5maW5pc2goKSlcblxuICByZXR1cm4ge1xuICAgIGNvZGU6IG1hcHBpbmcuZ2VuZXJhdGVkLmNvbnRlbnQsXG4gICAgZmlsZW5hbWUsXG4gICAgbGFuZ3VhZ2UsXG4gICAgbWFwcGluZyxcbiAgICBzb3VyY2VNYXAsXG4gICAgc291cmNlTWFwRmlsZW5hbWVcbiAgfVxufVxuXG4vKipcbiAqIFJlc29sdmVzIG9uZSBsb2dpY2FsIGFydGlmYWN0IGZpbGVuYW1lIHJlbGF0aXZlIHRvIGFub3RoZXIgYXJ0aWZhY3QncyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30gZ2VuZXJhdGVkRmlsZW5hbWUgLSBHZW5lcmF0ZWQgY29kZSBhcnRpZmFjdCBmaWxlbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSByZWxhdGVkRmlsZW5hbWUgLSBSZWxhdGVkIGFydGlmYWN0IGZpbGVuYW1lLlxuICogQHJldHVybnMge3N0cmluZ30gUG9ydGFibGUgZm9yd2FyZC1zbGFzaCByZWxhdGl2ZSBwYXRoLlxuICovXG5mdW5jdGlvbiByZWxhdGl2ZUFydGlmYWN0UGF0aChnZW5lcmF0ZWRGaWxlbmFtZSwgcmVsYXRlZEZpbGVuYW1lKSB7XG4gIGNvbnN0IGdlbmVyYXRlZERpcmVjdG9yeSA9IHJlc29sdmVkQXJ0aWZhY3RQYXRoUGFydHMoZ2VuZXJhdGVkRmlsZW5hbWUpXG4gIGNvbnN0IHJlbGF0ZWQgPSByZXNvbHZlZEFydGlmYWN0UGF0aFBhcnRzKHJlbGF0ZWRGaWxlbmFtZSlcblxuICBnZW5lcmF0ZWREaXJlY3RvcnkucG9wKClcbiAgbGV0IGNvbW1vbiA9IDBcblxuICB3aGlsZSAoY29tbW9uIDwgZ2VuZXJhdGVkRGlyZWN0b3J5Lmxlbmd0aCAmJiBjb21tb24gPCByZWxhdGVkLmxlbmd0aCAmJiBnZW5lcmF0ZWREaXJlY3RvcnlbY29tbW9uXSA9PSByZWxhdGVkW2NvbW1vbl0pIGNvbW1vbisrXG5cbiAgcmV0dXJuIFsuLi5nZW5lcmF0ZWREaXJlY3Rvcnkuc2xpY2UoY29tbW9uKS5tYXAoKCkgPT4gXCIuLlwiKSwgLi4ucmVsYXRlZC5zbGljZShjb21tb24pXS5qb2luKFwiL1wiKSB8fCBcIi5cIlxufVxuXG4vKipcbiAqIFJlc29sdmVzIHNlcGFyYXRvcnMgYW5kIGRvdCBzZWdtZW50cyBhZ2FpbnN0IHRoZSBzaGFyZWQgc3ludGhldGljIGFydGlmYWN0IGJhc2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWUgLSBMb2dpY2FsIGFydGlmYWN0IGZpbGVuYW1lLlxuICogQHJldHVybnMge3N0cmluZ1tdfSBSZXNvbHZlZCBwYXRoIHBhcnRzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlZEFydGlmYWN0UGF0aFBhcnRzKGZpbGVuYW1lKSB7XG4gIGNvbnN0IHBhcnRzID0gWy4uLnN5bnRoZXRpY0FydGlmYWN0QmFzZV1cblxuICBmb3IgKGNvbnN0IHBhcnQgb2YgZmlsZW5hbWUucmVwbGFjZUFsbChcIlxcXFxcIiwgXCIvXCIpLnNwbGl0KFwiL1wiKSkge1xuICAgIGlmIChwYXJ0ID09IFwiXCIgfHwgcGFydCA9PSBcIi5cIikgY29udGludWVcbiAgICBpZiAocGFydCA9PSBcIi4uXCIpIHtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiBzeW50aGV0aWNBcnRpZmFjdEJhc2UubGVuZ3RoKSBwYXJ0cy5wb3AoKVxuICAgIH0gZWxzZSBwYXJ0cy5wdXNoKHBhcnQpXG4gIH1cblxuICByZXR1cm4gcGFydHNcbn1cblxuLyoqXG4gKiBFbmNvZGVzIGxpdGVyYWwgZmlsZXN5c3RlbSBwYXRoIHNlZ21lbnRzIHdpdGhvdXQgZW5jb2Rpbmcgc3RydWN0dXJhbCBzbGFzaGVzLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBSZWxhdGl2ZSBhcnRpZmFjdCBwYXRoLlxuICogQHJldHVybnMge3N0cmluZ30gVVJMLXNhZmUgcmVsYXRpdmUgYXJ0aWZhY3QgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZW5jb2RlQXJ0aWZhY3RQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoXCIvXCIpLm1hcCgocGFydCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHBhcnQpKS5qb2luKFwiL1wiKVxufVxuXG4vKipcbiAqIEVuY29kZXMgVW5pY29kZSBKU09OIHdpdGhvdXQgcmVseWluZyBvbiBhIE5vZGUtb25seSBhcnRpZmFjdCBjb250cmFjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFVuaWNvZGUgc3RyaW5nLlxuICogQHJldHVybnMge3N0cmluZ30gQmFzZTY0IFVURi04LlxuICovXG5mdW5jdGlvbiBiYXNlNjRVdGY4KHZhbHVlKSB7XG4gIGxldCBiaW5hcnkgPSBcIlwiXG5cbiAgZm9yIChjb25zdCBieXRlIG9mIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2YWx1ZSkpIGJpbmFyeSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGUpXG5cbiAgcmV0dXJuIGJ0b2EoYmluYXJ5KVxufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxlQUFlLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQTtBQUN4RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQTtBQUMxRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxhQUFhLENBQUE7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGFBQWEsQ0FBQTtBQUN4QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUE7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUM7SUFDL0MsT0FBTyxzQkFBc0IsQ0FBQyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN4RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsWUFBWSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFDO0lBQ3BILE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNuRixNQUFNLE1BQU0sR0FBRyxnQkFB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QUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV2RixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7dW5zdXBwb3J0ZWRDYXBhYmlsaXR5LCB1bnN1cHBvcnRlZFJvbGV9IGZyb20gXCIuLi9kaWFnbm9zdGljLmpzXCJcbmltcG9ydCB7aXNWYWxpZEZpbGVuYW1lTWV0YWRhdGF9IGZyb20gXCIuLi9hcnRpZmFjdC1wYXRoLmpzXCJcbmltcG9ydCB7bGFuZ3VhZ2VSZWdpc3RyeX0gZnJvbSBcIi4uL2xhbmd1YWdlLXJlZ2lzdHJ5LmpzXCJcbmltcG9ydCB7dmFsaWRhdGVOYXRpdmVHcmFwaH0gZnJvbSBcIi4vbmF0aXZlLXZhbGlkYXRpb24uanNcIlxuaW1wb3J0IHt2YWxpZGF0ZUJhY2tlbmRNb2R1bGV9IGZyb20gXCIuL3NoYXJlZC5qc1wiXG5pbXBvcnQge1NvdXJjZVdyaXRlcn0gZnJvbSBcIi4vd3JpdGVyLmpzXCJcbmltcG9ydCB7ZmluYWxpemVNYXBwaW5nLCB0b1NvdXJjZU1hcFYzfSBmcm9tIFwiLi4vbWFwcGluZy5qc1wiXG5jb25zdCBzeW50aGV0aWNBcnRpZmFjdEJhc2UgPSBPYmplY3QuZnJlZXplKFtcIl9fc2VtYW50aWZvbGRfYXJ0aWZhY3RzX19cIl0pXG5cbi8qKlxuICogR2VuZXJhdGVzIHRhcmdldCBzb3VyY2UgZnJvbSBhIHNlbWFudGljIG1vZHVsZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBpbnB1dCAtIEdlbmVyYXRpb24gcmVxdWVzdC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNMYW5ndWFnZX0gaW5wdXQubGFuZ3VhZ2UgLSBUYXJnZXQgbGFuZ3VhZ2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTW9kdWxlfSBpbnB1dC5tb2R1bGUgLSBTZW1hbnRpYyBtb2R1bGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBHZW5lcmF0ZWQgc291cmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVTb3VyY2Uoe2xhbmd1YWdlLCBtb2R1bGV9KSB7XG4gIHJldHVybiBnZW5lcmF0ZUFydGlmYWN0U291cmNlKHtsYW5ndWFnZSwgbW9kdWxlfSkuY29kZVxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBzb3VyY2UgdG9nZXRoZXIgd2l0aCBhdXRob3JpdGF0aXZlIHJpY2ggYW5kIFNvdXJjZSBNYXAgdjMgbWFwcGluZ3MuXG4gKiBAcGFyYW0ge29iamVjdH0gaW5wdXQgLSBHZW5lcmF0aW9uIHJlcXVlc3QuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2V9IGlucHV0Lmxhbmd1YWdlIC0gVGFyZ2V0IGxhbmd1YWdlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY01vZHVsZX0gaW5wdXQubW9kdWxlIC0gU2VtYW50aWMgbW9kdWxlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtpbnB1dC5maWxlbmFtZV0gLSBPdXRwdXQgZmlsZW5hbWUuXG4gKiBAcGFyYW0ge1wibm9uZVwiIHwgXCJleHRlcm5hbFwiIHwgXCJpbmxpbmVcIn0gW2lucHV0Lm1hcERpcmVjdGl2ZV0gLSBKYXZhU2NyaXB0LWZhbWlseSBzb3VyY2UgbWFwIGRpcmVjdGl2ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbaW5wdXQuc291cmNlTWFwRmlsZW5hbWVdIC0gRXh0ZXJuYWwgc291cmNlIG1hcCBmaWxlbmFtZS5cbiAqIEBwYXJhbSB7e2ZpbGVuYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZywgbGFuZ3VhZ2U/OiBpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfVtdfSBbaW5wdXQuc291cmNlc10gLSBTb3VyY2UgY29udGVudCBmb3IgbGVnYWN5IG9yIGFzc2VtYmxlZCBtb2R1bGVzLlxuICogQHJldHVybnMge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLkdlbmVyYXRlZEFydGlmYWN0fSBHZW5lcmF0ZWQgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFydGlmYWN0U291cmNlKHtsYW5ndWFnZSwgZmlsZW5hbWUsIG1hcERpcmVjdGl2ZSA9IFwibm9uZVwiLCBtb2R1bGUsIHNvdXJjZU1hcEZpbGVuYW1lLCBzb3VyY2VzfSkge1xuICBjb25zdCBiYWNrZW5kID0gbGFuZ3VhZ2VSZWdpc3RyeS5yZXNvbHZlKGxhbmd1YWdlLCBcInRleHRCYWNrZW5kXCIsIG1vZHVsZT8ubG9jYXRpb24pXG4gIGNvbnN0IHJlY29yZCA9IGxhbmd1YWdlUmVnaXN0cnkucmVjb3JkKGxhbmd1YWdlKVxuXG4gIGlmIChyZWNvcmQuYXJ0aWZhY3RNdWx0aXBsaWNpdHkgIT0gXCJzaW5nbGVcIikgdW5zdXBwb3J0ZWRSb2xlKGxhbmd1YWdlLCBcInNpbmdsZS10ZXh0IGJhY2tlbmRcIiwgbW9kdWxlPy5sb2NhdGlvbilcbiAgaWYgKGZpbGVuYW1lID09PSB1bmRlZmluZWQpIGZpbGVuYW1lID0gcmVjb3JkLmRlZmF1bHRGaWxlbmFtZVxuICBpZiAoc291cmNlTWFwRmlsZW5hbWUgPT09IHVuZGVmaW5lZCkgc291cmNlTWFwRmlsZW5hbWUgPSBgJHtmaWxlbmFtZX0ubWFwYFxuICBpZiAobGFuZ3VhZ2UgPT0gXCJjcHBcIikgdmFsaWRhdGVOYXRpdmVHcmFwaChtb2R1bGUsIFwiY3BwXCIpXG4gIHZhbGlkYXRlQmFja2VuZE1vZHVsZShtb2R1bGUsIGxhbmd1YWdlKVxuXG4gIGlmIChsYW5ndWFnZSA9PSBcImNwcFwiICYmIChtYXBEaXJlY3RpdmUgIT0gXCJub25lXCIgfHwgc291cmNlTWFwRmlsZW5hbWUgIT0gXCJwcm9ncmFtLmNwcC5tYXBcIikpIHtcbiAgICB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIFwiQ1BQIG1hcCBkaXJlY3RpdmUgb3IgYWx0ZXJuYXRlIHNvdXJjZS1tYXAgZmlsZW5hbWVcIiwgbW9kdWxlLmxvY2F0aW9uKVxuICB9XG5cbiAgaWYgKCFpc1ZhbGlkRmlsZW5hbWVNZXRhZGF0YShmaWxlbmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdGVkIGZpbGVuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc2luZ2xlLWxpbmUgc3RyaW5nLlwiKVxuICB9XG4gIGlmICghaXNWYWxpZEZpbGVuYW1lTWV0YWRhdGEoc291cmNlTWFwRmlsZW5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlNvdXJjZSBtYXAgZmlsZW5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzaW5nbGUtbGluZSBzdHJpbmcuXCIpXG4gIH1cbiAgaWYgKGxhbmd1YWdlID09IFwiY3BwXCIgJiYgZmlsZW5hbWUgIT0gXCJwcm9ncmFtLmNwcFwiKSB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIFwiYXJ0aWZhY3QgZmlsZW5hbWUgb3RoZXIgdGhhbiBwcm9ncmFtLmNwcFwiLCBtb2R1bGUubG9jYXRpb24pXG4gIGlmIChsYW5ndWFnZSA9PSBcImphdmFcIiAmJiBmaWxlbmFtZS5zcGxpdCgvW1xcXFwvXS91KS5hdCgtMSkgIT0gXCJNYWluLmphdmFcIikge1xuICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgXCJhcnRpZmFjdCBmaWxlbmFtZSBiYXNlbmFtZSBvdGhlciB0aGFuIE1haW4uamF2YVwiLCBtb2R1bGUubG9jYXRpb24pXG4gIH1cbiAgaWYgKGxhbmd1YWdlID09IFwicHl0aG9uXCIgJiYgZmlsZW5hbWUuc3BsaXQoL1tcXFxcL10vdSkuYXQoLTEpICE9IFwicHJvZ3JhbS5weVwiKSB7XG4gICAgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBcImFydGlmYWN0IGZpbGVuYW1lIGJhc2VuYW1lIG90aGVyIHRoYW4gcHJvZ3JhbS5weVwiLCBtb2R1bGUubG9jYXRpb24pXG4gIH1cbiAgaWYgKCFbXCJub25lXCIsIFwiZXh0ZXJuYWxcIiwgXCJpbmxpbmVcIl0uaW5jbHVkZXMobWFwRGlyZWN0aXZlKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihgVW5zdXBwb3J0ZWQgbWFwIGRpcmVjdGl2ZTogJHttYXBEaXJlY3RpdmV9YClcbiAgaWYgKG1hcERpcmVjdGl2ZSAhPSBcIm5vbmVcIiAmJiBsYW5ndWFnZSAhPSBcImphdmFzY3JpcHRcIiAmJiBsYW5ndWFnZSAhPSBcInR5cGVzY3JpcHRcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTb3VyY2UgbWFwIGRpcmVjdGl2ZXMgYXJlIHN1cHBvcnRlZCBvbmx5IGZvciBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IG91dHB1dHMuXCIpXG4gIH1cblxuICBjb25zdCB3cml0ZXIgPSBuZXcgU291cmNlV3JpdGVyKHtmaWxlbmFtZSwgbGFuZ3VhZ2UsIG1vZHVsZSwgc291cmNlc30pXG5cbiAgYmFja2VuZChtb2R1bGUsIHdyaXRlcilcblxuICBjb25zdCBzb3VyY2VNYXAgPSB0b1NvdXJjZU1hcFYzKHdyaXRlci5maW5pc2goKSlcblxuICBpZiAobWFwRGlyZWN0aXZlID09IFwiZXh0ZXJuYWxcIikge1xuICAgIGNvbnN0IHNvdXJjZU1hcFVybCA9IGVuY29kZUFydGlmYWN0UGF0aChyZWxhdGl2ZUFydGlmYWN0UGF0aChmaWxlbmFtZSwgc291cmNlTWFwRmlsZW5hbWUpKVxuXG4gICAgd3JpdGVyLnN5bnRoZXRpYyhgLy8jIHNvdXJjZU1hcHBpbmdVUkw9JHtzb3VyY2VNYXBVcmx9XFxuYCwgXCJleHRlcm5hbCBzb3VyY2UgbWFwIGRpcmVjdGl2ZVwiLCBbbW9kdWxlXSlcbiAgfSBlbHNlIGlmIChtYXBEaXJlY3RpdmUgPT0gXCJpbmxpbmVcIikge1xuICAgIGNvbnN0IGVuY29kZWQgPSBiYXNlNjRVdGY4KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpXG5cbiAgICB3cml0ZXIuc3ludGhldGljKGAvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJHtlbmNvZGVkfVxcbmAsIFwiaW5saW5lIHNvdXJjZSBtYXAgZGlyZWN0aXZlXCIsIFttb2R1bGVdKVxuICB9XG5cbiAgY29uc3QgbWFwcGluZyA9IGZpbmFsaXplTWFwcGluZyh3cml0ZXIuZmluaXNoKCkpXG5cbiAgcmV0dXJuIHtcbiAgICBjb2RlOiBtYXBwaW5nLmdlbmVyYXRlZC5jb250ZW50LFxuICAgIGZpbGVuYW1lLFxuICAgIGxhbmd1YWdlLFxuICAgIG1hcHBpbmcsXG4gICAgc291cmNlTWFwLFxuICAgIHNvdXJjZU1hcEZpbGVuYW1lXG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBvbmUgbG9naWNhbCBhcnRpZmFjdCBmaWxlbmFtZSByZWxhdGl2ZSB0byBhbm90aGVyIGFydGlmYWN0J3MgZGlyZWN0b3J5LlxuICogQHBhcmFtIHtzdHJpbmd9IGdlbmVyYXRlZEZpbGVuYW1lIC0gR2VuZXJhdGVkIGNvZGUgYXJ0aWZhY3QgZmlsZW5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVsYXRlZEZpbGVuYW1lIC0gUmVsYXRlZCBhcnRpZmFjdCBmaWxlbmFtZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFBvcnRhYmxlIGZvcndhcmQtc2xhc2ggcmVsYXRpdmUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gcmVsYXRpdmVBcnRpZmFjdFBhdGgoZ2VuZXJhdGVkRmlsZW5hbWUsIHJlbGF0ZWRGaWxlbmFtZSkge1xuICBjb25zdCBnZW5lcmF0ZWREaXJlY3RvcnkgPSByZXNvbHZlZEFydGlmYWN0UGF0aFBhcnRzKGdlbmVyYXRlZEZpbGVuYW1lKVxuICBjb25zdCByZWxhdGVkID0gcmVzb2x2ZWRBcnRpZmFjdFBhdGhQYXJ0cyhyZWxhdGVkRmlsZW5hbWUpXG5cbiAgZ2VuZXJhdGVkRGlyZWN0b3J5LnBvcCgpXG4gIGxldCBjb21tb24gPSAwXG5cbiAgd2hpbGUgKGNvbW1vbiA8IGdlbmVyYXRlZERpcmVjdG9yeS5sZW5ndGggJiYgY29tbW9uIDwgcmVsYXRlZC5sZW5ndGggJiYgZ2VuZXJhdGVkRGlyZWN0b3J5W2NvbW1vbl0gPT0gcmVsYXRlZFtjb21tb25dKSBjb21tb24rK1xuXG4gIHJldHVybiBbLi4uZ2VuZXJhdGVkRGlyZWN0b3J5LnNsaWNlKGNvbW1vbikubWFwKCgpID0+IFwiLi5cIiksIC4uLnJlbGF0ZWQuc2xpY2UoY29tbW9uKV0uam9pbihcIi9cIikgfHwgXCIuXCJcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBzZXBhcmF0b3JzIGFuZCBkb3Qgc2VnbWVudHMgYWdhaW5zdCB0aGUgc2hhcmVkIHN5bnRoZXRpYyBhcnRpZmFjdCBiYXNlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIC0gTG9naWNhbCBhcnRpZmFjdCBmaWxlbmFtZS5cbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gUmVzb2x2ZWQgcGF0aCBwYXJ0cy5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZWRBcnRpZmFjdFBhdGhQYXJ0cyhmaWxlbmFtZSkge1xuICBjb25zdCBwYXJ0cyA9IFsuLi5zeW50aGV0aWNBcnRpZmFjdEJhc2VdXG5cbiAgZm9yIChjb25zdCBwYXJ0IG9mIGZpbGVuYW1lLnJlcGxhY2VBbGwoXCJcXFxcXCIsIFwiL1wiKS5zcGxpdChcIi9cIikpIHtcbiAgICBpZiAocGFydCA9PSBcIlwiIHx8IHBhcnQgPT0gXCIuXCIpIGNvbnRpbnVlXG4gICAgaWYgKHBhcnQgPT0gXCIuLlwiKSB7XG4gICAgICBpZiAocGFydHMubGVuZ3RoID4gc3ludGhldGljQXJ0aWZhY3RCYXNlLmxlbmd0aCkgcGFydHMucG9wKClcbiAgICB9IGVsc2UgcGFydHMucHVzaChwYXJ0KVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzXG59XG5cbi8qKlxuICogRW5jb2RlcyBsaXRlcmFsIGZpbGVzeXN0ZW0gcGF0aCBzZWdtZW50cyB3aXRob3V0IGVuY29kaW5nIHN0cnVjdHVyYWwgc2xhc2hlcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gUmVsYXRpdmUgYXJ0aWZhY3QgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFVSTC1zYWZlIHJlbGF0aXZlIGFydGlmYWN0IHBhdGguXG4gKi9cbmZ1bmN0aW9uIGVuY29kZUFydGlmYWN0UGF0aChwYXRoKSB7XG4gIHJldHVybiBwYXRoLnNwbGl0KFwiL1wiKS5tYXAoKHBhcnQpID0+IGVuY29kZVVSSUNvbXBvbmVudChwYXJ0KSkuam9pbihcIi9cIilcbn1cblxuLyoqXG4gKiBFbmNvZGVzIFVuaWNvZGUgSlNPTiB3aXRob3V0IHJlbHlpbmcgb24gYSBOb2RlLW9ubHkgYXJ0aWZhY3QgY29udHJhY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBVbmljb2RlIHN0cmluZy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IEJhc2U2NCBVVEYtOC5cbiAqL1xuZnVuY3Rpb24gYmFzZTY0VXRmOCh2YWx1ZSkge1xuICBsZXQgYmluYXJ5ID0gXCJcIlxuXG4gIGZvciAoY29uc3QgYnl0ZSBvZiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodmFsdWUpKSBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKVxuXG4gIHJldHVybiBidG9hKGJpbmFyeSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type SourceLocation = import("../semantic/types.js").SourceLocation;
|
|
2
|
+
/**
|
|
3
|
+
* Bounds a native occurrence plan and rejects cycles before recursive shared validation.
|
|
4
|
+
* @param {unknown} module - Untrusted backend request.
|
|
5
|
+
* @param {"c" | "cpp"} [language] - Native backend diagnostic language.
|
|
6
|
+
* @returns {void}
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateNativeGraph(module: unknown, language?: "c" | "cpp"): void;
|
|
9
|
+
//# sourceMappingURL=native-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-validation.d.ts","sourceRoot":"","sources":["../../../src/backends/native-validation.js"],"names":[],"mappings":"AAII,YAAyD,cAAc,GAA7D,OAAO,sBAAsB,EAAE,cAAc,CAAgB;AAK3E;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAJ/B,OAI+B,EAAE,QAAQ,AAHjD,CACA,EADQ,GAAG,GAAG,KAGyC,GAF7C,IAAI,CAqChB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { unsupportedCapability } from "../diagnostic.js";
|
|
3
|
+
/** @typedef {import("../semantic/types.js").SourceLocation} SourceLocation */
|
|
4
|
+
const semanticEdges = new Set(["functions", "entryPoint", "body", "parameters", "returnType", "statements", "condition",
|
|
5
|
+
"consequent", "alternate", "type", "target", "initializer", "expression", "operand", "left", "right", "arguments"]);
|
|
6
|
+
/**
|
|
7
|
+
* Bounds a native occurrence plan and rejects cycles before recursive shared validation.
|
|
8
|
+
* @param {unknown} module - Untrusted backend request.
|
|
9
|
+
* @param {"c" | "cpp"} [language] - Native backend diagnostic language.
|
|
10
|
+
* @returns {void}
|
|
11
|
+
*/
|
|
12
|
+
export function validateNativeGraph(module, language = "c") {
|
|
13
|
+
const active = new Set();
|
|
14
|
+
const weights = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* Counts expanded semantic occurrences while memoizing shared objects.
|
|
17
|
+
* @param {unknown} value - Candidate semantic value.
|
|
18
|
+
* @param {number} depth - Traversal depth.
|
|
19
|
+
* @returns {number} Bounded expanded weight.
|
|
20
|
+
*/
|
|
21
|
+
function visit(value, depth) {
|
|
22
|
+
if (!value || typeof value != "object")
|
|
23
|
+
return 0;
|
|
24
|
+
const location = /** @type {{location?: SourceLocation}} */ (value).location;
|
|
25
|
+
const kind = /** @type {{kind?: string}} */ (value).kind;
|
|
26
|
+
if (!Array.isArray(value) && (kind != "TypeReference" || "location" in value) && !validLocation(location)) {
|
|
27
|
+
unsupportedCapability(language, "missing or invalid semantic location", undefined);
|
|
28
|
+
}
|
|
29
|
+
if (depth > 512 || active.has(value))
|
|
30
|
+
unsupportedCapability(language, "cyclic or excessively nested semantic graph", location);
|
|
31
|
+
if (weights.has(value))
|
|
32
|
+
return weights.get(value);
|
|
33
|
+
active.add(value);
|
|
34
|
+
let size = 1;
|
|
35
|
+
const children = Array.isArray(value) ? value : Object.entries(value).filter(([key]) => semanticEdges.has(key)).map(([, child]) => child);
|
|
36
|
+
for (const child of children) {
|
|
37
|
+
size += visit(child, depth + 1);
|
|
38
|
+
if (size > 999999)
|
|
39
|
+
unsupportedCapability(language, "expanded native occurrence plan exceeds six-digit capacity", location);
|
|
40
|
+
}
|
|
41
|
+
active.delete(value);
|
|
42
|
+
weights.set(value, size);
|
|
43
|
+
return size;
|
|
44
|
+
}
|
|
45
|
+
visit(module, 0);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Checks required semantic coordinates before the provenance writer reads them.
|
|
49
|
+
* @param {SourceLocation | undefined} location - Candidate origin.
|
|
50
|
+
* @returns {boolean} Whether it is a complete ordered UTF-16 range.
|
|
51
|
+
*/
|
|
52
|
+
function validLocation(location) {
|
|
53
|
+
return Boolean(location && typeof location.filename == "string" && location.filename.length > 0 &&
|
|
54
|
+
[location.start, location.end].every((point) => point && Number.isSafeInteger(point.offset) && point.offset >= 0 &&
|
|
55
|
+
Number.isSafeInteger(point.line) && point.line >= 1 && Number.isSafeInteger(point.column) && point.column >= 1) &&
|
|
56
|
+
location.end.offset >= location.start.offset && location.end.line >= location.start.line &&
|
|
57
|
+
(location.end.line != location.start.line || location.end.column >= location.start.column));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLXZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvbmF0aXZlLXZhbGlkYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRXRELDhFQUE4RTtBQUU5RSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVc7SUFDckgsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtBQUVySDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLEdBQUc7SUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBRXpCOzs7OztPQUtHO0lBQ0gsU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUs7UUFDekIsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRO1lBQUUsT0FBTyxDQUFDLENBQUE7UUFDaEQsTUFBTSxRQUFRLEdBQUcsMENBQTBDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUE7UUFDNUUsTUFBTSxJQUFJLEdBQUcsOEJBQThCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFFeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksZUFBZSxJQUFJLFVBQVUs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a1xuXG5pbXBvcnQge3Vuc3VwcG9ydGVkQ2FwYWJpbGl0eX0gZnJvbSBcIi4uL2RpYWdub3N0aWMuanNcIlxuXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBTb3VyY2VMb2NhdGlvbiAqL1xuXG5jb25zdCBzZW1hbnRpY0VkZ2VzID0gbmV3IFNldChbXCJmdW5jdGlvbnNcIiwgXCJlbnRyeVBvaW50XCIsIFwiYm9keVwiLCBcInBhcmFtZXRlcnNcIiwgXCJyZXR1cm5UeXBlXCIsIFwic3RhdGVtZW50c1wiLCBcImNvbmRpdGlvblwiLFxuICBcImNvbnNlcXVlbnRcIiwgXCJhbHRlcm5hdGVcIiwgXCJ0eXBlXCIsIFwidGFyZ2V0XCIsIFwiaW5pdGlhbGl6ZXJcIiwgXCJleHByZXNzaW9uXCIsIFwib3BlcmFuZFwiLCBcImxlZnRcIiwgXCJyaWdodFwiLCBcImFyZ3VtZW50c1wiXSlcblxuLyoqXG4gKiBCb3VuZHMgYSBuYXRpdmUgb2NjdXJyZW5jZSBwbGFuIGFuZCByZWplY3RzIGN5Y2xlcyBiZWZvcmUgcmVjdXJzaXZlIHNoYXJlZCB2YWxpZGF0aW9uLlxuICogQHBhcmFtIHt1bmtub3dufSBtb2R1bGUgLSBVbnRydXN0ZWQgYmFja2VuZCByZXF1ZXN0LlxuICogQHBhcmFtIHtcImNcIiB8IFwiY3BwXCJ9IFtsYW5ndWFnZV0gLSBOYXRpdmUgYmFja2VuZCBkaWFnbm9zdGljIGxhbmd1YWdlLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU5hdGl2ZUdyYXBoKG1vZHVsZSwgbGFuZ3VhZ2UgPSBcImNcIikge1xuICBjb25zdCBhY3RpdmUgPSBuZXcgU2V0KClcbiAgY29uc3Qgd2VpZ2h0cyA9IG5ldyBNYXAoKVxuXG4gIC8qKlxuICAgKiBDb3VudHMgZXhwYW5kZWQgc2VtYW50aWMgb2NjdXJyZW5jZXMgd2hpbGUgbWVtb2l6aW5nIHNoYXJlZCBvYmplY3RzLlxuICAgKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gQ2FuZGlkYXRlIHNlbWFudGljIHZhbHVlLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZGVwdGggLSBUcmF2ZXJzYWwgZGVwdGguXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IEJvdW5kZWQgZXhwYW5kZWQgd2VpZ2h0LlxuICAgKi9cbiAgZnVuY3Rpb24gdmlzaXQodmFsdWUsIGRlcHRoKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT0gXCJvYmplY3RcIikgcmV0dXJuIDBcbiAgICBjb25zdCBsb2NhdGlvbiA9IC8qKiBAdHlwZSB7e2xvY2F0aW9uPzogU291cmNlTG9jYXRpb259fSAqLyAodmFsdWUpLmxvY2F0aW9uXG4gICAgY29uc3Qga2luZCA9IC8qKiBAdHlwZSB7e2tpbmQ/OiBzdHJpbmd9fSAqLyAodmFsdWUpLmtpbmRcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgKGtpbmQgIT0gXCJUeXBlUmVmZXJlbmNlXCIgfHwgXCJsb2NhdGlvblwiIGluIHZhbHVlKSAmJiAhdmFsaWRMb2NhdGlvbihsb2NhdGlvbikpIHtcbiAgICAgIHVuc3VwcG9ydGVkQ2FwYWJpbGl0eShsYW5ndWFnZSwgXCJtaXNzaW5nIG9yIGludmFsaWQgc2VtYW50aWMgbG9jYXRpb25cIiwgdW5kZWZpbmVkKVxuICAgIH1cblxuICAgIGlmIChkZXB0aCA+IDUxMiB8fCBhY3RpdmUuaGFzKHZhbHVlKSkgdW5zdXBwb3J0ZWRDYXBhYmlsaXR5KGxhbmd1YWdlLCBcImN5Y2xpYyBvciBleGNlc3NpdmVseSBuZXN0ZWQgc2VtYW50aWMgZ3JhcGhcIiwgbG9jYXRpb24pXG4gICAgaWYgKHdlaWdodHMuaGFzKHZhbHVlKSkgcmV0dXJuIHdlaWdodHMuZ2V0KHZhbHVlKVxuICAgIGFjdGl2ZS5hZGQodmFsdWUpXG4gICAgbGV0IHNpemUgPSAxXG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogT2JqZWN0LmVudHJpZXModmFsdWUpLmZpbHRlcigoW2tleV0pID0+IHNlbWFudGljRWRnZXMuaGFzKGtleSkpLm1hcCgoWywgY2hpbGRdKSA9PiBjaGlsZClcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIHNpemUgKz0gdmlzaXQoY2hpbGQsIGRlcHRoICsgMSlcbiAgICAgIGlmIChzaXplID4gOTk5OTk5KSB1bnN1cHBvcnRlZENhcGFiaWxpdHkobGFuZ3VhZ2UsIFwiZXhwYW5kZWQgbmF0aXZlIG9jY3VycmVuY2UgcGxhbiBleGNlZWRzIHNpeC1kaWdpdCBjYXBhY2l0eVwiLCBsb2NhdGlvbilcbiAgICB9XG4gICAgYWN0aXZlLmRlbGV0ZSh2YWx1ZSlcbiAgICB3ZWlnaHRzLnNldCh2YWx1ZSwgc2l6ZSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgdmlzaXQobW9kdWxlLCAwKVxufVxuXG4vKipcbiAqIENoZWNrcyByZXF1aXJlZCBzZW1hbnRpYyBjb29yZGluYXRlcyBiZWZvcmUgdGhlIHByb3ZlbmFuY2Ugd3JpdGVyIHJlYWRzIHRoZW0uXG4gKiBAcGFyYW0ge1NvdXJjZUxvY2F0aW9uIHwgdW5kZWZpbmVkfSBsb2NhdGlvbiAtIENhbmRpZGF0ZSBvcmlnaW4uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBpdCBpcyBhIGNvbXBsZXRlIG9yZGVyZWQgVVRGLTE2IHJhbmdlLlxuICovXG5mdW5jdGlvbiB2YWxpZExvY2F0aW9uKGxvY2F0aW9uKSB7XG4gIHJldHVybiBCb29sZWFuKGxvY2F0aW9uICYmIHR5cGVvZiBsb2NhdGlvbi5maWxlbmFtZSA9PSBcInN0cmluZ1wiICYmIGxvY2F0aW9uLmZpbGVuYW1lLmxlbmd0aCA+IDAgJiZcbiAgICBbbG9jYXRpb24uc3RhcnQsIGxvY2F0aW9uLmVuZF0uZXZlcnkoKHBvaW50KSA9PiBwb2ludCAmJiBOdW1iZXIuaXNTYWZlSW50ZWdlcihwb2ludC5vZmZzZXQpICYmIHBvaW50Lm9mZnNldCA+PSAwICYmXG4gICAgICBOdW1iZXIuaXNTYWZlSW50ZWdlcihwb2ludC5saW5lKSAmJiBwb2ludC5saW5lID49IDEgJiYgTnVtYmVyLmlzU2FmZUludGVnZXIocG9pbnQuY29sdW1uKSAmJiBwb2ludC5jb2x1bW4gPj0gMSkgJiZcbiAgICBsb2NhdGlvbi5lbmQub2Zmc2V0ID49IGxvY2F0aW9uLnN0YXJ0Lm9mZnNldCAmJiBsb2NhdGlvbi5lbmQubGluZSA+PSBsb2NhdGlvbi5zdGFydC5saW5lICYmXG4gICAgKGxvY2F0aW9uLmVuZC5saW5lICE9IGxvY2F0aW9uLnN0YXJ0LmxpbmUgfHwgbG9jYXRpb24uZW5kLmNvbHVtbiA+PSBsb2NhdGlvbi5zdGFydC5jb2x1bW4pKVxufVxuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type Expression = import("../semantic/types.js").Expression;
|
|
2
|
+
export type Scalar = import("../semantic/types.js").SemanticTypeName;
|
|
3
|
+
export type PlannedValue = {
|
|
4
|
+
expression: Expression;
|
|
5
|
+
path: string;
|
|
6
|
+
type: Scalar;
|
|
7
|
+
name?: string;
|
|
8
|
+
};
|
|
9
|
+
export type PlannedStep = {
|
|
10
|
+
result: PlannedValue;
|
|
11
|
+
operands: PlannedValue[];
|
|
12
|
+
rightSteps?: PlannedStep[];
|
|
13
|
+
};
|
|
14
|
+
export type Signature = Array<string | number | boolean | Signature>;
|
|
15
|
+
/** @typedef {import("../semantic/types.js").Expression} Expression */
|
|
16
|
+
/** @typedef {import("../semantic/types.js").SemanticTypeName} Scalar */
|
|
17
|
+
/** @typedef {{expression: Expression, path: string, type: Scalar, name?: string}} PlannedValue */
|
|
18
|
+
/** @typedef {{result: PlannedValue, operands: PlannedValue[], rightSteps?: PlannedStep[]}} PlannedStep */
|
|
19
|
+
/** @typedef {Array<string | number | boolean | Signature>} Signature */
|
|
20
|
+
/** Private occurrence-based native expression sequencer; it never rewrites the IR. */
|
|
21
|
+
export declare class OrderedExpressionPlanner {
|
|
22
|
+
language: "c" | "cpp";
|
|
23
|
+
functions: Map<string, import("../semantic/types.js").SemanticTypeName>;
|
|
24
|
+
nextTemporary: number;
|
|
25
|
+
/**
|
|
26
|
+
* Indexes already validated callable return types.
|
|
27
|
+
* @param {import("../semantic/types.js").SemanticModule} module - Validated module.
|
|
28
|
+
* @param {"c" | "cpp"} [language] - Owning backend diagnostic language.
|
|
29
|
+
*/
|
|
30
|
+
constructor(module: import("../semantic/types.js").SemanticModule, language?: "c" | "cpp");
|
|
31
|
+
/**
|
|
32
|
+
* Resolves an expression type from the validated lexical environment.
|
|
33
|
+
* @param {Expression} expression - Semantic expression.
|
|
34
|
+
* @param {Map<string, Scalar>} bindings - Lexical scalar types.
|
|
35
|
+
* @returns {Scalar} Exact semantic result type.
|
|
36
|
+
*/
|
|
37
|
+
type(expression: Expression, bindings: Map<string, Scalar>): Scalar;
|
|
38
|
+
/**
|
|
39
|
+
* Plans one expression in semantic order, keeping the short-circuit RHS conditional.
|
|
40
|
+
* @param {Expression} expression - Original occurrence.
|
|
41
|
+
* @param {string} path - Occurrence path.
|
|
42
|
+
* @param {Map<string, Scalar>} bindings - Lexical types.
|
|
43
|
+
* @param {PlannedStep[]} steps - Enclosing ordered prelude.
|
|
44
|
+
* @returns {PlannedValue} Pure final value.
|
|
45
|
+
*/
|
|
46
|
+
plan(expression: Expression, path: string, bindings: Map<string, Scalar>, steps: PlannedStep[]): PlannedValue;
|
|
47
|
+
/**
|
|
48
|
+
* Allocates one bounded deterministic occurrence name.
|
|
49
|
+
* @param {Expression} expression - Related expression.
|
|
50
|
+
* @returns {string} Reserved temporary name.
|
|
51
|
+
*/
|
|
52
|
+
allocate(expression: Expression): string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Binds a region marker to its semantic consumer and expression, independently of locations.
|
|
56
|
+
* The digest detects edits; structural CST validation remains mandatory and authoritative.
|
|
57
|
+
* @param {import("../semantic/types.js").Statement} statement - Reconstructed or original statement.
|
|
58
|
+
* @returns {string} Stable SHA-256 profile signature.
|
|
59
|
+
*/
|
|
60
|
+
export declare function statementSignature(statement: import("../semantic/types.js").Statement): string;
|
|
61
|
+
export type StatementPlan = {
|
|
62
|
+
id: string;
|
|
63
|
+
steps: PlannedStep[];
|
|
64
|
+
value: PlannedValue;
|
|
65
|
+
};
|
|
66
|
+
/** @typedef {{id: string, steps: PlannedStep[], value: PlannedValue}} StatementPlan */
|
|
67
|
+
/**
|
|
68
|
+
* Plans every occurrence before constructing a writer or exposing either artifact.
|
|
69
|
+
* @param {import("../semantic/types.js").SemanticModule} module - Validated module.
|
|
70
|
+
* @param {"c" | "cpp"} [language] - Native diagnostic owner.
|
|
71
|
+
* @returns {Map<string, StatementPlan>} Plans indexed by semantic occurrence path.
|
|
72
|
+
*/
|
|
73
|
+
export declare function planNativeModule(module: import("../semantic/types.js").SemanticModule, language?: "c" | "cpp"): Map<string, StatementPlan>;
|
|
74
|
+
//# sourceMappingURL=ordered-expressions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordered-expressions.d.ts","sourceRoot":"","sources":["../../../src/backends/ordered-expressions.js"],"names":[],"mappings":"AAKI,YAAqD,UAAU,GAArD,OAAO,sBAAsB,EAAE,UAAU,CAAY;AAC/D,YAA2D,MAAM,GAAvD,OAAO,sBAAsB,EAAE,gBAAgB,CAAQ;AACjE,YAA+E,YAAY,GAAjF;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,CAAc;AAC3F,YAAwF,WAAW,GAAzF;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAA;CAAC,CAAa;AACnG,YAAwD,SAAS,GAAvD,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAW;AAJrE,sEAAsE;AACtE,wEAAwE;AACxE,kGAAkG;AAClG,0GAA0G;AAC1G,wEAAwE;AAExE,sFAAsF;AACtF,qBAAa,wBAAwB;IAO5B,QAAQ;IACR,SAAS;IACT,aAAa;IARpB;;;;OAIG;IACH,YAAY,MAAM,EAHP,OAAO,sBAAsB,EAAE,cAGxB,EAAE,QAAQ,AAFzB,CACF,EADU,GAAG,GAAG,KAEiB,EAIjC;IAED;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAJJ,UAII,EAAE,QAAQ,EAHd,GAAG,CAAC,MAAM,EAAE,MAAM,CAGJ,GAFZ,MAAM,CAWlB;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,UAAU,EANJ,UAMI,EAAE,IAAI,EALV,MAKU,EAAE,QAAQ,EAJpB,GAAG,CAAC,MAAM,EAAE,MAAM,CAIE,EAAE,KAAK,EAH3B,WAAW,EAGgB,GAFzB,YAAY,CA6BxB;IAED;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAHR,UAGQ,GAFN,MAAM,CAKlB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAHjC,OAAO,sBAAsB,EAAE,SAGE,GAF/B,MAAM,CAQlB;AAeG,YAAmE,aAAa,GAAtE;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,CAAe;AAApF,uFAAuF;AACvF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAJ5B,OAAO,sBAAsB,EAAE,cAIH,EAAE,QAAQ,AAH9C,CACA,EADQ,GAAG,GAAG,KAGsC,GAF1C,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAuCtC"}
|